This week I’ve been working on the fleet combat system for Predestination. When all of the core mechanics are implemented, we’ll be releasing this as our first beta test to get some feedback and improve it. Fleet combat is an important part of a 4X game, and it will have to be iterated on extensively to make it as awesome as possible. Our goal is to create tactical turn-based combat system that’s more like a game of chess than an RTS. We’ve already tested the movement and combat mechanics with a pen-and-paper prototype, and this week I started putting it all in code.
It doesn’t look very pretty yet, but I want to show you what I’ve got so far. I’ve finished the hex grid system and ships can be placed on the grid and rotated to face any of the adjacent hexagons. All ships involved in the combat roll initiative and then take their turns in order. For moving ships, I developed an efficient recursive algorithm that determines the shortest route to a hexagon based on the three simple rules below:
- Moving into any of the three forward squares costs 1 move point
- Turning by 60 degrees costs 1 move point.
- Two ships cannot occupy the same square
The result produced the exact pattern that my prototype design predicted: Read More
There are lots of software development strategies, but the one that comes naturally to me is rough iterative development. The process starts with an idea for a feature, which is then used to produce a gameplay prototype. I try the prototype out to see how it feels, and show it to people to collect feedback. That feedback is used to refine the prototype into a second iteration, which is then tested and shown to people again to collect feedback. This cycle continues until eventually I’m happy with the feature. Usually I do all the testing myself and only show the prototypes to a few real life friends, but over the past few weeks I’ve been showing the prototypes to people via the blog. Even with just a few people commenting, it’s been really useful.
Last week I showed a gameplay prototype of the planet exploration system and got some great feedback. This week I’m back with the second iteration on that system: Read More
This week I’m working hard on putting together a Kickstarter campaign so I haven’t had much time to work on gameplay. But I wanted to show off an exciting development this week: Head-tracking.
Remember the video below from a few years back? In it, Johnny Lee showed off his awesome head tracking demo for games using a Wiimote connected to his PC. It turns a monitor or TV into a portal into a virtual room that visually reacts to movement exactly as viewing a real 3D box through a window would. Objects can even be seen to float out in front of the screen, providing a real 3D experience without the need for an expensive 3D monitor. In fact, all you need to pull this off is a Wiimote and a cheap pair of safety glasses with infra red LEDs in them. Read More
An example of the playable galaxy map screen when it’s generated in 2D. It would also be possible to generate the map in 3D and then flatten it to 2D, this shouldn’t cause overlapping stars but might make the distances between stars unintuitive. Read More
One of the challenges in developing a space 4X game is that the game has to be played on the colony, solar system and galaxy levels. Master of Orion II had separate galaxy map and colony management screens, and the solar system view was a small window that opened inside the galaxy screen. This was handy because sometimes you’d exit out from a planet and want to fast-forward a few turns before returning to that planet. I like this functionality, and want to preserve it in Predestination.
This means I need separate galaxy and colony views, which I can already do with my GalaxyScreen and PlanetScreen. These are distinct screens that can be switched between instantly, but I need to build a visually smooth transition between them. On selecting a planet, I’d like the game to zoom in on the planet before switching to the PlanetScreen so that the two screens look identical and you don’t notice the transition. I also need a solar system window that can be brought up in GalaxyScreen. Read More