Eon design document
From KruelWiki
rolvarchiba
Contents |
Introduction
This doc describes what Eon is, and outlines the goals that we wish to achieve in this project. This document is still missing a lot of things. If people ask questions they can be addressed and clarified in this document, so ask us lots of questions (arguments and comments are good too).
Overview
Eon will be a real time strategy (RTS) game. It aims to be different from the majoriy of RTS games which have previously been created. The game is primarily focused on gameplay, graphics and sound will be low priority although an important part of the development cycle later on to increase the player-base for the game. We are focused on creating a simple game that can have quite complex ramifications, similar to the games of chess or go where they are 'easy to learn, and take a lifetime to master'.
The goals of this project are:
- create an enjoyable RTS game that focuses on true strategy
- improve our coding skills
- have fun while doing so!
The game will run on Windows, Linux and MacOS X systems. Other platforms will be considered if anyone is using anything else and is willing to port it for us (or failing that donating us hardware). It will use SDL as a base as it is a good cross-platform multimedia library. Hardware specifications will be minimal, however we won't be optimising til much later, so you might need a beefy computer for now to handle our inefficent code.
Eon is an open source project (GPL) and anyone is welcome to work on or help out with it. The code is available from the kruel SVN repository as 'eon'.
A possibility exists for Eon to eventually evolve into a massively multiplayer game with many worlds which people can invade. Also in the second version we hope to add a lot more things such as perhaps terrain, air units, other worlds, weirder shapes for units.
Chunky Stuff
Storyline
We don't really have a storyline for the game as we don't really need one; however if you think of a good story line, feel free to post it or some ideas on the Kruel forums. We don't want any specific sides or conflicts as the game won't have any predefined ones.
Objectives of Gameplay
The object of the game is primarily to wipe out the enemy. If you're in a team-based play mode, then your team has to wipe out the enemy team.
Other objectives are possible such as the "UberUnit" objective (where you have to research and build a unit with lvl X of all stats) or a land control where your units are spread out over a certain % (70?) of the planet with no enemy units being able to penetrate these defences for 10mins.
Modes of Play
There will probably be a few modes of team play: No teams, Locked and free.
- No teams is just simply that.
- CAN'T change alliances (there are none)
- CAN'T interact (refuel, repair etc) with other player units, everyone is hostile towards each other.
- ATTACKS on sight any unit it sees
- In locked team mode, everyone picks sides before the game starts and the game wont start until everyone is happy with the way things are.
- CAN'T change alliances (there are locked)
- CAN interact with allied units only
- ATTACKS on sight non-allied only, refuses to attack allied
- In free team mode, people are free to form and break alliances at will. Some think this will be more fun, as it adds an element of politics to the game, but this is often abused so an amiable solution needs to be formed.
- CAN interact with non-hostile units
- ATTACKS Units marked as hostile, or specific orders to attack non-hostile units
Units and Resources
There is only one resource in this game: energy (and time technically; but time is a resource everywhere so it doesn't really count). This is to keep the game more simple and so people can concentrate more on other things than being pissed off about where to get more of X resource. Most things in the game will take up energy, every unit will use it for moving, attacking, building, etc.
There are no pre-defined units. Each player can create units of whatever stats they wish those units to have. However; the bigger the stats, the longer the time to research and build and the more energy needed. Players will be able to save a set of stats under their own custom names to make things easier (whether they are able to load these "profiles" in other games or not will be a user option).
As you research higher stats the cost and time to build units of lower stats will decrease.
There will be no buildings; rather you could have units with a speed of 0.
Current Unit Stats
| Stat | Description |
|---|---|
| XP | Experience. The more hits/kills a unit gets, the more experience it has. Will probably be used on a per unit basis to bump up the skills during checks |
| HP | Hitpoints/Health. Go down when the unit is hit, when it reaches 0 the unit explodes. |
| SPEED | Movement speed. How fast the unit moves in a specific direction. |
| ATTACK | Offensive weapon power. How much damage the unit inflicts every shot. Damage would probably be worked out something along the lines of attack/target_defense. |
| DEFENSE | Armor type stuff. How good the unit is at reducing the damage inflicted. |
| RANGE | Range for attack. Maybe also use for build/absorb/"sending energy". |
| VISION | Vision range. There will be no stupid option to see the whole map. |
| ABSORB | Energy absorbtion. The speed at which a unit can absorb energy from its environment. |
| CELLS | Energy capacity. Energy stored. When a unit explodes, its explosion is mainly dependant on how much energy it had. ;o) |
| BUILD | Building. The ability and speed at which a unit can build. |
| ROF | Rate of fire. The speed at which the unit shoots. |
| IQ | Intelligence. Will be used in researching new units (and potentially any intelligence checks such as XP gains) |
You should see Formulae if you're interested in some numerical analysis.
We have refined this list somewhat to simplify things. There is no longer any turn-to-shoot issues (these things can discharge in any direction), and there is no 'radar'. You either see the units or you don't.
There will be an option where units can move energy to other units (ie. charging).
Visual Aspects
The game world/playing field will be a 2d plane. Originally we were goint to use a huge sphere of user definable size as this is to make it more interesting with no corners to hide in, but this is a tad ambitious at this stage. There is no planned terrain as yet, that might come in the version two however.
Units will all be spheres. The size of the unit will depend on the stats it has, such as an average of these.
Aural Aspects
We are undecided as of yet on sound effects and music at the moment. Feel free however to make some up/suggest ideas however. It would be nice to have sounds in the game.
User Interface
Possible Unit Actions
Most of the actions are nutted out in common/MessageType.h. Give me a tick and I'll nut it out more fully!
Conclusion
We have a lot more details to work out and this design document is sure to grow as more things are added. We would appreciate anyone helping us out, either in coding, development of ideas (such as the stats and what-not), and possibly even music (procedural?), sounds,and related art. Asking lots of questions to help us clarify this document will help us clarify and expand the game a lot.
Feel free to share comments/ideas/flames/anything in the discussion page of this article on the kruel IRC server.

