Giter Club home page Giter Club logo

mappo's Introduction

alt text mappo v0.33.0 alt text

alt text

Mappo is a work in progress 2D tile map editor for retro games. Currently, only VERGE file formats are supported for loading. A comprehensive set of command-line tools for loading and exporting all VERGE file formats (to PNG/GIF/JSON) are included. One of these can export any VERGE map to a Tiled .TMX file.

Why?

Grue showed me his cool maped4 project. It exploded when I tried to use it, so I created this project to isolate the issues and understand why. Node and Electron and VERGE are cool, so I kept going. It's a fun way to probe unfamiliar territory (Node and Electron) with a familiar face (VERGE).

In ancient times, I worked on my own map editor. http://chuckrector.com/old/ So, I have a soft spot. Partly, this project is about "Can I do what I once did more easily?" Partly, it's also about "How much more powerful am I now?"

Triplefox | what is the plan for the loaders? just to have everything in json?
     @aen | binary formats can be viewed as a bit of a barrier
     @aen | conversion to json/png/whatever simply lowers that barrier
     @aen | and allows us all to stripmine everything

Requirements

  • Yarn (an alternative to npm)
  • Node >= 5.10.0 (Buffer.from)

Installation

  1. git clone https://github.com/chuckrector/mappo.git
  2. cd mappo
  3. yarn
  4. yarn start

Supported File Formats

| VERGE1 | VERGE2 | VERGE2.7 (ika) | VERGE2k+j | VERGE3 --- |:---:|:---:|:---:|:---:|:---: PCX | ✅ | ✅ | ✅ | ✅ | ✅ BOX.RAW | ✅ | n/a | n/a | n/a | n/a CHR | ✅ | ✅ | ❓ | ✅ | ✅ CR2 | ✅ | n/a | n/a | n/a | n/a EQUIP.DAT | ✅ | n/a | n/a | n/a | n/a ITEMICON.DAT | ✅ | n/a | n/a | n/a | n/a ITEMS.DAT | ✅ | n/a | n/a | n/a | n/a MAIN.FNT | ✅ | n/a | n/a | n/a | n/a MAP | ✅ | ✅ | ✅ | ✅ | ✅ MISCICON.DAT | ✅ | n/a | n/a | n/a | n/a PAL | ✅ | n/a | n/a | n/a | n/a PARTY.DAT | ✅ | n/a | n/a | n/a | n/a SMALL.FNT | ✅ | n/a | n/a | n/a | n/a SPEECH.SPC | ✅ | n/a | n/a | n/a | n/a TRANS.TBL | ✅ | ✅ | n/a | ✅ | n/a | n/a VSP | ✅ | ✅ | 😭 | 😭 | ✅ VC | 😭 | 😭 | n/a | 😭 | 😭 VCS | 😭 | 😭 | n/a | 😭 | n/a save games | 😭 | n/a | n/a | n/a | n/a

Planned Features

CHANGELOG

Emoji What does it mean?
I did it!
😭 I didn't do it yet.
🛠 I'm working on it!
💥 I've done some parts of it.
Feature Implemented?
Show all maps in launch folder (even subfolders)
Click any V1/V2/V3 map to load it
Save maps 🛠
Auto-save
Tile selector
Plot tiles
Basic undo/redo (plots)
Fill region with tiles 😭
Auto-tiling 😭
Draw map layers in correct order
Draw tile animations 😭
Edit tile animations 😭
Draw characters/entities 😭
Edit characters/entities 😭
Edit map layer order 😭
Draw obstructions 😭
Edit obstructions 😭
Draw zones 😭
Edit zones 😭
Show all map layers
Toggle layer visibility
Scroll viewport w/ keys
Scroll viewport w/ mouse near edges
Scroll viewport w/ mouse dragging
Zoom map (ctrl +/-)
Multi-tile brushes 😭
Multi-tile templates w/ zones & obstructions 😭
On launch, load previous map
On launch, remember previous window size & position
On launch, remember previous session undo history
On launch, remember previous zoom level
On launch, remember previous selected tile
On launch, remember previous selected layer
On launch, remember previous layer visibilities
Drag & drop maps to load them 😭
Drag & drop tilesets to load them 😭
Drag & drop images to load them as tilesets or characters 😭

Command-Line Tools

Command-Line Documentation

What does support mean? Currently, at least one loader. Optionally, one or more converters.

Tool Description
map2tmx Convert any VERGE map to Tiled .TMX
pcx2png Convert any PCX image to 32-bit PNG
v1boxraw2png Convert VERGE1 BOX.RAW to 32-bit PNG
v1chr2gif Convert VERGE1 character animation frames to animated GIF
v1chr2json Convert VERGE1 character animation data to JSON
v1chr2png Convert VERGE1 character animation frames to a single 32-bit PNG sprite sheet
v1chr2pnglist Convert VERGE1 character animation frames to individual 32-bit PNG images
v1cr22png Convert VERGE1 character portrait cels to 32-bit PNG
v1equipdat2json Convert VERGE1 EQUIP.DAT to JSON
v1itemicondat2png Convert VERGE1 ITEMICON.DAT to a single 32-bit PNG sprite sheet
v1itemsdat2json Convert VERGE1 ITEMS.DAT to JSON
v1mainfnt2png Convert VERGE1 MAIN.FNT font to a single 32-bit PNG sprite sheet
v1map2json Convert VERGE1 map to JSON
v1miscicondat2png Convert VERGE1 MISCICON.DAT to a single 32-bit PNG sprite sheet
v1partydat2json Convert VERGE1 PARTY.DAT to JSON
v1smallfnt2png Convert VERGE1 SMALL.FNT font to a single 32-bit PNG sprite sheet
v1speechspc2png Convert VERGE1 SPEECH.SPC cels to a single 32-bit PNG sprite sheet
v1transtbl2json Convert VERGE1 TRANS.TBL to JSON
v1vsp2png Convert VERGE1 tileset to a single 32-bit PNG sprite sheet
v2chr2gif Convert VERGE2 character animation frames to animated GIF
v2chr2json Convert VERGE2 character animation frame data to JSON
v2chr2png Convert VERGE2 character animation frames to a single 32-bit PNG sprite sheet
v2chr2pnglist Convert VERGE2 character animation frames to individual 32-bit PNG images
v2kjchr2gif Convert VERGE2k+j character animation frames to a single 32-bit PNG sprite sheet
v2kjchr2json Convert VERGE2k+j character animation frame data to JSON
v2kjchr2png Convert VERGE2k+j character animation frames to a single 32-bit PNG sprite sheet
v2kjchr2pnglist Convert VERGE2k+j character animation frames to individual 32-bit PNG images
v2map2json Convert VERGE2 map to JSON
v2vsp2pal Convert VERGE2 tileset palette to VERGE.PAL
v2vsp2png Convert VERGE2 tileset to a single 32-bit PNG sprite sheet
v3chr2gif Convert VERGE3 character animation frames to animated GIF
v3chr2json Convert VERGE3 character animation frame data to JSON
v3chr2png Convert VERGE3 character animation frames to a single 32-bit PNG sprite sheet
v3chr2pnglist Convert VERGE3 character animation frames to individual 32-bit PNG images
v3map2json Convert VERGE3 map to JSON
v3vsp2png Convert VERGE3 tileset to a single 32-bit PNG sprite sheet
v3vspob2png Convert VERGE3 tile obstruction types to a single 32-bit PNG sprite sheet

mappo's People

Contributors

chuckrector avatar

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.