Sunday, May 23, 2010


I’ll buy that for a dollar

Howdy. No, no new scenes for this week. The room I'm doing now is somewhat more advanced and requires several new objects and techniques to be made. Oh well, at least that pushes me to fill the database of available entities. Just like in The Sims, I'll need lots of garbage to decorate the corridors and rooms with. Closets, chairs, beds, ovens, frying pans, or whatever they freakin' need in a flat. Electronic stuff like lamps, computers and televisions. And also smaller details such as light switches, clocks, flowers and paintings. Once made, I can throw them wherever I like. Pretty common for games, but still that database needs to get filled somehow. That means get your hands dirty and start modeling.

Since I'm not a modeler, you can imagine I don't have a complete Sims Vacation Expansion pack of objects available to play with. But once in a while, I'll add an object. These are modeled in LightWave, and for the textures I'm using Paint Shop Pro, a big list of material images to draw with, and some tools to generate normalMaps. Usually the engine gives quite good results, even when the texture and model come from amateur hands.

However, this scene has a little bit more advanced objects. A working television and a big rotating(wow!) fan to start with. By default objects are lifeless, boring pieces of wood/metal or whatever they were made from. But some may require interaction, scripts, damage models, sub-objects or graphical tricks. Take that TV for example. We have the model of the TV itself, but it should also cast (slightly flickering) light into the scene, and more important, display something. Ultimately, I would like to play AVI movies on them. But for a start, the screen is a separate sprite that shows an emissive texture with some noise. If you would shoot or switch off the TV, that sprite is simply hided. Or I could paste another (animated) texture on it when zapping to another channel.

Remember that on your TV? Just noticed that the screen texture is tilted 90 degrees though. That TV needs to go back to the factory I guess.

A spotlight with a square beam texture is placed as a sub-entity inside the TV by default to cast some light

Objects like these are always a puzzle. How to make them do whatever they should do, with the available techniques from the engine? Luckily each object can has its own list of specific properties and script events. Don't want to hard-code each and every possible behavior into the engine, so the Python script will take care instead. Whether it is AI or switching a TV to captain Kangaroo. But scripts can't do everything either. Rendering, heavy algorithms or movement are still part of the engine. Can't let a script let that fan rotate each frame. Too slow, and an ugly way to do it anyway, That means the engine should provide enough “API calls” that can be used in a flexible manner. In this particular case I would need an engine function to make that fan rotate. Or operate a TV.

Sorry for the dark pictures last weeks. Can't help it that they didn't put lights here. That pillar looks pretty good for an ugly pillar by the way. Thanks to detail-normalMaps for close-up details.

Not very difficult all in all, but pasting missing features into the engine must be done with care. But once it fits, it gets easier and easier to create new scenery or objects. And more new stuff has yet to come these weeks. How about curtains? Well that’s a challenge for next week. Got to hit the barbeque and beers now.

No comments:

Post a Comment