Friday, October 24, 2014

Tiled 0.10.2 released

Another small bugfix release, fixing a potential crash and a host of smaller issues. The changelog:

  • Fixed hit area for polygon nodes when editing polygons while zoomed in or out
  • Fixed another possible crash in the orthogonal renderer
  • Fixed Select All action to work for object layers
  • Fixed map pixel size preview for staggered maps
  • Fixed repainting issues when tiles extend beyond their layer boundaries
  • Fixed repainting issues when using tiles smaller than the grid size
  • Display errors non-modal when applying automatic automapping rules
  • Flare plugin: Fixed coordinate format for import and export (by Justin Jacobs)
  • Lua plugin: Write out Image layer position
  • Small updates to the Italian translation (by Omnomnobot)

Meanwhile, I'm making progress on adding support for hexagonal maps and plan to release Tiled 0.11 as soon as this is complete. You can already try the support for "pointy topped" staggered hexagonal maps in the daily builds!

Finally, there is now a Tiled community forum. I plan to post weekly development updates there and of course any other Tiled-related topics are welcome there too!

Monday, September 22, 2014

Tiled 0.10.1 released

This small upgrade is mandatory for anybody who's using the Terrain tool. It fixes a crash that was reported three times already since the 0.10.0 release. The full changelog:
  • Fixed a crash that could happen when using the Terrain tool
  • Fixed missing background color information from Lua export
  • Allow using up to 3 or 4 GB RAM on 32 or 64 bit Windows systems respectively
In addition, there is now a 64-bit Windows installer available, for those who need to edit crazy huge maps!

Wednesday, September 17, 2014

Tiled 0.10 released

It took a very long time for me to get around to this release. In part because my spare time has gotten very limited, but it's also because there were constantly many new features to be added. Either from contributors via pull requests or for sponsors needing particular functionality. Both are very good and very welcome, but I will do my best not to let the next release become as big!

In the UI the most visible change may be the new Properties dock, which should be a lot more pleasant to work with than the previous solution. A less obvious one bit still very useful is the support for writing import/export plugins in Python. I've written about both of these features in a previous post.

Apart from that there are just too many new features to talk about, so here's the full list of changes:

  • Added object rotation (sponsored by Ben Wales)
  • Added support for explicit object ordering (sponsored by Ben Wales)
  • Added new Properties window with a rewritten properties editor
  • Added support for writing plugins in Python (by Samuli Tuomola)
  • Added image collection tilesets (sponsored by Jamie Rocks)
  • Added map file watching and automatic reloading (sponsored by FlatRedBall.com)
  • Added support for moving objects with arrow keys (sponsored by Ben Wales)
  • Added a 'snap to fine grid' option (by Xenodora)
  • Added support for JavaScript (JSONP) load/save (by Dobes Vandermeer)
  • Added more zoom levels (by Joel Leclerc)
  • Added shortcuts for finishing and canceling object creation
  • Added a tile collision editor for defining collision shapes on tiles
  • Added a tile animation editor and play defined animations
  • Allow changing properties of multiple objects/tiles simultanously (by Parker Miller)
  • Added tile rendering-order map property (by Lennert Raesch)
  • Added support for changing the object line width
  • Added support for CSV-encoded layers to libtiled-java (by Alexei Bratuhin)
  • Added support for ellipse and polygon objects to libtiled-java (by Hendrik Brummermann)
  • Added terrain properties to JSON export (by Dennis Hostetler)
  • Added support for moving image layers in the Properties window (by Michael Aquilina)
  • Added option to include background image when saving as image (by Sean Humeniuk)
  • Added options to control layer visibility to tmxrasterizer (by Nathan Tolbert)
  • Added display of tile ID in status bar (by Champi080)
  • Added support for objects on staggered isometric maps (by Remco Kuijper)
  • Added support for staggered maps to tmxviewer and tmxrasterizer
  • Added a tool for moving the image of an image layer (by Mattia Basaglia)
  • Added button to the tileset dock as shortcut to add a tileset (by Erik Schilling)
  • Allow changing order of open document tabs (by Sean Humeniuk)
  • Changed object position and size units from tiles to pixels (by mauve)
  • Allow adding multiple tilesets at once (by mauve)
  • Make highlighted grid cells outside map red (by Sean Humeniuk)
  • Allow changing the drawing offset of a tileset
  • Fixed hang on Mac OS X when drawing certain ellipse objects
  • Fixed removal of polygon/polyline objects when resizing a map
  • Fixed writing of tile offset in the Lua export
  • Fixed updating of image layer when changing its image
  • Fixed start drag distance check when editing polygons and moving objects
  • Fixed console output of tmxrasterizer on Windows
  • Raise the Layers dock for editing a new layer's name
  • Avoid saving truncated files when compiled against Qt 5.1 or higher (by Erik Schilling)
  • Made Tiled registering *.tmx as MIME-type (by Erik Schilling)
  • Added Traditional Chinese translation (by Yehnan Chiang)
  • Updated Czech, Dutch, French, German, Russian and Spanish translations

As with the last new feature release, the above list mentions many people who have contributed new features and fixes to this release. Thanks to everybody for putting in that extra effort!

Finally, if you want to help out by giving me more time to maintain and develop Tiled, consider donating or becoming a sponsor. Your money will count 100% towards my motivation and eventually to reducing my work hours so that I can dedicate significant amount of time to Tiled and maybe even a successor. A big thanks to all who have already donated or are sponsoring Tiled, since you are making this possible!

Monday, July 29, 2013

Mac OS X daily builds thanks to new sponsor

Tiled daily builds have been available since a while for Windows, Ubuntu, Fedora and several other GNU/Linux distributions. Now there are daily builds available for Mac OS X as well!

These builds have been made possible by Steffen Itterheim from Kobold Kit, who sent me his Mac mini with a fresh install of Mac OS X 10.8. In addition he also offered to host the builds on his server. A huge thanks to Steffen for this amazing contribution!

Having access to a Mac of course has some other advantages as well. New releases will now always be available for OS X immediately, while before it would usually take a few days. Also, I should now be able to reproduce (and hopefully fix) issues that only happen on OS X.

If you're a Mac OS X user who enjoys making maps with Tiled, be sure to check out Steffen's Kobold Touch and Kobold Kit game engines. They integrate very well with Tiled and add new features based on custom properties like parallax scrolling and physics, and should be a quick way to get a headstart on your game.

Saturday, July 27, 2013

Tiled Qt 0.9.1 released

This is mostly a bug fixing release, adding only some minor things here and there. Notable changes include making sure the JSON format stores everything, fixing string quoting issues in the Lua export and allowing double-click on objects to open their properties dialog. And for those who like to have a lot of maps open at the same time, Tiled should now close a lot faster. Here's the full list of changes:

  • Added saving of map background to JSON format (by Petr Viktorin)
  • Added saving of terrain information to JSON format (by Petr Viktorin)
  • Object Selection tool now always start selecting objects when holding Shift
  • Increased maximum for tileset margin and spacing to 9999
  • Some updates to libtiled-java (by Oskar Wiksten)
  • Install the automappingconverter application (relevant on Linux)
  • Avoid using Windows 95 style (was used on some Linux desktop environments)
  • Removed layer name checks from the Flare export plugin (by Stefan Beller)
  • Double-clicking an object now opens the Object Properties dialog
  • Fixed Object Properties dialog not remembering its size
  • Fixed object drawing order for image saving and mini-map
  • Fixed some plurals in English translation
  • Fixed line widths when zooming in Qt 5
  • Fixed updating of image layer when its opacity or image is changed
  • Fixed display of grid in tileset view on certain zoom levels
  • Fixed save in wrong format after opening a map with plugin (by Mike Hendricks)
  • Fixed closing Tiled being very slow with many maps
  • Fixed saving of image layer properties in the Lua format
  • Fixed escaping of special characters in the Lua format
  • Fixed handling of relative paths for image layers in the JSON plugin

Meanwhile, a lot of new features have already been added for the next feature release of Tiled. I have described some of them in the first Tiled development update and I plan to blog about some other new stuff soon. Don't be afraid to try a daily build! Apart from being able to try the new features, it is also your chance of providing feedback before they enter a stable release.

Friday, April 26, 2013

Tiled Development Update

It's been a while since the 0.9 release and meanwhile several new features have been added and are already available in the daily builds which are worth mentioning.

Object Flipping and Rotation

First of all it is now possible to flip objects horizontally and vertically. This works on both tile objects as well as polygons, using the same keys as for flipping tiles (X and Y). Second, all object types now feature free 360 degree rotation. Work on these features was sponsored by Ben Wales, who is making his maps primarily by placing tile images.

I started the rotation support by accepting pull request #168, which associated an angle with each object. I then changed the behavior so that instead of drawing an arrow, the objects were rotated. The most time-consuming part was to make it possible to interactively rotate objects, but it was worth it. It's possible to rotate objects either individually or as a group using handles placed at the corners, modeled after Inkscape behavior. You can also hold Control for changing the rotation in increments of 15 degrees.

One point of discussion was where the rotation origin should be. I tried both rotating objects around their position as well as rotating them around their visual center. The latter seemed more intuitive when changing the rotation value by hand, however it caused problems in other cases. The visual center changes for example while resizing an object or when adjusting points on a polygon, which in turn caused rotated objects to shift around while doing such operations. In the end I settled for rotating objects around their position.

Docked Properties Editor

Another major new feature, which had been a long-time goal since years, has recently been triggered by a donation from Victor Chelaru (known for FlatRedBall). Until now the "Properties" dialog in Tiled was an unloved feature. While being the cornerstone for Tiled's flexibility, its user experience was quite bad as modal dialog and its simple table view was behaving strange in some cases and wasn't very intuitive.

This all changed now with the new Properties dock! You can leave it open and it will immediately display the properties of whatever you're clicking on. Also, it displays both built-in as well as custom properties in a single unified tree view, based on the Qt Property Browser solution.

Its unified structure also opens the way for allowing more existing built-in properties to be edited as well as to define types on custom properties (some work has been done on that by Christian Ivicevic at issue #365).

Writing Import/Export Scripts in Python

Thanks to a major effort by Samuli Tuomola, a new Tiled plugin adds support for writing import and export scripts in Python. For some people this greatly simplifies the task of adding support for certain map formats to Tiled. As an example Samuli has added read & write support for maps created in Mappy as well as support for editing maps from the game Pekka Kana 2. More information is available at the pull request.

Feedback Welcome

If you're interested in trying any of these features, please install a daily build or compile Tiled from the master branch. Your feedback is welcome and will help polishing up Tiled for the next feature release!

Finally, if you enjoy using Tiled and would like to help speeding up its development in general, please consider making a small weekly donation through gittip. When just 100 Tiled users would tip an average of $2.50 a week, this would allow me to spend a full day a week on moving Tiled forward!

Wednesday, March 13, 2013

New Tiled website launched

The past month I've been working on a new website for Tiled. The new site communicates better what the main features of Tiled are and improves the visibility of links to related pages and available download options. I also hope you agree it looks a lot better!

An important change I made is to make the option to donate more obvious. My spare time has been very limited since my daughter was born, which will get even worse when the paternity leave runs out (which currently allows me to work part-time for a few months). So, my plan is that when enough people donate to Tiled regularly, I will switch my current full time job to part-time permanently, and spend the freed up time on Tiled instead.

This means the donations will no longer be only a motivation for me to work on Tiled (which can be frustrating when I don't actually have the time), but they will contribute directly to the amount of time I will be able to spend on further Tiled development. The more that comes in, the less I will depend on my current job so the more time I will have for Tiled. I found the most suitable service for this is Gittip, which allows anybody to start or stop contributing at any time and does not charge additional fees. Other options and a rough future roadmap are provided on the Donate page.

With the new homepage, this blog is now a little more in the background. However, I plan to use it more actively so instead of only announcing the new releases I can write a little about new features when they are done for example, or highlight projects related to Tiled. Something in between what the blog was until now and the Google+ page (where of course new blog posts will also be shared).

I'm excited about this new period in Tiled's development. I hope you are too!