Features
- 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.
- Selection:
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!
- Sound:
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.
- Lightning:
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.