Assets Edit Mode

After completing my initial demo for my school capstone project, I set out to transform my work into a proper game engine, prioritizing ease of use and flexibility. My first focus was enhancing asset management and map editing. During the demo’s development, I built a basic tilemap editor that allowed me to place tiles, define collision boxes, and add static entities like trees, stones, and houses—represented as textures with collision data. It worked, but it lacked a user interface, undo/redo functionality, and advanced features like object manipulation or in-editor simulation with a player character. The output was three binary files—tile_map.bin, decorations.bin, and collisions.bin—containing tile textures, entity placements, and collision data. ...

April 12, 2025 · 4 min · 696 words · pvlso

Clipper2 Reimplementation

While developing the navigation meshes for my game, I ran into a persistent issue: clipping polygons. I initially implemented a polygon subtraction algorithm that worked well for most cases, but it quickly became apparent that there might be a better approach to polygon clipping. Inspiration from Godot Engine After taking a short break from game development, I decided to dig into the Godot game engine, specifically its latest version, which includes navigation mesh support. After setting up everything in the debugger, I discovered the library Godot uses for polygon clipping. At first, I was confused by how it worked and why it was implemented that way. But after reading the documentation and doing some research, I gained a clearer understanding. ...

October 23, 2024 · 3 min · 574 words · pvlso

Triangulation

Over the past few weeks, I’ve been focused on continuing my work with navigation meshes. After implementing features in the editor to create polygons, the next major step was triangulating those polygons. This is important to placing obstacles and later merging them into convex polygons. I will be using my previous algorithm to make holes in the triangulated polygons, representing obstacles. You can check out the details of that process in my previous post. ...

September 2, 2024 · 10 min · 1995 words · pvlso

Triangle Boolean Subtraction

In game development, navigation meshes are useful for defining walkable areas where AI characters can move. These meshes are made up of interconnected polygons that represent navigable surfaces, allowing for efficient pathfinding. My game uses navigation meshes for AI and player movement control. The need to handle dynamic obstacles was the main reason I developed this algorithm. The algorithm subtracts two triangles by removing the overlapping part from one of the triangles. ...

August 18, 2024 · 7 min · 1440 words · pvlso

Expanding the World Map Editor Mode

Over the past week, I’ve been focusing on enhancing the editor, particularly in creating and managing world maps. Let’s look at new features that have been added. Creating and Loading World Maps One of the advancements is the ability to create and load world maps directly within the editor. Now, you can easily start a new map or load an existing one, making the process of building your game world more efficient. Once you’ve selected the map you’ll be working on, you can choose tilesets loaded with the asset file, giving you full control over the terrain and environment. ...

August 4, 2024 · 5 min · 871 words · pvlso