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

Remove editor specific code in favor of including them as basic examples. #84

Closed
StarArawn opened this issue Aug 23, 2021 · 4 comments · Fixed by #104
Closed

Remove editor specific code in favor of including them as basic examples. #84

StarArawn opened this issue Aug 23, 2021 · 4 comments · Fixed by #104
Labels
enhancement New feature or request question Further information is requested

Comments

@StarArawn
Copy link
Owner

StarArawn commented Aug 23, 2021

I've had a lot of people ask me very similar questions along the lines of:

How can I access tiled/ldtk data on load.

I don't mind answering those questions, but I don't think bevy_ecs_tilemap should support things like:

  • Collisions
  • Tiled map editor objects
  • Backgrounds
  • Non tile map stuff.

Which makes me think that the ldtk/tiled features should be removed in favor of using clearly defined examples.

Why examples?

  1. Less complexity. Tiled/LDTK are level editors and as such they provide a lot more data specific to the game you are making. As such its almost impossible to support all the different ways people will use loaded data.
  2. The code for the tiled/ltdk loaders are very small. Moving them into well documented example files allows users to learn how that data is loaded in and how to create the tile maps using bevy_ecs_tilemap.
  3. If I support collisions for example it locks bevy_ecs_tilemap into a collision library. I would like to avoid that at all costs.

I want to reach out to the community first before I go ahead and make this change. Anyone who wants to voice any concerns/comments feel free!

Reference issues:
#82
#80
#21

@StarArawn StarArawn added enhancement New feature or request question Further information is requested labels Aug 23, 2021
@alice-i-cecile
Copy link
Collaborator

I'm in favor of this: I think it's much clearer and more obviously extensible. Your arguments for keeping the scope of bevy_ecs_tilemap small are good, and this will better communicate your goals.

@IceSentry
Copy link

I support that too. Keeping the scope small is a good idea.

Also, this would open up the possibility of making a crate for tiled or ldtk that supports other features of those libraries and simply use bevy_ecs_tilemap as a kind of rendering target.

@joshuataylor
Copy link

Hi!

Sorry, I'm pretty new to the game development paradigm, so excuse my ignorance.

With regards to collisions, would having layers be a thing (ground as a layer, then another layer), then you could use something like rapier/heron for hooking into entities on a layer that need this?

From my research into Unity, their tilemaps can have colliders on them, which I guess would be a "layer"?

@alice-i-cecile
Copy link
Collaborator

With regards to collisions, would having layers be a thing (ground as a layer, then another layer), then you could use something like rapier/heron for hooking into entities on a layer that need this?

Yep, the general pattern to follow here will be to give the tiles that you want to collide with some sort of Collision component, and then use a third-party physics library that consumes those.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested
Projects
None yet
4 participants