Coder Social home page Coder Social logo

mderam / 2dmapeditor Goto Github PK

View Code? Open in Web Editor NEW
8.0 2.0 1.0 103 KB

Simple 2D map editor. From a tileset to a .txt .json or .lua file.

Home Page: https://mathurin.itch.io/2d-map-editor

License: Other

Lua 97.17% Shell 2.83%
2d-map tileset lua map-editor editor game-development

2dmapeditor's Introduction

2DMapEditor

A minimalist 2D map editor.

Create single layer 2D maps from a .png tileset.

Export maps to txt, json, lua format.

Made with love2d.

Preview

preview

Tileset from https://ansimuz.itch.io/grotto-escape-game-art-pack

Features

  • Edition:
    • Resize
    • Draw
    • Erase
    • Fill
    • Tile Picker
    • Clear
  • Movement:
    • Move
    • Zoom
  • Display:
    • Toggle grid
    • Reset
  • Import:
    • .txt
    • .json
    • .lua
  • Export:
    • .txt
    • .json
    • .lua
  • Set settings from editor.txt
  • Tiles display as drawing palette

Usage Instructions

This minimalist software does not provide any integrated tips or documentation, you should refer to this section if you need help.

Get started

  • Linux/MacOS install love2d v11.
  • Download the map editor.
  • Unzip it.
  • Add at least one tileset in the tileset/ directory.
  • Edit the "editor.txt" file next to the map editor and change some settings to fit your need.
  • Run the map editor (on Linux/MacOS either double click on the .love file or use $ love 2d_map_editor.love from the command prompt).
  • Create a map.
  • Export your map.
  • Your exported map should now appear in the map/ directory.

Shortcuts

Keys Description
D Draw
E Erase
F Fill
Alt Tile picker
Mouse Right Tile picker
Move
Spacebar + Mouse Left Move
Mouse Wheel Zoom

Input/Output Format

A 2d map is encoded as a 2d array of numbers. Each number matches a tile from the tileset.

Considering the following tileset:

tileset to numbers

And this 2d array of number:

{
	{19, 19,  1,  4, 19},
	{21, 19,  9, 19, 19},
	{19, 19, 19, 19, 19},
	{16, 16,  6, 15, 16},
	{13, 13, 13, 13, 13}
}

We get the following map:

numbers_to_map

Importing a Map to Your Project

With Lua (5.1)

If your using the lua programming language, just require the map in your project:

local map = require("path/to/my/map")

Without Lua

Create/find a parser for the file format you want your map to be in.


Building

Builds are done using the "Release" script that itself uses boon. Running ./Release will create a folder named "release", using ./Release -z will zip the folders contained in the release folder.


Project Status

The project is currently finished, however feel free to open an issue if you encounter one. No features will be added.

Why this Project & more...

Initialy I wanted to be able to create maps for my 2d games, I tried tiled but it's a big editor with tons of features and it was exporting maps in the json format, so I should have learned how to use the editor and use a library to parse json files.

Since I only needed single layers maps I started this little project. It was one of my first desktop application so it was very interesting on many points.

I created the map editor 2+ years ago but I never finished some features/polish but used it in multiple projects like It Alive. It's why I came back on it with the desire to make the initial idea come true. I find the project/code structure really bad now and that's a good thing, it means that my programming practices/skills have improved since. If I had to do it again now, I would do it in a much different maner. Thanks for reading.

2dmapeditor's People

Contributors

mderam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

noctisdb

2dmapeditor's Issues

Mac version not working

I have tried the mac os version and it doesn't seem to work.

I think mac os is running the .app inside a safe container and does not allow to find some assets.

image

PD: Windows version is working fine!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.