Project Showcase: 2d Game Engine
Overview
One of my most recent projects that I am very excited to showcase is my 2D game engine. My engine supports a variety of necessary features for making an immersive experience while keeping simplicity and performance as a priority. The engine was written in c++ and uses lua as a scripting language. As an additional challenge to my learning I have implemented build support in Visual Studio, XCode, and via a Makefile which has inspired my latest feature I am working on: Cmake Support!
Features
Customizable Game Scenes and Logic
Customizable game logic via lua scripting with supported lifecycle functions for OnStart, OnUpdate and OnLateUpdate as well as custom events. Customizable scenes and actors, as well as runtime instantiation and deletion of actors and components.

2D Physics Engine Integration
Integration of Box2D physics engine to be used for accurate collision detection via Rigidbody component. Rigidbody components on actors can be either colliders or triggers and support callback functions on collisions.

Particle Systems
Particle system support with customizable properties such as velocity, angle, quantity and color that can change over the lifetime of a particle. Particle systems are implemented with principles of Data Oriented Programming by creating an Entity Component System to increase performance and reduce cache inefficiencies.

Built Using
C++, Lua, SDL, GLM, rapidjson, luabridge, box2D and CMake