Giter Site home page Giter Site logo

dtile's Introduction

DTile - The tilemap editor for everyone

Build Status dependencies Status devDependencies Status

DTile aims to be the best tilemap editor available today. It runs in your browser (right now only Chrome) and has the ability to adapt to what you need it to do. If you're making a complete game with it, you can make your own custom game plugin that allows you to have all the options you need right at your fingertips or if you just want to show off a cool tileset you made, DTile is already configured with all the essentials out of the box.

DTile is in Alpha

DTile is using some of the latest cutting edge features of the web-platform and is only functional in Chrome right now. It's also not super stable, though you can certainly play around with it or even use it for a game if your feeling daring.

Contributing

We want to make contributing to DTile as easy and frictionless as possible. If you want to help out, but you have something you're unsure about, send an email to [email protected] and someone (most likely @magnonellie) will help you out! We don't bite and you can help out no matter what your skillset is. You don't have to be able to code to make a good contribution!

If you want to add a new feature, a good idea is to open an issue first before starting to write code to see if others may have valuable feedback.

Developing

Requirements

  • Git, NPM and Bower installed

Getting started

First of all, the usual JavaScript gobble applies with the catch that DTile still uses bower, meaning that you have to fetch all bower dependencies too. (This is subject to change very soon as Polymer 3.0 comes around)

$ cd path/to/DTile
$ npm i && bower i

With that done, you need to download the Polymer CLI if you don't already have it installed. Then, execute polymer serve and open one of the links presented by the serve command and you're done! Do keep in mind that Google Chrome is currently the only browser that can handle this development setup for now.

dtile's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

dtile's Issues

All tilemaps reamain in all prodjects

Even if you create a new project all old tilemaps will be crated with the same name in this project. Thogh they are empty with only layers remaining
skarmklipp
Marked in blue does are not supposed to be in that project

Camera behavior

Slightly related to #17.

The camera should be able to align with the map and should have more predictable MMB drag, etc. Animations would also be pretty cool.

Tile selection doesn't dissapear

When turning off the tile selection tool, the tiles previously selected while using the tile selection tool still stay selected.
image
image

Map loading indicator positional issue

When loading in a new map, the indicator that shows that DTile is loading the map ends up on the row below the Import map button, rather than on the same row.
image

Unsaved progress dialog

DTile should prevent people from navigating away from the page if there is unsaved progress.

Implement some kind of pub/sub

It's getting pretty apparent that our codebase is pretty messy due to us not having a proper event system implemented. I would say that the most appropriate system to implement would be a pub/sub, but I'm open for suggestions. My main reason for pub/sub would be that (from my basic understanding) it fits in pretty well with the whole flux way of doing things. Again, I'm very much open for suggestions, but this is what I personally would go for.

Remove tileset background color

I'm thinking we could analyse the tileset to find all tiles with just a single color and rule out the one that occurs the most. I think that should cover all edge-cases.

Lazy loading

We should make loading of different pages be on demand instead of sending everything down to the client on page load.

Random errors when going out of bounds

Errors do appear quite often when accidentally going out of bounds, such as when you try to paint outside of the border or trying to redo / undo when there is nothing left to redo / undo. While it's nothing breaking, I still feel like it should be fixed.

Map export options

A few examples of things that should be configurable:

  • Scale in image export (currently defaults to 1:1)
  • Include tileset data in DTile and Tiled exports (currently just doesn't although there is an option internally in the Tiled exporter IIRC)
  • More?

Action log not clearing propably

How to reproduce bug:
If you paint three tiles with three clicks, then undo twice then paint a new tile, then click redo twice. The third tile is back when it should not be. Its deleting the first action but not the action branch making you be able to redo things that are not suppose to be able to redo.

Using deprecated packages

It seems like one (or more) of our dependencies relies on quite a few deprecated and / or outdated packages. We should figure out which dependency this is and take action accordingly, either replacing it or updating it.
Terminal output of deprecated packages

Objects should spawn where camera is

When creating objects, they shouldn't just spawn in the top left corner, but rather in the center of the screen, probably aligned to the grid.

Zoom Behavior

Zoom from mouse as a referace instead of the top left corner.
This would improve workflow and make the aplication seem more fluid.

Mobile support

While it is very much a secondary thing, there is technically nothing limiting us from allowing mobile devices to use DTile. The only thing voicing right now is our UI which isn't designed for mobile at all. There are two options for going about this:

  1. Resign the UI to work with both mobile and desktop
  2. Make some minor tweaks just for mobile devices

Weird tile select

Trying to drag from tile selector to outside of the tile selector. The dragning then keeps on going on the tile selector even though you're not on the tile selector anymore.

Image export

Allow for exporting rendered images of a tilemap

Auto-build to gh-pages

Have travis build and publish to the (currently non-existing) gh-pages branch on push.

Object templates

You should be able to create templates for objects that you commonly want to place.

Better Add Buttons

Instead of having all the action (add) buttons on the top of the different pages, it probably makes more sense, especially for the user, if they are integrated into where the thing would be added to. Basically, add a card at the end of the projects list for example and have it display just an add button.

Can somebody rewrite this?

Obviously I'm not asking somebody to come in and rewrite the entire thing for me, but we seriously need a rewrite... With proper testing... And probably better separation.

Remember sizes

When you get to specify sizes such as tile and map sizes, chances are, the next time the user is asked to input these calls, they are gonna want the exact same ones. Therefore, we should remember them, probably even between sessions.

Selecting tile set issue

When you have a portion of the tile set selected
You then pick the selection tool and select a portion of your tilemap
Then you select another poriton of your tile set

You will see that there will be two visulal selections on the tile set though only the latest one is active.

Rewrite renderer

The renderer is quite a mess currently and needs to be rewritten, probably from scratch.

Here are some things the new renderer has to be capable of:

  • Rendering in chunks as to not slow down when editing very large maps.
  • Render additional detail as provided by a plugin or something else.
  • Be fast.
  • Have a straightforward way of updating it. (compared to what we have now)
  • Support easily updating individual tiles.
  • Support future rendering in 3D
  • More?

Fix focus hack

The focus hack is ugly and takes up way too much performance. We should either get rid of it completely and take the consequences, whatever they may be, or find a better solution.

Tile selection issue

The tile selection tool does not select tiles when the tool's starting point lays outside of the currently existing tile map.
image
image
image

Logging system

A global logging system would be pretty nice so we could save the logs for when something goes wrong, not to mention that I would ease debugging slightly.

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.