delphic.me.uk

Stranded++

Stranded is the title of the game developed from the first edition of "Ultimate Game Programming with DirectX". The purpose of these project was to build a reusable game engine for future projects, engine features were given implementation independant wrapper or management classes so that they can be switched out at a later date and games built on top of it stay unaffected. Additionally complete separation of game specific code and engine code was a priority, so that the engine project can be included in multiple projects.

The engine features:

  • 3D Renderer
  • Material and Lighting
  • Simple texture based GUI and text display
  • Model loading and animation
  • Rudementary Collision Detection
  • Mathematics Library
  • Input detection
  • Basic FMOD sound system
  • Command and Property Scripting system
  • Logging system

The stranded game was improved to feature a mouse-look aiming system and a second level in addition to the necessary bug-fixes. The game itself is really just a test bed for the engine, and there was nothing I particularly wanted to achieve from a game design point of view here, although I did consider altering "Enemies killed" to "By-standers needlessly slaughered" as the 'agent' characters have no AI beyond 'spotting' you!

I have posted a guide to working through the UGP book and fixing the errors, implementing new system from depreciated items (i.e. DirectMusic) and other issues within the book's contained code, along with improvements to make the game more playable.

You should check that you have the latest version of DirectX before trying to run the game.

Stranded Game

Stranded Source

Screenshots click to expand

Main Menu Credits
Level 2 Level 1

This project has helped me learn to structure code into a more reusable and maintainable form, the importance of which has become clear from the work between this and my last project ZeroG. It has also highlighted the need to use templates for maintaining lists in future projects. I think the next steps to work on when using this engine is to introduce scene management techniques, some state management optimisation and implementing all its existing features in (as required) in the game.