June is “Alpha Month”

Well, it’s time for me to draw a line in the sand and start the alpha test. The artwork for the Galactic Councils is looking great and should be done by the end of May. I would love to have GNN artwork in there as well, but it’s not worth delaying the alpha any longer. The original plan for the alpha was 1Q for 2016 and that has been delayed for additional artwork, but it’s time to cut bait and get it out there. I’m not going to complain about the delay because it allowed me to squeeze in a lot of additional work that was planned for after the alpha.

In the past 6 weeks, I’ve done a lot of work with performance tuning and memory usage, and continue to do deep dives into games to ferret out any bugs I can find.

Here  is the latest plan for the alpha… it’s changed a bit since the original plan.

June 1st – alpha version of Remnants of the Precursors becomes available for free download.  The game will be playable for 30 days. Download instructions are to be determined.

All of June – All alpha feedback, comments and suggestions should be directed to the ROTP subreddit I’ve set up at https://www.reddit.com/r/rotp. There are a lot of great gaming forums on the internet where I have interacted and tried to spread the word out to my fellow MOO1 fans, but I will need to have a consolidated place where I can easily find bug reports. Reddit seems like the most universal forum in which to do that and I suggest that anyone wanting to alpha test set up an account on reddit for this purpose.

July 1st – the alpha version will cease to function. It’s very important for me to not have a lot of copies of the playable versions of the alpha around forever. For starters, there are still placeholder graphics from the original game that will eventually be removed. But mostly, I want anyone testing the game to provide timely feedback. Then I want that version to die because it will already be obsolete by July 1st anyway.

What this alpha version will still be missing is tactical combat, random events, and the 5 remaining races (Humans, Darlok,  Mrrshan, Sakkra & Klackon). In addition, there is still a tremendous amount of artwork  to add.

I will probably do another Alpha later in the  year when tactical combat is added, but that’s a ways out.




AI Fleet Missions

I’ve done a bit of work on the war AI this weekend and it seems like this is a good time to give an idea of the kind of missions the AI currently creates for its fleets and how it prioritizes them.

For starters, the AI looks each turn at every star system that it can reach, including with extended fuel range tanks, and then decides what kind of mission it wants to assign to those systems and how many ships it should send.

The different missions are listed below, ranked from  highest priority to lowest. For multiple systems with the same priority, there is an additional weighting to prioritize them within their group.

When there are enemy fleets in the target system, the AI generally uses a staging point to build up an appropriately-sized fleet before moving into the system.

Retreat – for fleets orbiting systems where we have decided that we need no ships at. These are generally systems colonized by empires that we are not at war with and do not want to go to war with. It’s the highest priority because it frees up ships for other missions.

Repel – when enemy fleets are orbiting one of our colonies. A staging point may be used.

Intercept – when enemy fleeets are in transit to one of our colonies.

Assist Ally – when enemy fleets are orbiting the colonies of an ally. A staging point may be used.

Invade Enemy – for enemy colonies that we wish to invade and capture. Once our fleets are in orbit, we send military transports. A staging point may be used.

Bomb Enemy – for enemy colonies that we wish to destroy rather than capture. A staging point may be used.

Bomb Encroachment – for destroying non-enemy colonies that are encroaching upon our space. A staging point may be used.

Guard Attack Target – for bolstering the defenses of our colonies that look like prime attack targets for our enemies. Not needed once enough missile bases are constructed.

Expel – for attacking enemy fleets that are amassing in nearby systems that we would not otherwise attack. A staging point may be used.

Sneak Attack – for opportunistically attacking undefended colonies of neutral empires. Lots of things factor into this decision, including wars we may be already in, our personality and, of course, the level of defenses in the system. A staging point may be used.

Colonize – for expanding into uncolonized systems

Guard Border Colony – for bolstering the defenses of our colonies that are near our borders. Not needed once enough missile bases are constructed.

Scout – for scouting unexplored systems

Guard Inner Colony – for bolstering the defenses of our inner colonies. Not needed once enough missile bases are constructed.

Claim – for guarding nearby uncolonized systems to prevent expansion by other empires

Monitor – for  maintaining a scout presence at uncolonized systems out of range of our fighters.


Anyway, that should give you an idea of the various conditions the AI thinks through each turn. Figuring out what ships you want where is hard enough, but moving them all around efficiently and building new ships as needed makes it even more complicated!

As the AI goes through its prioritized list, it tries to fill the plans with the closest ships possible. If it is faster to build a ship at a nearby colony than to pull one from across the galaxy, it’s smart enough to do that.

It gets even more complicated when you factor in the decisions of when to upgrade ship designs and how to transition the fleet over to those new designs, especially when you are limited to just six active ship designs.

But it seems to work pretty well so far.

Load testing

One thing I’m doing now that is very important is load testing the game under extreme conditions. For this case, I have set the “Ludicrous” map size to be 2400 systems when using 5 opponents. The idea is just to throw everything at the game and see what starts breaking.

Specifically, I’m looking for memory and performance issues and I’m finding plenty! But they will all get addressed over time. The goal is for players to be able to play on a ridiculous map of 2000 star systems if that’s what they really want to do. The save files for games like this are over 2MB in size. Not too bad, I think.

Here’s a map screenshot of the current game. I’m currently playing the Silicoids with about 85 systems colonized. I’ve only encountered the Bulrathi so far and they currently have 113 systems. I have no idea where the other 3 races are at (Meklar, Psilon & Alkari).


Showing alliance borders

One of the big advantages of forming an alliance with another empire is that you can use each other’s colonized systems for “refueling”, often dramatically increasing the range of your ships.

Since the galaxy maps in ROTP already show the normal and extended range of your ships, I needed to modify that display to incorporate the borders of your potential allies.

Here are two screenshots of the Galaxy map from the Races section. You can now see easily how the ship range of the allied ships has been greatly extended.

The player’s empire (Meklar) selected:MapAlly1

His Silicoid allies selected:MapAlly2