Upcoming Events! Community Event Calendar

BugSmashers – Episode 2 Written Wednesday 20th of May 2015 at 01:47pm by Nehkara

Citizens!  Check out this week’s episode of Bugsmashers! Bugsmashers   Transcript by Erris Quick Summary Mark fixes a bug.  Engines would request 0 power, so even when power was off, they would still run, because...

Citizens!  Check out this week’s episode of Bugsmashers!

Bugsmashers

 

Transcript by Erris

Quick Summary

Mark fixes a bug.  Engines would request 0 power, so even when power was off, they would still run, because they were getting 0 power.

Also, Mark goes through all of the tools he uses to fix bugs.

Also, Disco Lando edits things, and laughs a bunch.

Longer Summary

Okay, so you saw today’s little bug.  Good ‘ol pipe system, it always has shenanigans.  This one, designers set it up so the pipe says hey I need zero, and you get zero, so you technically get what you wanted, so the thrusters were able to fly around, even though they got 0 power.

Shennanigans.

So that was an easy little fix in the XML, designers will go and flush everything out from there, and so those things’ll be good to go.

Just want to say, I appreciate all your questions, comments, and concerns about last episode, can’t wait to see what you say about this episode.

If you have any questions related to game development, programing, bugsmashing, anything you can think of, send some questions, maybe I can answer them next episode.  Until then, see you in the ‘Verse.

Is that still a thing?

*long delay*

Hey everyone, welcome back to another episode of %$$*!

*Disco – You don’t even know the name of the show!*

Transcript

Hey Everyone, welcome to Episode 2 of Bugsmashers.  I haven’t been cancelled yet, so that’s good news, pretty much thanks to you guys for all the feedback and support from Episode 1.  We’ve been reading through everything, combing through it to see what you guys want to see, what you want to see different, things like that, so we’re going to try some different things, hopefully we don’t get cancelled with those knew things.  You never know, but we’ll give it a shot.  Here we go.

Alright.

Hey everyone, in the first episode of Bugsmashers we had a lot of feedback saying hey, how are you able to run the game multiple times?  Specifically, what kind of crazy rig do you have?  So, as you can see, i have a couple of instances of the game running on my dedicated server, runs pretty well for a Dev build.  Let me show you what I have here.

So I have the i7 3930, which is basically 6 cores with 12 threads, allows me to run the game pretty flawlessly, and for my Nvidia card just a GTX 780, not bad, lets me run the game pretty well, I think a couple of you guys have those.

So, Dogfight, I can launch it up pretty good.  It’s the Hangar that’ll actually kill my system if I have a couple of them open.  So, the system is a bit of a beast.  And then the next question I think you had was how do you do your work, what tools do you actually use, so let me show you.

So, one of the things, the game may lock up a lot when I’m not in visual studio, so you want to use the standard task manager but, if you need that extra bit of info to what’s going on inside resources and threads, you may want to use a more advanced explorer, and this’ll show you what’s happening on each of the threads on your CPU.  Nice bit of extra information.

The next thing I use for a tool is I have a lot of folders, and they’re spread across everywhere, and if I have multiple explorers open, my taskbar could just go absolutely nuts.

*Hey everyone, welcome to episode 2 of Bugsmashers, I haven’t been cancelled yet, which is good news…damn.*

*Disco Lando – You’re going to get cancelled if you can’t *laughter*

So, one thing that helps with that is Total Commander, which allows you to not only tab different directories, but to have multiple viewports, and you can copy and paste things as you will.

The next tool I have is, you maybe have seen it on old episodes, is the network emulator, which allows me to simulate dialup, DSL, all sorts of funky internet settings.  I can drop packets, I can lag packets, so when I have a dedicated server on another machine, I can connect to it like I’m on a crappy modem or whatever, test how robust our networking is, that’s a pretty fun tool.

The next one I have is Telemetry.  This one’s pretty cool; it’ll show me what’s happening in a frame.  Basically, these are a bunch of threads, so this is the main thread between frames 57 and 58, I can see what’s happening and what’s taking the most time to compute something.  So in this case, this is an ooooolder thing, it took quite a bit of time, 1300 milliseconds, but I may have been in fast debug, cause it’s an old profile.

The next tool I have here is something called very sleepy.  This tool is good if you want to see the deeper inner workings of what your program’s doing on each thread, so if you ever get a crash on physics thread when you’re in the main thread, you might see some garbage in Visual Studio, so you can launch very sleepy, take a look at the process, go to the physics thread, and see what’s happening.  it’s pretty nice.  You only want to use this on deep issues, because visual studio will give you more info on a crash than very sleepy, but visual studio can’t give you the information, very sleepy will give you some.

The next big tool I use is visual studio.  I use this to write the code and compile it.  Since we have a crapton of projects and solution files and millions of lines of code, I’ll get this one day, it takes a long long time to build.  It takes about 45 minutes to build, which is ridiculous, so we have this amazing thing called incredibuild, which will actually use all the computers in the room to build the game for me.  So, something that’d normally take 45 minutes, now takes 10.

Another fun tool is called recode.  When I’m actually live and in the game, I can change the source code like this, hit re-code, it’ll compile it, inject the new code, and then run the game, so I can make live edits.  I don’t have to close the game, compile, then go back in.  Saves a lot of time.

And then the final thing I have is productivity powertools.  This gives me the scrollbar here, I can view some texts, see some warnings and so on.  Even allows me to copy and paste into an email and it’ll format it and keep all the colours.

So, that’s some of the things, hope you guys enjoyed it, now on to the bug.

So I have a little simple bug here that was reported by brandon evans, our hud guy.  He was working on our little power display where, if you actually remove all your power, basically shut the powerplant off, and I were to fly, basically my thrusters would lose power, but they would still be able to function.  The pipe system reported they were doing okay, so they’d keep going, which was a huge problem.

If I go into a fun little pipe debug, and we show my vehicle bob, and only my vehicle bob, remove this, so it’s kinda blurry on your screen, or  maybe it’s okay, but you’ll see in the upper portion, here’s my mouse, basically if you look at just these areas, you’ll see them changing colours, each of these green things.

*I take it you’re going to do a lot of edits.*

*DL – I always do*

Is basically a thruster, and the orange and red underneath it is the pools, and they’re slowly draining.  and underneath these pools is another set of text, which is the pipe state, which indicates that they’re good.  So, once the pool has gone, and basically has no power, the pipe is still reporting good, so as you can see I’m still able to fly around and maneuver.  Not as good as you’d imagine, but still, it’s…not good.  So, I was like, this is strange, what’s happening?  Pipe system seems to be functioning, lets go into the script.

I went into the script and saw this little shenanigans right here.  And, what this is is the pipe definitions, and inside we have our pool and our states.  Our states is basically if I’m flying or default state, some state is saying, I need to request bla…

We are really recording this time, I think.

In this case, the state default, which means any default state, it will always draw zero.  So, if i’m requesting 0, and I get 0, technically I’m in a good state, cause I got back what I asked for.  Which logically makes sense.  But if you have a pipe, and you want to request power, can’t really request 0.

So I went over to the designer, said what’re you guys doing, and apparently this was some bug in how the scripts get generated.  It’s going to get fixed, but in the meantime, I set both of the thrusters to accept at least one little bit of power.  Reload my items, pop into the game again, as you can see,

If we choose a green one, lets choose this, this is a flex thruster.  Its state is okay, because it has pool, but its normal abilities to pull stuff has failed, so it’s trying to pull from the pool.  So we’re currently okay, cause the pool has power, but once the pool’s gone everything should go red, indicating that we can’t get anything from the powerplant or anything from the pool, therefore I shouldn’t be able to get out of my crazy spin.

So I set these guys to -10, so they’ll take 10 power, lets hop into my Hornet, let’s take the power away, goodbye power.  Power’s gone, look at our pipes, they’re draining, and everything is now dead.  Or at least the thrusters.

One of my thrusters still has power, my main engine, a, but I’m not able to turn.  I can’t get out of my turn.  You take off power to your thrusters, you’re going to keep going, cause there’s nothing there to stop you.  And a Newtonian physics everyone.

Awww snap.

 

Nehkara

Founder

Writer and inhabitant of the Star Citizen subreddit.