Siege of Troy
Imagine Warcraft III in full 3D. The setting: the ancient city of Troy.
The Greeks attack the city; the Trojans defend it. You, yourself, are the hero.
You command vast armies of various types of units--archers, swordsmen,
catapults, battering rams, dragons, goblins, etc. The gods grant you new spells, and you use them to crush your enemies.
It's a first-person and a third-person RPG at the same time.
You can download Siege of Troy for x86 Linux (6.7 MB, no music).
Here is the MacOS X version of Siege of Troy (5.6 MB, no music).
The Linux version has OpenAL compiled into it. The MacOS X version requires you to install OpenAL before running it (see http://www.openal.org/). Also, the MacOS X and Linux versions do not network together (although you can play MacOS X vs. MacOS X, or Linux vs. Linux). This may be resolved at some point in the future if anyone cares (which I doubt).
- Damage / Collision detection:
The ability to damage (and be damaged by) all units in the game, including other participants. Damage detection breaks down into two categories: projectiles and close-range units. Projectiles are a polymorphic framework that allows the generalization of arrows and catapult balls.
Units and players are prevented from going through walls and floors, so for example you can walk around on top of the walls of Troy, or stand on top of a temple, as well as going inside.
- On-screen control panel:
A beautiful menu, with animated objects and buttons, appears when you first start the program. There's a chat box for communication with other players, and a team selection menu that slides into view when needed. During gameplay, pressing 'shift' brings up a control strip at the bottom of the screen with buttons to perform various tasks you may need.
While you are in 3rd-person mode (i.e. when you've pushed shift), you can perform selection of units, which in turn lets you tell your armies what to do.
- Networked multi-player capability:
Any number of attackers and defenders can face each other in a team-based struggle to the death. All dynamic game elements are networked and synchronized. The game uses UDP/IP Multicast to achieve efficient bandwidth usage (8-40k per player per second). The latency is of course too high to play over the internet.
- Game level editor:
A tool available only in game-master mode allows you to raise, lower, or smooth terrain, and to plant trees.
- Artificial Intelligence:
The archers shoot you (they account for the parabolic trajectories that their arrows describe). The catapults position themselves at the appropriate distance to hit their designated target area. The battering rams can batter down Troy's gates and let the hordes of attackers into the city. Beware!
There is sound when certain things happen, and music plays throughout the game.
- Particle System:
We use a particle system for fire. We also made one for a spell that was cut, because we didn't have time to implement the spell's actual behavior.
- Frustrum Culling:
This made our game faster. We're now fill-rate limited, so running at a lower resultion produces a large increase in speed. This is done for terrain, units, and buildings.
Procedurally-generated lightning. This took a lot of time and research to get right. For added effect, the clouds gather around the lightning location and the game switches to night mode before the lightning occurs.
All content copyright 2002 Dmitry Belogolovsky, Woodley Packard