In the previous dev update, we delved into the details of a massive technology tree revamp that was in the works for Predestination, including dozens of new ship modules and weapons and the Improvements/Synergies tech tree. We fully tested and deployed the tech tree update last month, and we released five follow-up patches thoughout the month of May to correct new bugs and crashes caused by the update. I’d like to give a huge thanks to everyone sending in bug reports on the Steam Early Access forum and those of you submitting crash reports, it really helped us get on top of this.
This month we’ve been working hard on some really exciting features! We’ve developed the key storyline event that causes the Revenant Homeworld to decloak at a certain point during the game, tempting players to plunder it for technology at the risk of waking up the Revenants. If the Revenants awake, they periodically launch fleets out to annihilate populated worlds. We’ve completed the Galactic Domination, Scientific Victory and Destroy Revenants victory conditions, and have made several big improvements to be released in V0.9.3.0.
Those who like to play a diplomatic game will be excited to hear that we’re going to add a UN-style Galactic Council that meets to vote on important issues and that this will tie into a deep Diplomatic victory condition. And everyone will be happy to know that V0.9.3.0 will add some major optimisations on the game. We’ve managed to reduce RAM usage by over 35%, cut map generation and planet generation times by up to 50%, eliminate over 60% of the startup initialisation time, and reduced End Turn delays by up to 90%!
Read on for a full detailed breakdown of everything that we’re currently working on and everything that’s coming in V0.9.3.0 (estimated release in about 1 week).
The story of Predestination starts when the United Colonies discover the cloaked Revenant homeworld filled with advanced technology, and when plundering that technology they unwittingly awake the Revenants and unleash them on the galaxy. During the final battle with the Revenants, ships from dozens of different races are flung back in time and scattered over an area of hundreds of lightyears. Many crashland on planets throughout the galaxy, and a few survive to form new civilisations, but the Revenant homeworld is still out there somewhere and it’s still cloaked.
Once anyone in the game reaches a certain level of technology, the Revenant homeworld will decloak and appear in a system roughly in the middle of the map. The planet is barren and covered in metal and circuitry, with several ancient ruins and clusters of crashed ships on the surface making it a tempting target for colonisation. When you fully excavate a crashed ship on the Revenant homeworld, you have a chance of finding powerful Revenant ship technologies like the Particle Beam, Damper Field, and Norn Iron armour, some of which you can’t even research normally.
Colonising the Revenant homeworld is a risky move, however, as every time you excavate a ruin and every turn that passes with a colony on the surface there’s a chance of waking the Revenants. The planet will be taken over and a Revenant fleet launched into orbit to defend it, and every 10-20 turns a new Revenant fleet will launch from the surface toward a populated planet. In the next version we have enabled a switch to turn Revenant attacks on or off from the New Game screen, which will enable/disable both the Revenant homeworld decloak event and Revenant fleets coming out of temporal rifts.
While developing the Diplomatic victory condition, we brainstormed on the idea of adding a UN-style Galactic Council. We’ve previously said that we wanted to do this but also that it might have to wait for an expansion, but recent work on the diplomacy screen makes it a lot more feasible so this feature may take less time than we thought to implement. The Galactic Council will be unlocked in each game once any player researches the Galactic Council technology, and the first race to research it will automatically become the Council leader. Anyone else can opt to join the council at any time once it’s discovered.
The council’s job is to vote on whether to pass various resolutions tabled by its members, so when you’re in the council you can select any resolution from a list and table it for the next vote. Only one resolution can be tabled at a time and once it’s tabled it’ll be 10 turns before the council meets to vote on the decision. Each resolution is a simple yes/no question that passes by majority vote (with the Council Leader getting the deciding vote in the event of a tie), and while one is tabled you can contact the other races in private diplomatic talks to convince them to vote yes or no. Every council member gains 1 council point per turn and each resolution costs a certain number of council points to table. Council members also pay 10% of their empire’s income each turn (as long as it’s positive) into a council fund bank. Some example resolutions include:
- Request for Aid (10%, 25%, or 50% of the bank funds)
- Economic Stimulus Package (50%, 100% bank funds divided evenly among all council members)
- Increase / Reduce council tax rate by 5%
- Share Knowledge (+5%, +10%, +15% empire-wide Research bonus for all council members)
- Seed Bank Initiative (+10%, +20%, +30% empire-wide Food/turn bonus for all council members)
- Metallurgy Conference (+10%, +20%, +30% empire-wide Metal/turn bonus for all council members)
- Joint Engineering Projects (+10%, +20%, +30% empire-wide Shipyard capacity bonus for all council members)
- Cultural Exchange (+10, +20, +30 Morale on all planets for all council members)
- Joint Training Exercises (+10, +20, +30 Combat Rating on all planets for all council members)
- Healthcare Agreement (+10, +20, +30 Health Rating on all planets for all council members)
- Vote yourself to become Council Leader
- Ban new Nuclear Power Plants / Fossil Fuel Power Plants from being built
- Ban Stellar Converter / Warp Missiles / Bio-Toxin Bomb / Genesis Device / other weapon or super weapon
- Ceasefire (All wars between council members instantly end and cannot start again for 20 turns)
- Ban Spying (All spy actions cease and can’t begin again for 20 turns)
- Add tax on trade routes (+1 BC per trade route)
- Limit Military (-5, -10, -15 Command Points for all council members)
- Share Strategic Resources (All races automatically share all strategic resources with each other)
- Share Sensor Data (All races automatically have sensor treaties with each other)
Many of these resolutions are straight-up strategic benefits for being in the council that are likely to be agreed on by all parties, such as empire-wide bonuses to a stat, but they’ll cost quite a few council points to table for vote. Poorer empires can spend a few council points to table the Request for Aid or Economic Stimulus Package to get some money, though you may need to contact the other council members to convince them to vote your way.
Most of the remaining resolutions are strategic limiters that can help level the playing field if an enemy empire is getting ahead. If the enemy is decimating your colonies with biological weapons or the planet-destroying Stellar Converter, just vote to ban them and convince the majority of the council to vote your way. If your fleet has been decimated and you need time to rebuild, table a ceasefire resolution for at least 20 turns of peace. The Galactic Council is also how we’re going to implement the Diplomatic victory condition (discussed below).
Up until now, the game has been an endless sandbox mode that has no victory conditions, but recently we’ve been working on adding the four main victory conditions (Galactic Domination, Destroy the Revenants, Scientific Victory, and Diplomatic Victory) as well as a fifth hidden victory condition. The game designs for these victory conditions have had to change a little during implementation, but we’re now confident that we have our final design and many of the victory conditions are nearly ready to release:
Every race that’s sent back in time has a different plan for how to win against the Revenants and ensure its own race becomes the dominant power in the future. The simplest way to make sure it’s your race that gets to enact its plan is to dominate the galaxy. Eliminate all of the other races by either destroying or capturing all of their planets to trigger this victory condition.
Destroy the Revenants:
If the Revenants awaken during your game (see Revenant homeworld section above), the Galactic Domination victory condition is off the table and you’ll need to destroy the Revenants to win. Whoever destroys or captures the Revenant homeworld will get access to the storehouse of ancient technology underground and is sure to dominate the galaxy, so they win the game.
Originally the diplomatic victory was going to be a simple matter of securing universal peace for a certain number of turns or getting everyone to agree to a treaty, but that felt a little underwhelming. We went back to the drawing board and decided to spend some time developing the Galactic Council (discussed above) and we’ve decided to use that for the victory condition.
The path to diplomatic victory begins in the final tech era when the Revenant planet reveals itself. A new council resolution will appear in the list that anyone can table for a vote — an agreement to declare the Revenant planet off-limits and avoid risking waking them up. Once this passes, the next resolution in the victory path is to cease all active hostilities between the races, then an Galactic Non-Aggression Pact, and finally the Universal Alliance.
When the Universal Alliance passes and all races not yet eliminated are in the council, this victory condition triggers. If the Revenants are triggered by someone plundering their homeworld, the resolution to declare their planet off-limits will be invalidated and can be skipped if it hasn’t been passed yet. You can still secure a diplomatic victory by completing the other resolutions (and so getting all races to join forces against the Revenants), and you’ll get a different ending.
While some races want to destroy the Revenants in the past, the more scientifically inclined recognise that this could lead to a predestination paradox and prove ultimately ineffective. These races seek to research advanced weapons and defensive technology and find a way back to the final battle with the Revenants in the future to turn the tide of the war. To do that, they’ll need the technology to invert a temporal rift and ride it back home, the knowledge of how to recalibrate the time satellite that caused the rifts in the first place, sensor scans of the battle on the other side of a temporal rift, and a well-researched battle plan.
Each of those requirements is a technology that unlocks in the Improvements tree once you’ve researched an advanced technology from the end of each of the four main tech trees. The four technologies required are now Temporal Shields from the Physics tree, Temporal Conduit (previously named Wormhole Generator) from the Construction tree, Temporal Prime Directive (new) from the Sociology tree, and Temporal Accelerator Satellite (new) from the Biology & Geology tree.
Once you’ve got all four parts of the plan, you can then research the Scientific Victory and you’ll win the game. In the future, however, we are considering making this victory condition a bit more involved by asking players to actually build a fleet and fly it to a temporal rift to travel back to the final battle with the Revenants. Victory would then be decided by actually winning this battle, similar to the Attack Antares option in MOO2.
We’ve received a lot of feedback throughout Predestination’s time in Early Access, and one thing that comes up quite often is the issue of performance. We’ve been making steady progress on the game and have already knocked most of the major features off our to-do list, but optimisation has always been put off until later in development. The feedback makes it clear that performance is a very important issue to you, so I decided to take a few weeks out from feature development during May to focus on all of these issues. The results so far have been huge improvements, and we plan to deploy the following optimisations in the next major patch:
- End Turn stall fixed: We’ve moved the End Turn code over to a second thread so that the game can continue to render smoothly while the End Turn operations are underway. With this implemented, the game no longer feels like it’s stalled when you click End Turn. This has introduced a number of new crashes that we’ve been tackling as we find them, so please understand that there may be some new and unexpected crashes to report.
- End Turn optimisation: End Turn times can easily reach 5-10 seconds when a handful of planets are colonised, so we ran the JetBrains dotTrace profiler on Predestination and discovered several unexpected bottlenecks in the End Turn code (the main one being some code for refreshing the status of roads). After solving the biggest four bottlenecks, most End Turns now typically execute in a fraction of a second if a planet doesn’t need to be generated.
- Planet Generation Optimisation: Most of the planet generation time was actually taken up by loading the continent texture files, but there are only a handful of continent files and they were each being re-loaded dozens of times. By batching continents together behind the scenes, we reduced planet generation times by over 50% and were also able to improve the planet graphics at the same time.
- Map Generation Optimisation: Creating a new map was taking longer than expected, so I ran the profiler while generating a map and discovered that it was spending more time generating planets than it should have. We found that all planets with strategic resources were being pre-generated when they didn’t need to be, and were able to solve that quickly to reduce map generation time depending on the settings used.
- Ship Model Optimisation: You’ve probably noticed that when you start the game, it stalls for a few seconds on the “Initialising Ship Models” stage. This happens because it’s loading all the high-res ship part textures into memory, so we decided to heavily optimise this to save both on load times and video memory usage. Now the game only pre-loads the low-res textures and loads the high-res textures on demand, discarding them again when they’re not being used in order to save on GPU memory. The high-res texture loading happens asynchronously in a separate thread so it doesn’t cause the game to stutter, and it takes just a split second so you shouldn’t even see the difference in-game.
- RAM Optimisation: The current live build of Predestination takes up about 1.6gb to 2gb of system memory and a lot of gpu memory. A lot of this is in the form of assets that have been loaded into memory multiple times by different parts of the game, as many of our user interfaces share elements and some models are re-used. XNA’s ContentManager is supposed to handle this for you, but it’s designed to load only XNB files and if we want player modding then we have to load standard .png files. I bit the bullet and implemented a new content manager with all the features I wanted using roonda’s ContentTracker V0.2 from 2009 as a starting point. As a result, the game now uses over a third less RAM, now hovering around 1gb to 1.1gb! As an added bonus, the new content manager can load models for the ship designer straight from .X files using SlimDX so modding will be a lot easier.
The odd thing about game development is that often you’re so used to using debug commands to cheat and quickly test features that you don’t get a very good sense of how the game fully plays or what the progression is like. I took a few hours recently to just play though Predestination and found a number of problems that need fixed and little things that could improve the game, many of which correspond to feedback and bug reports we’ve received from players. In no specific order, here are a few of the bigger changes coming in the next update:
- One-per-planet buildings like Starbases and the Orbital Telescope didn’t really make sense to be inside a city. I also kept accidentally clicking on a starbase when trying to zoom into a city. These have now been turned into Infrastructures connected to a city by road, and have their own section in the build menu separate from other infrastructure.
- Feedback suggested that planets felt like they could support another city, and also that terraforming needed to have a bigger payoff. We’re going to try out giving each planet a bonus city if it’s 100% terraformed to your native environment. This idea was suggested by a fan, and after playing for a while I can really see the merit of the idea.
- It felt like it was feasible to just build cities full of Research Labs everywhere, even without artifacts to boost them. We’ve reduced the research output of labs, but Artifact Excavations now continue to give a +100% bonus when excavated so they’re more necessary. Artifact Excavations can also be re-built if destroyed on excavated ruins and ships.
- Desert planets now have no sea level at all until they begin terraforming into something else.
- The sea graphics on Terran planets have been made brighter and more colourful, because while the dull colour was more accurate it wasn’t very appealing.
- Fixed that persistent bug where you get kicked out to orbital view every time the AI scans or colonises a planet. I had no idea how annoying that bug was until I was playing for several hours.
- The Auto Blueprints now use the blueprint upgrade mechanic just like when player blueprints update, so they will no longer demolish buildings for several turns.
- Homeworlds can no longer be destroyed by TimeExpand temporal rifts. Yep, this happened and it was awful.
- Ocean homeworlds have been fixed and will no longer spawn with land under the first colony.
- The crashed ship at the start of the game no longer requires staff. This was a big difference now that we have 500 staff per piece of infrastructure.
- New colonies now start with 2,000 population to help them get started rather than 1,000.
- Some of the Sociology technologies for diplomacy need to be available a lot earlier in the tech tree.
The next major update is 0.9.3.0, which will be going live within the next week. It will contain:
- All of the optimisations discussed in this dev update (Mostly complete, still a few bugs to fix)
- The Scientific Victory victory condition (Complete pending final testing)
- The Galactic Domination victory condition (Complete pending final testing)
- The Destroy Revenant victory condition (Complete pending final testing)
- The Revenant Planet Decloak event and Revenant Awakening event (Complete pending testing)
- New high-res planet textures and bump maps (Work in progress)
- Finished Diplomacy Text (Mostly complete)
- All of the rebalancing and tweaks discussed in this update (Complete)
- Dozens of bugfixes and quality of life improvements (Mostly complete, still a few bugs to fix)
After that, the next major update is 0.9.4.0 and it will contain the Galactic Council and accompanying UI, new sociology technologies relating to the council, new diplomacy options relating to the council, Diplomatic Victory, the end game points screen, and endgame story sequences for the victory conditions. We also hope to have the United Colonies ship models finished and in-game and a batch of new sound effects to replace the current placeholders.
— Brendan, Lead Developer