Criminal Wizards

Project Summary

Criminal Wizards is a 2D real-time strategy/puzzle game where you control 3 elemental wizards, Firey, Windy, and Sparky, and have to make use of their abilities to interact with the environment and escape the level.
Each level will usually have multiple ways of solving them using different combinations of the characters’ abilities and objects in the level.

  • Firey can light objects (and people) up, and cause some electrical objects to explode, knocking out nearby people, but he is unable to go up stairs (due to being on a wheelchair).
  • Windy can blow objects (and people) away, and will not take damage from falling.
  • Finally, Sparky is able to resuscitate unconcious allies, speed them up, and electrify objects and enemies. However, she is unable to open doors due to her height.

Project Description

This project was created for a 6 month long school project. We managed to make our own custom engine using OpenGL and C++, along with our own in-engine Level Editor and Game Object creator using AntTweakBar.

Job Details

  • Took care of managing the schedule of the group, and setting individual milestones of the group members, along with managing the scope of the project and liaisoning with the lecturers for feedback.
  • Created the graphics system and shaders for the game using OpenGL 3.0, which is able to render 2D graphics, tile sheets, animated sprites, font, UI, and are able to tint or fade in and out.
  • Set up a UI system which is serializable and deserializable into XML files, which includes button interactions, positioning, and more.
  • Set up a cutscene system using Behaviour Trees which was used extensively within the game for various transitions and effects.
  • Created a level editor using AntTweakBar (using our graphics engine) for the team to use to create, save, and load levels, along with creating objects in the world and modifying them. It also uses a tilemap system, and users can choose to flood-fill areas, draw lines of tiles, and more.
  • Created the component and game object system for the engine, which is able to add, remove and modify components on run-time, and can be serialized/deserialized into json files, and changed or created within the editor.
  • Implemented the interaction system, which allowed for easy additions for new ways to interact with new objects, along with draw connector lines within the game itself.

Video

Project Link

Click to go to the download page!