G'day all,

Firstly, please indulge me the opportunity to introduce myself to you 
all. I'm a work colleague of mithro's. I have taken an interest in this 
project since I've been in the process of trying to write my own 4X game 
for nearly 20 years. I've had to restart a few times for a variety of 
reasons, and with the latest attempt I got to starting on the universe 
generator system of it. Mithro suggested that I take that task on within 
the tp community instead, and use tp as the engine for my game. I think 
that's a good idea!

So, that's what this e-mail is really about. I'd like to canvass 
opinions as to what to include within the universe system and how to 
represent it.

My overall idea of some required attributes and structure is something 
like the following (this would look nicer if done with a UML tool 
graphically, but I'll limit it to text to save some space and also to 
allow you all to insert comments!) - please note that I'm trying to be 
very generic here to accommodate a wide variety of game structures:

Absolute top level is the Multiverse.

Multiverse contains:
    1 or more Universes

Universe contains:
    1 or more Galaxies
    an identifier
    an optional physics engine
    an optional list of connection points to other Universes, with a 
corresponding format for that connection

Galaxy contains:
    1 or more Systems
    1 or more Nebulae
    1 or more dust clouds
    a name or identifier
    position/velocity information for the physics engine
   
System contains:
    1 or more Orbital planes
    a name or identifier
    position/velocity information for the physics engine

Orbital planes contain:
    1 or more Stars
    1 or more Planets
    0 or more starbases
    position/velocity information for the physics engine

Stars contain:
    Colour
    Temperature
    Density
    Stability
    Type
    Radius
    identifier

Planets contain:
    Game-related data (population? industrial items? 
shipyards/starbases/etc.? Occupying players?)
    Identifier
    0 or more moons
    Physical attributes (e.g. radius, density, atmospheric contents, 
surface contents, indigenous life forms, etc)
    Description string

Moons contain:
    Game-related data (population? industrial items? 
shipyards/starbases/etc.? Occupying players?)
    Identifier
    Physical attributes (e.g. radius, density, atmospheric contents, 
surface contents, indigenous life forms, etc)
    Description string

Starbases contain:
    Game-related data (population? industrial items? 
shipyards/starbases/etc.? Occupying players?)
    Identifier
    0 or more moons
    Physical attributes (e.g. radius, density, atmospheric contents, 
surface contents, indigenous life forms, etc)
    Description string
(in other words, starbases are like miniature artificial planets)

My idea is that individual games be able to specify planet (and moon and 
starbase) attributes via the ruleset, along with an identifier as to the 
type of attribute required. So, it might be an integer, with a maximum 
value. This would be stored in some kind of hash table via the attribute 
identifier, along with some mechanism of the game knowing what to do 
with the attribute.

Because not all games are likely to support parallel universe kind of 
structures, or even multiple galaxies (the game I've designed does, 
which is why I want to go to that level), I'm proposing that the ruleset 
specify the top-level that is needed. So, for the RFTS emulator, you'd 
just need 1 galaxy as the top-level.

Parallel to all this is the arrangement of maps. Is the game 2D or 3D? 
If it is 2D, is the map wrapped around or is it a flat plane? For 
parallel universes, we could make it so you can actually define these 
things on a universe-by-universe arrangement, so you can have some 3D 
universes, and others 2D on a toroid or sphere surface, or whatever.

Of course, parts of this are going to be quite complex, while the actual 
structure seems to me to be really rather straight forward. One of the 
key architectural requirements may be that for the physics engine(s) we 
may need to hook in a script or something, rather than defining it all 
within the game - so we'd be developing an API for game writers to plug 
their modules in.

Please feel free to let me know what you think of all of this - 
including the data structure outlined above.

Thanks,
Jason

-- 
Jason Wandel            [EMAIL PROTECTED]

I'm going green: whenever I get an idea from now on, I'll have an energy
              saver light come on over my head.
              That'll keep Malcolm Turnbull happy!

_______________________________________________
tp-devel mailing list
[email protected]
http://www.thousandparsec.net/tp/mailman.php/listinfo/tp-devel

Reply via email to