79 lines
3.2 KiB
Markdown
79 lines
3.2 KiB
Markdown
# 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.
|
|
|
|
|
|
## Dependencies
|
|
|
|
### Managed Dependencies
|
|
Redacted Software Libraries are [automatically](https://github.com/cpm-cmake/CPM.cmake) managed as part of the build toolchain. They are enumerated here for documentation's sake.
|
|
|
|
* [@maxine/mcolor](https://git.redacted.cc/maxine/mcolor)
|
|
* [@josh/Event]()
|
|
* [@josh/jlog]()
|
|
* [@josh/ArgsParser]()
|
|
* @josh/J3ML
|
|
* @josh/json
|
|
* @josh/JGL
|
|
* @Redacted/ReWindow
|
|
* @Redacted/ReArchive
|
|
* @josh/ReJUI
|
|
|
|
### Your Responsibility
|
|
Below is the list of software you will need installed on your system. Package names are included for the main Linux Distributions we test on.
|
|
|
|
* OpenGL
|
|
* Fedora / Rocky / RHEL: `mesa-libGL-devel`
|
|
* Ubuntu / Debian: `libgl-dev`
|
|
* Arch: `mesa`
|
|
* [Vulkan](https://vulkan.lunarg.com/sdk/home)
|
|
* Fedora / Rocky / RHEL: `vulkan-devel vulkan-loaders-devel vulkan-headers`
|
|
* Ubuntu / Debian: `libvulkan-dev`
|
|
* Arch: `vulkan-devel`
|
|
* FreeType:
|
|
* Fedora / Rocky / RHEL: `freetype-devel`
|
|
|
|
## Known Bugs / TODOs
|
|
|
|
## Contributing
|
|
|
|
## Acknowledgements
|
|
|
|
This project is developed and maintained by Josh O'Leary from Redacted Software.
|
|
|
|
Thanks to William Redacted for building the archiving system, much of the render code, and extensive performance optimization.
|
|
|
|
Special thanks to my wife, Ash, for requesting me to make this as a tool to allow her to design levels.
|
|
|
|
Kudos to Tiled Map Editor for being the primary design inspiration on this project.
|
|
|
|
## License
|
|
|
|
This work is expressly dedicated to the Public Domain, and is licensed under the Unlicense. |