Archive for November, 2009
After many setbacks and a stomach virus, the new version is done. I had planned to release 0.2a a week ago, but discovered some nasty crash bugs and AI issues that I wanted to fix before making a proper release. There have been many other updates and feature additions; see the “Battle for Polaris Roadmap” post for details.
Battle for Polaris is my biggest C++ project. It is a hybrid of the 3D space combat and real-time strategy genres, with all the code, including AI, Physics, Gameplay and GUI layouts, designed and written by myself. For 3D graphics OGRE was used, and for the interface CEGUI was used. Models are mostly freely-available stuff adapted and some modified for use with OGRE in Blender. Although it formed the basis for my MSc dissertation, work on it is ongoing.
Currently the game has been written and set-up to run with DirectX 9 in Windows. A working OpenGL (and following, the Linux version) will be forthcoming.
This version is 0.21 Beta, as I’m only mostly sure I’ve ironed out all of the major crash bugs and other issues.
Click for full-sized versions.
Battle for Polaris 0.21b Demo Gameplay Video (2:27, 640×480 WMV, 34.2 Megabytes)
Battle for Polaris 0.21b Demo Gameplay Video (lowres) (2:27, 320×240 WMV, 19.4 Megabytes)
Music is “ROT13 (SHA2 Remix)” by Partition 36, available here under a Creative Commons licence.
NOTE: If these links are 404′d and it’s still November, I may still be uploading the new versions.
Battle for Polaris 0.21b for Windows (.ZIP, 20.1 Megabytes) – Initial release with binaries.
Battle for Polaris 0.21b for Windows Development Version (.ZIP, 48.7 Megabytes) – Includes data, source code, CodeBlocks project files, and DLLs for both Release and Debug versions.
Battle for Polaris 0.21b Source (.ZIP, 359 Kilobytes) – Contains only the source code and config files.
A Linux version should also be available not too long after I set it up on my laptop (I actually mean it this time!)
This post contains the “roadmap” of future features to implement for upcoming versions, as of the release of 0.1 Alpha.
0.2 – Gameplay & Code
- Major code tidy-up, commenting, namespaces, et cetera.
- New, cleaner group purchase/deployment system
- Gameplay balancing of ship/weapon types and the example scenarios.
- Mission system and tutorials / instant action mode.
- New ship types: probe and drone.
- Homing missiles; weapon group system.
- Click-selection of ship groups.
- Quitting to menu, with confirmation dialogue.
- Minor AI improvements (tweaks & stances affect whether move orders are ignored)
0.3 – Visuals & Content
- Better-looking ship models – more variety.
- Better-looking particle effects.
- Better collision detection (use of hirerarchical bounding volumes for ships, stations, etc)
- New ship types and weapon types; redesign of maps; gameplay balancing.
- Sphere with ripple effect (shader) for ship shields on projectile impact.
- Rotating planets and bodies.
- A smaller version of the interface font.
0.4 – AI (Intermediate)
- Some further code tidy-up and restructuring, particularly for the entity/body systems
- Tweaks and improvements of the ship and group AI.
- Type-specific collision avoidance – e.g. minor projectiles only dodged in Evasive/Passive stances.
- Use above system also for friendly fire avoidance.
- AI can select weapon groups.
- Tweaks and improvements to target selection.
- Tweaks and improvements of the strategic AI
- Better action evaluation for purchasing – e.g. last-ditch purchasing, saving up
- Add small random elements into pre-set AI
- Improve, tweak and verify the abstract state.
- Many minor improvements
0.5 Onwards (TBC)
- 3D sound and background music
- Dynamic group creation and arbitrary move orders via the mouse
- More maps and scenarios; dynamic map layout & label positioning (instead of using config values)
- Map editor mode
- Automatic map generator
- Story mode (full-featured mission system; communications/conversation system; docking; saving)
- Predictive and adaptive strategic AI, achieved by finishing, testing and tweaking the Logic Engine
- Networked multiplayer mode