|A Day in the Life
||[Mar. 7th, 2008|03:43 am]
Spectre Gruedorf Challenge Blog
Apparently, trash talk is required of the Gruedorf competition. Ergo: while the rest of the victims have been doing things like drawing little pictures and lovingly implementing small status displays in arcane scripting languages, I have been doing Real Programming.|
So apparently I've been scoring on the lame-o-meter for not including more screenshots. Unfortunately, not all progress is inherently visual. Most of the work I've done this week has been bug-hunting, which is all fine and dandy; the next round of work I do is going to break things quite happily. In addition, I've also been spending horrible amounts of time trying to make McGrue happy with the state of the 3D editor and Ruby toolchain. The Ruby battles have been particularily interesting; generally, I seem to spend most of my time alternating between thinking, "Gosh! That's brilliant!" and thinking, "Well, gee, that sucks and is undocumented."
Some particular highlights of the bug-fixing and shutting-up-Grue:
- You can now change what terrain you're using, and it will work properly.
- The OBJToUpm converter tool, which I desperately need to get rid of, is now working again.
- You can now resize the game window. Well, as long as you aren't using shaders, an unpleasant discovery that I just made and now need to fix. Seems I got the texture management working okay, though.
- Ruby callbacks work properly. Joy.
- Various crashing behaviours involving said Ruby callbacks have been removed.
- SLED now has a glorious new cylinder primitive! Now you too can draw cylinders.
- More terrain functions from Perseus's terrain exposed to Ruby. I need to go and make all this stuff work with the real terrain that everybody other than Ben will use before I go mad. (I also need to do something about my hard edges. Time to look at that damn e-mail from Sean.)
- Windows dialogs like to change the working directory. We now change it right back after it's done.
I also spent some time writing proper versions of the shaders for directional and point lights. After talking about this with nothings I think the plan is still going to be to try and make a unified lighting pipeline work. Next job: getting shaders to combine together properly, then to do a decent set of light calculations and hopefully start getting proper lighting buzzing around. Oddly enough, this doesn't affect any of the people who I know are actually planning on using Spectre for anything; Perseus's lighting is a one-directional-lightsource hackjob (which will still use bits from this) and Zeta is probably going to use some cartoon shader of some sort. This is good, though! Forces me to be honest and implement overrideable materials and orthogonality of components. (I imagine, for instance, that the shadow portion of the engine will be used by both titles.)
Here, in lieu of anything useful, is a picture of our glorious new cylinder primitive. You can set the number of sides and everything. The new wall is by Daniel who is loyally suffering through this process with me, and who will actually, some day, make a pretty demo with this engine.
No build this week. Magic 8-ball says "ask later" - mainly, when I'm not so paranoid.
What else does the editor need in terms of brush construction? I'm mainly thinking wedges and various forms of volumetric extrusions (convex extrusion along a straight line, convex extrusion along a curved path, tessellated thingy, etc.), but am I missing anything else?