Creating games made easy

FantomGL - Creating games made easy

fantomEngine Tutorial: Handling the virtual Canvas

In these days, you will face yourself with an army of devices your game will be run on. As these devices have all kinds of screen (canvas) sizes, you need to adjust your game content so it will be displayed properly. For an example, your game GUI needs to be placed according to the screen estate. Of course there are several ways to do it. One way is designing your game to a fixed resolution and let your engine convert the position of graphics, the touch and mouse input, the movement calculations automatically through scaling.
Your game will then function on any device, no matter if it has a resolution of 1024×768, 480×854 or whatever the manufacturer came up with.

fantomEngine for Monkey X: Virtual Canvas System

fantomEngine for Monkey X: Virtual Canvas System

Continue reading

fantomEngine v1.56 released

Hello fellow fantoms,

for your pleasure I have uploaded version 1.56 of your favorite game framework for Monkey-X. Biggest features in this release are the support for multiple tilesets in Tiled maps, automatic pooling of objects and the ability to use custom objects with every basic object type now.

fantomEngine for Monkey X: MultiTileSet map

fantomEngine for Monkey X: MultiTileSet map

So grab the new fantomEngine from the download section.

But here is the list of changes:

New functionalities

  • fantomEngine now automatically pools ftObject.
  • New method ftObject.GetColor:Float[]() – Returns the color of an object in an array
  • You can use custom objects now with basically all type of fantomEngine objects.
  • Added GetCam:Float[](), GetCamX:Float() and GetCamY:Float() methods to the ftEngine class.
  • When returning TRUE from ftEngine.OnObjectTouch, no further touch checks are performed this frame.
  • When returning TRUE from ftEngine.OnObjectCollision, no further collision checks of this object are done in this frame.
  • Use ftObject.GetTileMap:ftTileMap() to return the ftTileMap object of your ftObject.
  • fantomEngine now supports Tiled maps with multiple tilesets.


  • fixed constant ftEngine.otPivot which caused points not to be rendered since version 1.55.
  • fixed Platformer example which didn’t show the whole screen anymore.
  • fixed ftObject.CheckTouchHit when object has the touchmode ftEngine.tmBox and was rotated.


  • Cleanup sources from Print statements.
  • Changed all Error messages to only be checked and shown in DEBUG mode.
  • Moved ftObject tilemap properties and duplicate methods into the new ftTileMap class.
  • ftEngine.TouchCheck:Void(touchID:Int=0) will now check the layer in the backwards order. The last created layer (the top one) at first.
  • Changed all ftObject._internalPointInside… methods so the check includes the borders of an object too, not only inside the object.

New example

  • Objects/Creation/PoolingObjects/PoolingObjects.monkey
  • TileMaps/EndlessMap/EndlessMap.monkey
  • TileMaps/Tiled/MultiTileSets.monkey