Saturday, April 23, 2016
Friday, July 18, 2014
YouDev.it about apps & games development
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
Sunday, January 18, 2009
MekaWars meets Gun-Tactyx
central area of a module
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.
unit waiting for the attack
Saturday, January 17, 2009
MekaWars' dungeons
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.
Friday, January 16, 2009
MekaWars' stellar systems
and a fleet exiting the hyperspace
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.