Building a Game as a non-gamer

Leave a comment
Games

The last game I played was Super Mario Kart on Nintendo 64 in the 90 s.  So when I decided to build a 3D game using Unity the thought was daunting.  And to tell you the truth I had a silent case  of the imposter syndrome .  Could I build a game?Are the samples and information I am sharing good enough ? Will I get this done in time?

Then I read this great post by one of my colleagues Stacey, on the Girls  Guides Engineering and the Imposter Syndrome.  Stacey closed  this entry really well she wrote,

…I might be a bit more likely to celebrate the small successes like they were large ones. And who doesn’t need a little more of that?

As  developer I get caught up on only sharing the  huge successes and  I never think about how the little steps  could help someone else.  It is time to share. 

The Big Question :  What to build ?  When you are embarking on  anything for the  first thing you are going to be asked the big question, “What do you want to do?”.  So when I sat down with Jason Walters  our teams  game developer this questions came as no surprise .   Jason has done some pretty cool stuff with minimalist style games to stunning  installations.  Working with him to start creating my vision  is awesome!  The best advice Jason gave me was to start sketching out my game on  paper.

Sketching a Game

Game Inspiration

My 8 year old nephew loves to write stories.  Without giving too much away , my game is based on one of his stories  from when he was about 5. In this story soccer ball(the player)  is trying to get back to the boy (my nephew) who lost it. The player  navigates the ball through these scary worlds to find its way back home.

Game play design 

GAME1

Scenes from my game

First thing I did was sketch my game scenes.  Drawing  a raw version of  my game allowed me to figure out user interaction and the movements of my players with out getting too caught up in what it looks like.

Basic Movements

Before I get down to all the fancy things my character  is  going to do,  I need to prototype the basic movements of my characters.  Sure there are a couple of  components you can add in Unity to handle  a lot of movements but, being really new to this whole scene I wanted to write some of the stuff myself.

To get started I need to know how  I want the ball to move in the world  I  am creating.  The ball needs to roll around on the plane, collide with objects, jump up and down , and bounce off surfaces  Before you look at the code below I assume you know what rigidbody and colliders   have been added them to your game object(s).

Moving Around

WASD

WASD Keys

arrows

Arrow Keys

In my current version of my game play,  the players can move forward or backward using the any of the keys above. Using the Input.GetAxis  scripting api , a virtual axis is returned once identified by the axis name which is a string value(as seen in line 1 and 2 of the code ) hence, allowing us grab input from the keyboard.  Vector3 in line 3 is used to a pass 3D positions and directions of your current game object.

float movehorizontal = Input.GetAxis("Horizontal");
float movevertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(movehorizontal,movevertical);
rigidbody.AddForce(movement*speed*Time.deltaTime);

Jump

Jump

Hit space bar for jump

There are a number of ways you can do a jump in Unity. One of the most common ways I have seen being done is by  First Person Controller  under  Character  Control.  The nice thing about doing it this way is  all the key code input is  handle for you.  Since I am just starting out  I decided to prototype the jump movement  using  a simple if else statement .

  
      float jumpForce;
      if (Input.GetKeyDown(KeyCode.Space) && !jumped) 
        {
            jumpForce = 20.0f;
            jumped = true;
        }
        else
        {
            jumpForce = 0.0f;
            jumped = false;
        }

Well that’s all I have for now .

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>