YAME (Yet Another Map Editor) is an editor for tile-based 2D maps that I developed for the course Tool and Plugin Programming. Since this project was a single person work I did both programming and graphics myself.
In order to create a map the user has to make an image file available as a tile set and provide basic information such as the size of the map and the individual tiles. All data is prompted using the command line. The program calculates the possible tile values and assigns them to the corresponding fields in the tile set. The user can then edit the map using the mouse whereby the current tile value which is to be placed can be selected via the graphical interface. In addition to creation and saving of a map, it is possible to load an existing map or to configure the current, for example to exchange the tile set.
Each map created with the editor is composed of two layers. Layer 1 contains the actual map to be displayed which results from the assignment of tile values and the tile set. In layer 2 a collision value is stored for each tile which indicates wether the corresponding tile is traversable. This allows to perform a simple collision detection in the application in which the map is to be used. To manipulate the second layer the editor can be switched to a separate mode. The values are then placed analogously to the visual tile values.
The maps are stored in a binary format to prevent manipulation with external (text) editors. In order to use these in an application, corresponding header files are made available. These have been developed for use with the SFML framework. However, the file format is independent of the graphical representation. In order to use it with other libraries it is only necessary to adjust the method for loading a map.
You can find the project on my GitHub page.