Castles was developed as part of the Simulation course in the final year of my degree. It aims to be a simple turn-based game between upto 4 players, where each player is responsible for defending a castle. Along with defending their castle, each player must attempt to destroy the others using a cannon.

Use of physics is applied in knocking down the castles, and simulating the projectile motion of the cannon-balls. As the game stands currently, there are two types of cannon-ball that can be used by a player - a normal (free) cannon-ball and a (more costly) grenade cannon-ball that explodes after a short interval, knocking nearby objects over.

Technologically speaking the features include:

  • Two physics integrators - RK4 and Euler.
  • Impulse based collision solver.
  • Implemented entirely in C++, with use of boost and the STL.
  • Graphics are driven by Direct3D, with FX files for providing flexible shading that (could) scale up with GPU capability.
  • Collision detection between spheres, boxes and planes.

Known Issues

This release of castles was developed in a short timeframe, and as such is a little ...buggy. Specifically, the collision detection can be spongy at times, to the point of objects getting stuck inside each other. The collision response is also a little overdramatic at times (it's possible to make the middle tower do somersaults with the right application of a grenade).

I'm currently in the process of rewriting the collision handling to have a more ...well... sane implementation :).

Try It!

Download Castles


A screenshot from castles.