Personal Projects:

Below you will find a collection of personal projects, from Games, 3D models and even a few shaders

3D Renderer From Scratch With SDL and C/C++

A 3D renderer made from scratch with SDL and C. This renderer has all the features of the 3D rendering pipeline running on a single CPU thread. Includes camera movements, rotations, transformations, scaling, frustum culling, Z-buffer etc…

Diablo Inspired RPG

This is one of my larger projects. I took a few online courses plus to learn how to construct a project like this and I learned a lot

One of the most important things I learned how to construct was the underlying RPG system of statistics, and how to use object-oriented techniques and concepts such as inheritance and polymorphism to create general scripts that can run on both the player and the enemy. The combat, movement, health, weapon, and animation code are all the same for both enemy and the player with the only difference being the controller. The player is controlled via user input and the enemy is via its own AI scripts

I learned how to construct basic AI behavior such as patrolling, chasing, in combat, and running away. I also learned how to integrate animations directly into gameplay, such as applying damage when an animation reaches a certain frame via animation events.

I also learned how to load information between scenes, in this example, the second scene is loaded while the player is playing the first scene, and vice versa.

Project Lantern: Puzzle and Obstacle Platformer

This is a single-player platformer that I created with a friend. This project taught me how to make smooth 2D movement, responsive jumping, and a dash mechanic that can have multiple effects without reusing code.

I also learned how to use the state machine pattern in order to keep track of, and have transitions between different states, while keeping my code readable and scalable.

Cozy Coffee: A barista Simulator

This was an autumn game jam project that I worked on.

I learned:

  • How to export 3d models to other 3D engines

  • How to integrate shaders into gameplay

  • How to use the observer pattern and events to link UI and gameplay together

AI Steering Agents

3D Models

Shaders