APOCALYX is a...

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

Saturday, April 23, 2016

Friday, July 18, 2014

YouDev.it about apps & games development

The Apocalyx 3D Engine is adopted as the main development tool at You Dev .it a new site devoted to tutorials about apps and games programming. There are sections about 3D Games programming, 2D Games programming, Text Games programming and more.

The 2D section adopts the TooDee Engine, while the tutorials about text adventures (interactive fiction) use the Inform 7 IF Design System.

To visit the site, follow this link: http://youdev.it

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

Monday, August 17, 2009

Fleet Viewer



The new MekaWars' Fleet Viewer

Sunday, January 18, 2009

MekaWars meets Gun-Tactyx

Yesterday I cited the space marines that populate the starships during battles.

Space marines defending the
central area of a module

My idea was to develop the MekaWars control unit system (as you may already know, in MekaWars the players develop the AI of their units - that's how MekaWars is meant to be played) and recycle it for Gun-Tactyx-2 (that is the sequel of Gun-Tactyx).
Then, recently, I had a more interesting idea: why don't merge the two projects? This brought to an additional mechanic of the game.
During starship battles, hits can destory a unit (producing wreckage that is going to be collected), but starship modules can't. The latter are only disabled, but hulls may be robbed of their resources (up to a certain percentage).
The additional mechanics is: before materials can be brought away from a module, a space marine unit must assault it and defeat the defending troops. Here is where the Gun-Tactyx fight-style comes in.
You can imagine hard fights between starships and, at the end, you'll see assault units moving to the modules; then the attention is focused on the inner corridors of the modules, where attackers fight the defenders (as in the initial scene of the first Star Wars movie) to steal the contained resources or the whole module.

Space marine on an assault
unit waiting for the attack

Saturday, January 17, 2009

MekaWars' dungeons

The starships concept included in MekaWars was extended and improved. Additional modules apart (research module to develop the projects from which devices, units and ships are designed; factory module to effectively build devices, units and new modules), the ships have now got a crew.
I'm not talking about the pilots of units or the captains of the ships (or even the admiral that commands the fleet), but there are also the space marines that defend the ships from outer attacks.
I'll descibe them more deeply tomorrow. For the moment give a look to the starship's corridors.

Starship's corridors

Friday, January 16, 2009

MekaWars' stellar systems

Yesterday I talked about the Galaxy. Today is the time of stellar systems.

The star, one planet with a moon
and a fleet exiting the hyperspace

Each sector of the Galaxy contains a stellar system. The prototype of the system is given by a star, with several planets, each with its moons.
The asteroids rich of resources will be located in that environment, so the units must scan the space to avoid the star, planets and moons and look for asteroids or enemy units.
I already told of a different combat system. One of the differences is: once a unit (fighter, harvester, exoskeleton etc.) is destroyed its deviced will be available as wreckage, after the explosion. Special units will look for that wreckage to collect it and bring it to the fleet hulls. Then such devices will be used to assemble other units or sold to other players.
Some ship will mount research modules and factory modules to build units, but collecting devices from enemy players will save a lot of energy and resources.