cs 1666 Game Design and Implementation

Fall 2018

CS 1666 is a game development class for computer science majors at the University of Pittsburgh. The class focuses on teaching students the development of game engines using SDL and C++. The semester course has students work in 10-12 student teams and make a game for a semester. Each team had two to three subgroups that had a focus on more CS oriented topics.  Each subgroup on the team also had to present a their topic as a full class lecture.

My team made a game called Europa. The subgroup I was on focused on procedural generation. For the presentation I talked mainly about maze algorithms and their uses in video games.

Here are a few slides from that presentation.

 

(PC)

Role: 

Programmer, Artist

Total Dev Time:

1 Semester

Europa is a 2D dungeon crawler where an astronaut must collect artifacts and dodge slimes as they descend deeper in an alien space station.

OVERVIEW

  • Space Dungeon Crawler

  • Made in a 10 person programming team

  • Coded in C++ and SDL

  • Procedural Generation

MY CONTRIBUTION

Programming

Game Engine Development | Procedural Generation

Having had previous experience in Java building a game engine, I helped construct the basic architecture for this game in C++ using things like a game state manager, and room interfaces.

Here is a dependency map drawn for our game, outlining part of its base architecture.

I also served as a subgroup leader for procedural generation. This meant making sure as a subgroup, we would design, implement, and test to make sure our mazes worked in game. We decided to test differing methods of generation and see which one would work best. I implemented a simple maze algorithm using Depth-First Search.

Maze Generation
Maze Generation
Maze Generation

Here are some examples of the maze algorithm in game.

We ultimately found out later that Rectangle Packing worked better for our game's design and had to cut this algorithm.

I also worked on the pause menu. I made randomly generated artifacts by tinting stock photos different colors and randomizing artifact descriptions during runtime.

Europa - Artifact Menu

Art

Spritework | Animation

The majority of the game's art was done during my free time in class.  All of the work is made in Paint.net.

eroupa title no background.png

The Title and Logo

box.png
open chest.gif

Artifact Supply Chest

door.png
Door Slide.gif

Sliding Door

Stairs.png

Stairs

powerups.png

Various Powerups

Spaceman.png

The Main Character

artifactMenu.png

The Artifact UI

samusfarnan.png

As a joke, we wanted the main character to be our professor under the mask. I made an animation of the character taking off the mask.

Reveal.gif

Here is a video of our professor reacting to it.

Here is a dependency map drawn for our game, outlining part of its base architecture.