Unending Galaxy : Navigation and Map

Messy BattleAs promised, here is an article regarding the navigation system that will be used in Unending Galaxy. This is a design article, so as usual with such articles, not all the features listed here are already implemented, and some things may very well change during development.

Also, screenshot of a messy battle, just to say that the inter-faction warfare is making progress.

Enjoy ! 🙂

Sector Based Game

As you may have noticed with the videos and screenshots, UG will be sector based. While I do understand the appeal of seamless navigation (like in Elite or Evochron), I think that most of the “hate” against sector based games come from the loading screens when moving from a sector to another as they tend to break immersion pretty badly. I recall in X3 where, depending on play-style, you may spend as much time looking at a loading screen as actually playing the damn game. Well, good news, UG doesn’t have any loading screen except when starting the game of course. Also, and to be brutally honest, sector based games are much more practical to code than seamless ones.

Each sector is a very large square of space which can be connected on all sides to other sectors. Moving from one to another is a matter of moving your ship to one of the borders, anywhere on said border will do and it will automatically get moved into the adjacent sector.

Universe

Here is a possible map layout:

Snap24

The general map will be organized into clusters of various size (usually rich in natural resources) linked together by lanes of sectors. This is not a definitive layout, it’s just to give you an idea. While nothing in the engine prevent from having a map that look like a 20×20 square of sectors, the faction warfare AI will work much better on this kind of layout.

Size wise, my game engine can scale pretty well. As a result, a 50×50 (2500 sectors) map is, in theory, possible. Bigger than that and pathing and memory would become a problem on most computers. But that’s kind of a stretch. Something like a 25×25 grid seems more reasonable for a default map. While speaking of performances, so far I managed to handle up to 10.000 simultaneous AI objects (ships, shots, stations) without too much issues, and that’s before doing an optimization pass.

Also, note that it would be fairly easy to write a program able to import X2 / X3 map layouts into UG.
I’ll probably give it a go later on.

Fast Travel System

Given the size of the map and sectors in general, having some kind of fast travel / teleport system is kind of a requirement for such a game. However, I am not a big fan of the X3 jumpdrive which allow you to jump anywhere you’ve already explored with no risk whatsoever.

In UG, factions (and the player) will be able to build “warp-gates” in their core and strategic sectors. A warp-gate will allow ships to move to any other warp gate built on the map. However, factions will be able to lock their gates. In instance, if two factions are at war, you won’t be able to jump from the gates of one to the other until they are at peace. And some factions, like the pirates, will probably be able to hack those gates.

Regarding an on-ship jumpdrive, I am not sure yet. It is a difficult thing to balance. What won’t exists is the “Jump anywhere from everywhere” system as it’s basically an invincibility button, or at least an ability to skip through obstacles. Also, AI-wise, even if it would reduces CPU costs drastically, with such system you’d rarely see ships moving from sector to sector, making interesting things (pirate raiding transport ships) hard to put in place. Also, the factions would get pretty confused on what sector to defend if everything is a potential target all the time. I guess that if such a drive is added, it will be limited to jumps toward existing gates or very specific stations.

Game Map

While the game currently uses a separate window for the game itself, the sector and the universe map, this is not what the definitive version will look like. I will switch toward an user interface relatively similar to Supreme Commander or Sins of Solar Empires where when you zoom out enough the screen morph into a local map and then into the universe map:

When zoomed in, you’ll manage your personal ship using mouse & keyboard and be able to attack, trade or communicate with other stations and ships. At the sector map zoom level, you’ll be able to manage your assets in said sector the same manner you’d use in most classic real-time strategy (RTS, as in Starcraft) games. And at the universe map level, you’ll be allowed to switch from a view point (sector) to another, and manage your empire in a more global way.