Files
Editor2D/README.md
2025-05-27 17:48:49 -05:00

2.0 KiB

Editor2D Project

C++ Tools for 2D Level Creation.

This is our in-house solution for creating and managing tile-based levels for 2D style games, comprising a robust C++ library for data handling, a user-friendly GUI application for visual editing, and a couple of other tools for good measure.

Introduction

This project provides a complete workflow for 2D game level design, split into two main components:

  1. A C++ Library: Designed for game developers to easily load, save, and manipulate tilemap data within their game engines. It defines the core data structures for levels, tilesets, layers, and entities.
  2. A GUI Editor Application: A standalone tool built on top of the C++ library, offering a visual interface for artists and designers to construct levels, manage tilesets, arrange layers, and place entities.

Our goal is to offer a flexible, efficient, and user-friendly solution for 2D game level creation.

Features

C++ Library

  • Data Structures
  • Efficient Data Storage - Metadata is saved in .json files, while the layers' raw-tile-matrices are stored in flat binary files.
  • Load & Save utilities
  • Global Tile ID (GID) System

GUI Editor

  • Visual Tile Painting: Intuitive tools for drawing and erasing tiles on different layers.
  • Layer Management: Add, remove, reorder, hide/show, and adjust properties (opacity, parallax) of layers.
  • Tileset Management: Import texture atlases, define tile dimensions, and set individual tile properties.
  • Entity Placement: Place, move, resize, and configure custom properties for game entities.
  • Project Workflow: Create new levels, open existing ones, and save changes.
  • Real-time Preview: See your level come to life as you build it.

Known Bugs / TODOs

Contributing

Acknowledgements

This project is developed and maintained by Josh O'Leary and Redacted Software.

Special thanks to my wife, Ash, for requesting me to make this as a tool to allow her to design levels.

License

This work is expressly dedicated to the Public Domain, and is licensed under the Unlicense.