INFSCI 1601

Game Implementation

Spring 2019

INFSCI 1601 is a game development course for information science majors at the University of Pittsburgh. The course focused on learning good implementation practices in Unity and had students work on three solo projects throughout the semester.

The three projects I made were called Earthbound Runner, Free Air, and Mummy Wrap.

Project 1:

Earthbound Runner

 

(PC)

Role: 

Solo Project

Total Dev Time:

~ 3 weeks

Earthbound Runner is an "endless" runner game in which the player plays a Ness. The character can hit enemies with their bat and open presents for heath and money. The goal is to get home at the end of the road.

OVERVIEW

  • 2D "Endless" Runner

  • Made in Unity

  • Utilizes PixelPerfect Graphics

PROCESS

The project constraint we had was to simply make a 2D endless runner. The project required us only to scroll the camera horizontally or vertically, but I took the challenge to do both and make an isometric game instead.

I used the Earthbound sprites so I could focus on coding the game rather than making artwork. I did however have to make custom Ness sprites for swinging the bat and taking damage, because he never actually does either on the overworld in the original game.

Eb Runner - Custom Ness Sprites.png
Eb Runner - Custom Hud.png
Eb Runner - Smaaaash.gif

I also made some custom sprites for the SMAAAASH!! and HUD since they also did not appear in the original game.

Eb Runner - Backdrops.png

The only other constraint we had to use for the game was the use of pooling so that we were not constantly creating and destroying objects during runtime. In order to make my game stand out from others, I used the idea of pooling to my advantage. By making a pool of back drop pieces, I was able to randomly generate different landscapes by stacking the same few backdrops in a row. By doing this, I was also able to make the game act differently based on what backdrops were visible (i.e. If the vertical backdrop is present, spawn vertical cars). Nearly every object on screen is pooled, making the game more efficient.

The biggest challenge for this game was making the counter on the HUD spin like it does in the original game, since all of the scrolling was done using sprites. Learning about pooling changed my perspective on gameplay coding and I learned a lot from this project.

Project 2:

Free Air

 

(PC)

Role: 

Solo Project

Total Dev Time:

~ 3 weeks

Free Air is a grid-based turn-based strategy game set in the skies. The player is a pilot who has to fight off the hostile airplanes and collect plane parts to upgrade their ship.

OVERVIEW

  • 3D Turn-Based Strategy Game

  • Made in Unity

  • Utilizes Perlian Noise Generation

PROCESS

For this project, we were given two words and had to make a game from them. The words I got were role playing and aviation. 

Before I started building, I had to make a game design document laying out what I wanted to do, what my inspirations were, and how I used my given words to make my game.

The Game Design Document

I also made concept sketches detailing how I wanted the game to play, look, and feel. After all of that was finished, I then got to work on building the game.

Free Air - 3D Draft.png

Rough 3D Sketch of what the game should look like using Unity primitives.

Concept work of how I want the turn based system to flow.

Free Air - Map Concept Sketch.png

Concept art of the map system between missions. It had be cut.

In terms of artwork, this was the first time I had ever worked in 3D, so I simply made objects out of Unity primitives and textured them. The menus were simply drawn in Paint to maximize the amount of time I had to code the game.

Free Air - Plane.png
Free Air - Menu.png

During the development I learned about how to work with perlian noise. As a result, I was able to make a randomly generating landscape that resulted as islands underneath the gameplay area.

The most difficult part of this project was the game engine itself. It required a lot of tweaking in order for the camera to properly show the models at the right perspectives. I also learned a lot about the flow of events in my system (menu -> cutscene -> textbox -> menu) and how to time them properly in engine. I also learned how to effectively cut down the scope of a game in a tight deadline.

Project 3:

Mummy Wrap

 

(PC)

Role: 

Solo Project

Total Dev Time:

~ 3 weeks

Mummy Wrap is a 2.5D physics-based platformer. The game has the player be a mummy as they swing their way past spiders so they can investigate the strange knock at the door.

OVERVIEW

  • 2.5D physics-based platformer

  • Made in Unity

PROCESS

Due to balancing a tight school schedule, the game's development had to be streamlined. The game's core vision had the mouse at its core. The majority of my time was spent building a game that tried to utilize only the mouse scroll wheel. I chose this control scheme because I rarely see it in games.

 

One of the requirements for this project was to build a game using at least three different assets from the Unity asset store. For this project I used a mummy asset, a spider asset, and a pillow asset.

This game also introduced me to 3D animation. Since the mummy model I found didn't have all the poses I wanted for the game, I had to make a few myself in the Unity animator, like the swing and fall animations.

Mummy Wrap - Spider Maze.png

For this project I also relearned how NavMeshes work so I could get the Spiders to walk randomly around the maze in the latter half of the game.

The biggest challenge in this game was level design. This was the first real platformer game I had made, so level design for this genre was unfamiliar to me. I ultimately ran of time to properly play test both levels. For the sake of my professor I simply added in level skip buttons. I hope to take what I learn here and apply it to platformers in the future.

Mummy Wrap - ScreenShot 1