Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What I'd love Tiled to become... #233

Closed
mrmalee opened this issue Jun 28, 2012 · 8 comments
Closed

What I'd love Tiled to become... #233

mrmalee opened this issue Jun 28, 2012 · 8 comments
Labels
feature It's a feature, not a bug.

Comments

@mrmalee
Copy link

mrmalee commented Jun 28, 2012

I love Tiled, I think it's one of the best free tilebased map editors going around. However, since using it to build levels for 3 games now (and starting on a 4th) there are some things which are missing.

http://www.ogmoeditor.com/
http://chevyray.com/2012/01/making-levels-with-ogmo-editor-2/

The editor above is where I'd love Tiled to get to. Incorporating more of a "project" mentality, rather than scattered levels that have no relation to each other. Creating a game is a very evolving process for me, it's always changing. Sometimes I may need to completely re-work an enemy or object for it to work as I want. This is very frustrating in Tiled, there's no concept of "shared objects" or "templates". If I had 20 levels and in each of those levels were at least 100 enemies, and I had to change their properties, I would have to either edit xml or manually edit every object individually. That is an extremely tedious task and may result in a code side solution to avoid doing it. Which, imo, is not the way to create a game.

I'd highly recommend downloading that editor and just seeing how you can create levels with it.

Now, while that editor is good, it lacks a lot of the stability and features of Tiled.

  1. Tiled has a highly compressed tile format.
  2. Tiled supports random painting / terrain.
  3. Tiled has geometric objects
  4. Better undo/redo (history)

I'm not trying to promote ogmo here at all or say it's better/worse. I'm just using it as a reference so that Tiled may adopt the same structure or at least head in that direction. In any case, I desperately need Tiled to evolve into something like this:

  1. Project like structure (define top level layers, entity and object templates, tilesets, tiles...)
  2. Ability to scale/flip/rotate any object.

I'd love to hear what other people think as well.

@bjorn
Copy link
Member

bjorn commented Jun 29, 2012

I agree entirely and support for projects has been something on the list of features to add for some years already.

But just a note about the thing about changing the stats of hundreds of enemies later on. This was not the way that feature was intended to be used. Basically Tiled expects you to define your enemies somewhere else, and then only have one custom variable on your object saying which of the enemies it is.

@mrmalee
Copy link
Author

mrmalee commented Jun 29, 2012

right, but what about defining data that corresponds to the level. Like a walk path, or a target position the enemy tries to get too, or a series of other objects the enemy is interested in. If for some reason I had to change the format of these properties to match the game, I would need to re-edit every object. It makes sense (for me anyway) to have an editor which is responsible for both the placement and properties of an object in the world.

Ogmo has something which I really like, and that's the concept of "nodes" on objects. You can define a walk path for an object, or maybe a navigation mesh, points of interest... Very handy in making enemy AI.

@Kadoba
Copy link

Kadoba commented Jun 29, 2012

Wouldn't it be possible to do those things with lines or polyline objects? I haven't used Ogmo so I'm not sure how they compare.

@mrmalee
Copy link
Author

mrmalee commented Jun 29, 2012

I suppose you could create an id to a path object in the enemy properties. But it's not visual and could introduce bugs if the id's are messed up. Being able to visually see what components an object has it very useful in rapid level design.

While having the ability to define nodes to an object is good, it does however bloat an object definition. I don't agree with creating unnecessary functionality onto an object through code that "might" be used. I think a better solution would be to associate other components to an object. Kindof like a hierarchy, or how 3d programs like Maya and 3dsMax work. You add components to primitive objects to add behavior and functionality. So in the case of adding paths/waypoints. I could either add a path component (the polygon object) to the entity definition, which would require that objects in the world that originate from this template require a path object associated. I then can create paths and assign them to objects in my world.

This could also open up the possibility for other types of components: a sound, reference to another object. Primitive components like Boolean, integer, float, String...

Then during the render of these objects (if selected) the component knows how to render itself (ie. A polygonal path, a line pointing to another object)

@downstroy
Copy link

just a comment (nearly 3 years later !!) on what has been said:

"But just a note about the thing about changing the stats of hundreds of enemies later on. This was not the way that feature was intended to be used. Basically Tiled expects you to define your enemies somewhere else, and then only have one custom variable on your object saying which of the enemies it is."

I think I understand the philosophy behind the custom properties of objects in the case of an enemy (as it is more "code-related" than 'map-related"), but as I have said in another issue ( #70 ), what about map-related stuff (typically platform, or as said in comments above: enemy path (like bats))

While I can handle all the logic of the platform/ enemy moving in code, and just have a name/ type to link to it, it is MUCH more convenient to define platform/ enemy path in the editor, because you visually see how many tiles the object needs to move, while in code it may be longer ( test an (X, Y) position, build and run, retest etc)

@atbigelow
Copy link

I think that stuff shouldn't exist in Tiled. However, having an easier and more powerful plugin system that would allow someone to customize Tiled to their team's needs would be more beneficial.

@toddcarnes
Copy link
Contributor

I tend to agree with August, this stuff doesn't really belong in a map
editor.

Todd

On 01/21/2015 09:28 AM, downstroy wrote:

just a comment (nearly 3 years later !!) on what has been said:

"But just a note about the thing about changing the stats of hundreds
of enemies later on. This was not the way that feature was intended to
be used. Basically Tiled expects you to define your enemies somewhere
else, and then only have one custom variable on your object saying
which of the enemies it is."

I think I understand the philosophy behind the custom properties of
objects in the case of an enemy (as it is more "code-related" than
'map-related"), but as I have said in another issue ( #70
#70 ), what about map-related
stuff (typically platform, or as said in comments above: enemy path
(like bats))

While I can handle all the logic of the platform/ enemy moving in
code, and just have a name/ type to link to it, it is MUCH more
convenient to define platform/ enemy path in the editor, because you
visually see how many tiles the object needs to move, while in code it
may be longer ( test an (X, Y) position, build and run, retest etc)


Reply to this email directly or view it on GitHub
#233 (comment).

@bjorn bjorn added the feature It's a feature, not a bug. label May 12, 2020
@bjorn
Copy link
Member

bjorn commented May 12, 2020

We've come a long way since this issue was created, with many related features having been added in various Tiled releases (predefined object types #367, object templates #70, scaling/flipping/rotating of objects #11) and more will come in Tiled 1.4 (a project structure #1665, connections between objects #707).

That said, a big difference remains in that in Ogmo you start off with defining your project, the layers, custom properties and eventually each map, in Tiled it's each map that stores which layers it has. The main project-wide setting currently are the predefined object types. Another big difference is that in Ogmo many features can be turned off, like whether rotation or flipping should be enabled, and you can even do that per layer or per entity (though this may get tedious as well).

I've made sure the missing aspects that would be nice to have in Tiled are covered by more specific issues:

Please let me know if I've missed anything.

@bjorn bjorn closed this as completed May 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature It's a feature, not a bug.
Projects
None yet
Development

No branches or pull requests

6 participants