P0rc3lain
Engine is a 3D game engine developed entirely in Swift, leveraging
Apple's native technologies. Designed as a platform for
experimentation and learning, it serves as the foundation for a
chess game that demonstrates the engine's capabilities. The
project emphasizes modularity and scalability, allowing for easy
extension and adaptation to various game development needs. The
engine's architecture is built to support the creation of
small-scale games, providing essential features such as scene
management, rendering, and user input handling. The chess game,
built atop this engine, showcases its functionality by
implementing a full set of moves, including en passant, pawn
promotion, and castling. User interactions are facilitated through
mouse click detection, with keyboard-triggered camera movement
enhancing the gameplay experience. This project reflects a
commitment to understanding and applying core game development
principles, offering a practical example of a custom-built engine
in action.
Flappy Bird Clone
A faithful remake of the classic “flap the bird through the pipes”
game. Built in Python 3.8 with Pygame 2.0.1, the project
implements the original game mechanics—mouse and keyboard
controls, bird collisions with obstacles—and ships under the MIT
license. Designed as a programming exercise, it retains the charm
and frustration factor of the original while remaining fully
open-source.
Chess
A clone of widely-known logic game. The project showcases features
and abilities of a graphics engine that I've developed.
Mine - CPU-based path tracer
mine is a physically-based CPU ray tracer implemented in C++ and
Objective-C++ as part of my exploration into light transport and
rendering theory. The project focuses on building a minimal but
robust framework for simulating realistic lighting through
multi-bounce ray tracing, indirect illumination, and
physically-based shading models. It supports multiple geometric
primitives such as spheres, planes, disks, and triangles, along
with bitmap textures and basic USDZ model loading. The renderer
includes soft shadows, glossy reflections, and several sampling
techniques to achieve smooth and realistic lighting.
Multithreading support allows efficient utilization of available
CPU cores, making the system capable of producing high-quality
images without relying on GPU acceleration. Though not intended as
a production renderer, mine served as a valuable experimental
platform for understanding BRDFs, Monte Carlo integration, and the
overall structure of modern rendering pipelines. This project
represents a key step in my journey toward advanced
physically-based rendering and later GPU-accelerated Metal
implementations.
NGIN - #2 Graphics engine
ngin is a custom 3D engine I built in modern C and C++ to explore
and demonstrate core rendering architecture across multiple
platforms including Windows, macOS, and iOS. Emphasizing OpenGL /
GLES support and modular engine design, it showcases capabilities
in scene management, shader abstraction, and cross-platform
graphics pipeline structure. While not a full commercial engine,
ngin stands as a proof of concept in low-level engine engineering,
reflecting my interest in graphics systems, multiplatform
rendering, and engine internals.
MSEngine - #1 Graphics engine
MSEngine is an experimental 3D graphics and game engine I
developed in Objective-C and Objective-C++ as a foundation for
learning real-time rendering and engine architecture. The project
provides a minimal yet functional framework for creating 3D
scenes, handling user input, and rendering objects with lighting
and texture support. The engine implements a basic rendering
pipeline with ambient, diffuse, and specular lighting, along with
transparency and texture mapping. It supports multiple light
sources, object loading, and standard transformation operations
such as translation, rotation, and scaling. Input can be driven
through touch and gyroscope controls, making it suitable for
interactive experiences on iOS devices.
Linked-List x86 ASM
Well-known and a simple dynamic data structure. In contrary to
other available implementations this one is written in x86-64
assembly with a C-compatible interface.
RHCE preparations
A repository that has reached a broad audience. I created it while
preparing for an exam. It contains questions presented as
exercises, along with their corresponding answers. The repository
requires a specific environment, which I also developed.