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?

Image RSS Feed Latest Screens
New enemy sprites New enemy sprites New enemy sprites
Blog RSS Feed Report abuse Latest News: Gooing up! The Technical Stuff

0 comments by Icyphoenix1 on Feb 20th, 2014

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.

Media RSS Feed Latest Video
Downloads RSS Feed Latest Downloads
Very early alpha build of Gooing Up!

Very early alpha build of Gooing Up!

Feb 16, 2014 Demo 0 comments

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 Mar 10 2014, 10:05am says:

Looks pretty cool! :)

+2 votes     reply to comment
Heiny
Heiny Apr 18 2014, 4:48pm replied:

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.

+1 vote     reply to comment
mrchronos1
mrchronos1 Feb 19 2014, 8:16am says:

Nice project. C: GOOD LUCK

+2 votes     reply to comment
Heiny
Heiny Feb 19 2014, 11:05am replied:

Thank you :)! Very much apreciated!

+1 vote     reply to comment
Post a Comment
click to sign in

You are not logged in, your comment will be anonymous unless you join the community today (totally free - or sign in with your social account on the right) which we encourage all contributors to do.

2000 characters limit; HTML formatting and smileys are not supported - text only

Icon
Gooing Up
Developer
Gooing Uppers
Engine
Unity
Contact
Send Message
Official Page
Heinyreimes.nl
Release Date
TBD
Game Watch
Track this game
Share
Style
Genre
Platformer
Theme
Comic
Players
Single Player
Project
Indie
Embed Buttons

Promote Gooing Up on your homepage or blog by selecting a button and using the HTML code provided (more).

Gooing Up
Gooing Up
Statistics
Rank
3,302 of 24,210
Last Update
3 months ago
Watchers
1 member
Files
1
News
3