The Two Magneteers

This was a 9 person group project for a third year module.
We were tasked to create both an entire Engine and Game from scratch in C++ over 6 weeks.
The group was composed of 4 people on the Games Programming course, and 5 on the Games Development course.


The Engine

The Engine was built from scratch in C++, using only the DirectX Tool Kit, IMGUI and Nlohmann's Json API.
As a team, we wrote up the tasks needed to create a Minimum Viable Product and split the Engine tasks amongst the Programmers.
Our goal was to create an easily extendable Component system that integrates smoothly with the Engine and handles all of the API interactions automatically. Making the Developers' tasks simple was the focus when creating it.

Level Editor

The Level Editor we created provided the Developers with all the tools they needed to quickly build the levels they had designed.
I build a Prefab system to automatically add Game Objects with default values (such as the Player Prefab automatically having the Player Script and an Appearance Component setup to use the Player tile set, etc) that can be cycled through with the Scroll Wheel.
Prefabs can be added using the Right Mouse Button, and grabed using the Left Mouse Button. When an object is grabbed, they can be moved around or be deleted by pressing the Middle Mouse Button.
By using the Inspector window, the level's File Name, Scene ID and Background sprite can be changed. Once Game Objects have been placed, they can be edited by expanding the Game Objects section.
Certain Components provide extra fields that can be edited, such as Appearance Components providing access to their Sprite Texture and Texture Co-ords, and Levers giving ways to change their indivudual functionality.

Personal Contribution

My personal contributions to the project were focused on the Engine's Architecture. I created the game loop and all of the Engine events for Scripts, as well as integrating other people's code into the Component System. I also worked on Data Serialisation, Input Managing, and Audio Managing as well as fixing many bugs.


The Game

The Game is a 2 Player Local Co-Op Puzzle Platformer, featuring 5 levels with the goal being to reach the golden goal coin.

Controls

Blue Red
Left A Left Arrow Key
Right D Right Arrow Key
Jump W Up Arrow Key
Magnet Q Right Shift
Interact E Right Control

Levels


Download

The full source code and game is available publicly on GitHub.

Download Source