Wednesday, April 14, 2010

Tiled Qt 0.4.1 released


This release adds a lot of new translations as well as a few small features. New is the support for storing layer data as CSV (comma separated values), contributed by Dennis Honeyman. Also, Jeff Bland extended the fill tool to fill the selection when Shift is pressed. The full list of noteworthy changes:
  • Added support for saving tile layer data as CSV
  • Added shift modifier to bucket fill tool for filling the selection
  • Added Brazilian Portugese, Japanese, French, Italian and Czech translations
  • Made values used in the New Map and New Tileset dialogs persistent
  • Fixed drawing selection highlight where brush is not painting
  • Fixed an incompatibility with Tiled Java in 'trans' attribute
Thanks to Jonatas de Moraes Junior, Hiroki Utsunomiya, Yohann Ferreira, Antonio Ricci and Petr Viktorin for the new translations!

45 comments:

  1. I can't edit the wiki, but I wanted to let you know that there is an open source library for using Tiled maps in XNA Game Studio: http://tiledlib.codeplex.com/.

    ReplyDelete
  2. Hey Nick, thanks for sharing TiledLib with us! I've added a link to it in the 3rd party section on the main wiki page. :-)

    Btw, when you'd like to have edit rights to the wiki, just give me your SourceForge account name. This step is manual mainly so that I don't have to combat spam.

    ReplyDelete
  3. I would like to request a feature.

    I used to use a program Quark for editing Quake levels. One thing that I found really neat was that you could group 3d objects into one entity (stair, lamp) etc and then you could just copy and paste that entity anywhere in the level and have similar looking objects. I think this could also be really useful in tiled editor. In your screenshot for java version I see a lake made up of 4x4 tiles. or a generic part of a wall 6x4 tiles. Those tiles could be made into one group that you could easily copy and paste anywhere on the map for example.

    A few requirements for this would be that : Object should copy all the layers (graphical view/passable terrain etc) and object group should also define which tiles are empty - this should allow irregular sized objects to not override the scenery where they are pasted.

    A good use for this would be : If you have a city map and have a large/complex building. Instead of remaking this building, you could just group it and paste a copy of it somewhere else on the map.

    PS: This editor is good. Liked it right from the start.

    ReplyDelete
  4. Vitaly, in Tiled you can already right-click-drag any area to reuse it somewhere else. In the tileset view you can also select multiple tiles at the same time to paint them together. If you need to carry an area of tiles over to another map, you can use the selection tool and copy/paste the area. Unfortunately all these things only work on one layer at a time at the moment. If this doesn't meet your needs, please report this on the Bug Tracker (where it's also easier to communicate back and forth).

    ReplyDelete
  5. Hi!

    Just wanted to say that Tiled is awesome! Thanks!

    I had a feature request I'd like to share:
    The ability to specify tile set texture offsets. I'm using a tileset that is 64x64, however the actual texture itself has a 1 pixel gutter around each tile image to account for artifacts when rendering at weird scales in XNA. Therefore, each tile is really 66x66. It would be awesome to tell Tiled that each tile has a 1 pixel border around it that it shouldn't draw ( ie. only draw the center 64x64 of each tile in the texture ). Tile Studio has this feature where you're able to specify a texture offset and tile spacing. However, I don't like the Tile Studio interface, plus they don't support XML exporting like Tiled :)

    Any chance this could be something that can be added?

    Thanks! And again: great editor!

    ReplyDelete
  6. @RegularKid

    The texture coordinates are preserved if you're using the TiledLib I linked above. We simply read in the areas defined in the map file and convert those the appropriate source rectangles for XNA.

    Your issue is likely with filtering that occurs when you scale graphics on the GPU. By default you'll get bilinear filtering which can introduce issues. In general it's not recommended to scale graphics if you want pixel perfect drawing.

    If you are going to scale, you need to change the graphics sampler state to use point filtering instead of bilinear filtering. This can be done by setting up your spritebatch.Begin like this:

    spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.None);
    GraphicsDevice.SamplerStates[0].MinFilter = GraphicsDevice.SamplerStates[0].MagFilter = TextureFilter.Point;

    ReplyDelete
  7. @RegularKid

    Actually, Tiled also allows you to specify texture offset (the tileset margin) and tileset spacing. You should see input fields for these attributes in the New Tileset dialog. The example tileset tmw_desert_spacing.png uses a margin and spacing of 1. It sounds like you should be using 64x64 as your tile size, and a margin of 1 and a spacing of 2.

    ReplyDelete
  8. Thanks guys!

    @Thorbjørn

    I see those input fields now. Works perfectly.. exactly what I needed!

    Thanks again!

    ReplyDelete
  9. @Nick

    Thanks for the info... You're exactly right about the scaling issue. However, I had looked into the point filtering mode and it just doesn't ( obviously ) look as nice as bilinear. That's where the 1 pixel extended border around each tile comes into play and fixes the issue. And now, using the margin / spacing parameters in Tiled, I can still have each tile be 66x66 but display using the "real" 64x64 part in the editor so I can see exactly how it will look in-game :)

    Totally awesome!

    ReplyDelete
  10. Hi,

    Great job, this is one of the most useful programs that i have used. I am working on a xcom remake and using this program as a preview window, so with that in mind i have some suggestions/requests;

    1. Support for leveling specific tiles or layers up with a specific amount of pixels, for building floors, 2.5D terrain etc. Is there already a way to do this that i am not aware?

    2. Animation support, which can use more than one tile in each frame to get rid of any timing issues and can support layers. In addition; the manual placement of the tiles for each frame, for units which has seperate arm, legs, body etc tiles for animation. An example of this is the usage of legs in a fixed position and everything else is moving up and down while the unit is walking. It should be great if the editor can mimic this too.

    Sounds much now :) but imo various usage of these are common in izometric games, so for a better preview of the game other users may find these features useful too.

    I am "rom" from http://ufotts.ninex.info/
    Thanks for this great program.

    ReplyDelete
  11. Very nice map editor.
    Please, enable option to save image with grid lines.
    It's very useful to print and play miniature games.
    Possible?
    Thanks

    ReplyDelete
  12. @Carlos

    Not only possible, but quite easy as well! I've implemented it on the git master branch now, so it will show up in the 0.5.0 release. :-)

    ReplyDelete
  13. Sounds great!
    Thanks and waiting for 0.5.0 release.
    []

    ReplyDelete
  14. Trying to compile under Fedora 12, getting an error toward the end of the build process:

    /home/x/Downloads/tiled-qt-0.4.1/src/main.cpp:30: undefined reference to `qt_plugin_instance_qgif()'
    .obj/main.o: In function `StaticqjpegPluginInstance':
    /home/x/Downloads/tiled-qt-0.4.1/src/main.cpp:31: undefined reference to `qt_plugin_instance_qjpeg()'
    .obj/main.o: In function `StaticqtiffPluginInstance':
    /home/x/Downloads/tiled-qt-0.4.1/src/main.cpp:32: undefined reference to `qt_plugin_instance_qtiff()'
    collect2: ld returned 1 exit status
    make[1]: *** [../bin/tiled] Error 1
    make[1]: Leaving directory `/home/x/Downloads/tiled-qt-0.4.1/src'
    make: *** [sub-src-make_default-ordered] Error 2

    ReplyDelete
  15. @prower

    This isn't really the right place to report compile errors. Better would be to join the #tiled IRC channel on irc.freenode.net and ask for help, or to report the issue on the Mantis bug tracker. That said, I will try to reproduce the issue. I'm assuming you're compiling against the Qt version shipped with Fedora 12.

    ReplyDelete
  16. Hi guys,

    First off, it's a wonderful tool... shaving my design time by hours!

    Not sure if this is the right place, but i couldn't find the bugtracker, apologies. There seems to be a little issue with the grid overlay in isometric view. Although tile placement seems to be ok, if i turn the grid on, it shows the grid as a 2D orthogonal grid, but rotated at 45 degrees to the horizontal (i.e a flat diamond grid). If it's a platform specific issue, i'm running a 64bit Win7 laptop.

    Thanks a million and keep up the great work

    shrike71

    ReplyDelete
  17. @shrike71

    Good to hear you like Tiled!

    You can find the bug tracker link in the "Contributing to Tiled" box to the left. You can try to report the issue there, however the way you describe the isometric grid seems to be exactly like it is meant to be. Isometric currently means the whole map is transformed into isometric perspective. Other ways of drawing isometric, for example by shifting rows, would be nice to support but are not implemented at the moment.

    ReplyDelete
  18. Ahoy. I recently decided to look into tiled. It seems pretty nice, and I'm considering using it for my future game projects (and potentially integrating native support for its format into a game engine).

    I've added one request for a line tool, since in my examinations of tiled, I couldn't find one. I also filed a bug report for a small thing (using the eraser without a map -- which should do nothing, but crashes instead).

    I'll see if I can think of any other features that it may need and point out anything else I discover with this. If it looks easy enough to use, I may jump into the source myself. Plan on looking at the git repo later.

    - Overkill

    ReplyDelete
  19. I've started using Tiled to edit maps in my project codenamed OSARE. Thanks for all your work!

    - Clint "pfunked" Bellanger

    ReplyDelete
  20. I get the same error trying to install on Ubuntu. The thing is, you don't have a .deb or binary available, so "reporting a compile error" is like downloading a Windows .exe and saying it didn't work; This is the normal install process and we're having trouble with it. No offense, but I really don't care about your code at all, and I don't care about QT. I don't want to figure it out or debug it. I may be on Linux but I'm still an end-user, I just want the thing to work. I didn't even get that far in the make process until I installed the qt4-dev-tools package - this error is AFTER I installed it! Googling the error gets an ubuntuforums post of a guy who nobody helped and who solved his own problem by installing that package (which I did before Googling), so obviously that isn't a solution. IRC is probably a black hole just the same. Tl;dr: Even though I'm a programmer myself, I don't care at all about compiling this program, I just want to use it

    ReplyDelete
  21. @spoonbeard

    I sympathize with your frustration, but ultimately vending it here is not helping anyone. I agree having a Debian/Ubuntu package in some repository would be perfect, however I am not a Debian packager. Fortunately, other people will be providing such packages eventually.

    About your compile problems, what makes you think IRC is a black hole? There are usually several people there who have compiled Tiled from source and may be able to help you with your problem. IRC, the bug tracker, or even directly emailing me are much preferred channels for getting help than commenting on the blog.

    In short, brighten up! I'm developing this tool for fun and releasing it because it saves other people work. I really don't intent to annoy other people with obscure compile errors, trust me!

    ReplyDelete
  22. @prower, @spoonbeard

    Tonight I installed Fedora 13 on a virtual machine, installed qt-devel and gcc-g++ and could reproduce your compilation issue. It turned out that on Fedora, QT_SHARED is not defined even though Qt is shared, causing Tiled to assume a static Qt build. I guess this is a packaging bug, but I could work it around by using a custom STATIC_BUILD define. I've also documented that you need to use qmake-qt4 on Fedora.

    So if you check out the git master branch, you should be able to compile Tiled fine.

    ReplyDelete
  23. I just started using Tiled for an iso flash game port to iPhone. I think its really great. I am confused on one topic though. I don't see any way to reuse tilesets. If I were to setup a bunch of properties on each of my tiles in the tileset(like tree is blocking, water is water etc) would I have to keep a seperate copy of that for each map I wanted? I am going to have like 20 maps and having one common tilemap property list shared between them would be very helpful. Am I missing something or is this just a limitation?

    ReplyDelete
  24. I figured out how to do this. You can add an external tileset. Use the source attribute and copy the tileset element to a new .tsx file that should look much like the tmx format except with the only child being the tileset. The id key should be in both i believe.

    ReplyDelete
  25. Just a question:

    When will there be plugin support?

    Anyway great editor helped me much(with the exeption of converting the files to my format... ;))

    ReplyDelete
  26. @Tom

    That's the way to do it at the moment, yes, since I didn't get around to implementing a way to add/remove external tilesets in the GUI. I'm quite impressed that you found out about it! Meanwhile, also be aware that changes to tile properties in external tilesets are not saved at the moment.

    @phanaton

    The next version of Tiled (0.5.0) will have support for export plugins (you can find this already in the git repository). Later on, plugins will be able to add more things to Tiled.

    Thanks for your comments!

    ReplyDelete
  27. @Thorbjorn:

    I suspect the reason spoonbeard was pessimistic regarding IRC is the abundance of open source projects with dead support chatrooms.

    I approached Tiled with the same prejudice, but was surprised to find that your IRC channel is awesome, lively, and generally the portrait of an ideal chat room.

    So heads up to anyone who reads this, #tiled rocks the house. :)

    ReplyDelete
  28. Hi Bjoern,

    sorry that I have to contact you thsi way (couldn't find an email address). Can you please contact me at ole@stepmap.de - I would like to discuss and idea with you (regarding maps...)

    Thanks
    Ole (member of stepmap.de)

    ReplyDelete
  29. Any chance of allowing setting the source and dest blend for each layer in the editor itself? I am using masks for my tile transitions and it's tough to see what it will look like without saving and running in my app.

    ReplyDelete
  30. @Jeff Johnson: It's possible to add that, but for such specific requests I can really recommend diving into the Tiled source and see if you can make it happen the way you want. A bonus would of course be if you implemented it in a way that will be maintainable and useful for everybody. My spare time is limited, but I am available for questions on IRC or by e-mail as much as I can.

    ReplyDelete
  31. Is the exporting functionality next version going to include the ability to export a map to an image file? The only thing that keeps this from being useful to my project is the ability to do so, since I need to import a map into a verge editor to add obstacles and zones and the like. I don't want to start making maps and then not be able to use them.

    ReplyDelete
  32. @Caitlin:

    I'm not sure what you mean, the "Save As Image" feature has been available since Tiled Qt 0.2.0. Also, why do you need Verge to add obstacles and zones? You can also use custom tile and object layers to add that kind of stuff with Tiled. Unless you're using the Verge engine itself, I guess.

    ReplyDelete
  33. Oh by the way I implemented my export plugin, it works like a charm :D!
    I think it works better and also faster than the java version.
    So next nice feature would be to import the maps, but do first more important things..., if you really want edit the exported maps you just have to save it also as tiled map format.

    ReplyDelete
  34. This looks pretty nice.

    Question: Is hex tile support in the pipeline?

    ReplyDelete
  35. @phanaton

    Glad to hear your export plugin worked out fine! :-)

    @Lost Dragon

    It's planned, but not in the pipeline at the moment. If that's what you need, you may want to look into implementing it yourself. Maybe the staggered isometric renderer by Arialia can serve as an example (I haven't had time to check it out yet): http://gitorious.org/~arialia/tiled/arialias-tiled-qt-isostaggered/commits/isostagg

    ReplyDelete
  36. very good program!
    I have a feature suggestion/request: the possibility of rotate selected tiles..

    ReplyDelete
  37. Hi, thank you for this great editor!

    Do you know when you will add the feature for tiles with several frames of animation? I assume it is in the Java version, but could not find it in the QT version.

    Cheers,
    Marc

    ReplyDelete
  38. @Francesco

    Being able to rotate tiles, I assume you mean by increments of 90 degrees, would be nice. Feel free to add your suggestion to the bug tracker.

    @maw

    In fact, native support for animated tiles hasn't been implemented in Tiled Java either. Currently you could for example rely on custom tile properties to tell your engine which tiles to animate and how.

    ReplyDelete
  39. I'd like to open a PPA repository on Launchpad with a deb package of tiled for ubuntu users..can i do that?

    ReplyDelete
  40. @duck-wallace

    Sure, that'd be great! Would you like to maintain an official Tiled PPA, that is kept up to date, so that I can link to it from this page? And where would you host the .deb build files? I'm fine with maintaining those as part of the Tiled repository. Btw, please come on IRC or e-mail me instead of replying to my questions here.

    ReplyDelete
  41. well but...were can I find your e-mail address? :)

    ReplyDelete
  42. @duck-wallace

    Hrm, in the AUTHORS file of Tiled package for example. :-P It is "thorbjorn lindeijer nl", which the usual characters added.

    Btw, in the sidebar there is also a webchat link to IRC, which would allow you to instantly ask me something without having to install any chat program.

    ReplyDelete
  43. Hi, I think I have found a bug: when I set a layer to invisible, set it to visible again and then save the map, the node of this layer still contains the attribute visible="0".

    Cheers,
    Marc-André

    ReplyDelete
  44. @Marc-André

    Currently, changing layer visibility is not an undo command, just like changing opacity. This is because I considered them editor features and not really relevant to your map. Hence, could it be that it simply didn't save it, because the Save action was still disabled? In the upcoming 0.5.0 release, the Save action is always enabled.

    ReplyDelete
  45. I just wondered... is there a way to remove a tileset from the project? I cant find this functionality, maybe I'm just blind ;)

    Cheers,
    Marc-André

    ReplyDelete

Note: Only a member of this blog may post a comment.