top of page

Monster Engine

Monster Engine is a game engine, programmed in C++, for creating very simple platformer games. It's design was inspired by the designs of the popular Unity3D and Unreal Engine, because of the familiarity and for ease-of-use for developers. This personal project started out as part of my assignments, but has evolved into a full-fledged engine.

Monster Engine - Pong

Monster Engine - Pong

Monster Engine - Update #2

Monster Engine - Update #2

Some key highlights of the systems and modules implemented:

​

  • D3D Rendering Engine

    • Designed architecture, keeping in mind, the segregation between 'Bindable' and 'Drawable' objects 

    • Support for Alpha Testing and Alpha Blending

    • Support for loading in .png and .jpg files using GDI+

    • Support for rendering Sprites and basic 3D primitives

    • Basic perspective camera support

    • Basic Layering system for organization

    • IMGUI support for developers to create basic editor tabs

​​​

  • I/O​

    • Full Keyboard and Mouse​ support

    • Full XInput support and polling for 1 controller

​​​

  • Animation​

    • Support for Spritesheets​ and easy interface for developers to add animations

​​​

  • Particle System

    • Simple customizable particle system, similar to Unity3D​'s

​​​

  • Physics​

    • RigidBody system, similar to Unit3D's, resolving forces through numerical integration.​

    • Collision Detection using Axis-Aligned Bounding Boxes and Separating Axis theorem

    • Created interfaces for collision response, to provide commonly used methods like OnHit() or OnOverlap(), for gameplay programmers

​​​

  • GameObject-Component system​

    • Components can be attached to a GameObject​, similar to Unity and Unreal

​​​

  • Custom Events and Job system​​

    • Support to create custom events using user script components​

    • ​Multithreading support to schedule various 'Jobs'​ through a Job system

​​​

  • Memory Management​
    • Programmed a custom memory manager, which uses various Fixed Size allocators and a Heap allocator.​
    • Implemented a basic garbage collector to make sure no space is wasted

As a pet project, I am currently trying to re-create the original SNES version of the Lion King with my engine(one of my favorite games from childhood), and as an additional challenge also trying to emulate the SNES system specifications, especially the hard memory cap. 

ezgif-4-a37a816dbda6.gif
bottom of page