top of page

Hex-Calibur

About

Hex-Calibur is a turn-based medieval tactical RPG in which players strategically position their troops on a hexagonal grid to take on enemy AI. The core gameplay is based on an optimised pathfinding system, intelligent placement mechanics and four different types of attack. The project also boasts a clear map, clean visuals and a camera system perfectly adapted to hexagonal geometry. Designed to be playable in under five minutes, it condenses strategy, technique and efficiency into a short but ambitious format.

My role

I fully developed a pathfinding system on a hexagonal grid by adapting the A* algorithm via an odd-r conversion to cubic coordinates. I optimised this algorithm with a custom priority queue to ensure controlled complexity and high performance.

 I also designed a camera system based on angle calculations to prevent off-map overflows, as well as all the gameplay logic (turn-based, AI, attacks). All the code comes from me.

Project objective

This game was developed as part of a C++ programming exam on Unreal Engine 5 at the Haute École Albert Jacquard college.
My personal objective was to offer a polished and technically robust tactical experience. I chose a hexagonal grid to enrich the gameplay, implemented custom pathfinding and dynamically controlled the camera using angular calculations.

Main features

  • Strategic troop movement on hexagonal grid (odd-r layout)

  • 4 different types of attack

  • Customised pathfinding, adapted to range and obstacles

  • Basic enemy AI to simulate a dynamic confrontation

  • Free placement of units at the start of the game

  • Intelligent camera system. It remains confined to the hexagonal map thanks to angle calculations

Technologies used

  • Unreal Engine 5.4

  • C++ language

  • Customised hexagonal grid (odd-r layout)

  • No external libraries for pathfinding, everything has been coded manually

Odd-r hexagonal grid layout
A* pathfinding on hexagonal grid

Examples of how an A* algorithm works on an odd-r grid

Challenges and solutions

One of the biggest challenges was to adapt a high-performance pathfinding system to a hexagonal grid, while taking into account the specific range and accessibility constraints of the units. We had to implement an odd-r conversion to cubic coordinates to enable precise distance calculations and structure an efficient priority queue capable of dynamically sorting cells according to their total cost.
Another challenge was managing the boundaries of the map: I devised a mathematical method based on angle calculations to automatically confine the camera within the visual boundaries of the map, even if the map is a giant hexagon. Finally, I had to ensure that performance remained optimal, by controlling the algorithmic complexity (O(n*log(n)) in time, O(n) in memory) while guaranteeing visual fluidity and strategic legibility.

What this project shows about me

This project illustrates my ability to adapt to and exceed complex instructions. It demonstrates my constant desire to optimise my systems, my technical autonomy and my taste for rigorous, well-thought-out mechanical solutions. I enjoy ambitious technical challenges, and I'm capable of designing elegant solutions even within a constrained framework. Finally, I attach great importance to the user experience: legibility of the grid, clarity of actions, visual feedback... everything is designed to offer a pleasant and coherent game experience.

Personal reflection and learning

The development of Hex-Calibur enabled me to make a quantum leap in my understanding of pathfinding systems, particularly in an unconventional environment such as a hexagonal grid. I had to juggle algorithmic logic, applied mathematics (coordinates, adapted Manhattan distance, angles) and performance constraints.
This project also taught me how to structure a game cleanly and efficiently in Unreal Engine in C++, using only raw resources. Finally, it taught me about managing complexity, both from a technical and organisational point of view: today, I still think about my systems with particular attention to spatial and temporal complexity, to ensure a good balance between robustness and fluidity.

Links / Download

The Unreal project is available on my GitHub : Emilien

bottom of page