OpenArena User’s Manual v0.1.0

 

Table of Contents

 

1.         Introduction

            a.         What This Is

            b.         What This Is Not

            c.         Version History

2.         Legal Stuff

            a.         Legal Notices

            b.         Copyright Information

            c.         Suggested Proper Uses

3.         How To Use the SDK

4.         Us

            a.         Contact Information / Who Did What

            b.         Why I Started This Project

5.         Files

            a.         Format of the .map file

            b.         Format of the .cfg file

6.         Notes on the Source Code

            a.         Mistakes I Plan To Do Something About

            b.         Mistakes I Plan To Do Nothing About

7.         Changes to this manual

            a.         Versions

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.         Introduction

 

1.a.      What This Is

            OpenArena is a 3D rendering engine.  It is suitable for any type of game, but can be used for anything that requires 3D Rendering.

 

1.b.      What This Is Not

            OpenArena is not a game in itself.  I PLAN to distribute some sample games as well.  OpenArena is not opensource software.  It is available under the QTPL a copy of which is attached.

 

1.c.      Version History

            0.0.1-alpha

                        First Version

                        Loads a map from a file and then renders from the origin.

            0.0.2-alpha

                        Beginning of movement code.

            0.0.3-alpha

                        Added prelim texture support.

            0.0.4-alpha

                        Better movement code.

            0.0.4.1-alpha

                        More movement code (mouse look) still haven't gotten strafing done yet.

            0.0.5-alpha

                        Added support for control config files for controls implemented so far.

            0.0.6-alpha

                        If only I could remember.

            0.0.7-alpha

                        Added the ability for map files to specify textures to load and which textures go with which triangle.

            0.0.8-alpha

                        Added the ability to load lighting information for an infinite amount of lights from a .lit file.

            0.0.9-alpha

                        Fixed control loading.

                        Modified default tom4.map file to add 2 more sectors(rooms) to test multiple sectors.  Until now we had never tested a map with more than one sector.

            0.0.10-alpha

                        Completely overhauled control loading. (technically a little faster now)

                        Added strafing.

                        Added mouselook, movespeed, turnspeed, and mousespeed (sensativity) to the config file

                        Changed textures in the sample maps.

            0.0.11-alpha

                        Added support for setting the screen resolution in the config file.

                        Added togglemouselook and quickmouselook keys.

            0.0.12-alpha

                        Moved all code from the CONTROLS class into the LEVEL class.

                        Moved the LoadBMP function into the LEVEL class.

                        Moved the texutre array into the LEVEL class.

                        Added left right and middle mouse buttons as viable config keys (mouse1 left, mouse2 right, mouse3 middle)

            0.0.13-alpha

                        Added maxfps param to config files.

                        Added colordepth param to config files.

                        Added fullscreen param to config files.

                        Added map param to config files.

                        Added nextLevel to LEVEL class.  This should allow to have a series of maps be determined from some other config file later on ie. a maplist file.

            0.0.14-alpha

                        Changed textures to targa files for now only 24 and 32 bit uncompressed images are supported but more variety will come as will the return of bitmaps.

            0.0.14.1-alpha
                        Added support for compressed targa files.

            0.0.15-alpha

                        Added first command line switch "+set" with it's first parameter game.  This changes the directory oa loads data from (will make it also look in the oa folder later and add xgame that only looks in this folder).

            0.0.16-alpha

                        Added support for .bmp textures.

            0.0.17-alpha

                        Minor internal tweaking can’t remember exactly what though.

            0.0.18-alpha

                        Major tweaking to movement and rendering although there isn’t apparently any discernable changes while running but greatly improved code readability.

            0.1.0-alpha

                        Complete rewrite of ingame controls.

Complete rewrite of level loading code.

Complete rewrite of config loading code.

New map file format.

New cfg file format.

Added support for saving a map file.

Added support for saving a cfg file.

Removed lit file.

Removed ent file.

Temporarily removed support for lights (they will be back soon).

(coming soon)

                        Added support for .md3 models.

                        Compression some type of package system probably zip or rar.

                        Camera/World Collision.

                        A test weapon.

                        A test target ie. Bot with no AI just change color or something when hit.

                        3D sound and other sounds

                        More/real background music

 

2.         Legal Stuff

 

2.a.      Legal Notices

            This software is provided without any warranty of any kind not even that of merchantability or fitness for a particular purpose.  I take no responsibility for any damages to anyone or anything resulting from the use or possession of this software.

 

2.b.      Copyright Information

            This program can be distributed under the GNU GPL with the following exception. I want to make this multiplayer compatible later on.  So any modifications that have anything to do with encryption or netcode don't have to be opensource as long as a copy of the source is sent to me to peruse and possibly add to the program (with applicable credit given).  Other than that OA will be open source hence the name.  Alternatively you can redistribute OA under the QTPL.

            If you would like to modify the source code all I want you to do is make the new source available including giving me a copy either by e-mail headhunter45@hotmail.com but I have the inbox protector on so make sure the subject line has OpenArena in it preferably even just OpenArena as a subject this is only necessary the first time or two you e-mail me so I can add you to my address book.

            The following textures are used with permission from Texture Station at http://www.nepthys.com/textures moon2.bmp, ground.bmp, nightSky.bmp.  The names have been changed.

            Some of the audio loops used to create the background music came, royalty free, from http://www.beatmode.com and Creative Power.

 

2.c.      Suggested Uses

            Make the next greatest first person shooter.

Make a really cool RPG.

 

3.         How To Use The SDK

            I.          Take my code.

II.         Modify it if necessary.

III.       Create your own media ie textures, music, maps.

IV.       Distribute.

V.        Repeat.

 

4.         Us

 

4.a.      Contact Information / Who Did What

            G2k, headhunter45@hotmail.com put OpenArena in the subject or I'll never see your message.

 

4.b.      Why I Started This Project

            I got bored one weekend and couldn't find my quake3™ cd.

 

5.         Files

 

5.a.      Format of the .map file

 

“//” denotes a C++ style comment in this description, but there are no comments in the .map file at all.

Blank lines and organization are for readability purposes only.

 

1          //Gravity not implemented yet

4          //Number of triangles in the map

 

//First triangle

1          //Texture for the first triangle

//Verticies of this triangle  u and v are texture coordinates

// x        y       z       u      v

-10.0  -1.0  -10.0   0.0  0.0

-10.0  -1.0   10.0   2  0.0

-10.0  10.0   10.0   2  1.1

//The normal for this triangle in x, y, z format will take out later

1.0 0.0 0.0

 

//Second triangle

1

-10.0  -1.0  -10.0   0.0  0.0

-10.0  10.0  -10.0   0.0  1.1

-10.0  10.0   10.0   2  1.1

1.0 0.0 0.0

 

//Third triangle

1

 10.0  -1.0  -10.0   0.0  0.0

 10.0  -1.0   10.0   2  0.0

 10.0  10.0   10.0   2  1.1

-1.0 0.0 0.0

 

//Fourth Triangle

1

 10.0  -1.0  -10.0   0.0  0.0

 10.0  10.0  -10.0   0.0  1.1

 10.0  10.0   10.0   2  1.1

-1.0 0.0 0.0

 

3          //Number of textures

groundc.tga      //Texture filenames all in the gamedir/textures folder.  Bmp and tga textures are allowed.

moonc.tga

nightSkyc.tga

 

bgm2.mp3        //Background music file cda1 specifies the first cd-audio track in the first cd-rom drive cda2 the second and so on.

 

5.b.      Format of the .cfg file

            <command> <param 1> <param 2> … <param n>

            One command per line separated by any amount of whitespace.  WARNING!  The parser treats newlines as whitespace but does not require a newline to separate a command.  This may change so stick with this format.  The parser does not like syntax errors.

           

6.         Notes On The Source Code

 

6.a.      Mistakes I Plan To Do Something About

            Almost nothing is properly commented. (I’m working on this … slowly … kinda)

            Really really bad organization and nonuniform nameing conventions.  (This is getting better though.)

 

6.b.      Mistakes I Plan To Do Nothing About

None so far.

 

7.         Changes to this file

 

7.a.      Versions

 

            v0.0.1

                        Origional Version

            v0.0.2

                        Reorganized a few things

            v0.0.3

                        Updated contact information and added an update for OpenArena v0.0.18-alpha

            v0.1.0

                        Made version numbers of this file match OpenArena release versions.

                        Updated file description sections.

                        Made section headings bold.

                        Removed sections 5.b and 5.c and renamed 5.d to 5.b because those files are no longer used.