Custom Game Engine

Personal project

custom game engine

ROLE: Engine Programmer
DEV TIME: Sep 2022 - Present
LANGUAGES: C++, HLSL
TOOLS: Visual Studio, DirectX11, RenderDoc
THIRD PARTY: FMOD, TinyXML2, std_image, ImGui

The Custom Game Engine is a self-built C++ game engine that is integrated with a DX11 renderer pipeline, mouse keyboard, and Xbox controller input. It also includes math classes, image & OBJ loader, FMOD for audio, an XML loader, a development console, a debug render system, a job system that supports multi-threading, a network system, and ImGui.

Current features

DX11 Renderer Pipeline Integration

The Custom Game Engine incorporates a DirectX 11 renderer pipeline, facilitating advanced graphics and rendering capabilities

Input System

It supports inputs from mouse, keyboard, and Xbox controllers, offering versatile control options for players

Math Classes

The engine includes a suite of math classes such as Vec2, Vec3, Mat44, AABB2, etc, essential for various calculations and game mechanics

Image & obj loaders

Image and OBJ loaders are integrated for easy importing and handling of graphical assets within the engine

FMOD Audio Support

FMOD is used for audio processing, allowing for high-quality sound effects and music integration

XML Loader

The engine features an XML loader, simplifying data management and configuration

Development Console

A built-in development console aids in debugging and testing during game development

Debug Render System

This system helps developers visualize and debug various aspects of their game during development

Multi-threading Job System

The engine’s job system supports multi-threading, enhancing performance and efficiency, particularly in resource-intensive tasks

Network System

It includes a network system for managing LAN interactions and multiplayer functionalities

ImGui Integration

ImGui is integrated for creating user interfaces, aiding in both game development and providing in-game menus

Related projects

Fluid Simulation

Aug 2023 - Present

- Custom game engine creation
- Physics simulation with position-based fluid dynamics
- With screen-spaced rendering using DX11
- Simulation optimized via compute shaders

Stylized Rendering tool

Feb 2024 - May 2024

- 6 post-processing effects: Kuwahara, glitch, and pixelization effects
- Shader manager in personal game engine for loading/saving variables from XML, with API for applying effects
- ImGui menu for real-time variable tweaking

Doomenstein

Mar 2023 - July 2023

- A 3D Doom-like FPS game
- Vertical maps using basic 3D collision detection
- Spline based map selection UI
- Billboard sprite animation

Simple Miner

May 2023 - July 2023

- 3D Minecraft clone game
- World generation with Perlin noise and seed system
- Multi-threaded performance optimization

Vaporum

Oct 2023 - Nov 2023

- 3D tank strategy turn-based LAN game
- Hexagon tile based map population
- Map, tile, unit definition from xml files
- Client and server set by network config