Skip to content

Tilemap Editor that can be used to create maps for the Pikuma Game engine or a custom engine with small tweaks

License

Notifications You must be signed in to change notification settings

dwjclark11/TilemapEditor

Repository files navigation

TilemapEditor

Jade Tilemap Editor

The Editor uses the ECS system from the course https://pikuma.com/courses/cpp-2d-game-engine-development. You can load and save data to [.map] files. When saving and loading, the editor uses a [.lua] file that loads the the location of the [.map] files and the tilesets that are used.

This application was created to quickly make tile maps for small games created with the Pikuma Game Engine. I re-made the tilemap editor that I created in my ZeldaClone https://github.com/dwjclark11/ZeldaClone_NES. I added more functionality and made the code more clean and concise as my abilities continue to grow.

Build


Requires CMake 3.26 and vcpkg

Get VCPKG:

git clone https://github.com/microsoft/vcpkg
./vcpkg/bootstrap-vcpkg.bat

Make sure the following environment variables are set:

VCPKG_ROOT=[path_to_vcpkg]
VCPKG_DEFAULT_TRIPLET=x64-windows

Install dependencies

./vcpkg install glm spdlog sdl2 sdl2-ttf sdl2-image lua sol2
  • Linux Also needs GTK-+3.0 for NFD build sudo apt-get install build-essential libgtk-3-dev

Clone the repository

git clone https://github.com/dwjclark11/TilemapEditor.git

cmake -S . -B build 
cd build 
cmake --build . --config Release 

cd bin 
./TilemapEditor

Read the Docs

Video

tilemap_editor.mp4

Loading a Map Project

New_Tilemap_Vid.mp4

Technologies

  • ImGui - for user interface
  • SDL2 - for rendering and window/inputs
  • Sol/Lua - for loading files
  • ECS - from Pikuma Game Engine

Dependencies

  • SDL2
  • SDL2_ttf
  • SDL2_image
  • ImGui
  • SPDLOG
  • Sol/Lua
  • NFD

Functionality

  • Load/Add multiple tilemaps
  • Undo/Redo functionality when adding/removing tiles and changing canvas size
  • Save/Load capabilities.
    • I have changed the way that I load/save files. It differs from the course; therefore, you may have to rewrite the save functionality.
    • The load function uses lua/sol and loads previously saved projects and their assets/tilemaps into the asset manager.
  • Selecting different tiles based on where you click on the displayed tileset
  • Panning and Zooming

Tilemap Editor Controls

Key Shortcuts and Functions

key Function
W Move Camara Up
S Move Camera Down
A Move Camera Left
D Move Camera Right
Space Move Camera to Default Position
Ctrl + Z Undo Command
Ctrl + Shift + Z Redo Command
Ctrl + S Save/Save As Project
Ctrl + O Open Project
Ctrl + N New Canvas/Project

Mouse Functions

Mouse Button Function
Left Button Add Tile
Middle Button Pan/Move the Camera
Right Button Remove Tile
Wheel Up Zoom In
Wheel down Zoom Out

Issues to Work On

  • Only works on 1920 1080 Resolution, does not take into affect other screen resolutions
  • Box Collider Offset not scaling properly with zoom fixed
  • There are probably more bugs that I am still finding

About

Tilemap Editor that can be used to create maps for the Pikuma Game engine or a custom engine with small tweaks

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published