[Design] Unending Galaxy 1.3 Roadmap

Hi there!

With 1.2 being quite stable now (low/high surrogate bug aside, I will get back to that point further down), it’s time to talk about the next major update. But before going into it and given that I am now talking to hundreds of people instead of a few dozens, it’s time to explain a few things again:

Unending Galaxy version numbers are more akin to software than to games. The game will keep getting updates for as long as it’s possible for me to afford it. The main goal of future game projects is to keep funding UG. All updates will be free, however I don’t discard the option to release mods and maps as optional DLC.

Our next major update, aka 1.3, will be taking care of the military side of the game. The main goal is to make the different factions and ships more unique, make the military and diplomatic bits more interesting, while adding new features and missions to spice up the game when not playing as a faction.

Notes about 1.2

It took it’s time, but 1.2.1 is now working nicely for the most part. There are still a few minor adjustments to make, but the heavy lifting is done, one last patch before we switch officially to the 1.3 development cycle. The only problematic bug is the low/high surrogate one. It happens way outside of my own code, in the inner workings of the graphic library, as such I can’t really “fix” the bug, but I can work around it or at least try to determine the precise reason why it happens on some computers and not on others.

1.3 Roadmap

The following details have already been talked about in various articles and forum posts, but it’s probably a good time to summarize everything in a single location.

Ship classes

Probably the most straightforward change. Instead of referencing ships as “fighter”, “cruiser”, etc. I am going to use a tag system. While I will probably still keep the current classification, it will mostly be to reference the ships’ size for docking right purpose. Other tags will be applied like miner, combat, cargo, and more.

While it could seem like a minor change, it’s far from it. For instance the ISA currently has a cruiser called Retribution, as a combat ship it’s a poor choice, however it’s pretty great as a trading or mining vessel in hostile locations. With the current system there’s no simple way to tell the simulation that it should avoid using this ship for combat duty, which result in the ship being dragged into combat fleets. With the new system it will be flagged as a [trader, miner, cruiser] and will be ignored by the military logic.

With the new system, it will be much easier for the simulation to filter what ship it can use for each task. It would also make it easier both for me and for modders, to incorporate “unusual” ships in the system like pocket carriers, giant cargo ships, etc.

This improvement in itself is relatively simple code wise, a bit time expensive  A lot of small changes all over the place but nothing very complex.

Drones

This is something I went over in details in an earlier post. It’s also a bit controversial, the general idea is that fighters will be replaced by drones. Beside a name change, it means that they will always be attached to another entity (a carrier, military base or fleet leader). When said entity gets destroyed, the drones will deactivate. You won’t be able to fly or give orders to drones manually either. That’s for the downsides.

On the plus side, drones will come with preset weapons and behaviors. As such it will be much easier to equip a carrier with a specific setup, like using shield depleting drones while the carrier itself is packing hull damaging weapons. Or, by the same logic, and coupled with the new class system, we could have mobile mining bases using multiple drones to mine asteroid fields faster, or even suicide/explosive/repair drones, etc.

Of course, that will leave a void regarding fast exploration ships, I will fill it with a selection of fast, lightly armed, corvettes. I also know some of you are reluctant to this change and i understand your concern, all I can assure you is that I won’t radically change the way the game plays out. The goal is not to dumb down the game, but to give more options and more unique factions while keeping the management side of things relatively light.

This change is fairly large and will impact large parts of the code base, as such it will probably be the biggest time-sink in this list.

Automation

The various automation systems (especially building and military) will be expanded so you have more control over what those managers do. For instance, the military manager will allow you to set a “building queue” for fleet building, and if the automated fleet manager is used, it will try to keep the ratios set by this building queue when handling the attack fleet. The building manager will allow you to select if you want it to go for territorial expansion or to stay inside your current borders.

Having multiple accounts for fund management may disappear, probably ever before 1.3. The main reason for it was fixed (money gets reserved when you give a build order instead of being used once the order completes). I might keep a secondary account so you can easily put some money on the side, making sure it won’t be used by your automated traders and managers. But, for all intents and purposes, when you make a purchase both accounts will be used as a single entity.

Defense structures / Defensive fleets / War

Currently, with everything automated (and in AI vs AI battles), the invader tend to have the upper hand during a fight. With no proper defensive fleets and little “home turf” advantage beside the occasional military base, the smaller empires are a difficult position. This is what the following changes are aiming to fix.

I will add defensive docks to most factions. Those will be highly armed docks, hopefully featuring visible and rotating “turrets”. Their main goal will be defend against small threats, control remote locations without having to spend millions on military bases, and more importantly, give a better chance to the underdog during an invasion.

Another goal is to make the defensive military AI use fleets for defensive actions instead of having ships jumping individually to the hot zones.

Finally I will make it so factions can actually wage war and harass each other even if they do not have a common border. It’s a requested change that has been delayed for long enough now.

Diplomatic options

New diplomatic options will appear to allow / disallow for military passage. An alliance option will also appear, which can be seen as a “defensive pact plus” where your military power is shared for defensive (and maybe offensive) purpose.

I may also switch to a diplomacy interface closer to Civilization’s trade table. I voiced being against that a long time ago during alpha, but things change, and I think I can make it work now.

Missions and plot-lines

Fairly straightforward and inspired by the guild system pirates are already using. New missions will be added alongside rewards for each time the player achieve a higher rank in a specific faction’s ranking system.

I will most likely add new mission chains with unique rewards in the same spirit as the AI core “plot” missions. Exact content has yet to be determined. Those are extremely time consuming to write and test, so they don’t get a very high priority.

Misc

Many ships and weapons will be redesigned to make good use of the new ship class and drone features, as such you may expect each faction’s fleet to be different from the next.

Oh and you may encounter a few new lifeforms too 🙂

A few last words

Once I am far enough in the 1.3 branch, I will add an open beta build for you to test so we can get rid of the major problems before the official release. I cannot give a good ETA yet, but it should take around 2 months to get the important parts done. I also know I haven’t been active on the main forum in a while, I while try to get that fixed later this week.

Cheers,
EsKa.

4 thoughts on “[Design] Unending Galaxy 1.3 Roadmap”

  1. The low / high surrogate bug – is the processor or GPU a factor in the system differences? It almost sounds like it might be floating point issues if it’s inconsistent on different hardware – some engines / libraries don’t handle the AMD / x64 extensions in the same manner or as well as they claim. 🙂

  2. It’s tied to rendering of fonts on the screen using directX library but it’s code running on the CPU, messing something up when manipulating strings prior to displaying those.

    It’s normally compatible with any string format i feed it converting everything to unicode. But, very rarely, the conversion fails, badly and it exists in a very dirty fashion. By rarely, I mean it’s called thousands of times per second without any hiccup and even for the people who have this bug, it can run for hours without triggering or hang in seconds.

    At least that’s what the bug report tool (with callstack info) tells me, but it’s missing some information (like the string it’s trying to convert for instance) and the multi-threaded nature of the game doesn’t help either. I did work around the problem in some places, but my inability to reproduce the bug makes it a slow, time consuming, grind.

  3. If at all possible, making the mission coding somewhat modular and allowing you to create missions in the editor would be nice. Like being able to pick from a list of types of missions, selecting the type of target for the mission, the rewards, what factions offer it and when, etc. Maybe have the possibility for the missions to be able to either pick existing targets (an enemy faction, a selected enemy ship of a certain class with a bounty, etc) or to generate targets in an appropriate system (a fleet jumping in, or even an entire empire appearing and starting to conquer territory).

    This would take a lot of time to set up, but would not only give you a powerful tool to make a bunch of your own custom missions – it would let the modding community do a lot of interesting things. Not that the modding community is huge right now, but the more tools you put out there and the more powerful they are the more interest in modding there will be.

    More modding support in the way of externalizing some of the code would be ideal, but something like this if done right could make modding UG much more interesting.

  4. Sorry for my delayed reply, it has been a few hectic weeks.

    Extending modding in general is one of the things I’d really like to do (because I was a modder first), but it’s also a very time consuming task with no sure way of knowing if it will have an impact on the game’s sales or not. I know I said, much earlier, that I would extend modding to other areas than game data, but that was before I spent several months debugging more and more obscure bugs. If I was a hobby developer with another source of income, that wouldn’t be much of an issue, but here we are.

    Right now and until I start working on the next big project (which will be much more open to modding because I learn from my mistakes :p), the main focus is to add / improve game features. But once said big project is on track, with UG on the back burner, extending modding is typically something I could work on in parallel.

    Cheers,
    EsKa.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.