Governance in the Future

I’ve been thinking about how I can handle governments and government types in The Last Boundary.

To begin with, I want to make sure that, as a grand strategy game, the player doesn’t have absolute control and absolute say in the way their civilisation works. Rather, they are in command, via the governing body, whatever form that takes.

In a nutshell, the player doesn’t just click the “change government type” button to become a theocracy. I’ve seen this button in other games, or a button much like it. Some games, I believe one of the civilisations, would then have a period of anarchy whilst the new government took control.

I don’t think this is realistic, and one of my stated goals is to retain realism as much as possible (so long as it’s fun). Considering one of the main tenants of my game is the social aspects of the future, I think I can do better than a “change government” button.

The government is formed by the people; i.e. a government cannot exist without the consent of the people, at least it cannot exist proficiently.

For example; the government type that I believe would give the player the most control would be a totalitarian government. In this, the player could decide what specific areas of research are focused on; they could have specific resources mined and stockpiled etc. It would come with a cost of the peoples happiness, living under someone else’s plans leaves little room for your own.

This could be countered by “education”, i.e. government education. Or maybe a breads and circuses type deal.

I also believe that the longer a people live under this government, the more accepting they would be of it. This could be represented by the gradual decrease in productivity ceasing, and the player receiving the same constant rate of productivity (whatever form that takes), rather than the ups and downs of a free market (for example).

So; I’ve been looking a different types of government, and boy is there a lot. A few I’ve thought about, but need to read more on, and the highlights of that government type in-game:

Democratic

In this government type, the player:

  1. Is playing the role of the elected party chairman, i.e. he makes decisions on behalf of the party.
  2. I don’t think it makes much sense to model the consensus of the party votes itself. So rather, some options are greyed out / not visible, depending on the consensus of the party. The parties would probably be three randomly generated parties (or maybe more) that have a specific left/right alignment in key areas.For example, economy for Party A, would be either conservative or liberal. Conservative Parties have less options to spend money on government initiative. Or perhaps they just have less of a percentage of the GDP to spend.I haven’t fully fleshed it out; but it’s important because:
  3. The Player doesn’t decide the party that is elected. The people do. Therefore, every X years, the party has a chance to change, therefore the player has to deal with the limits (and benefits) of the new Party in charge.The player can affect the vote by:
  4. Each Party has some randomly selected campaign promises. So, when you first start, the campaign promises (ostensibly made by yourself prior to election) are like little anti-challenges/challenges.For example, reduce government spending on Military by 20% will mean that you actually need to do that.Failure to reduce that spending will mean unhappiness from the governed. This will reduce the chance of being re-elected.In addition, you can also set your campaign promises a year out from the next election. So if you are voted in, you will need to accomplish these the next election cycle.

    But be warned, that if you governed poorly, the affect of each promise on your re-election is smaller, which means more and more promises, just to be re-elected. On the flip-side, if you did well, you may only need to make a couple of promises.

Representative

So I like the idea of not having just Representative Democracy, but maybe even Representative Theocracy. Wow, cool.

Basically, under a representative model, for the player to have a law passed, they need a majority of the representative to vote for them. This means that landslide elections in a democracy make passing laws easier.

I’m not really sure how this would be modeled under something like a Theocracy. Unless the Theocracy allowed all faiths to participate…

 

Democratic doesn’t necessarily mean Representative, and vis versa.

For example:

Demarchy

This is a form of government where the rulers are randomly selected from the population, rather than by vote. You could have a Representative Demarchy…

Autocracy

Where all the power resides in an individual. This individual would be the player, however Autocracy takes on many forms, such as Authoritariansm, Dictatorship or even an Absolute Monarchy.

Some of these, like a Dictatorship, effectively nulls out Democracy, but could you have an Absolute Monarchy where the King/Queen is elected after the previous one dies? If so, you could probably have a Demarchratic Absolute Monarchy.

 

I haven’t thought too much further into these and how they would affect the player. I think in general there should be:

  1. Mechanisms through which the player tries to maintain the status-quo. For example, trying to get the current party re-elected; stamping down opposition in a Dictatorship.
  2. A period of flux when government changes. Whether via Revolution, or a new party having been elected, previous leader dies; these should all have varying levels of affect on the civilisations output.

    Probably not any affect on what the player can do, because the player is always whoever is currently in power; but it can affect the output of factories etc. A period of Anarchy could also happen…

 

The difficult part will be making sure the various mechanisms through which you maintain power are at least somewhat similar for all government types. They should definitely be different, but as all actions are usually governed by some form of resource, I think this resource needs to be consistent across all government types.

Graphical Improvements and Terrestrial Planet Generation

I’ve been working some more on graphics for my randomly generated terrestrial planet. I’ve now implemented a bump map.

I’m not 100% happy with the effect, it’s really very blocky, but I think it will do for now. There might be some tricks I can do like bi-cubic sampling the height-field or something like that.

Fleet Battles 2015-06-01 23-16-26-14 Fleet Battles 2015-06-01 23-16-45-41

Lens Flare

I’ve added the following Lens Flare effect. It produces artefacts and then does a shaping effect on them to make them look a little more like they came from a Lens.

There’s some chromatic distortion as well.

Fleet Battles 2015-05-23 15-35-05-24-ex

More engine work

I found as I learn more about OpenGL and GLSL I find it easier and easier to decipher graphical concepts.

So now I’ve managed to completely figure out bloom, HDR and real Atmospheric Scattering.

I’ve also completed my Noise Engine for the CPU side of things, I’m looking into doing stuff with compute shaders to animate the noise in real time.

For now, here’s the new and improved planet. More after the jump.

Fleet Battles 2015-05-21 21-40-51-95

Continue reading “More engine work”

Progress on Fleet Battles

Fleet Battles is what I’m naming the miniature game that I’m making to realise the fleet warfare aspect of the game. I’m also doing it so that I actually complete something and hopefully gain some learning from it to then proceed with the rest of The Last Boundary.

I’m sort of thinking that I may end up with several games, but that’s far into the future.

Anyway, I decided that the UI I had created looked a little sad; so I’ve been working in GIMP to make a new one. The result required some reworking of my UI code to incorporate the new bits and bobs but I think it looks pretty good so far.

Fleet Battles title and UI
New UI and Title Screen

The title could probably use some work; but I’m far from a designer. So it’ll probably stay like that.

A Change of Pace

I’ve taken a few nights off coding to start thinking about game design for the fleet battles. I want to just start with probably a fleshed out game revolving around just the fleet battles.

There probably won’t be too much “game” in this game as fleet battles are not determined much by the player, but only influenced. What it will do is let me see how this influences affect the course of a battle.

So I’ve got a big spreadsheet with numbers and formulas to start working it all out. It’s beginning to come together nicely, especially the way a ship is fitted-out.

Continue reading “A Change of Pace”

More UI work completed

I’ve done a bit of refactoring of my UI code and brought it down a few hundred lines of code.

I’ve also started noting the performance. Right now, a window with a table and a bit of text and another window with just text gets me around 500-550 fps. This is from a base of about 2500 (if nothing is being drawn to the screen).

I have no idea if this is acceptable or not. In contrast, my scene with a sun and an earth runs at about 200-250 fps. The thing is; I’m doing things in the most inefficient way.

So; I put some work into speeding up the code. Everything in the UI uses a single shader for one. Next is to get everything to use a single VBO; it’s not doing that now because my text quads are drawn with position info in the vertices, whereas everything else uses a translation and scale matrix to define the position.

If they both use the translation matrix, I can remove any need to bind different buffers between calls. This should make things faster.

Also, everything at the moment binds it’s texture. However everything uses the same texture (except text); so I may be able to remove the  glBindTexture calls for a lot of the time. Probably via a texture manager or something.

If it’s still not fast enough; I’ve been reading about instance drawing and also about using textures to hold position info (R,G is x,y and B,A is w,h). I think I can combine these so that my gl_InstanceID in the vertex shader is my lookup into the texture of position info. I’d probably also need a second texture to hold UV coords seeing as these don’t change much either (textures rather than providing a lookup array to the shader, only because that would need to be updated and passed each frame anyway).

Here’s a picture:

SpaceEngineUI 2015-01-02 23-16-02-99

Refactoring

I’ve been without the internet for a little while so I spent a good part of that time refactoring some of the UI code.

I quickly identified a distinction between widgets that hold a single other widget, and widgets that contain many other widgets. These are Containers vs Layouts. Obviously a widget that holds one other widget is a container, something that holds many widgets only does so for the sole purpose of positioning them, therefore it’s a layout.

This brings me a Container class that the Window now inherits from. Containers don’t seem to have a clear way of doing a hierarchy as each positions them differently. The two I have now, a Tetris like stack that I call Box (I might rename it to TetrisLayout) and TableLayout don’t even store their widgets in the same manner.

The UI code is really starting to look slick. It’s actually got more code than the current state of the graphics engine and more than 4x the code of any of the celestial mechanics and AI stuff I’ve already done.