Outpost Defense!
Creator: Chase Ong
- This is a tower defense style simulation/game. Build and upgrade defensive weapon systems to fight off approaching aliens.
- Use the mouse to select towers, g/h/m keys to build weapon systems, and 1/2/3 to upgrade them.
- Additional commands and hints are included in the application.
- Resources and References:
- All models were created from scratch using blender - Terrain, Cursor, Tower, Bunker, Alien (ground), Alien (air), Gatling gun and Burst effect, Howitzer and Projectile, Missile Launcher and Missile, Flare.
- Textures were obtained from Mayang's Free Texture Library (http://www.mayang.com/textures/) and Templates.com (http://www.templates.com/blog/35-free-leather-textures-your-design-inspiration/). GIMP, ShaderMapCL, and Paint were used for editting.
- Sound effects were obtained from SoundBible.com and Sounddogs.com. Audacity was used for editting.
- Project was made in several stages, corresponding to the key components:
- Construction of basic layout - terrain, single turret, single alien.
- Creating multiple aliens with animation/morphing and random waypoint movement.
- Setup of multiple towers with user interface for constructing weapons and side panel info display.
- Gatling gun object - construction of algorithm to find nearest target was slight challenge, but getting weapon to point at target and fire was relatively easier.
- Howitzer object - some challenge in implementing calculations to work out required gun azimuth/elevation for any particular target, and physics based (equations of motion) to create ballistics effect. Explosion effect (particle system) was initially hard to achieve. Blast effect utilized normal distribution function to calculate damage based on proximity to impact point.
- Missile object - easier to implement homing effect (just a lookTowards). Some challenge in fine-tuning particle system for exhaust plume, modification of original SpriteParticleSystem was used to fix initial inability of particles to NOT move with emitter.
- Construction of other minor effects (e.g. flare, fog, camera zoom function), user interface/display, opening screen, ending screen etc.
- Some known bugs/technical issues:
- Gatling does not start facing forward if there is a target in its range when it is built (for some reason the initial looktowards function does not run).
- Missiles occassionally launch from incorrect initial position (initial mesh.translateZ call somehow goes in the wrong direction - global instead of local z).
- Occassionally, explosion sounds do not play after many projectiles/missiles have been used (possible audio channels issue?)
- Air aliens sometimes fly into ground (angle is too sharp to turn in time)
- Side info panel does not update when weapon purchase becomes available due to funds increase.
- At high gamespeeds (x4, x8), particle systems do clean up properly, resulting in expired particle textures being left in the scene (due to insufficient number of psUpdate cycles for them to fade off before the particle system gets deactivated)
- At high gamespeeds, weapon systems may perform poorly (due to large timestep, aliens advance too rapidly and in 'jumps', coupled with inaccurate update of projectile/missile positions and weapon aimpoints)
- After some time, program slows significantly due to large number of enemies and/or projectiles that need to be updated in each frame.
- Additional functionalities that could not be implemented: change of alien animation, e.g. to death sequence, attacking animation.