Monday, March 02, 2009

Learning NeoAxis to create a simple RTS Game

The purpose of this blog is list down my learning journey of NeoAxis (version 0.57) from zero to completing my game project during the period from 1 Oct to 31 Dec 2008. 

Make a new type of GameCharacter

Refer to Wellu's 3D Game Creating Madness - MilkShape to NeoAxis.  Instead of generating the mesh from MilkShape 3D with the Ogre exporter, I used the Ninja mesh that comes with Ogre SDK. 

Create a new folder "ninja" into Game\Bin\Data\Types\Units.

Locate the following files from Ogre SDK media folder and copy them into the newly created folder:

- ninja.mesh

- ninja.skeleton

- nskingr.jpg

Follow the instruction from the above tutorial, starting from "Open up NeoAxis Resource Editor. Create a new folder and add a new Entity type called Soldier.type. Select GameCharacter as the base class of your new type."   In our case, the folder has already been created earlier.

At the end, the result of our effort is as follows:

image

Create the Static Geometry

In window explorer, look into the following folder: Game\Bin\Data\Maps\RTSDemo\StaticGeometry

image

Using mesh viewer, we are able to observe that Data.mesh is the background terrain used in RTSDemo.  Instead of creating our terrain using external editor or the inbuilt terrain editor, we shall use the existing terrain already created in the RTSDemo.

In Map Editor, create a new empty map "gang01".

In window explorer, copy the StaticGeometry folder from RTSDemo into gang01 folder.  Rename the two files accordingly as gang01back.mesh and gang01back.highMaterial.

image

Open gang01back.highMaterial using any text editor and change the first line from "highLevelMaterial RTSDemo" to "highLevelMaterial gang01back".  Save and exit.

In Resource Editor, open the Maps > gang01 > StaticGeometry> gang01back.mesh and in the property window, change the MaterialName to point to the gang01back.highMaterial. 

Save and exit.

image 

In the Map Editor, in the Entity Types window choose General > StaticMesh.  A new window "Entity Creation" will appear:

image

Select Maps\gang01\StaticGeometry\gang01back.mesh. 

In the Layers window, add a new staticGeometry layer:

image

In the property window, adjust the mesh properties:

- Layer: staticGeometry

- Position: 0  0  0

- AllowDecals: All

- SplitGeometryPieceSize: 30 30 30

Save and exit.

Duplicate RTSDemo into gang01

In Map Editor, open RTSDemo and save the map into gang01 folder, replacing the map we created above.

Exit.

Open the Maps\gang01\Map.map using text editor and modify the following line to use the staticgeometry created above.

From

meshName = Maps\RTSDemo\StaticGeometry\Data.mesh

To

meshName = Maps\gang01\StaticGeometry\gang01back.mesh

Logic Editor

Just to leave a note here that for RTSDemo, the logic editor is not used and all the classes used in the game are created in C#.

Open the Logic Editor from the Map Editor:

image image

Explore RTSDemo Entities

Open the Maps\gang01\Map.map using text editor and go through the files.  There are altogether 16 different type of Entities used:

Stone
StaticMesh
SpawnPoint
RTSRobot
RTSMine
RTSHeadquaters
RTSGridPathFindSystem
RTSGeyser
RTSFactory
RTSFactionManager
RTSConstructor
PipeDirect4
PipeCorner
Palm
LogicSystemManager
Light

0 comments: