We’ve neglected to post updates on this blog recently, which has been mostly of my doing. My day job, my family and other projects have taken up the majority of my time.
We have, however, continued our development of Necropolis. Last time we posted a blog on this project, we had prototyped city block generation, began our path finding work, had an early version of Field of View working.
Our major achievements since that point are:
- Improved FOV
- Implemented a point based movement/action system.
- Survivour searching mechanism.
- Zombie AI
- Zombie Spawning
- Building Generation (walls, objects, parking lots, etc)
- Added some texturing
- Basic crafting system (build barricades)
- Save/Load System
- Difficulty settings
- Dynamic Objects (Doors, light switches)
- GUI Improvements
- Path Finding
- Refined design.
- Zombie animation
- Some slight optimizations
With those features implemented, and by design, we are officially out of prototype stage and in to full on implementation! YAY!
I’ve decided to release the path finding as a T2D resource. I’ll need to clean a few things up first.
We really have come a long way. Here is a screenshot!
Speaking of T2D resources, we have decided now was a good time to take a serious look at performance.
TorqueScript is a fantastic, general resource, but sometimes you need to get a bit more specific. Like the path-finding module, I’m taking a crack at porting our shadow/lighting/vision module into C++ for performance reasons.
I’m aware I get pretty detailed in these posts, so I’ll try and be a bit more general. Basically, we simulate shadows using transparency and composite sprites. This means that, in that image you are looking at, there are 19×14 sprites in a composite sprite, with varying alpha levels, on top of another composite sprite. This is fine in small scales, but when you think about a 200×200 map, and wanting to run a day/night cycle, it rapidly becomes unmanageable.
So I’m working on turning the shadow composite sprite into a single sprite, with the alpha layers calculated, on a pixel by pixel basis, on the fly, in engine. Early results seem promising, and could open the door to much more dynamic, flexible lighting, and much faster as well. Its slow, tedious work, but I think it will be well worth it. You should see the results of it next post.
Until then, cheers!