Machinations

Available Jobs

Last updated 11/14/03

Several people have offered to contribute, so I'm starting a list of small self-contained tasks. Anyone is welcome to volunteer. If you're interested, please send me an e-mail.

Job 1

The explosions could be greatly enhanced with smoke and perhaps debris. A particle engine is ideal for simulating smoke. It would awesome if the smoke lasted for several seconds and gradually drifted across the map. The debris could be implemented in the same fashion as neutral terrain sprites since they're transparent to the engine.

Job 2

I'm currently using a 2-dimensional hash table to group the units according to their position on the map. The hash table works well, but I want to replace it with a more efficient data structure like a box decomposition tree. This site has a very nice library, but we'll need to tailor it to suit our needs. For example, I often want to find the nearest damaged friendly unit, or the nearest enemy unit within a certain angular range.

Job 3

The missile system needs some extensive revisions. I'm currently using a single missile class for all particles including cannon balls and missiles. Originally, I thought that particles (for lack of a better word) should always hit their target (and only their target). This approach simplified things considerably since I didn't have to worry about collision detection, synchronization, and other fun issues. Now, as the game becomes more and more 3D, the existing missile system (containing 300 lines of code, no less) is no longer adequate. The hardest part of this job will be collision detection, both for unit and terrain. You'll also need to decide if particles can damage friendly units (if so, you'll need to devise a method to prevent artillery units from slaughtering your own army =) ).

Job 4

Steering behavior. I have already implemented some of Craig Reynolds' steering behavior (e.g. seeking, persuit, and avoidance), and it works great. I would like to add some new behaviors so that units can find their way around obstacles and don't bump into each other.

Job 5

Pathfinding. This one is still on the drawing board. If you've had experience implementing pathfinding behavior for an RTS game, I would enjoy talking to you. I'm still searching for the so-called, "perfect solution". I have two working solutions--classic A* and a point-to-point variation of A*. Nonetheless, I'm not entirely satisfied with either.

Sourceforge Valid CSS!
Maintained by Jon Sargeant and Tom Pittlik