|Long, Rambling Update
||[Apr. 4th, 2008|03:54 am]
Spectre Gruedorf Challenge Blog
Today's accomplishments: every single normal in the game engine, from Spectre's bricks through to its brushes, now all face in the same direction. I first noticed that something was wrong when I realized that all the specular highlights on Darin were showing up... in the area that was supposed to be in shadow.|
Then I fixed that, and discovered that now the floor wasn't lighting correctly.
Anyhow, got all that sorted out. In the process, I added code to do proper welding of SLED brushes so that vertices with similar texture coordinates don't cause me any more trouble than is absolutely necessary; this turned into some very exciting adventures with boost::hash and its ilk because I didn't actully want to construct a hash function by hand, thanks all the same. This is in preparation for moving the lighting into (optionally, anyhow) the Horrible Realm of Bump Mapping; I need to get all my normals sorted out and various other issues dealt with before I start calculating the tangent space transform stuff. I also made the shadow renderer not entirely look horrible.
This, however, is not the exciting news. The exciting news is that the physics system now actually reads data out of SLED. For some reason unknown to me, Darin is not ... ah, easily controlled by ODE. I think the model is just too big, and I have to set up properties like mass, inertia tensors, and other poop before he'll stop falling over randomly and falling through walls.
A smaller character, however, works fine:
Yes, you can now drag Zaratustra's Angry, Little Blue Pygmy-Thing through a world of your own creation. I spent an extra hour and got rid of some of the slipping behaviours that were in the first character controller - we now do various torturous things to the character's linear and angular velocity if he's in the air, or if the player isn't moving him. I haven't actually written a character physics controller since MathEngine was still in business, so it's been awhile. Right now it doesn't handle the edge case very well when Zeu- er, Zeta - is about to fall off of something. But we're getting there. (The actual design document for Zeux 3D doesn't actually call for him to have a full-on Super Mario 64 controller; rather, the character is... well, I won't spoil the surprises.) I also need to put in enough Ruby scripting so that I can hack in a few monsters, and make sure that I'm not going to get any really unpleasant surprises if two moving bodies collide. Things cannonballing off into the distance are BAD.
The shadows are disabled in this screenshot because they're living in another source tree right now and I don't want to re-enable them in this one. I'm sorry, but your Princess is in another castle.
There will be massive plugging for Breadbrothers' new Exciting Zeta Game, Zeta's World, as soon as the sodding website is finished.
Additional Spectre Business: in order for me not to die, the Spectre early adopter program will be launching shortly (read: as soon as the website is finished) Basically, pony up now and you get the source code, free technical support until we're out of Early Adoption from yours truly, and you get to vote on what I do next. How's THAT for Agile development? So if you're seriously thinking that it would be a cool idea to muck around with some 3D development stuff, let me know that you're interested and I will begin advancing those plans. I'm thinking $100 versus some sort of a (very small) % royalty, which was the original price for the Torque Game Engine when GarageGames, mine hated foe, first started releasing. That will probably last until the time when Zeta 3D actually ships, at which point the engine should be stable enough that we can actually charge more money for it (probably about $400.00 vs. a 5% royalty) These are the indie licensing terms, of course; naturally, anybody who has an actual funding source will be expected to pay for the commercial license, and anybody who actually has a publishing deal to get boxes on shelves somewhere will be expected to be raped considerably by our Mighty Horse Cocks.
Additional, Additional Other Spectre Business: You are all cordially invited to vote on what I do next. Take your pick:
1. Variance shadow maps. Make the shadows smooth like your legs.
2. More lighting: finish breaking the lighting pipeline into various dynamically generated shaders, move the materials to its own thing, do bump mapping, and maybe start in on directional lightmapping. (Yes, I have decided that I have to bite that bullet.)
3. More SLED! Because we can never have too much of a level editor.
4. Particle Systems! Because they're pretty.
5. Terrain! Because it is also pretty.
Vote now, or forever hold your piece!