Physia2D: 2D Physics Engine

Development Period: May 2017 – July 2017

During the third semester at FIEA, for my personal programming project, I chose to do a 2D Physics Engine. I used C++ to develop the engine while using GLM as my math library. For the testbed, I used OpenGL, and specifically, SFML.

I wrote a dev diary about it. If you want to learn more about this project, please check my blog. I did a week by week status update on it, with detailed information. Week 1 is a good start to get a good idea about the project as a whole.

You can always check the code for the engine on my GitHub.


Development period: January 2017 – July 2017.

Role: Audio Programmer, AI Programmer.

MasterKey is a first person shooter game whose gameplay centers around the weapon called “MasterKey”. The weapon shoots cables which tether any two objects in the environment. The player must leverage the physical and elemental properties of the environment to pass through the levels and kill the robot enemies. The player can also run along walls to gain vertical advantage and use a different angle of attack.


  • Designed and built the whole audio system of the game using Wwise and C++.
  • Developed prototypes for melee enemies using Blueprints, C++ and Unreal’s behavior trees.

Here’s a presentation of the game:

C++ Custom Game Engine

Development Period: January 2017 – April 2017

During the second semester at FIEA, I built a data-driven game engine from scratch in C++ 11. The engine can be used with OpenGL or DirectX, and it uses XML as a scripting language.

I wrote my own STL containers such as Vector, Singly Linked List and Hashmap. Furthermore, I wrote a runtime dynamic data type storage system called Datum, wrote object factories and added XML support. In addition, I created an asynchronous event system using C++ asynchronous programming.

While building these elements, I used several GoF design patterns such as Singleton, Factory, Strategy, Chain of Responsibility and Observer.

I had all of the features in the engine unit tested and all of the code documented using Doxygen.

You can always check the code for the engine on my GitHub.

Why did Baba Yaga take my brother?

Team: 1 Subject Matter Expert, 3 Programmers, 4 Producers, 8 Artists.

Development period: January 2017 – April 2017.

Role: Gameplay Programmer, Tools Programmer.

Project Folklore is a VR game built for tracking empathetic reactions by the players. The game was built alongside a Subject Matter Of Expert who helped us with the design, narrative, and testing. The project focuses on collecting data for research and has a back end tool to change the settings of the game and enable updates to the game flow and interactions. Upon completion of the project, it was given to the researcher.

Here’s a link to the game website.


  • Worked on most of the gameplay in the game, including the player interactions with the environment and the characters.
  • Built all of the state machines for the animations and integrated them into the game.
  • Built a WPF tool to help the researcher setup settings in the game.

Vlad: Episode 1

Development Period: February 2016 – June 2016

Vlad: Episode 1 is the name of the game I worked on during my internship with QUINQ Tunisia. Vlad: Episode 1 is a mobile game that was planned to be released on Android and iOS as a part of a potential mobile game series. This game is a 2D fantastical Action RPG that is based on a mix of real and fictional events and characters.

This game is a 2D fantastical Action RPG that is based on a mix of real and fictional events and characters. Vlad: Episode 1 had an intriguing story, and aimed to have a fluid gameplay that relies on intelligent AI.

My job was to make a prototype for the game that illustrates how the game would work, how the AI would interact with the player and how the UI would feel, while providing an easily customizable building blocks.


  • Built a pathfinding system using the A* algorithm. Optimized A* and added a Bezier curve to smooth out the found path.
  • Built the AI for the enemies, and the player manager following the State design pattern.
  • Implemented a camera shake using Perlin noise.
  • Built a combat system that relies on stats and RNG.
  • Built a responsive User Interface.

You can check the code for the prototype on my GitHub.


A Rapid prototype for a storytelling game about a city. This prototype is developed in Unity3D by a team of 5 people.

I used Wwise for the dialog transitions

Fog of War

A rapid prototype for a strategy game developed in a 2 weeks sprint with a team of 6 people using Adobe Flash.

Powered by

Up ↑