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
My original plans for tactical space combat in Predestination involved making a good attempt at turn-based 3D combat, which is something no game has done well yet. I had intended to make line-of-sight mechanics and area effects a big part of the gameplay, but every combat would have quickly become a chaotic mess. Our main goal with Predestination is to bring proper turn-based strategy back to 4X games, so after discussing the idea with the rest of the team we decided to use a classic 2D combat plane on which tactical decisions are much more obvious.
I started prototyping the combat system last week with a chess board and some coloured squares, but I quickly ended up with pages of complicated rules and movement/attack tables. The Art Director suggested a hexagonal grid and we quickly hashed out a very simple, intuitive system using that grid that we’re all very happy with. We prototyped the system using a big hexagonal gaming mat and paper cutouts and ironed out all of the flaws we could see. The end result is a tactical combat system I’m really excited about: Read More
One of the things I’m particularly fond of in 4X games is custom ship design, both for cosmetic and gameplay reasons. There’s something special about designing your own ship setup and then testing it out in battle, and I really want to capture that magic in Predestination.
To achieve that, I’m developing a 3D lego style ship designer in which you slot together pre-made blocks to create your own ship designs. Most of the blocks will be purely cosmetic, but some will affect gameplay. You’ll add modules like shield generators, thrusters, weapons, armour plates etc to design your own custom loadout. You’ll also be able to research special mount blocks that give certain module types bonuses or modify their operation in some way, like long range or point defense mounts for weapons. A mock-up of the system is below: Read More
I haven’t really talked about energy generation, energy storage, and what you’ll be able to do with energy yet, so in this post I’ll throw my current plans out there. Every building requires energy to operate, and if there isn’t enough energy some buildings will switch off until power is restored. There are several types of power plant available:
- Solar: Basic renewable power source. Twice as effective on Desert and Barren planets. Doesn’t work on Toxic planets.
- Geothermal: Basic renewable power source. Twice as effective on Molten planets. Doesn’t work on Tundra or Ocean planets.
- Fossil fuel: Consumes fossil fuels, but outputs more energy than solar or geothermal plants.
- Nuclear: Consumes uranium, and outputs more energy than a fossil fuel plant.
There’s limited space for buildings in a colony, so you’ll want to waste as few as possible on energy generation. Fossil fuel and nuclear plants will save you a lot of space, but will consume resources. You’ll be able to research technologies to improve power plants, and because we’re using a tree system for research, many of them will be mutually exclusive. You might have to choose between improving solar or geothermal power plants, or choose between renewable sources and fossil fuels. Read More
I got to work on the planet exploration a bit more this week, and added in a lot of the planet exploration features I described last week. You can now queue up as many scout missions as you want and they will be executed in sequence. When a mission starts, it takes an energy cost from the planet’s reserves, and if that energy isn’t available the mission will wait until you have enough energy before starting. You can now delete scout missions, and they are now sent from the nearest settlement you own for reduced travel time. Below is a video showing some of the new mechanics: 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’ve been working on a prototype of the planetary exploration feature discussed on the Colonisation page. The plan was to split each planet up into a grid, and then have the player survey squares to find out what’s there. Exploration only needs to be done once for every planet, and it’s the only way to find resources or increase a planet’s maximum population. The idea is that every time you colonise a new world you’ll explore it and decide how to capitalise on what you’ve found. You might find the planet has a lot of ore deposits, for example, and build extra factories to take advantage of it. Or you might find ancient ruins to build research outposts on, or a uranium deposit that would let you put up a nuclear power plant.
As you progress in the game, you’ll get technologies that make scanning a planet faster and easier, like scanning tech that can spend reserve energy to scan a square, several squares, or a full screen instantly. Ultimately, you’d get the tech to automatically scan all planets from orbit so that when you’re in the late game war stages you don’t have to deal with the micromanagement of exploring new planets. Below is a video of the current gameplay prototype of this exploration system (using massive placeholder models for ore deposits etc). Watch in 1080p fullscreen if possible: Read More
Every 4X game has a way to notify the player when something happens that requires his attention. Games will typically have a turn summary page reporting anything important, but I want a more direct visual notification that isn’t just a text list. The idea I’ve been prototyping this week is a taskbar that runs along the bottom of the screen and alerts the user to tasks that require their attention. If a planet has a building that needs to be placed or a problem that needs to be fixed, or if a discovery is made or a scout finishes surveying a planet etc, a small icon relating to the event will drop down into the task bar. When clicked, a window would open explaining the notification and with a shortcut button to go directly to the screen/window that will let you deal with whatever the notification is for. Either that or clicking the icon might bring you straight to the source of the notification.
For example, you could start building a colony ship and check a box that says you want to be notified when it’s complete. When it’s built, a little ship icon would drop down and land in the task bar. On clicking the icon, a small ship/fleet window would open and you could immediately give the ship orders. Similarly, if a survey mission on a planet completes, a notification could immediately appear in the taskbar and open the planet or solar system when clicked.
I got some great feedback on what type of system window to use, and have decided that a small self-contained window is the best option. This week I developed a modular window system that keeps track of all the windows that are open and has options to resize, close and minimise to the taskbar. The game now supports having multiple system windows open, which might be handy if you need to keep track of or compare multiple systems. The video below demonstrates both the modular window and taskbar system: Read More
I’ve tried out two different schemes for the system view: A small separate system window with evenly spaced planets like in MOO2, and a fullscreen version with more realistic full solar systems. I promise that I would put up a video of both to collect feedback, so below is a video with examples of each: 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