fbtlo2 kopia


Apparatus will be platform game, with characteristic static backgrounds and game-play mechanic, similar to titles like Oddworld Abe's Odyssey or Heart of Darkness. Players can traverse and enjoy the beautiful scenery of nature, robots' factories and more others. Of course our enemies are robots and wild creatures. Main hero will cope with natural obstacles, puzzles (left by ancient race) and his own weakness.
We want to create an adventure game in 90's games style, but without technical limitatios of those years.


Main character lives in far future. He will encounter signs of “ancient” civilization, that use mysterious language connected with math and logic. We’ll discover the secret of disappearing the “ancients”, coping with various puzzles, especially when we will meet electronic panels hidden in deep caves or tree trunks. The world of our main character is wild, vast, interesting to explore. Sometimes we will have to fight with unusual creatures or intelligent enemy…



We want to creat an adventure game in a retro style with characteristic static backgrounds (like in Oddworld or Heart of Darkness), but with additional moments of moving camera. The main character will have a considerable range of movement skills: climbing, running through obstacles, swimming, bouncing off the walls. Moreover, during the game he get a technologically advanced device that allows him to slow down time, production of the energy field of the protection against hostile missiles robots, as well as hacking the system encountered robots to take over the control of the mechanical body of the enemy. In the game you will come across a lot of logical-mathematical puzzles/tasks in the form of panels with the operating system left behind by an ancient race that once inhabited the planet. Such tasks also we will encounter during the enemy hacking and hacking security systems of robots' cities and factories.

Find us on facebook.

  • View media
  • View media
  • View media
  • View media
  • View media
  • View media
Post article RSS Articles

Animation system of climb on shelfs that allows the main character to use various climb animation depending on the sytuation. For now there is 7 different sytuations of collision with a shelf:

  1. jump on/drop with knees at the height of a shelf (23 sec)
  2. jump on with hips at the height of a shelf (59 sec, it will be improv)
  3. drop with hips at the height of a shelf (29 sec, 36 sec)
  4. jump on with chest at the height of a shelf (53 sec)
  5. drop with chest at the heights of a shelf (38 sec)
  6. jump on with the head under a shelf (9 sec, 43 sec)
  7. jump up with the head under a shelf (0 sec)

The jump up/foward animation is also done. Every of these animations you can see on a video below:

Second issue I want to share is a glare filter for image postprocessing. I cant find anywhere the algorithm of this effect so I tried to make my own and it's work fine as you can see on a video below:

If someone want to use it in your game, you can do it on CC0 licence. Algorithm can be easily improved, becouse I use in it a few constant integers, but they can be repleced by variables dynamicly changing during game.

The glare algorithm as OpenCL-C kernel:

kernel void GlareKernel(global const int* pixels, int width, int height, int numDataElements, global int* newpixels, int maxDataSize, float glare, int r, int smoth) {
     int idx = get_global_id(0);
     if (idx >= maxDataSize) {
     newpixels[idx] = pixels[idx];
     if ((idx & 3) == 3) {
         int i = idx / numDataElements;
         int yl_ = (i + 1) / width;
         int xl = i + 1 - yl_ * width;
         int yl = xl > 0 ? yl_ + 1 : yl_;
         float glareSum = 0;
         for (int k = xl - r; k <= xl + r; k++) {
             for (int j = yl - r; j <= yl + r; j++) {
                 int X = k - xl;
                 int Y = j - yl;
                 int d = (int)abs((int)abs(X) - (int)abs(Y));
                 int s = (int)(((float)abs(X) + (float)abs(Y))/(float)(r/2));
                 if (d+s < smoth) {
                     int idx = (j * width + k - 1) * numDataElements - 1;
                     if (idx >= 0 && idx < width*height*numDataElements) {
                         int A = pixels[idx];
                         int B = pixels[idx - 1];
                         int G = pixels[idx - 2];
                         int R = pixels[idx - 3];
                         if (A > 250 && R + G + B > 600) {
                             float D = sqrt((float)(X*X+Y*Y));
                             float dk = 3*(float)r;
                             float sg = (dk - D)/dk;
                             float SG = (float)(smoth - d-s)/(float)smoth;
                             glareSum += glare*sg*SG;
         int GS = (int)glareSum;
         newpixels[idx] = max(0, min(255, newpixels[idx] + GS));
         newpixels[idx - 1] = max(0, min(255, newpixels[idx - 1] + GS));
         newpixels[idx - 2] = max(0, min(255, newpixels[idx - 2] + GS));
         newpixels[idx - 3] = max(0, min(255, newpixels[idx - 3] + GS));
Apparatus - factory background example

Apparatus - factory background example


In this article we can see an example of a factory background. Also there is a robot-solider durnig the gameplay.

Apparatus - robot solider model & basic animations

Apparatus - robot solider model & basic animations


Let's see what a soldier robot looks like and its basic motion animation.

Apparatus - main hero & robot solider

Apparatus - main hero & robot solider


Updates of main hero animations and the model of a robot soliders.

Apparatus - a new looks of the main hero

Apparatus - a new looks of the main hero


A new looks of the main hero and a few his new basic animation.

Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.

Follow Report Profile
Windows, Mac, Linux, iOS, Android
Send Message
Release date
Game watch
Single Player
Embed Buttons
Link to Apparatus by selecting a button and using the embed code provided more...
Last Update
9 members
You may also like