Zhangir Nurmukhambetov

Engine Programmer

zhangir.dev@gmail.com

2nd year student at Breda University of Applied Sciences in Creative Media and Game Technologies.

💼 Open for a 6-12 month internship starting September 2025

← Back

Preview image for Fire Ant Engine: Custom C++ Strategy Game Engine

Fire Ant Engine: Custom C++ Strategy Game Engine

April 11, 2025

Fire Ant Engine is a continuation of my custom Terrain Editor. The team was joined by seven talented programmers. The project features a prefab system, a terrain editor, flow-fields for AI agent navigation, an in-engine UI editor, optimizations which allowed a support for a large terrain map and many units, and support on Windows and Nintendo Switch.

My Contributions: Terrain Editor | Terrain Rendering | Height Editing | Texture Editing | Prop Placement | Scene Serialization | Prefabs

Engine/Tools: C++, OpenGL, GLSL (Compute & Tesselation Shaders), EnTT, Cereal, ImGui

Team Size: 7 Programmers

Platforms: Windows | Nintendo Switch

Duration: 8 Weeks (Feb 2025 - Apr 2025)

🌄 Terrain Editor – My Contributions

🧩 What It Does

The Terrain Editor is a real-time terrain editing toolkit built directly into a custom C++ game engine. It allows users to sculpt terrain height, paint textures, scatter props, and create plateaus—all in an interactive, visual editing environment. It also integrates tightly with a serialization system to allow scene saving/loading.

This tool was critical to the Fire Ant engine, forming its foundation for terrain-based gameplay and visual fidelity.


🔨 My Contributions


🛠️ Terrain Editor Architecture

I restructured and extended the original Block B prototype into a robust, extensible tool using an object-oriented brush system built on a shared interface. Each brush (Height, Texture, Prop, Plateau) inherits from a common TerrainBrush base class, allowing seamless expansion.

Key Features:

Challenges:


🌋 Terrain Rendering

image1

I implemented a custom rendering pipeline for terrain using OpenGL tessellation shaders, which dynamically displace geometry based on a height map texture. A new rendering pass was added, separate from other objects, with custom TerrainMaterial and TerrainMeshRenderer classes.

Key Features:

Challenges:


⛰️ Height Brush

image1

image1

Rebuilt the existing CPU-based height tool into a compute-shader powered GPU brush capable of raising/lowering terrain. I added support for both circle-shaped and alpha-textured brushes.

Key Features:

Challenges:


🎨 Texture Brush

image1

This brush paints the terrain’s base albedo texture using tiled patterns or flat colors. Similar to the height brush, it’s compute-shader based and supports the same brush types.

Key Features:

Challenges:


🌳 Prop Brush

image1

The prop brush lets users scatter 3D assets (like trees and rocks) across the terrain using a visual brush. The brush respects terrain normals and supports random rotation and placement density.

Key Features:

Challenges:


🏔️ Plateau Brush

image1

A unique brush that flattens terrain toward a selected or user-defined height, allowing sculpting of roads, plateaus, or flat regions.

Key Features:

Challenges:


💾 Scene Saving & Loading System

image1

I developed a robust scene serialization system using Cereal + EnTT Meta, supporting recursive entity hierarchies and runtime component reflection.

Key Features:

Challenges:


🧠 Key Engineering Concepts


🎯 Impact

My contributions enabled:

Without these contributions, the team wouldn’t have had editable terrain, reusable prefab systems, or the ability to save and iterate on scenes—making them foundational to both the engine and project scope.