APOCALYX is a...

free Game Engine based on OpenGL (MAIL) (SITE) (FORUM) (BLOG)

Tuesday, July 2, 2013

Just a simple APOCALYX 3D Engine tutorial


So you have downloaded the full 64 Mb Windows installer of the APOCALYX 3D Engine. Now you want to learn how to use it.
The engine is distributed with a lot of interesting demos. From their Lua sources you can learn a lot, but also a few lines of simpler code may be helpful.

Thus let's follow this code provided by R. Roswell. This source features a basic tutorial which explains how to start the engine, clear the screen, and sets the update and finalise code.
What are those "start", "update" and "finalize"? Well, it's simple: a Lua script controls completely the game (or generally, the program/simulation) behaviour. An infinite loop is executed continuously and that loop calls an "update" function defined by the developer. Usually a call to some keyboard and mouse control functions is performed, too.

But let's read the source (in red bold style the actual code, while in red italics the Roswell's comments):

The following are functions needed at the start of the script. The actual start of the script is at the bottom of the file. You may wish to read the bottom segment first.
This is used for our group of functions starting with callback.


  callback = {}

  function callback.init()



We set the title of our render window. We then also set the size of our window. This is part of the WIN object.

    setTitle("Tutorial 1: Basic Engine Template")
    setDimension(800, 600)





empty() and emptyOverlay() empty the 3D scene objects and 2D scene objects. These methods are part of the WORLD object.

    empty()
    emptyOverlay()



This removes the partial help menu located on the left hand side during rendering. With the following command it will simply display "F1 Show/Hide Help". If you want to disable the help menu completely use the command hideHelp(). These methods are part of the WIN object.

     showHelpReduced()


This sets the blanking colour of the scene. This is colour fills the screen after each frame. Part of the WORLD object.

     setClear(0.0,0.0,1.0)
  end

  function callback.update()


Here we could move our objects around and take input


  end

  function callback.final()


empty() and emptyOverlay() empty the 3D scene objects and 2D scene objects. This tutorial has no objects but it is always good practice to clear the scene. These again are part of the WORLD object.

    emptyOverlay()
    empty()


  end


This is where the engine actually gets initilised. The render loop is controlled by ApocalyX and you gain control back through the CallBack functions.
What this means is when ApocalyX Engine starts it runs our function callback.init specified in the first parameter.
Before the engine renders its next frame to the screen it also runs our function callback.update specified in the second parameter.
When you close the program or end the scene the engine runs our function callback.final specified in the third parameter. This is used to free up any resources or you might want to save some data.


   setScene(Scene(callback.init,callback.update,callback.final))


Scene is a construct method of Scene object and is used for setScene which is part of the WIN object.

Thank you Roswell for this clear presentation of the main loop of every APOCALYX game.

For more details and the complete source code of this simple example, visit the Tutorial section at the internet address: http://apocalyx.sourceforge.net/tutor-basics-01.php