• Register

Gooing Up! Is a game developed by a two man team. Heiny Reimes (artist & game designer) and Johnny Schaap (programmer & game designer) decided to work together to create a simplistic, yet beautiful game.

The game is meant to be played on mobile devices. By simply touching the screen one can jump up the well or attack an enemy. It will include a lot of variety.

The goal is to develop a game for a large audience. They can expect a simple but addictive gameplay with a lot of warm eye candy. This is what everyone loves, right?

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

A look into the Technical Aspect of ‘Gooing
Up!’: Unity3D 101

Hi everyone, and welcome to the thread about some technical stuff related to ‘Gooing Up!’.
Heiny already told you something about the origin of the game and I (Johnny Schaap) will tell you a little more about it. Not only will I tell you something more about the origin of the game, I will also tell you about how I created the environment, character movement, character animation, the camera movement and the GUI.

The Origin Continued

As Heiny explained, ‘Flappy Bird’ actually leaded to the start of ‘Gooing Up!’. I heard friends and family talk about the game all the time. I didn’t have time to play it myself but after hearing more and more about it, I spontaneously decided to try and create a mobile game. Although it appealed to me, I had never actually done this before, but how hard can it be? Especially with Unity3D by my side.

So on my way to the university I thought of a simple game that could be played on a mobile device and created it. After working on it during lectures, the game was finished by the time I got home. It consisted of mostly rectangles. Each of them either represented the character, the floor, a wall or a water droplet. The water droplets could kill you. Of course this wasn’t appealing at all, but I couldn’t care less as it was just a test to see how hard it is to create a game on a mobile device.

Adding sprites to the game


I was quite proud that I could create a game on the mobile in such a short amount of time and showed it to my girlfriend. She played it one time, two times, even 15 times. That’s when I decided to continue developing the game further. I contacted Heiny and after a long discussion, the game design was now done. We could start creating the game!

The Environment

Now onto the more technical stuff! I first started to create quads representing the walls and the floor. I added a ‘RigidBody2D’ and a ‘BoxCollider2D’ to both of them to be able to detect collisions. I also turned on ‘Is Kinematic’ to enforce they don’t move by any force dealt to them. To minimize the memory load of the mobile I created two walls on each side and created a script that moved itself above the other as soon as the wall is not visible in the screen anymore. This wrapping effect is based on the distance to the player. When Heiny was done with the textures of the wall and the floor I added those to the objects.

For the background I practically did the same but didn’t add a ‘RigidBody2D’ or a ‘BoxCollider2D’.

Background 1

Before


Background 2

After

The Character Movement

The character consists of a parent GameObject with a few children. It also consists of a ‘RigidBody2D’, a ‘BoxCollider2D’ and a script that controls the character movement and states. We also add an ‘Animation’ object to it as a child. This object is explained in the next section. We also add an ‘EnemySpawner’ object to it as a child. What this object does will be explained another time.

The character has a few states. These states include ‘Standing’, ‘Jumping’, ‘Sliding’, ‘Dying’ and ‘Attacking’. The last one is currently not implemented yet. When the game starts, the character is in a ‘Standing’ state. As soon as we touch the screen it switch to the ‘Jumping’ state. Based on some parameters we change the horizontal and vertical speed of the character. We also do some vertical deceleration and let gravity handle some part of the jump as well.

Standing Jumping

As soon as the character collides with the wall it changes to a ‘Sliding’ state. We let gravity take over again (with different parameters). When the character hits an enemy, it switches to a dying state. Based on some parameters it will move up and then down again. After that the game is over.

Sliding Dying

To summarize, the character can change from ‘Standing’ to ‘Jumping’, from ‘Jumping’ to ‘Sliding’, ‘Attacking’ or ‘Dying’ and from ‘Sliding’ to ‘Jumping’ or ‘Dying’.

The Character Animation

We all know that unity has its own 2D animation handler. Nevertheless, I wrote my own anyways. First I imported a sprite sheet and used the Unity tool to split it. Per character I add an empty GameObject and include the ‘AnimationStateHandler’ script. This GameObject consist of multiple empty GameObjects, each representing a state and has an ‘AnimationFrameHandler’ Script. These scripts
are relatively easy.

The ‘AnimationStateHandler’ script contains an array of GameObjects containing all the states. When switching to another state. It simply turns off the current state and turns on the next.

The ‘AnimationFrameHandler’ GameObject actually holds the sprites. Each of them are added as a child and all of them represent one frame. We can specify how many seconds a frame needs to be displayed until we switch to the next one. We can also specify if we want to repeat the animation. The mechanism is quite simple. We just set a timer and as soon as it ends, we move to the next frame.


The Camera Movement

The camera is actually pretty simple. As soon as the y-position of the character is greater that the y-position of the camera, we change the y-position of the camera to that value. That way the camera will follow the character when he is rising, but stands still when he is sliding down.

The GUI

For now the GUI is very simple as well (for now). It only draws one line of text that includes the score. One point is added each time the character jumps.

Conclusion
I told you guys something about how ‘Gooing Up!’ started and talked a bit about some Unity3D stuff. It is pretty basic stuff but if you would like to know more about something you can always send a mail to JohnnySchaap1@gmail.com.

Lessons to be Learned from “Flappy Bird”

Lessons to be Learned from “Flappy Bird”

News

Everyone not living under a rock over the past weeks has heard about ‘flappy bird'. The game that became an overnight success, that everyone wanted...

Name change: Gooing Up!

Name change: Gooing Up!

News

Barely a few hours after we finally put everthing on indiedb, we already got a name change... Gooing up!

Add file RSS Files
Very early alpha build of Gooing Up!

Very early alpha build of Gooing Up!

Demo

Gooing Up! is a very simple platforming game in which you jump from wall to wall. The goal is trying to get out of a well in which the character is trapped...

Post comment Comments
TomoyaC
TomoyaC - - 1 comments

Looks pretty cool! :)

Reply Good karma Bad karma+2 votes
Heiny Creator
Heiny - - 27 comments

Ah lol, good to see you here... Been so bussy with Roche Fusion, but I am getting mroe time to get this one firing up again with Johnny.

Reply Good karma+1 vote
DWProjectArk
DWProjectArk - - 100 comments

Nice project. C: GOOD LUCK

Reply Good karma Bad karma+2 votes
Heiny Creator
Heiny - - 27 comments

Thank you :)! Very much apreciated!

Reply Good karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account:

X