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 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
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’m working on a trailer this week, so I’ve been programattically composing scenes in my engine and will film them when they’re done. The scenes all run in realtime so I’ll also be able to keep them in the final game as an intro. I’ve had to clean up the back-end code and build some new tools for this, but I’ll be able to use the new tools for other things like space combat and cutscenes. Below is a quick sneak peek at part of one of the scenes, which uses a new planetary ring system I developed today. The ring is actually drawn to the background, so I could add a lot more detail without slowing the game down at all. I may add more types of rock and ice asteroid, and make the whole thing much bigger or the individual asteroids smaller. I just thought the ring was too cool not to share. Read More
I came up with a new terrain shading technique that combines some clever texture packing tricks with normal approximations in the pixel shader to produce some awesome results. The lighting on the terrain is now extremely highly detailed, and zooming down onto the terrain looks perfectly smooth. I can also feasibly add more lights for particular buildings or the cursor to make some awesome effects. Below are a few screenshots of the current work in progress: Read More
Most of this week’s work on my space 4X game has been in putting together a good system for placing items like 3D models of buildings on a planet’s surface. Part of the difficulty is in the fact that the planet graphics are generated entirely on the GPU, so the CPU doesn’t have access to that data. I came up with a fantastic system that works around that issue and gives access to not only height data but also details like what type of terrain is on a particular spot or whether it’s in an ocean.
So now I can place buildings on the surface of a planet, zoom out, rotate the planet and the building appears to stay put on the surface. When placing certain buildings like a water extractor, I can make it only placeable on water or make it fulfil any other criteria I want. I could make mining drills that you move around to find the best spot, or geothermal power stations that can only be placed on fault lines. There’s a lot of versatility in the system, so it’s been fun to work with this week. Read More
Predestination 4X game Galaxy Map: System window demonstration
Please watch fullscreen (1080p available). The video’s a bit darker and a lot blurrier than the actual game because YouTube is bloody awful at encoding videos, but you get a clear enough idea of the effect in fullscreen. Read More
A video of the 3D galaxy map for Predestination. Please watch it in 720p fullscreen, otherwise a lot of important small details like the lines between stars and the galactic plane are lost. Read More
Space 4X games are typically played on a 2D map, not because of any technical limitation but for gameplay reasons. 3D maps are difficult to visualise and strategise on, for example they make it more difficult to see the area of space owned by a particular enemy. Those games that do have a 3D map tend to mechanically simplify it with a “star lane” mechanic where ships can only travel along set paths between certain stars. For all intents and purposes, that isn’t a 3D map any more; it has eliminated any mechanics that actually use the third dimension. The alternative is to use a 2D map (like this one below), which is requires a bit more suspension of disbelief.
While I don’t want to diverge too heavily from the fundamental mechanics of the genre’s previously successful games, I do want to have a crack at bringing a third dimension to the map in a way that avoids these problems. If you’re interested in space 4X games, please leave a comment on this post about whether you’d want a 2D map or 3D, or answer the post with anything else you’d like to add. I’d really appreciate it! Read More