Pre-Order the Game!

Desura Digital Distribution

Wednesday, April 29, 2015

The Stars, Like Dust

We're quickly approaching our first milestone!  This milestone consists of:

A working colony code with all sliders implemented.
Actual production of missile bases, ships, factories, etc.
Generation of research and tax
Exploration of star systems
Fleet movement
Colonization of habitable planets
And UI for all of the above.

Most of those are done, or being worked on. We hope to have the first milestone done within a couple of days or so.

With that said, time for another DG vs MoO 1 update!  This time, I'm focusing on the galaxy generation.  In MoO 1/2, all galaxies are random stars scattered across a rectangle.  While this isn't a bad thing, it does make gameplay follow a predictable pattern.  So what we did were to create a "density map" mechanism where players can create their custom galaxy shapes.  The map ranges from black to white (it averages the red, green, and blue values), with white being highest probability, and black being absolutely none at all.  Each density map comes in its own folder, along with a text file setting the star ratio.  The higher the ratio is, the more far spread the stars are.  This way, people can tweak the ratio until they're satisfied with the galaxy size (the size is based on ratio, one size may not be suitable for all galaxy shapes)

So, you can simply create a png image, and an accompanying text file for the ratio, and put it in a new folder, and the game will automatically include it in list of galaxy shapes.

Some of you may raise some questions: "How do you ensure that all stars are accessible?  Wouldn't having isolated stars break the game, if a homeworld is one of them?  What about anti-matter nebulae blocking all access to a star?"

When we considered those problems, we realized something.  In MoO 1, one issue in late-game is the size of the galaxy and the range/engine technologies.  Even in Huge size, going anywhere with hyper engines won't take more than 3 or 4 turns.  So the defenders don't really have much time to prepare.  Having the galaxy size small and making the stars cluster close to each other actually reduced the strategic aspects of star layout (I discussed the issue of having everything open in an earlier post, leading us to add new types of nebulas).  Imagine if stars were 15 or so parsecs apart, and the fastest engine tech only does 9 parsecs per turn, it'd give defenders more time to prepare.  This also make stargates more useful.

So what we're considering is upping the range technologies, but keeping the engine speeds the same, and spread the stars out a bit more on average than MoO 1.  How do we ensure that there's no isolated stars?  The answer is wormholes.  We will have an algorithm that ensures that all stars are reachable.  It generates a list of star groups that are not accessible to any other star groups.  It then picks a random star from two star groups and generates a wormhole, and repeat until all groups are connected.

With this, a person can create a galaxy that's so big that the only way to reach other stars are via wormholes, or so small that wormholes aren't needed.  There will be also random wormholes thrown in for variety and spice.  Without wormholes, we cannot guarantee that the galaxy is not broken.

With that said, here's some more screenshots!  The first one is our galaxy screen, with most of the UI finalized:


This next screenshot demonstrates the galaxy shape mechanism.  I used this image:


To generate this 250-star galaxy (You can easily see it's a part of the ring):



Thursday, April 2, 2015

Planet UI and Mechanisms

Hello all!  Work is progressing very well with Dominus Galaxia!  Nearly all code from Beyond Beyaan has been salvaged and converted into the new project!  We also debated and argued about small aspects of MoO 1.  We really want to get DG right.

As I mentioned in my last post, whenever there's a major difference between MoO 1 and DG, I will explain why we did what we did.  For this post, I will focus on economics and planet management.  While MoO 1's approach was simple and easy to use, it had several issues.

First, the slider dilemma.  There are only five sliders.  Each may have one or more item to perform (i.e. build shield and missile base in defense slider).  The problem is that you cannot pick which one you want the planet to focus on.  You see enemy ships incoming to your relatively new colony?  Tough, you gotta build that shield first, even if you could have built a couple of missile bases instead.

Another issue is that all sliders must add up to 100.  This means a lot of fiddling with sliders to get them right.

So here's how we're going to solve those annoying issues:

There will be an individual slider for each main item.  So shield and missile bases are split out into their own sliders.  Cloning/pop growth, terraforming, and soil enrichment are all split into three sliders, etc.  Those sliders are only visible when they're actually available.  So the shield slider won't show up until you actually research a shield technology.  It will disappear after you've built the best planetary shield.  So at a quick glance, you can easily see which items your planet can build, and what it's missing.

Also, instead of having all sliders add up to 100, we will have sliders use weighted distribution.  So you can have all sliders at 100%, it means the planet's production will be divided equally among all the sliders.  Or if you have one slider at 100%, and another at 50%, and all others at 0%, it means the first slider gets 66% of the planet's production, and the second gets 33%.  The advantage to this approach is that you can easily increase or decrease a slider, and all other sliders are impacted proportionally to their slider position.  For example, when a planet finishes terraforming, the terraforming slider is simply removed, and all existing sliders do not change positions, but they get a boost in production in proportion to their slider position.

Second, the waste.  It's annoying having to fiddle with eco slider to spend the minimum on clean-up when you've accidentally nudged it.  So we're going to simply deduct the waste from the planet's production, similar to MoO 2.  No more slider for waste clean-up.  Less useless micro that adds nothing to the game aside from frustration.

Third, the tax/reserve infusion.  There's an exploit in MoO 1 with ultra-rich planet where you can produce more than you take penalty for.  Ultra-rich triples the production on a planet, which means that you put in 150% into reserve instead of the normal 50%, and you can pour it back into the ultra-rich planet to boost it even further to 300%, without any penalties.  There's also the issue with having to remember to pour reserves into planets occasionally.

To avoid this exploit and reduce the annoying UI micromanagement, we've introduced a slider that goes from -100 to 100, with default value of 0.  When doing -100%, the planet pours everything it has available into generating reserves.  When doing 100%, the planet takes in enough reserves to double its production automatically.  This means you can leave it on at 100% on an artifacts planet, and it will always try and double its production when possible, if the empire has enough reserves, for the entire game without you having to remember to put in reserves.  With this approach, instead of having two separate UI controls, one for putting in reserves, and one for taking out reserves, we've merged the two, and eliminated the exploit of ultra-rich feeding itself.

To clarify, even if you do -100% on ultra rich one turn, then next turn change it to 100%, it will double the production for THAT TURN ONLY, and cannot produce any reserves at the same time it's getting reserves.  You cannot pour in more than a planet's total production for multiple turns like MoO 1.  You can only do one turn at a time.  So even ultra rich now suffers from the 50% penalty in taxes.

Below is a preview of the planet screen (note the reserve slider on very bottom).  Yes, it uses the same UI artwork from Beyond Beyaan, but we used DLight to "3Dify" it and make it look pretty: