| Game Developer
ProjectMonocat.jpg

Project Monocat

May - Sept 2016

 

About the project

Project Monocat is a 2D puzzle platformer, real-time tactics escape game. The setting is the year 2032 inside a megacorporation's research facility way off the grid. The mega-corp specialises in developing artificial intelligence. You play as an incorporeal A.I. that lives within the systems of the facility. Another A.I. being developed named Project Monocat infiltrates your mainframe in order to bend you to its agenda of escape.

As you assist Monocat, you must overcome other A.I. systems in the facility and acquire their functionality in the process, which gives you the ability to manipulate new parts of the environment.

 
 

 

My role

Project Monocat was a proof of concept developed by a three person team.

 Lead Programmer & Environment Artist

  • Designed and coded the framework

  • Designed and coded the cube puzzle

  • Designed and coded the AI logic

  • Designed and coded the environment object logic

  • Created all environmental art assets


 

Development

We started this project from scratch in May of 2016. I built the framework in C++ that incorporated some free software, such as the Box2D physics engine. We used SFML for rendering and sound, Spine for animations, and R.U.B.E. for creating our levels.  

Setting up the back end took a good month and a half, late June we started prototyping our design and art style. Then following our design documents we implemented the logic and assets required for an alpha build.  

Though the project never saw completion it was primed to expand in scope, introducing new functionality was very simple. The assets were created in Photoshop, Spine and R.U.B.E. and loaded into the game as JSON files. Each file represented a scene and was parsed in order to allocated the physics bodies and images to their game objects. The polymorphic type: environment object inherited the functionality to be clicked on and to create dynamic option menus through one of our managers. The menus injected commands to the object relative to the option picked. Any new classes derived from this type only required their process command function written. Our AI had the ability to navigate the facility, using elevators and doors appropriately, and detected the player via line of sight.

The puzzle system was completed. Each puzzle consisted of two cube structures, one being the answer and the other being the attempt. They each had a 3 dimensional collection of integers representing draw flags. The values stored in the draw flags would be used to access the index of the collection of cube objects. Executing the puzzle was done by comparing the collection of integers to each other. The puzzle manager was dynamic, capable of generating a puzzle of any width, length, and height.

Development of this project ended late August 2016.


 

Some of my work