Friday, January 16, 2009
Frayed Knights: Butt-In-Chair Work
When I was working on Jet Moto, 3D modeler Michael Makarczyk was commenting on how a certain change to the code was going to force him to go back and change how his models worked. When producer Danny Lunt asked if that was going to be difficult to do, Mike responded, "Nah, it won't be hard - it's just a lot of butt-in-chair work."
I've used that term a lot since then. It pretty much sums up about 80 - 90 percent of game development. It's not particularly exciting or sexy. It's tedious. It doesn't make great screenshots. But it has to get done.
Implementing new UI systems is like that, as I am right now in Frayed Knights. Fixing bugs in the new code is like that. I spend a lot of time stepping through code, checking variables in a watch list, and muttering "WTF?" to myself a lot.
Some bugs are easier to fix than others. Bugs where things are just happening wrong are easy. You trace back through the code, find out where the virtual wires are getting crossed, and fix them.
Bugs where memory gets corrupted are a real pain, as the bug often occurs long before you see something go wrong. The worst of these are the dreaded "Heisenbugs," which seem to never occur in exactly the same place or time, and the bug disappears in debug mode.
Not quite as bad, but also among the more annoying bugs to fix are the ones where nothing happens. Everything looks right. But events just are not firing for some reason.
It is especially tricky when you are working with a third-party codebase, and when you've got the layers of indirection between a scripting language and the actual code, as you have with Torquescript. Have I mentioned lately that I'm kinda disgusted by Torquescript? It's not BAD, but it sure can be frustrating on big projects. If something doesn't work, you have layers upon layers of possibilities to try and figure out which of many stages simply didn't do what they were supposed to. Was it the triggering condition? Some variable that's not been set that needs to be set before some process you don't know about will actually execute?
*Sigh*.
Well, back to getting my butt in the chair and getting work done. Later!
Labels: Frayed Knights, programming
Comments:
Links to this post:
<< Home
Glad to hear you're still making progress on this. Any plans to show it off at the next Utah Indies meeting?
"...Have I mentioned lately that I'm kinda disgusted by Torquescript? It's not BAD, but it sure can be frustrating on big projects..."
Unfortunately, that's the nature of most scripting languages; ya can't place all the blame on Torquescript... =)
BTW, are you using Torsion? When I tried the demo back in the day, it made stepping through the script code pretty straight forward...
Unfortunately, that's the nature of most scripting languages; ya can't place all the blame on Torquescript... =)
BTW, are you using Torsion? When I tried the demo back in the day, it made stepping through the script code pretty straight forward...
@Rubes - I'm probably gonna be late to the Utah Indie Meeting, as my daughter has an awards ceremony that same night. So nope, probably not, though I think I'm gonna set a goal for having something cool to show in April.
@Xenovore - Yep, using Torsion. It makes life & Torquescript bearable.
Post a Comment
@Xenovore - Yep, using Torsion. It makes life & Torquescript bearable.
Links to this post:
<< Home

