From 741d2a047579fdd503a32f5ea7a654d7489f5bdc Mon Sep 17 00:00:00 2001 From: RandumKiwi Date: Wed, 2 Apr 2008 00:07:18 +0000 Subject: [PATCH] Cleanup. git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@1729 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- docs/README.xml | 2 +- docs/cubeengine.xml | 69 +++++++++++++++++++++++++++----------------- source/ChangeLog.txt | 3 +- 3 files changed, 44 insertions(+), 30 deletions(-) diff --git a/docs/README.xml b/docs/README.xml index 0c8246ff..db79e51d 100644 --- a/docs/README.xml +++ b/docs/README.xml @@ -75,7 +75,7 @@ Servers - Information on how to set up your own server, administration of servers, running LAN games.
  • - Cube engine - How the cube engine works. + AssaultCube/Cube engine - How the AssaultCube/Cube engine works.
  • diff --git a/docs/cubeengine.xml b/docs/cubeengine.xml index e28b6032..be4beaf7 100644 --- a/docs/cubeengine.xml +++ b/docs/cubeengine.xml @@ -4,54 +4,59 @@ - The Cube Engine + The AssaultCube/Cube Engine -

    How the Cube Engine works

    +

    How the AssaultCube/Cube Engine works

    +

    + AssaultCube is based on the FPS Cube and so (apart from all the changes and also the + backports from Cube2/Sauerbraten) it works in quite the same way as Cube did. +

    Rendering

    - The cube engine is simplicity itself. The whole map consists of a large 2D array of "cubes", + The AssaultCube/Cube engine is simplicity itself. The whole map consists of a large 2D array of "cubes", each with a floor and ceiling height, textures (for floor/ceiling/wall) and other properties. These cubes are grouped 2x2 at a time recursively into a "quad tree", which is used hold bigger cubes which can be rendered faster. For those who have edited doom, this is very similar to - having a lot of square sectors but at overlapping sizes. This is results in a map that can have - no room over room (yet), and is pretty cubic, except for the odd slope/slant here and there. + having a lot of square sectors but at overlapping sizes. This results in a map that can't have + room over room (yet), and is pretty cubic, except for the odd slope/slant here and there.

    The floor size of a single unit (single cube) is similar to about 16x16 units in games such as doom & quake, so a staircase step is usually 1 unit, a wall 8 units high etc.

    - Cube renders this world by first determining which cubes are visible using a "dynamic occlusion culling" + AssaultCube/Cube renders this world by first determining which cubes are visible using a "dynamic occlusion culling" algorithm and frustrum culling. You can see the effect of this when you switch to edit mode (E), and then fly out above a map: you'll see parts of the map dropping away as you move. The remaining cubes are then rendered in their most efficient size (i.e. cube will render a mixture of 1x1 2x2 4x4 etc. size cubes, depending on wether they have the same properties: height, texturing etc.).

    - if you are on a fast machine, or you are playing a simple/small map, cube will simply render all - of these visible cubes (this is indicated by LOD at its maximum of 250 on the hud). Cube can however + If you are on a fast system, or you are playing a simple/small map, AssaultCube/Cube will simply render all + of these visible cubes (this is indicated by LOD at its maximum of 250 on the hud). AssaultCube/Cube can however make complex maps run fast even on slower computers by a technique called LOD: this will render cubes that are further away using bigger approximations (2x2 and up), even the properties of the constituent cubes don't match exactly. This reduces the amount of polys to be rendered tremendously, and thus allows even slow machines to have a consistent frame rate (cube will adapt the LOD figure every frame to aim - for the fps you specify). The downside is of course that if the approximations are visible closeup, this + for the fps you specify). The downside is of course, that if the approximations are visible closeup, this can lead to ugly graphical glitches (this is called "popup" because it changes as you move). So in the - end the choice is up to you: good fps or constant visual quality (most engines only cater for the latter). + end, the choice is up to you: good FPS' or constant visual quality (most engines only cater for the latter).

    Networking

    - You will notice that Cube plays better on a high ping connection than most games out there. - The reason for this is that just about everything in sauerbraten is done clientside, not just - movement (as is common in games today) but also aim (the fat client / thin server model). + You will notice that AssaultCube/Cube plays better on a high ping connection than most games out there. + The reason for this is that many things in AssaultCube/Cube are done clientside, not just + movement (as is common in games today) but also aim (the fat-client/thin-server model).

    The benefits of this are that the effects of lag are minimised, and someone on a 200 ping can compete on an almost even playing field with someone with a 20 ping, the disadvantages are mainly - in that its harder to combat cheating. Further advantages for server admins are that sauerbraten - servers use virtually no cpu, and very little bandwidth for a lot of clients - (you can host a 4 player game on a modem!). + in that its harder to combat cheating. Recently though, AssaultCube has become slightly more + server side to add some cheat prevention into the game, but still does many things client side. + Advantages for server administrators are that AssaultCube/Cube servers use virtually no CPU, + and very little bandwidth, even with a lot of clients (you can host a 4 player game on a modem!).

    It is impossible to completely hide lag however, and these are some of the effects that can still @@ -60,22 +65,22 @@

    +

    Map editing

    +

    + All map editing is done internally within the game itself. Press E to take you into map-editing mode. + Internal map editing promotes easy learning of how to edit maps, as well as co-operative + map editing. It also makes testing the map (using bots, seeing how it looks like within the games environment, etc.) quite easy. + Creating a new map is quite easy, but it takes time to learn the skills needed to create one of fair quality. +

    +

    + More information about map editing can be found here. +

    diff --git a/source/ChangeLog.txt b/source/ChangeLog.txt index febbfe7d..7332d056 100644 --- a/source/ChangeLog.txt +++ b/source/ChangeLog.txt @@ -20,7 +20,7 @@ NEW STUFF! * Voice-coms. * Keybinding using a GUI. Mouse invert support. * Welcome menu that asks for fundamental options to be changed. -* Different ports allowed for servers. +* Customizable ports allowed for servers. * New netcode with various new features and changes. @@ -28,7 +28,6 @@ Feature changes: ---------------- * Sauer bullethole backport. * Map menu shows ALL maps in the maps directory. -* Customisable server ports. * Dropflag support. * Whois command. * Sauer mapsounds backport.