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!

Monday, January 28, 2013

Tiled Qt 0.9.0 released

At long last there is a new feature release of Tiled! Ever since 0.8 was released new features have kept accumulating at pretty much the usual pace, so there is a lot of new stuff in this one. It's hard to pick favourites, so I'll only highlight a couple.

Several new dockable windows have been added. There's now a file system view, an object list and a mini-map. These should really help navigating your ever growing world.

Also, many improvements have been made to the automapping system, which can now produce object layers and apply rules while editing. New in this area is the terrain tool, which really helps if its corner-based algorithm works with your tiles.

Here follows the full list of changes:

  • Added objects dock and per-object visibility toggle (by Tim Baker)
  • Added maps dock (by Tim Baker)
  • Added terrain tool for automatic terrain transitions (by Manu Evans)
  • Added a minimap (by Christoph Schnackenberg)
  • Added a staggered isometric map renderer, still without object layer support
  • Added basic image layer support (by Gregory Nickonov and Alexander Kuhrt)
  • Added display of current layer to the status bar (by Tim Baker)
  • Added editable combo box for changing the zoom level (by Tim Baker)
  • Added support for multiple input layers to automapping (by Stefan Beller)
  • Added option to apply automapping rules while editing (by Stefan Beller)
  • Added a converter to update old automapping rules (by Stefan Beller)
  • Added support for objects layers to automapping (by Stefan Beller)
  • Added support for random mode to the fill tool (by Stefan Beller)
  • Added Replica Island plugin (by Eric Kidd)
  • Added option to change the grid color (by Stefan Beller)
  • Added support for ellipse objects (by devnewton and Christoph Schnackenberg)
  • Added name labels for objects on isometric maps (by Andrew Motrenko)
  • Added map property for changing the background color (by Emmanuel Barroga)
  • Added shortcut to manually reload tilesets (Ctrl-T) (by Michael Williams)
  • Added toggle for showing tile object outlines
  • Added support for pinch zooming (by Pierre-David Bélanger)
  • Added initial (non-GUI) support for individual and/or embedded tile images (by Petr Viktorin)
  • Added reading support to Flare plugin (by Stefan Beller)
  • Added a TMX rasterizer command line tool (by Vincent Petithory)
  • Added man pages and desktop file (by Erik Schilling)
  • Made the size and position of most dialogs persistent
  • Respect the original layer data format of a loaded map (by Ben Longbons)
  • Marked Tiled as high-resolution capable on Mac OS X
  • Improved handling of external tilesets in Lua export
  • Reverted tilesets view back to tabs, but with menu button (by Stefan Beller)
  • Allowed plugins to support multiple file name filters (by Samuli Tuomola)
  • Allow saving in any format that can also be read (by Stefan Beller)
  • Fixed eraser skipping tiles when moving fast
  • Fixed bug in Flare plugin (by Clint Bellanger)
  • Fixed compile against Qt 5 (by Kenney Phillis)
  • Fixed resolving of symbolic links while loading map
  • Fixed a crash that could happen after trying to load a faulty map
  • Updated Portuguese, Dutch, German, Spanish, Russian, French, Japanese, Chinese, Brazilian Portuguese, Hebrew and Czech translations (thanks to all translators!)

As evident by the above changelog, this release is the result of a record number of contributors (a total of 33 since 0.8.1). A big thanks to everybody who opened pull requests and persisted through the code reviews!

For authors of frameworks and libraries supporting the TMX format, I've summarized the additions on the wiki.

Tuesday, May 8, 2012

Tiled Qt 0.8.1 released

The 0.8 branch had slowly been accumilating fixes and translation updates that made it worth to release Tiled Qt 0.8.1. Upgrading is highly recommended since there was a crash related to pasting. Also noteworthy is the improved support for mice with fine-resolution wheels like the Magic Mouse. Thanks to all who contributed, and also thanks to Jeff Bland for updating the Mac release!

  • Added MacOS X Lion full screen support (by Vsevolod Klementjev)
  • Fixed crash that could happen when painting with a pasted stamp
  • Fixed zoom sensitivity for finer-resolution mouse wheels
  • Fixed issues when using quickstamps in combination with the fill tool
  • Fixed stamp tool not to miss tiles when drawing fast (by Stefan Beller)
  • Fixed automapping to work with external tilesets (by Stefan Beller)
  • Fixed crash in automapping when dealing with broken rule files (by Stefan Beller)
  • Fixed object type getting erased on pressing Enter
  • Changed the license of libtiled-java from LGPL to BSD
  • Updated Italian and Hebrew translations (by Gornova and Tamir Atias)

Meanwhile, new features are being added for the next feature release. Recently support for image layers was added and the bucket fill tool can now do random fills. Install a daily build or compile Tiled from master to try them out. Your contributions are also welcome!

Follow Tiled on Google+ to hear about interesting news related to Tiled, or share your Tiled-related story.

Tuesday, February 21, 2012

Updated Ubuntu packages and daily builds

Thanks to the efforts of Erik Schilling, there are once again updated Tiled packages available for all recent versions of Ubuntu (or derivatives like Mint). Not only this, but the new official PPA also contains a tiled-daily package that is updated whenever changes are pushed into the repository.

Actually daily builds for Windows have been available since a long time, thanks to Stefan Beller. I've now added a link to these to the sidebar as well.

If you want to see what's new in the daily builds, keep an eye on the commit log of the master branch, on which these builds are based.

Sunday, December 11, 2011

Tiled Qt 0.8.0 released

If all you wanted for Christmas was a new Tiled release, it's time to start thinking about a new present!

This release adds some major new features like polygon objects, JSON import and export, tile rotation and drawing offset. Many smaller changes and additions were made as well, so there should be something for everybody. The full list of changes:

  • Added support for polygon and polyline objects (sponsored by Zipline Games)
  • Added support for tile rotation (by Wade Brainerd)
  • Added support for defining the color of custom object types (sponsored by Zipline Games)
  • Added a Delete action to delete selected tiles or objects (by Stefan Beller)
  • Added random mode to the stamp brush (by Stefan Beller)
  • Added Flare export plugin (by Stefan Beller and Clint Bellanger)
  • Added JSON plugin that supports both reading and writing (by Porfírio Ribeiro)
  • Added ability to rename tilesets (by Maus)
  • Added a mode in which the current layer is highlighted
  • Added support for specifying a tile drawing offset (sponsored by Clint Bellanger)
  • Added a shortcut (Alt+C) to copy the current tile position to clipboard (by Stefan Beller)
  • Added a command line option to disable OpenGL
  • Allow custom properties on tilesets
  • Many automapping improvements (by Stefan Beller)
  • Improved tileset dock to handle a large amount of tilesets better (by Maus)
  • Made the 'Show Grid' option in the tileset view persistent
  • Raised the tile size limit in the New Tileset dialog from 999 to 9999
  • Correctly handle changes in the width of a tileset image (by Adam Rippon)
  • Worked around a long standing crash bug
  • Added Russian translation (by Alex Vega)
  • Updated the German, Japanese, Spanish, Chinese, Czech, Dutch, French and Brazilian Portuguese translations (thanks to all translators!)

As the above list shows, many of the new features were either sponsored or developed by contributors, thanks a lot to all who've helped shape this release!

Tuesday, September 27, 2011

Tiled Qt 0.7.1 released

Work is well underway on a future 0.8.0 release, but meanwhile also some bugs have been fixed that made it worth releasing 0.7.1. This release also updates the Czech translation and changes the way maps are exported to Lua so that they no longer rely on a global "map" variable.

  • Select stamp tool when selecting tiles in tileset view (by Stefan Beller)
  • Enable anti-aliasing in OpenGL mode
  • Small improvement to the Lua export plugin (incompatible!)
  • Fixed a bug in the Create Object tool that could lead to a crash
  • Fixed reading of maps without tilesets but with a tile layer
  • Fixed position of tile objects to center on the mouse on insertion
  • Updated the Czech translation (by Petr Viktorin)