From 2b8b9b2883627ffd6a932e7be1b241509b49c606 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Tue, 11 Nov 2008 14:54:47 +0000 Subject: documentation updates --- doc/GAMEPLAY | 15 +++- doc/ROADMAP | 46 ++++++++---- doc/STORYLINE | 20 +++-- doc/TODO | 113 +++++++--------------------- doc/index.html | 3 - doc/installation.html | 38 +++++----- doc/manual.html | 4 +- doc/models.html | 5 +- doc/style.css | 15 +++- doc/world.html | 199 ++++++++++++++++++++++++++++++++++---------------- 10 files changed, 258 insertions(+), 200 deletions(-) (limited to 'doc') diff --git a/doc/GAMEPLAY b/doc/GAMEPLAY index 38ed95d..15400aa 100644 --- a/doc/GAMEPLAY +++ b/doc/GAMEPLAY @@ -1,9 +1,13 @@ + + ------------------------------------------------------------------ + The Osirion Project - GAMEPLAY + ------------------------------------------------------------------ This document describes what the gameplay of Project::OSiRiON should eventually become. This document is a work in progress and is subject - to change. + to change. Overview @@ -134,7 +138,7 @@ Traveling to gravity wells like a star, they do not like to share their space. Note that is theoreticly possible to fold normal space deep enough into hyperspace to - create a jump holes across galactic scales. It would probably take a generator the size of a + create jumps holes on intergalactic scales. It would probably take a generator the size of a large moon to achieve it. Fleets @@ -154,8 +158,7 @@ Fleets Once the flagship is destroyed, the convoy is lost. The player respawns at base with the flagships and any ships - docked on it while it was destroyed. Other cargo and other ships it - the convoy are lost. + docked on it while it was destroyed. Other cargo and other convoy ships are lost. Planet and Stations @@ -195,4 +198,8 @@ Missions I'd do anything for money, except working. + - Search and Destroy + - Transport / Delivery + - Courier missions + diff --git a/doc/ROADMAP b/doc/ROADMAP index 31f5ed4..f0399d9 100644 --- a/doc/ROADMAP +++ b/doc/ROADMAP @@ -1,9 +1,11 @@ + ------------------------------------------------------------------ + The Osirion Project - ROADMAP ------------------------------------------------------------------ -* version 0.1 - The Universe +* version 0.1.0 - The Universe Description: @@ -19,6 +21,9 @@ Description: fly around and see each other. They can use chat to communicate, they can use private chat or global chat. + Players can dock at a space station or planets. Docking + a jumpgate enables hyperspace travel. + Requires: client console entities @@ -29,31 +34,28 @@ Requires: keyboard bindings zones basic travelling: impulse drive, jump engine + basic docking + basic docking gui ------------------------------------------------------------------ -* version 0.2 - Interaction +* version 0.2.0 - Interaction Description: - Players can dock at a space station, planets or large ships. Docking - a jumpgate enables hyperspace travel for smaller ships. - - Players can shoot at each other. They can crash into the star - or the planet. Player ships explode on destruction. + Players can shoot at each other. They can crash into a star + or a planet. Player ships explode on destruction. Requires: - basic docking - basic docking gui targetting - events: explosions, weapons fire, sounds - weapon support + explosions, weapons fire and related sounds + cannons and turrets turret and cannon models particle systems clip brushes and collision detection ------------------------------------------------------------------ -* version 0.3 - Commodities +* version 0.3.0 - Commodities Description: Players can buy and sell cargo at dockable entities. @@ -68,7 +70,7 @@ Requires: ------------------------------------------------------------------ -* version 0.4 - Equipment +* version 0.4.0 - Equipment Description: Players can buy and sell ship and equipment. @@ -79,12 +81,26 @@ Requires: ------------------------------------------------------------------ -* version 0.5 - Public alpha + +* version 0.5.0 - public alpha + +Goals: + All the general large features of the engine are implemented. + Create a somewhat polished release with a limited universe + to create a platform for bug-fixes. + +Requires: + general polishing + + + ------------------------------------------------------------------ + +* version 0.8.0 - public beta ------------------------------------------------------------------ -* Release 1.0 +* version 1.0.0 - public release Requires: stable network protocol diff --git a/doc/STORYLINE b/doc/STORYLINE index 4824e80..06de127 100644 --- a/doc/STORYLINE +++ b/doc/STORYLINE @@ -1,4 +1,6 @@ + ------------------------------------------------------------------ + The Osirion Project - STORYLINE ------------------------------------------------------------------ @@ -11,7 +13,8 @@ FACTIONS Borderworlds - Colonial Militia + - Colonial Militia + - Drifters Great Houses - House Lindblade @@ -20,6 +23,8 @@ Tsu-Khan Empire + Pirates + ------------------------------------------------------------------ PLACES @@ -31,14 +36,14 @@ Battleship custodian planet Seymour - Regula mining operation - - asteroid field + Regula station - Brogha system planet Brogha Cantor observatory + - Whendune system + HOUSE LINDBLADE @@ -49,14 +54,15 @@ planet Burton Trent outpost + - Dover system LANCE COUNCIL CAPITAL INDEPENDENT WORLDS - - Lantanian system - planet Lantania + - East End + Ensor station BORDERWORLDS @@ -90,7 +96,7 @@ ------------------------------------------------------------------ HISTORY - "History is poetry by those who lie, those who are mistaken, + "History is poetry by those who lie for those who are mistaken and those who do not know" - Tsu-Khan proverb Reach for the Stars diff --git a/doc/TODO b/doc/TODO index a6ebe36..e8893bf 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,30 +1,25 @@ - The Osirion Project - TODO - ------------------------------------------------------------------ -version 0.1: + The Osirion Project - TODO - fix turning (needs more testing) - fix cl_prediction (or not) - zone/entity network interaction (ok) - targetting system (ok) + ------------------------------------------------------------------ - join menu - minor license issues, documentation cleanup - 0.1 build - SVN reorganisation ? +version 0.1.0: + documentation cleanup + + SVN reorganisation + data reorganization -version 0.2: +version 0.2.0: - docking server-client event system, hit-once lightweight entities explosion events weapons fire events model trigger_dock -version 0.3: +version 0.3.0: comodities economy @@ -36,110 +31,54 @@ filesystem: fs_base, fs_mod, fs_game, to be used by modules model: - engine flare key (ok) - split map loader from model (ok) - model fragments (ok) - - support model parts (e.g. func_group, func_rotate, func_door) + shaders + model parts (e.g. func_group, func_rotate, func_door) core: - connection to remote game (ok) - read/write configuration file (ok) - split client and server configuration (ok) - parse command line options (ok) - execute command line options (ok) - globe entity (ok) - refactor 'say', it should not be a game function (ok) - execute config files (ok) - support entity secondairy color (ok) - toggle func to toggle a bool cvar (ok) - - game module loading/unloading (breaks network proto, server must send module type) - zone changes, clear entities (ok) + fix game.ini load/save sequence + improved modules (register factory) network: - UDP datagrams (ok) - buffered sends (ok) - client connection state (ok) - zlib compression (partial) - protocol version in handshake (ok) - rcon framework (ok) - zone changes (ok) - round thrust/speed on 1/100 (ok) - protocol description (incomplete) - private chat (ok) - zone/system chat (requires zones) + zone/system chat group/clan chat (requires groups) rcon authentication, rcon command, servers must be able to disable rcon RSA based authentication (player id) send clients only updates from the current zone/server-side distance check fix lag/client interpolation - rename cl_prediction to cl_interpolation + cl_prediction or cl_interpolation detect and disconnect clients behaving badly EXT messages, update extended property "ext id prop value prop value etc", type checking/seperator etc.. EXT zone/color/shield/armor/health - stable ent/die + reliable network messages (e.g. entity create/die) client: - console chars (ok) - console text color and wrapping (ok) - input handler switching (ok) - key binds (ok) - better crosshair bitmaps (ok) - keyboard repeat (ok) - fix tracking camera (ok) - shift/ctrl/alt modifier key binds (ok) - fast fullscreen/windowed mode switch (ok) - view_next, view_prev (ok) - fix camera frustum clip (size issue, postponed) - tracking camera absolute speed/position - visual feedback on impulse drive + gui concept artwork + +gui: render: - render pipeline (ok) - .map models (ok) - write RLE tga screenshots (ok) - texture registry (ok) - add small camera light (ok) - - test/fix? lighting without sun in zone.ini - sun light strenght + star light strenght sphere texture distortion at the poles - PNG support - impulse drive rendering - -gui: - a gui library with widgets and buttons - convert console and chat to gui + better engine trail (spore style) sound: - engine sounds (ok) - user interface sounds (ok) - entity/event positional sounds - impulse/jump drive sound events + jump drive sound events game: - add impulse drive (ok) - player credits entity health/shield/armor - gui concept artwork - docking - jumpgates (required docking) + data: + update starsystem roadmap rename skies (lindblade1, lindblade2, ...) move ships into subdiretories (colonial/, lindblade/, tsu-khan/, ) - + win32 port: - network (ok) - texture loading (ok) - screenshots (ok) - sound (ok) - directory creation (ok) + pdcurses support diff --git a/doc/index.html b/doc/index.html index 1d6abc1..25edb27 100644 --- a/doc/index.html +++ b/doc/index.html @@ -43,9 +43,6 @@ Content -

- The documentation is divided into several sections: -

You will also need a recent version of gcc, GNU make, automake and libtool. @@ -226,11 +227,9 @@ make GtkRadiant 1.5.0 support files (optional)

- You only need to install these files if you want to create models - with gtkradiant. Note that these files where made for - gtkradiant 1.5.0, they probably won't work with other versions. - You can find precompiled gtkradiant 1.5.0 binaries for linux on my - gtkradiant page:
+ You can skip this section if you do not intent to create to create models with gtkradiant 1.5. + Note that these files probably won't work with other versions. You can find precompiled + gtkradiant 1.5.0 binaries for linux on my gtkradiant page:
http://ingar.satgnu.net/gtkradiant

These instructions assume gtkradiant is installed in the directory @@ -251,11 +250,11 @@ enginepath_linux="

Make sure it points to your osirion data directory. For example, - if you checked out the source code in /home/user/osirion, - then the data will be in /home/user/osirion/data and + if you checked out the source code in /home/yourname/osirion, + then the data will be in /home/yourname/osirion/data and the line should look like this:

-enginepath_linux="/home/user/games/osirion/data"
+enginepath_linux="/home/yourname/osirion/data"
 

Save the changes. @@ -280,33 +279,36 @@ Organization of the distribution index.html Documentation content installation.html Installation instructions (this file) - license.html Copyright license /src C++ source code - /math mathematical classes and functions - /sys low-level system functions - /filesystem filesystem library + /audio audio library /auxiliary auxiliary functions + /client osirion client /core game-independent core library + /dedicated osiriond dedicated server + /filesystem filesystem library /game game-specific functions - /server osiriond dedicated server + /base base game module + /example example game module + /intro intro game module + /math mathematical classes and functions + /sys low-level system functions /render render library - /audio audio library - /client osirion client /data Data files /base game data files - /bitmaps essential bitmaps /ini game world description files /maps game world models /scripts gtkradiant shader files /textures game world textures - /gtkradiant gtkradiant support files +

diff --git a/doc/manual.html b/doc/manual.html index d1d1781..bb35f07 100644 --- a/doc/manual.html +++ b/doc/manual.html @@ -10,7 +10,9 @@

The Osirion Project - User manual

- +

+ Note: the manual is outdated. +

Client

diff --git a/doc/models.html b/doc/models.html index 9e03330..8499650 100644 --- a/doc/models.html +++ b/doc/models.html @@ -253,6 +253,9 @@ shooting guns.

target_turret will create an attachment point for turrets. Turrets point upwards or downwards. - +

+ diff --git a/doc/style.css b/doc/style.css index e545e11..743e366 100644 --- a/doc/style.css +++ b/doc/style.css @@ -14,27 +14,38 @@ body { a { color: #b38700; + text-decoration: none; +} + +a:hover { + text-decoration: none; + font-weight: bold; } h1, h2, h3 { - margin-left: 16px; margin-right: 32px; width: auto; } h1 { + margin-left: 16px; margin-top: 32px; font-size: 18pt; border-bottom: 1px solid #000000; } h2 { + margin-left: 32px; margin-top: 32px; font-size: 14pt; border-bottom: 1px solid #000000; } +h2.navigate { + text-align: right; +} h3 { + margin-left: 64px; font-weight: bold; font-size: 12pt; } @@ -56,7 +67,7 @@ td { } td.wide { - width: 96px; + width: 156px; } td.narrow { diff --git a/doc/world.html b/doc/world.html index 8e91ce5..82908dd 100644 --- a/doc/world.html +++ b/doc/world.html @@ -15,19 +15,20 @@ world description from ini/world.ini and a list of buyable ships from ini/ships.ini. These ini-files are plain text files that can be edited with any text editor. -

+

The world description files are server-side. This means that editing your local copies will not affect the world when you connect to a remote server. Someone connecting to your server will also receive your modified world. -

- I recommend you do not edit the original game data, but to make a copy - into your personal osirion directory. The files found in this directory will +

+ I recommend you do not edit the original game data, copy the files you want + to edit toyour personal osirion directory. The files found in this directory will get precedence over the original game data. Your modified files will be used and the original files can still be updated when a new version is available. -

- On Linux your personal osirion directory is ~/.osirion. On windows, your - personal osirion directory is the home subdirectory of the main distribution. - +

+ On Linx and other Unix-systems your personal osirion is a hidden directory called + .osirion in your home directory. On windows, your personal osirion directory + is My Documents\My Games\Osirion. +

File structure

@@ -36,29 +37,32 @@ Every section starts with a section name enclosed in square brackets and contains a list of value=key pairs to describe the properties for the current section. Lines starting with a semicolon are considered comments and are ignored. -

- For example, a section planet describing an iceworld: +

+ For example, a section planet describing a planet called Seymour: +

+
-; The iceworld, a very dark and cold place
 [planet]
-label=iceworld
-name=The World of Ice
-radius=32
-texture=planets/iceworld
+label=seymour
+name=planet Seymour
+location=-128 1024 -32
+color=1 .9 .5
+texture=planets/seymour
+radius=68
 

- world.ini + World

- The world.ini file contains a list of zone labels. A zone is a seperate compartment in the gameworld, + The file world.ini contains a list of zone labels. A zone is a seperate compartment in the gameworld, like a solar system or a remote sector in space. It contains a single world section containting multiple zone keys. +

- [world] + [world]

- @@ -67,31 +71,32 @@ texture=planets/iceworld
zone =

- Note: a label can only contain lowercase letters, numbers and underscores. Any other character is deleted. - This applies to any in-game label in any .ini-file. - + Note: a label can only contain letters, numbers and underscores. Any other character is deleted. This applies to any label in any .ini-file. +

-; a world.ini example with two zones
+; a world.ini with two zones
 [world]
-zone=solarsystem
-zone=remotesector
+zone=ghant
+zone=brogha
 
+

- zones/label.ini + Zones

Each zone has its own zone description file. The actual name of the file depends on the zone label. - If your world.ini contains the line zone=remotesector, the content of the zone with - the label remotesector would be described in the file ini/zones/remotesector.ini. -

+ If your world.ini contains the line zone=ghant, the content of the zone with + the label ghant would be described in the file zones/ghant.ini. +

The .ini-file containts a list of objects populating that zone, and the basic properties of those objects. In the context of the engine, such an object is called an entity. +

- [zone] + [zone]

-

Every zone description file has a zone section describing a few of its basic properties: +

@@ -109,25 +114,24 @@ zone=remotesector
name =mark this zone as the default zone for the game, only one zone can have this key set to yes, can be omitted elsewhere
+
-; remotesector.ini
-; zone description file for the Remote Sector
-[sector]
-name=Remote Sector
-sky=sky_texture
-default=no
+; ghant.ini
+; zone description file for the Ghant system
+[zone]
+name=Ghant system
+sky=sky12
+default=yes
 
+

[entity]

- Entities come in two flavours: basic geometrical shapes and entities with models. Both have a similar - definition and set of properties. A simple entity is considered decoration by the engine and won't change - direction or location. -

- Every in-game entity should have a label key. If the entity in question is going to be used as a base, - or any object the could be referenced in possible scripting, it should have a unique label. The label - should be lowercase and not contain spaces. A player-friendly name can be provided through the name key. + You can add several entity sections to define the objects occupying your zones. Entities come in two flavours: basic geometrical shapes and entities with models. Both have a similar definition and set of properties. A simple entity is considered decoration by the engine and won't change direction or location. +

+ Every in-game entity should have a label key. If the entity in question is going to be used as a base, or any object the could be referenced in possible scripting, it should have a unique label. The label should be lowercase and not contain spaces. A player-friendly name can be provided through the name key. +

@@ -140,8 +144,10 @@ default=no
label =the in-game name of the entity
+

Set the shape key to define a basic geometrical shape: +

@@ -166,6 +172,7 @@ default=no
shape =

The size of the entity can be set with the radius key: +

@@ -179,8 +186,8 @@ default=no

- An entity with a model can be created by setting the model key. The radius of a model is automaticly - calculated: + An entity with a model can be created by setting the model key. The radius of a model is automaticly calculated: +

radius =
@@ -192,8 +199,8 @@ default=no

The color key sets the primary color of the entity. This color will be used to draw the entity in case of a geometrical shape, or to draw model faces that have the common/entity texture. The default entity colour is white. -

The colorsecond key can be used to set the secondary color of entities with a model. +

model =
@@ -207,6 +214,8 @@ default=no
color =

The location sets the in-game position: +

+ @@ -216,8 +225,9 @@ default=no
location =

1 game unit on the x, y, or z-axis translates to 100m in-game. -

+

Orientation can be set thought the direction, pitch, and roll keys: +

@@ -237,9 +247,9 @@ default=no
direction =

An example of an entity with a basic shape: +

-; The Galactic origin
 [entity]
 label=origin
 name=Galactic origin
@@ -252,41 +262,95 @@ color=1 1 0
 
 

An example of an entity with a model: +

-; Alexandria outpost
 [entity]
+label=ikarus
+name=Ikarus satellite
+model=satellites/ikarus
+; blue
+color=100 100 230
+location=64 0 0
+direction=120
+pitch=15
+
+ +

+ [station] +

+

+ A station section defines an entity that can be visited by a player. This section + can contain the same keys as the entity section, but the entity will be marked as + dockable and the player will be able to target it for docking. +

+

+ The engine will load the stations menu descriptions from the file zones/zonelabel/entitylabel.ini. + For example, if your zone has the label ghant and your entity has the label alexandria then + the engine will try to read zones/ghant/alexandria.ini. Read the section on entity menus for more + information. +

+ +
+[station]
 label=alexandria
 name=Alexandria outpost
 model=stations/alexandria
-location=-116 -68 16
-direction=315
-; light brown
+location=-192 -704 32
+; brown
 color=222 192 145
+direction=45
 
+

+ [jumpgate] +

+

+ TODO +

+

+ [jumppoint] +

+

+ TODO +

[navpoint]

- Space is a big place. Navigation points can help players to find their way around. + Space is huge and barren wastland. Navigation points are an easy way to provide players + with landmarks. The default navigation point is a diamond-shaped entity. +

 [navpoint]
-label=navpoint_north
-name=Navigation point North
-location=1024 0 0
+label=navpoint_east
+name=Navigation point East
+location=716 -1008 20
 
+

[planet]

A planet is spherical entity with a texture. and a default radius of 64. The planet globe will - be rendered with lighting enabled. + be rendered with lighting enabled. A planet can be marked as dockable. In this case it can be + visited by a player and menu descriptions will be loaded. +

+ + + + + + + + + +
texture = [string] name of the planet texture in textures directory
rotationspeed =[float]rotation speed in degrees per second
dock =[bool]set to true to create a planet the players can visit
@@ -295,6 +359,7 @@ location=1024 0 0
 label=iceworld
 name=The World of Ice
 texture=planets/iceworld
+rotationspeed=1
 ; a grey-blue colour
 color =0.5 0.5 0.8
 
@@ -307,25 +372,35 @@ color =0.5 0.5 0.8 will be rendered fullbright and serve as the main source of light for the current system. At the moment only one system light source is supported. If you define multiple stars, the last one will serve as light source. Stars can have a texture. +

+
+; a yellow star
 [star]
 label=whitedwarf
 name=White Dwarf
-; light yellow
 color=1.0 1.0 0.9
+radius=96
 

- ships.ini + Ships

- Definition of the shopping list. - + TODO Definition of the shopping list. +

+

+ Entity menus +

+

+ TODO +

Textures

The engine supports textures in the TGA, PNG and JPG file formats. The filename extension should be lowercase and the texture should be in 24bit RGB or 32bit RGBA format. +

-- cgit v1.2.3