mapeditor / mapeditor/tiled

Add Hexagonal Isometric projection

Open
#1,508 3 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
12.9k
Forks
2k
Avg merge
4h 27m
Merged PRs (30d)
8

Description

Currently Tiled supports Hexagonal maps with offset coordinates. There are other possible coordinate systems, and one of them is Axial coordinates. This can actually be used already in Tiled using the Isometric projection, as illustrated by Galdred on the forum:

eb9adb437a2e4d7da9b1553d2082848c033a063e

This issue is about adding a new "Hexagonal (Isometric)" or "Hexagonal (Axial)" (not sure about the best name) projection that derives from the IsometricRenderer and performs things like grid rendering and mouse picking correctly for hexagonal tiles.

Hopefully we can re-use the existing hexagonal map related properties, though their names would be a bit confusing (whether the hexagons are flat topped or pointy topped depends on the "stagger axis" property, and there is no staggering axis when using axial coordinates). The property could be renamed to "Hexagon Orientation" with values being either Horizontal / Vertical or Flat Topped / Pointy Topped.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the existing IsometricRenderer and the current hexagonal map behavior to understand how grid rendering and mouse picking are handled. Define the projection name and hexagon-orientation semantics before implementation; done means hexagonal axial maps render their grid and support correct mouse picking.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics, desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.