Color Collision

Project Type: PC Game (Windows)

Software used: Git, SFML

Languages: C++

Team Size: 2

My Responsibilities: Programmer and Gameplay Designer

Duration: 2 weeks

About

Color Collision is an arcade style game created entirely in C++ using SFML for assisting in rendering gameplay. The game has 4 game modes with varying difficulties. The goal of the game survive as long as possible. To do so, you must move between “rails” and match the color of the oncoming obstacles. When your character’s color does not match they slowly lose health. In addition to the obstacles, there are also walls that push you to the edge of the screen which can kill you, the border on the edge of the screen which causes players to lose health when touched, and stars which act as a power up. When enough are collected, the bar at the bottom is filled up and the player can turn purple, thus making them invulnerable to the oncoming colors. The goal of the game is to survive as long as possible to get a max high score.

Download The Game Here

Creating Dragonfly

Color Collision was created in the Dragonfly game engine, an ASCII based game engine written entirely in C++. I created the engine within my IMGD 3000: Technical Game Development I class. This course covered numerous topics of game engine creation including sprites, animation, audio, world object management, physics, collisions, and player input.

The game engine was comprised of various managers including but not limited to an event manager, game manager, world manager, input manager, assets manager, display manager, and log manager. The game engine used the Simple and Fast Multimedia Library (SFML) to assist with creating the display and audio managers. Each manager used the Singleton design pattern, allowing for no duplicates of a single manager to exist and each manager having complete control over their purpose within the game engine.

Creating Color Collision

After creating the game engine, both I and my teammate started creating the classes necessary for Color Collision. This includes:

  • Color obstacles with varying color and length
  • A Hero class with stats varying on difficulty and event handling
  • A save system for high scores in each difficulty
  • A star object that gives the player invulnerability
  • And various UI elements including the main menu, credits, and in game UI

We also created custom sprites and animations:

Image

What I Learned

Developing Dragonfly and Color Collision deepened my understanding of how game engines function and strengthened my approach to gameplay design across different engines. Through this project I gained a strong foundation in C++, learned how to bring in third-party libraries effectively, and developed the skills to create frameworks and systems with a Singleton design pattern that make an engine both flexible and efficient.