Login | Register       

Every time a new version of SIO2 engine is released and made public, the documentation can be found online at http://api.sio2interactive.com, however please take note that this documentation is constantly updated for paid members as the SIO2 engine evolve, and is available to them for offline consultation.

Theses docs contain all the most up to date information about the current version API of the engine, and is a unmatched source of information for all SIO2 developers as it continue to grow based on the users requests and forum questions.

This is all the Tutorials available with the SIO2 Engine SDK, browse through the list of tutorials below to learn more about the features and capabilities demonstrated for each tutorial as well as how to operate them.
  • All tutorials are located under /SIO2_SDK/tutorials directory, to compile and run them, simply double click on the project file for your current platform, then build and run. To compile the project under Eclipse (for Android users) please refer to the Getting Started Manual for more detail.

  • Please take note that all tutorials have been optimized to work at a rate of around 24fps on a 320x480 display on a clean vanilla iPod Touch 2nd Generation running running iOS and on a Android Nexus. Depending on your device and configuration performances, and graphic dimensions may vary.

  • Depending on the device hardware that you are targeting, version of the OS and the workload of the system the frame rate of theses tutorials may also vary.

  • The SIO2 SDK tutorials also assume a default scale of an iPod Touch / iPhone / Android device with a screen display of 320x480 with a valid 4:3 ratio, in consequence not all graphics and interface have been resized to fit with all screen resolution.

  • If you are developing on iOS and want to run the tutorials using Retina Display, please consult the 00_template.pdf that you can find under the /SIO2_SDK/tutorials/00_template directory for more information.

  • Most of the tutorials are using the powerfull PVR texture compression for performance reasons. The OpenGLES extension GL_IMG_texture_compression_pvrtc is available on all Imagination Technologies GPU. Please take note that not all Android devices are running on this type of GPU and you might experience while running some tutorials some missing texture. To remedy to this problem simply save back the .PVR to a valid .PNG or .TGA, relink the texture inside the scene file (.blend) then export the scene again.

All the videos on this page have been optimized for web streaming and encoded with fixed keyframes and bit rate, and does not represent the performance that you will get on your device or simulator, they are there for demonstration purposes only.

Video Preview


This tutorial show how to do a basic initialization of SIO2 and GLES.

Please take note that this tutorial use the default OpenGLES template of the iOS SDK and make it run using SIO2.

Definitely the place to start in order to understand how SIO2 bridge with GLES, and how you can mix GLES code with SIO2.

Video Preview

Hello World

Your first 3D scene, a Camera, a Lamp and a Cube using a material that receive dynamic lighting using the default lighting model provided by OpenGLES.

Video Preview


This tutorial demonstrate how to deal with colors using either vertex color, multi vertex color, material color or multi material color, and show you a quick preview of the type of combinations that can be done with the multiple coloring techniques available with SIO2.

Video Preview


This tutorial introduce all the supported texture format in SIO2, and the different possibility of usage for all of them, and how to link them to a Material, assign the UVs and how to reconstruct the information from a .sio2 file by binding the different elements to their constructor.

Video Preview

Hello Physic

Introduction to Bullet physic using SIO2. In this tutorial you will learn how to create physic objects and export them to SIO2. In addition, you will also learn how to create a physic world and set its gravity, attach collision objects to it and step in the physic simulation. This tutorial also introduce you an optional technique to create shadow volume with OpenGLES and SIO2 without the use of the stencil buffer.

Manipulation: Double tap on the screen to loop through the different shadow techniques.

Video Preview

Font Fun

In this tutorial you will learn how to deal with 2D and 3D font capabilities of SIO2. Since the last version the whole font system have been rewritten and now make use of the new SIO2atlas for fast font drawing. In addition, two new mode of drawing are supported, one that consist of a standard approach using quads to draw each cells of the text and another one that use hardware accelerate blit function to literally dump the pixels on the color buffer.

Learn what are the pros and the cons of theses two techniques inside the tutorial source code. Also notice the new level of flexibility on a per-cell basis, SIO2font new integrate the capability to use custom tags, used in a similar fashion as HTML tags, to gain independent access to each cell an give you the opportunity to scale, change the color offset them and alot more... In this tutorial you will also export the World data, how to use multi-texturing to render a static background, and to directly export ambient light settings.

Video Preview

Ortho Blending Picking

In this tutorial you will learn how to use the built-in blending mode of SIO2, as well as how to setup a user specific blending mode. You will also learn how to use an orthographic camera, and how to toggle between a 3D and a 2D perspective view. In addition this tutorial introduce how to use a flexible picking method that can be use in 2D as well as for 3D.

Manipulation: Tap on the cubes to make them rotate. Tap on the yellow button to switch from orthographic projection to 3D perspective. Tap the red, green and blue button to change the blending mode source and destination factor as well as the blending function.

Video Preview

Complex Instancing

This tutorial introduce how to create Object instances and complex Object instances using the naming convention described in the SIO2 exporter documentation. In this Scene you will also learn how to create and link a Camera path using IPO to control the camera location and direction, this technique is ideal to create pre-recorded Camera paths and integrate them into your Scene. This tutorial will also teach you by studying the scene how to add a static texture background and mist into your worlds.

Video Preview

Kinematic Factory

The Kinematic Factory tutorial you will learn how to setup kinematic object directly from within your 3D software. This type of physic object can be use to create moving platforms that will carry other physic objects around with them. In addition in this tutorial will also show you the basics of manipulating static and dynamic physic object position and velocity, how to add IPO to objects, setup material friction and other physic parameters.

Make sure that you study all the properties set within the scene in order to get the most out of the various techniques demonstrated here. Also please take note at the way the diffuse texture is constructed using a compressed texture atlas to speed up the texture processing and rendering.

Video Preview


In this tutorial you will discover how to create parent / child relationship on the various SIO2 structure type. The possibilities are virtually infinite with the SIO2 transformation system. The demo is using a solar system introducing multiple type of parenting technique between Object, Lamps, Emitters and IPOs. Definetly the tutorial to study in order to learn how to include parenting whithin your own 3D apps.

Video Preview

Network Threads

The network threads tutorial demonstrate how to load an entire scene using TCP/IP. In this demo, only the Camera, skybox and collision are resident on the local machine. At initialization time the tutorial will go on sio2interactive.com and will download the list of models, materials and textures that have to be downloaded from the HTTP server. Make sure that you have direct access to the internet while trying this tutorial.

From there the program will create multiple threads and download the information on the list and reconstruct the scene in realtime.

In this tutorial you will learn how to manipulate SIO2sockets and SIO2thread and how to lock / unlock SIO2resource and will be able to also get an overview of the SIO2video interface, make sure that you fully understand all the techniques demonstrated in this tutorial and fully realize all the options and flexibility that they can bring to your application.

Manipulation: Touch and drag the left side of the screen to move and strafe the camera. Use the right side of the screen to change the current camera view.

Video Preview

Physic Picking

The physic picking tutorial introduce a method to do picking in a 3D perspective view using Bullet physic raycast functionalities. Use your finger to drag around the Cube and learn how to convert 2D screen coordinate to 3D world coordinate and how to manually create on the fly point to point physic constraint between an arbitrary position in 3D and a Bullet physic collision object. You will also learn how to create a simple projector to do dynamic texture projection that can be used to simulate spot light or projected shadow (like in this tutorial), along with many various other effect.

Manipulation: Pick the cube by tapping it, then drag it somewhere on the screen.

Video Preview

Physic Constraints

This tutorial demonstrate how build a fully dynamic lighted world and how to use and setup physic constraints using Bullet and export them inside SIO2. You will learn how to create a full fledged physic based car using 6DOF constraints, chains and body parts using Ball constraints and how to create a door using an Hinge constraint and how to debug them using the SIO2 debug draw interface.

Video Preview

Car Controller

This tutorial introduce you how to build a complete game architecture, from the loading screen to dynamic level loading and rendering using SIO2. In this demo you will also learn how to interact with physic objects and control them using an on screen interface. This tutorial also show you how to create specular highlights and advanced clipping method along with many other 3D realtime techniques to boost the visual of your games. You will also learn how to create dynamic projected geometry shadow, and how to dynamically adjust the shading on an object when it pass under static object shadow etc...

Manipulation: Tap the buttons on the virtual control pad to move or turn the car.

Video Preview

Keyframe Animation Controller

In this demo you will learn how to be able to control in 3D using Bullet physic a keyframe animated character followed by a third person camera using an onscreen joystick. You will also learn how interpolate between actions such as run and jump and how to build a collision world for your player(s). The shadowing technique use in this tutorial will teach you how to create a dynamically adjusted axis aligned blob shadow, and use specular highlights inside a dynamically lit environment.

Manipulation: Tap anywhere on screen to make the virtual joystick appear, then drag the handle to move the player around the scene. To jump, tap the button located on the bottom right corner of the screen.

Video Preview

Video to Texture and Advanced UI

This tutorial show you how to create a full fledged video player using the SIO2video interface for realtime video texture, and show you how to sync video and audio in realtime. In this tutorial you will also gain access to a higher programming interface build on top of SIO2widget and SIO2sprite to create 2D interface widget control and export them to SIO2, you will also learn how to use theses extended controls using the UIcontrol framework and how to integrate your own.

The UIcontrol framework allow you to add new types of 2D widget such as toggle button, progress bar and sliders, or give you the opportunity to create your own.

In addition you will learn how to convert 2D interface created using a modeling software to a SIO2atlas, which give you to opportunity to use one texture for the whole interface, speeding up loading and rendering time.

Manipulation: Use the on screen user interface to control the playback state of the video as well as the quality, volume, color key value etc...

Video Preview

Ragdoll Game

This tutorial is a clone of the famous ragdoll launcher genre. In this tutorial you will learn how to use and setup 2D and 2.5D capabilities with SIO2.

In this demo you will also learn how to duplicate objects on the fly in realtime as well as creating new physic constraints in code and deal with ragdoll physic, as well as how to load/unload in realtime multiple resources and how to re-use assets coming from multiple .sio2 files.

The demo is rather advanced while being comprehensive, and introduce a full game framework that you can base yourself on for your own creations. In this tutorial learn about game architecture and programming, and learn many common techniques when building games using SIO2.

The tutorial will also teach your how to use Bullet collision callback and collision filters, as well as how to program and handle trigger events for your games and alot more. In addition the game contain a 2.5D menu system that uses physic and will teach you everything you have to know in order to build you owns and how to organize multiple scenes using SIO2.

In order to re-export and rebuild the game from scratch, the technique use is rather different that what we have seen so far. As specified in the SIO2 exporter manual, for larger game it is quite beneficial to use the multiple SIO2resource in order to organize the different levels and interfaces of your game in a easy to use fashion that allow flexibility and scalability.

Manipulation: To start, tap the "New Game" panel. Inside the game simply tap on screen to make the cannon aim appear, release the touch to start shooting some rag dolls, make sure at least one ragdoll touch the aim in order to go to the next level. In order to pause, resume or quit the game hit the upper right button on screen to access the pause menu.

Video Preview

Rolling Ball Game

In this demo you will learn how to handle a relatively large 3D world with hundreds of assets in it. This tutorial also introduce how to handle soft body and soft body constraints, show you how to create and manipulate SIO2vertexshader as well as other type of 3D effect.

This tutorial will also teach you how deal with advanced collision callbacks, manipulate a 3D collision camera handle complex game state and how to load / unload on the fly and manage in-game memory and how to customize rendering using LUA by assigning scripts to world objects.

You will also learn how to handle simple bone animation and duplicate on the fly skeleton animated objects as well as handling their different action, visibility state etc...

This demo also introduce an advanced game architecture design that can be re-used for any type of 3D game. It organize resources in a fast and easy to use modular way that will allow you to gain access to any resources and the assets they contains from anywhere in your game.

From 2D to 3D this tutorial is a great place to start studying in order to create your own 3D game, definitely a show stopper, and alot to learn from this tutorial.

Manipulation: To start, tap the "Start" button to create a new game. Inside the game, if compiled for the simulator drag and move the touche to the appropriate direction you want to ball to roll to, to jump double tap the screen. When compiled for the device use the accelerometer to control the ball and shake the device up to jump. Collect as many yellow and red stars as you can in the shortest time frame, then locate the barn at the end of the level and touch the flag to clear your run. To pause, quit or restart the level hit the pause button located in the lower right corner of the screen.

Server Preview

Client Preview
Remote Control

This tutorial demonstrate how to use the SIO2socket API. There is basically two part in this tutorial, a Client application that you need to build and run on your iDevice Simulator, and a Server which meant to be run on your iDevice. The applications basically is using TCP/IP to establish a network connection between each other. Once connected your iDevice will send in realtime all the Touche events as well as the Accelerometer values to your Simulator allowing you to remote control it from your iDevice.

While being a really convenient tool for debugging the Accelerometer data remotely, this tutorial will also give you a structure that you can re-use to implement multiplayer functionalities to your game, and the ability to expand the communication protocol as you see fit. A great place to start learning how to construct and implement realtime interaction to your game over a network!

Manipulation: In order to start the remote control, first install and run the SERVER application on your iDevice. Then use the IP address displayed on the SERVER in the CLIENT application by passing it in parameter to the sio2ClientInit function, then build and run the CLIENT inside the Simulator. Once connected use your iDevice to send Touche and Accelerometer events to your simulator using TCP/IP. Et Voila!

Copyright © 2014 sio2interactive.com. All Rights Reserved. Terms of Service - Privacy Policy
Some icons are provided by xylomon.