User Interface Ideas

Posted by

As progress on War Worlds starts up, I've got a lot to think about. At the moment, the "game" basically consists of being able to log-in/out, and I've got a silly little feature when I can post notifications to myself from my App Engine backend. But all of this is laying the ground-work for things to come.

What kind of game will War Worlds be? Believe it or not, that's still kind of up in the air at the moment. In my head, I see a sort of Master of Orion style of space exploration/diplomacy game, where you're playing with hundreds (let's not kid ourselves here) of other players. When you conquer a world, all other players will see that it's your world (at least, until they take it from you!).

I imagine each screen in the game will look not unlike the below mock-up:

UI Mock

Yeah, we're very high-tech here...

So basically, on each screen there'll be the "main view" where most of the action happens. There'll be a status/chat bar which'll be big enough for about three lines of (fairly small) text. And there'll be the actual user interface, which is about 33% of the screen wide and contains most of the text/buttons for actually doing things.

The first screen you'll see when the game starts up is the starfield. I imagine it'll look something like this:

Starfield

So it's basically a bunch of small circles each representing a star-system. You'll be able to drage the screen to pan around and tap on a star to zoom in to it. When you tap on a star, you'll see the star-system screen:

Star System

Here, the star itself is just a bit of graphics in the top-left and doesn't do much. Around the star are a number of planets (let's say, between zero and 5 or so), each planet has a name, a "type" (e.g. "ice" or "rock" or "water" etc), maybe things like terraform-level (from "barren" to "paradise" or something), population, etc.

I need to work out various bits of actual gameplay, though. For example, how do you colonize a planet? Attack people? Set up defences? Build things? Trade? Explore? All of that... it's going to be great!

Starfield Layout

Posted by

The starfield is the first thing you see when you start up the game. The way I see it working is, the first time you log on, the game will find an area of space which is currently free of other players. The idea is, it takes a while for a player to colonize an area, so by finding some empty space for you, you don't have to worry about another, more advanced, player from taking over all the stars in the vacinity while you're just finding your way around.

Basically, the "universe" is going to be randomly generated, and it's going to be infinitely big. To make things simpler for me in various respects, the universe will be divided into "sectors" which which an area of around 512x512 pixels. The sectors will be identified by coordinates with (0,0) being the centre of the universe.

Each sector will be divided into a 16x16 grid, with each grid location being 32x32 pixels. Inside the grid will be zero or one star, with the idea being that there will be, on average, about 20-30 stars in a sector. I'm going to keep the number fairly low to begin with, because I want to leave open the possibility of randomly generating new stars in all of the sectors (for example, if I decide on a new "kind" of star or something).

Basically, it'll work something like this:

Starfield Layout

As you scroll around, the game will load up the sector that's currently visible on your screen plus the surrounding sectors. It'll unload sectors as they go out of view and load new sectors as they come into view. In this way, we can have an infinite universe, but only ever need to have a fixed amount of data loaded at any one time.

Sectors will be largely invisible to the player. Also, the stars will not be placed in the very centre of the grids, they'll be randomly placed within the grid. That way, the stars will appear to be fairly randomly spaced, but they'll also never be so close as to be overlapping.

As I mentioned above, when you first start, you'll be allocated a random piece of "empty" space. In this case, "empty" means a sector where no players have taken over any stars. So the very first player to join the game will get the sector at (0,0). The second player to join will get maybe (0,1) or (1,1) or one of the sectors around (0,0). And so on, expanding out as new players join.

Players will invariably leave the game as well. I'm thinking there should be some kind of "decay" value on your planets so that if you don't do "something" to maintain them, then eventually they go back to the default "uninhabited" state. In this way, a player who joins the game, plays for five minutes then gives up isn't going to take over a whole sector forever – eventually the unused sectors will be reclaimed and can be reallocated to new players again.

Basics of Gameplay

Posted by

As I’ve said in a previous post, the basic gameplay of War Worlds will be similar in style to Master of Orion. That is, you'll colonise planets, build war ships and meet, trade with and anihilate your fellow players.

But how will all this actually play out?

Obviously all of this is still just ideas in my head (the basics of the code is slowly taking shape...) so it's all subject to a lot of change, but below is a bit of a brain dump of a few of my ideas (all numbers and stuff are just pulled out of the air for now...):

  • So as we saw last time, sectors will contain between 20 and 30 stars. Each star will have between 2 and 8 planets.
  • Planets can vary in size, larger planets can support more colonists, smaller planets will generally be more fertile (which affects output). Fertility of a planet can be improved by terraforming, which obviously takes time/resources.
  • You'll start out on an average sized planet, which will be of average fertility. You'll have a set number of colonists and a few scout ships and maybe a colonization ship (with which to colonize a second planet).
  • Each planet can support a certain number of factories, determined by the planet's size. Each factory houses a certain number of colonists. Colonists automatically reproduce, at a rate determined by your food production.
  • Factories can be set to work on different tasks. You can set some of your factories to produce food, some to produce ships, etc. The more factories you have producing food, the more colonists you can support. The more factories you have producing ships, the faster you can build ships, etc.
  • The more factories you have, the more resources required to support them. You can mine for resources, trade, perhaps plunder, etc.
  • If you run out of resources, your factories will stop working. If they haven't been working for a while, they'll go into disrepair. If they're in disrepair for long enough, they'll start to deplete. Once all of your factories have depleted, the planet will back uninhabited again and you'll have lost it. In this way, a player who gives up on the game will not monopolize the sector and once all their factories have gone a new player could start up there.
  • There will also be NPCs around which you can attack, plunder and whatnot. The idea being that you don't have to join the "global" conflict and PvP is not a requirement to enjoying the game.

Obviously, I haven't thought through everything. Particularly some of the nitty-gritty details of how factories/resources/colonists will work, etc. But I think this is a start. Once the code starts taking shape I can start to play around with some of the numbers and see how things work out.