Overview
The genre of the game is a MMO 3D space RTS. No harm in aiming big with this I think.
The general idea of the game is new players receive a command and conquer style construction planet/ship? And a small solar system with some planets and asteroid belts to mine or something. An open problem is how best to put this player into an existing game, what protection time should they receive etc?
Combat and Movement
The game is effectively an RTS but in real 3D. combat tactics are based on all of your choices for ship building, attack vectors (remember its fully 3D) line of site, etc. It will depend on peoples skills with views, retreat provisions and whatnot.
Another problem is you can't expect people to be online all the time so planetary defences or whatever should work autonomously. People will have to team up to protect resources... Remember how fun attacking people for 'roids was in planetarian and the anticipation as your fighters took 10 hours to get somewhere? Yeah me too :)
Views
The game views will be isometric but the game world will be entirely 3D!! Players will be able to produce certain amounts of units (controlled by some game mechanism to control expansion of a player over a certain limit, usually called Upkeep cost). I think players should be able to create different Views. I think this because say in a combat situation it is hard to control a 3D environment but if you let players set up their own formations and views of the area people will develop a skill for this.
Game progression
The object of the game is to own as much shit as possible.
Progress is governed by your research level, like in Eve (about the only good thing about Eve). For example if you want to build better ships you need to spend time researching Composite Monkey Wrenches or something. Research can be made faster with emphasis on building research colonies, stations, buildings or whatever and goes into a research pool like civ.
The currency of the game could be “Credits” which can be used to buy “Energy” and “Metal” needed to buy things but a massive trading network system would be cool like in wow with the ability to trade for items which help in research. Such as Fury Urks from Ultiron to help develop pilot training or something, you get the idea. Trade prices will be governed by the players, I quite like the idea that a player could develop a trading post somewhere to receive commission on transactions or something but ther would be MVC controlled areas and trading posts.
Another cool idea is the ability to build your own ships. So say you've just developed a rad new engine type through research you should be free to kit it out on all ships of a class or something. This will add more strategy for the game as people develop an idea of what is the most economic type of ship for a stage in the game (say first 3 months, 6 months, 9 months of playing and so on). Upgrading/building ships can be done in ship yards you construct and altering ships changes everything, their max speads, weak points, weapon capacity, etc. Things you could research are hulls, power plants, capacitors/batteries, engines, weapons, missiles/projectiles, scanners, armour plating, etc.
What do you think?
Orakio's general notes
.Technical Thoughts.
Some kind of basic object would be needed that occupies a position on the map. The point here is not some kind of competition to think of what we might need that no one else has thought of but to try to think of everything that would be needed for minimum functionality and to highlight some considerations for those things.
Such that:
Definite...
x,y,z as some kind of integer or float probably depending on what the graphics API uses (from centre of object).
Find collisions function or info about collision data ie type (box, sphere, face, multi) then say for sphere, radius, etc different for each.
Orientation, like position but angle for each axis (x,y,z). Could be floating point 0 to 1, integer/floating degrees or something else.
Who it belongs to as an id of somekind which is a double reference also in the player's "property" list. Some kind of "Gaia" value.
Which sector/solar system it is in.
It's graphical representation although this could be null/nop. So could be variable.
Variable (would be broken into yet another sub class)...
Velocity/speed unless motion is done in a more path finding sense. Provide a move function? Problem is there needs to be some centralisation. I assume they move one by one in serial I mean how else? So move is possible.
May or may not be useful: Some kind of destination (along with current plotted path) that could be used with the move routine. Where current destination!=current position the ship moves towards it on the current plotted path. Path crossing would be an issue and dealt with as it comes. Having if cpos==dpos would be bad really, there should be some tolerance, ie as long as it's within some distance*somerationrelated to ship size.
For collisions:
In a space game such as this it is obvious that it would be best to use a combination of spheres and convex collision models. Note: Hitbox is not a collision structure, it's an application of one or more collision structures. There might be an engine out there that uses the 3d model its self as the collision model. Accurate, but not fast. Sphere to be used where the object is a sphere anyway such as planets, or accuracy is unimportant. Sphere would work for most things. When it comes to projectiles and ships I would have to say that it would be better to ignore sphere at the least for ships unless used first to reduce convex tests which are a thousand times slower than sphere (no really they are). To simplify convex bounding boxes could be used (Christ not hitboxes).
See:http://elitistjerks.com/f15/t22201-hitbox/ http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=1462421&SiteID=1&pageid=0 http://64.233.183.104/search?q=cache:yb_Kw-GnO2QJ:www.director-online.com/buildArticle.php%3Fid%3D1114+bounding+sphere+hitbox&hl=en&ct=clnk&cd=5&gl=uk). http://www.edenwaith.com/products/pige/tutorials/collision.php http://en.wikipedia.org/wiki/Convex_hull http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=10389 http://www.geocities.com/SiliconValley/2151/math3d.html http://mathworld.wolfram.com/Plane-PlaneIntersection.html http://mathworld.wolfram.com/Line-PlaneIntersection.html http://en.wikipedia.org/wiki/Plane%E2%80%93sphere_intersection http://www.cs.utah.edu/~bes/papers/fastRT/paper-node10.html
Bounding boxes work well in FPS particularly not just because they are fairly simple given the accuracy but because having multiple collision structures rather than just one (ie a cylinder, cube, etc works well with moving limbs. However in a space game so the space ships need moving parts like this? What about turrets?
My recommendation would be for now: Spheres would be good for the first pass optimisation but there is a questionable application for ships. For path finding radius would be much easier. IE for ship to ship spheres could be used IF there aren't any outrageously disproportionately dimensioned ships (along the ZYZ). Planets and stars should use a sphere certainly. A box for these is yucky. As a secondary more accurate bounding structure a convex hull could suit ships better than bounding boxes. Although a more complex shape, if things are done plane by plane this could actually be faster due to basically removing the redundant internal faces. Whether one can be used for a ship or not is an interesting question and might vary ship to ship. Further still is the question of addons. I think the hule should have ideally one convex and the same for turrets/movable parts. The more complex collision detection (convex hull) would mostly be used, I suspect for docking at stations or weapons fire.
Possible collision APIS?
Havok ODE Bullet
I'd obviously recommend one that works with python. I'm not sure about havok, but I've heard python can have C/C++ inlined.
There are two big considerations.
The first is the range of collision structures supported. I'd recommend one that supports Spheres (is possible eliptoids too if it improves things), convex hulls and full model hulls (can use the 3d model as the collision box although this is slow it would be nice to be able to change collision accuracy in options). Sphere support isn't as imporant as your can easily do it yourself if you're only doing sphere-sphere intersection with it.
Next big consideration is how it deals with non static scenes. What I mean is imagine this. You run your move routine which works out the ship is moving by 100 units the ship being 10 units in size at the greatest extreme. So you move it by 100 units and run the collisions test. If there was another ship there then it teleported through it and that's just gay. There's quite a few ways of dealing with this and has some ramifications when it comes to path finding. This should be kept in mind.
Useful in general is a library that not just produces true or false but instead some number. For example lets say it does the sphere collision for each thing and works out the distance, you can still use this distance for things other than solid collision. For example you test all the ships against all the planets and stars. If you get the distance and do the true/false part yourself you don't have to work it out twice to apply things like gravity which increases as distance decreses.
You don't need to read too deeply into this, ideally an API will do it here. These are points of consideration to help find the right API.
.Gameplay related.
Some clarifications... I've heard both the terms turn based and RTS, two system that contradict each other directly. So I assume a total war style. This in a way means two different engines. A "war"/RTS engine should be reasonably self contained, more of a child to the turn based part, but more thought needs to be put into designing the turn based aspect and the transition into and out of RTS mode.
Credits, Energy and Metal seem like reasonable resources. Just to explain just I view the economy dynamics as explained: You can make both metal, energy and credits directly. Mining, setting up solar plants near suns, that sort of thing. Then I believe money would be best used for buying things other than metal/energy (ie ready built ships/reserch/facilities). Whether or not metal and energy can be directly traded is up to interpretation but it doesn't need to be. As long as you can both sell and buy metal/energy for credits then you can have one player with too much energy trading with another with too much metal through the intermediate of credits.
Sectors/Solar Systems/Planets? Ideas for this?
A conventional approach is to have each sector as a solar system. It has a sun and some planets. Another system is to have one continuous spread of solar systems with no discernable separation. Presumably the client would fetch the view beyond what is actually shown to the user so that when in motion it's always preloaded.
Further along the line, can players claim planets and if they have all the planets in a solar system can they claim the star?
List of recommended games to look at (either play, wiki, or watch on yourtube, or look at code):
Please add to this and at least wiki them.
Subspace/continuum: Very different but space based. 2D, gives some ideas about how to achieve multiplayer and space items such as black holes. Free, closed source.
Eve: I haven't played this but it seems relevant. Free trial.
Earth 2150: Ground based RTS. Has some interesting examples of how you might use modular units. Earth 2150: Lost souls ois the best. 2160 is crap.
Space Rangers II: An incredible awesome game given it's relative lack of 3D and amazing modern graphics. Awesome game play. To much to say about it here so wiki it.
X2/X3: Basically very similar to Eve but not online.
Spring: Has source code and a space based game, open source so it can be peeked at for multiplayer ideas.
Populous 3: What you say> WTF? Well I just really mention this one because of the way you fight battles on planets. Wiki it but you should know what I mean already. Most games don't give you a spherical map.
Perimeter: Interesting ideas for ground base territorrial RTS.
Imperium Galacticum: Very similar game.
Star Trek Armada II: Despite being start trek this has a surprisingly awesome space based mostly 3D RTS Engine that is surprisingly good.
Star Wars- Galactica battle grounds: I hate star wars, but this game is actually quite good.
Hegemonia: Not really sure is this is good haha, so look into it and see.
Star Dart: Small somewhat crappy but very influenctial game. Free, Java applet (web based).