Monday, March 21, 2011

Two chapters about Tiled in cocos2d iPhone book

This book by Steffen Itterheim focuses on iPhone/iPad game development using the cocos2d-iphone library. However, it includes two full chapters about using tile maps and how to create them with Tiled, the second going in detail about isometric maps.

Learn iPhone and iPad cocos2d Game Development

Since cocos2d-iphone has built-in support for the TMX map format, the map parsing business is skipped and instead the book talks about how to use Tiled and the cocos2d-iphone API to get the map on the screen and how to obtain information from your map. This includes things like setting up your OpenGL projection matrix, scrolling the map, getting your player to walk behind tiles and finding out whether a tile collides with the player.

Again I had the pleasure to review these chapters before the book was published, and I can wholly recommend it. The problems that are discussed are things that most game developers will encounter eventually, and the solutions are nice and well explained.

If you're interested in buying the book, please use the provided links, thanks! Also, I read from the reviews that the eBook version is in bad shape, so better get the paper version.

Wednesday, January 26, 2011

Tiled Qt 0.6.0 released

It's been more than half a year after the last major release, but meanwhile development of Tiled has continued as usual, as is evident by the many new features in this release. The improvements include support for multiple documents, initial support for object selection, support for placing tiles as objects and centering the map when it's smaller than the view.

Of note is also the enhanced integration with MacOS X. The tmx file type is now recognised and associated with Tiled, allowing them to be opened from the Finder or by dragging them to the Tiled icon on the dock.

There was a license change of the core classes of Tiled (those in libtiled), which are now BSD licensed. This should be convenient for those who wish to use those classes in their (Qt/C++) project. For Java projects, Tiled now ships with a libtiled-java, which is a somewhat cleaned up version of the core classes from Tiled Java. For both libraries there are simple tmx viewer applications that show how to use them.

Full summary of the changes:

  • Added support for opening multiple maps in one session
  • Added support for placing tiles as objects
  • Added automatic mapping feature, allowing placing of tiles based on rules
  • Added ability to save/restore up to 9 stamps with Ctrl+[number]
  • Added an object selection tool, allowing moving/deleting multiple objects
  • Added ability to run external commands
  • Added support for drawing lines and ellipses with the stamp brush
  • Added icons to distinguish tile layers from object layers
  • Added "Move To Layer" submenu to the context menu of objects
  • Added option to use hardware rendering based on OpenGL
  • Added a T-Engine4 map export plugin
  • Added a simple TMX viewer application (BSD licensed)
  • Added a New Layer dropdown menu to the layers dock
  • Added a checkbox that enables snap to grid permanently
  • Added an initial version of libtiled-java (LGPL licensed)
  • Added Chinese and Hebrew translations
  • Allowed dragging an image onto Tiled to add a tileset
  • Center the map when it is smaller than the map view
  • Remember the selected layer across restarts
  • Changed the default layer data format to use zlib rather than gzip
  • Store the tileset image width and height in the map file
  • Compile fixes related to linking zlib
  • Fixed the current stamp to get updated when switching tilesets
  • Fixed the maximum sizes of the resize map dialog
  • Fixed build issues when an older version of libtiled is installed
  • Fixed saving of property when clicking OK while editing on MacOS X
  • Allow Backspace to delete properties to make it easier on a MacBook
  • Associate tmx files with Tiled on MacOS X
  • Changed the license of libtiled from GPL to BSD
  • Updated Czech, Spanish, German, Brazilian Portuguese, Dutch and French translations

Finally I want to thank everybody who contributed to this release! Significant work was done by Stefan Beller on the multi-document support, improvements to the stamp tool, the quick stamps and the new automatic mapping feature. Jeff Bland helped to improve Tiled for MacOS X and added support for running arbitrary commands from Tiled. Bin Wu and Zhao Sting provided a Chinese translation and Tamir Atias translated Tiled to Hebrew (its first right-to-left language). Also thanks to all the translators who updated their translation!

Warning: This version of Tiled changes the default compression method for layer data from gzip to zlib. The latter is more suitable for in-memory compression while gzip was meant for files. In most environments, zlib is easier to deal with (especially in C/C++, but also in Python). If your map reader does not support zlib, you can still tell Tiled to use gzip in the preferences.

Tuesday, September 14, 2010

Tiled covered in "Learning iOS Game Programming"

Michael Daley from 71Squared recently published his book Learning iOS Game Programming: A Hands-On Guide to Building Your First iPhone Game. The cool thing about this book, aside from showing you how to make a game start to end, is that it covers how to use Tiled to create your maps and how to use the created maps in your game.

Learning iOS Game Programming: A Hands-On Guide to Building Your First iPhone Game (Developer's Library)

I've personally had the pleasure of reviewing the Tile Maps chapter in Michael's book. While I couldn't look too deep into the code (I'm not familiar with Objective-C), I can say that apart from showing how to use Tiled, it goes into detail about how to parse Tiled's XML based map format and how to render it using OpenGL.

If you're interested in buying the book, please use the provided links, thanks!

Thursday, September 2, 2010

Tiled Qt 0.5.1 released

It came to my attention that some users were still using Tiled Qt 0.3.1 because of a regression in saving object position and size when the tile width is different from the tile height. Well, we can't have that so I've released 0.5.1 which fixes this issue. The Czech translation was also updated, thanks to Petr Viktorin!

Wednesday, June 30, 2010

Tiled Qt 0.5.0 released

At long last I managed to finish another release, with the main aim to add the last glaring missing features compared to the old Java version. This included mostly tileset management, and support for input/output plugins.

There have also been some new contributors. Andrew G. Crowell made the layer actions accessible via a right-click menu and in a small toolbar. Michael Woerister enhanced the object properties dialog with additional fields to change the position and size. Finally, Janis Kirsteins added a Latvian translation. Thanks! Also thanks to all the existing translators who have updated their translation to the new release! The full list of changes:

  • Added support for import and export plugins
  • Added support for external tilesets
  • Added undo for adding tilesets and ability to remove tilesets
  • Added error handling to the New Tileset dialog
  • Added ability to change tileset order by dragging them around
  • Added option to draw the tile grid when saving as image
  • Added a context menu and tool buttons to the layer dock
  • Added Latvian translation
  • Added an install target to the Makefile
  • Open local files when they are dropped onto Tiled
  • Allow changing position and size of objects in the Object Properties dialog
  • Fixed rendering issues with tiles wider than the tile width of the map
  • Fixed eraser and fill tool working on invisible layers
  • Fixed a crash when using some tools when no map is loaded
  • Fixed compile errors related to detecting static builds
  • Fixed the Save dialog not suggesting any particular file extension
  • Updated Japanese, Dutch, German, Brazilian Portuguese, French, Portuguese and Spanish translations

As needed to allow plugins, part of Tiled is now in a small shared library. In the future I intend to also move the map reader and renderer into this library so that it can be re-used by games implemented using Qt. I'm also adding a Java version of this library.

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!

Saturday, January 30, 2010

Tiled Qt 0.4.0 released


With this release the Qt version of Tiled finally replaces the Java version, being on par with the most important features and more advanced in other areas. The Java version will of course remain available as well, and is still open for new maintainership.

The most important features added in this release are support for isometric maps and finalized support for translations, with translations to Dutch, Portuguese, Spanish and German already complete. Also, several nice features have been contributed by other developers, including a fill tool and automatic reloading of tileset images. The full list of changes:
  • Added support for isometric maps
  • Added automatic reloading of tileset images when they change
  • Added "offset map" action that can shift a set of layers by a certain amount
  • Added a fill tool
  • Added ability to duplicate map objects
  • Added support for choosing the tile layer data format used when saving
  • Added mouse wheel zooming support to the tileset view
  • Added an object display color attribute to object groups
  • Added ability to edit tile properties through a context menu
  • Made writing out a DTD reference optional and disabled it by default
  • Made translations functional
  • Updated Dutch, Portuguese, Spanish and German translations
For the next version I'd like to finish support for plugins as well as add tileset management (including proper support for external tilesets), which are two areas in which the Java version is still ahead. There are plenty of other possibilities though, and your help is greatly appreciated!