August 2016 development updates

Week 31

From July 29th till August 1st I was on a short holiday visiting my family. I worked on Tiled on August 6th and 7th.

Tiled Saturday

It was really time to announce the string freeze for Tiled 0.17, but it looked like pull request #1327 was almost ready to include as well, so I spent some time reviewing that in detail. I also made another small tweak to the Tiled Fusion style in dark mode and realized I could remove some no longer needed code for supporting moving of tabs.

Since string freeze was going to wait a bit still, I used the opportunity to add a “Copy File Path” action to the tab context menu. I also worked on adding a “Open Containing Folder” action, but didn’t finish testing that on every platform yet.

Tiled Sunday

Thanks to Alturos quickly responding to my feedback, I could now merge his change that added a color picker to the New Tileset dialog for setting the transparent color (#1173).

Then I started looking at the string freeze and noticed there had been some translations done on Weblate, so I spent some time importing those. After that I still made a lot of last-minute changes before updating the translation files. Adding an extension mismatch warning when saving files, finishing the “Open Containing Folder” action, changing the default style to Tiled Fusion for Windows and Linux and further transparent color picker improvements.

Finally I updated the NEWS.md file and sent out a notice to all the awesome Tiled translators. The Spanish translation update already came in that same evening.

Week 32

I spent this week mostly reviewing and merging further translation updates.

Tiled Friday

Unfortunately some translations were no longer getting updated since many releases. Hence, I’ve disabled the Hebrew and Latvian translations because the UI would just look messy half translated.

I did the Dutch translation myself and did a final update of the NEWS.md file, bumping the version to 0.17, with the release planned on Monday.

Then it was time to look into further issues to fix that would not require string changes. There were still several things that bothered me about the Tiled Fusion style in dark mode. I fixed the visibility of check boxes, made the selected tool button darker and finally improved the frame of group boxes.

Week 33

Tiled Monday

It was time to release Tiled 0.17, but there were still some things I wanted to improve and I had noticed that the style would switch to Native when changing the language. I fixed that first, and then customized the tab close buttons since they could look very ugly depending on the system and base theme color. I replaced the dock widget buttons as well, since they were too small and ugly with a dark theme. Finally I fixed up the Tiled logo in the About dialog.

Apart from all the last-minute style fixes, there were still some things to do on the release process. I had to tell AppVeyor to use its previous image since something broke with the last upgrade. I’ve also updated the OS X and Windows builds to use Qt 5.7.

Finally at the end of the day I tagged Tiled v0.17.0, triggering the builds for the Windows installers, and built and signed the OS X package (which is still a manual step unfortunately). Unfortunately, there was no time left anymore for actually announcing the release.

Tiled 0.17 Release

On Tuesday 16th in the evening/night I wrote the Tiled 0.17 release notes, updated the links on itch.io and announced the release. I also updated the files for the auto-updater to notify existing installs about the new version.

Gamescom 2016

This was the first Gamescom where I wore an official Tiled T-shirt. I had only gotten that ready a few days before. I also want to start sending them out to patrons, so I’ll make a post about this soon.

At the Indie Arena Booth I met up with Torge “X-Ray-Jin” from Kawaida’s Journey. They are using libgdx to make a jump-n-run where you play a monkey, planting trees. They really enjoy using Tiled as their level editor. When I asked, the feature they are most looking forward to would be support for a layer hierarchy. I look forward to see more of their game!

I also met with Thomas of Pixwerk, who’s the artist of their upcoming game Tower 57. He initially used Tiled to lay down his tiles and was a big patron for a few months. Unfortunately, he eventually decided that he needed a more specific tool to productively map the large amount of areas for this game. I will try to get in touch with him again to see if I can bring its features to Tiled as well.

I met with a few more friendly developers and played some nice games. My goal for next year’s Gamescom is to not only wear a fresh new Tiled T-shirt, but also bring some business cards, talk with even more developers and try many more indie games!

Tiled Friday

In the morning I noticed that the full screen shortcut (F11) didn’t work on OS X, so I replaced it with the standard full screen shortcut, Ctrl+Cmd+F. I also noticed that I could support more image formats in Tiled on Windows by simply shipping more Qt image plugins.

I spent the afternoon merging the many changes made on the master branch to the wip/tilesetdocument branch, since there were quite some conflicts. Then I tried to think about how to continue with this branch. I got a bit stuck there unfortunately. The list of remaining issue is still a bit overwhelming, and I’m not happy with the effect on the UI with the tab bar taking top place:

Looking Ahead

Maybe fixing the somewhat out of place tab bar above is a matter of adjusting the theme. I will in any case be trying to reduce the list of open issues on the wip/tilesetdocument branch, so that this build can be tested and I could get some feedback on how it works.

In the meantime, I’m also making some fixes for an eventual Tiled 0.17.1 release and I’m again open for pull requests that affect the translations, so I’ll be reviewing as well.

For now, thanks for reading and see you next time!

2 Likes

honestly the tab bar at the top of the window doesn’t bother me.

1 Like

Hey @kheftel, your feedback is really appreciated! It’s good to hear it is not as bad as I thought it was.

Week 34

Tiled Monday

I started this day writing the last development update, since it was long due. It’s always hard to get around to doing this at home, where there is so much to do and so little time.

A few fixes were needed, since I forgot to ship the experimental Defold export plugin in the Windows installer (#1343). I also did some updates to the documentation of the commands.

Since a while there are also 7-zip archives available for the snapshot builds, but I noticed they were almost twice the size they needed to be due to accidentally including debug DLLs of Qt plugins.

Finally, I reviewed and accepted a pull request by @IMMZ adding a new “Snap to Pixels” option. Like the name says, this will make sure your objects align to pixels while moving and resizing them, which can be especially useful when using the tile collision editor. It obsoletes the current workaround of setting the number of fine grid divisions to match the number of pixels on your tiles.

Tiled Friday

I did two small fixes, to saving of the object group color alpha value and more importantly, the initialization of the alpha value in the color picker dialog when changing an existing color property. The latter actually happened due to a bug in Qt, which I’ve fixed as well.

I spent the rest of the day working to allow higher precision values for floating point properties. This was more complicated than I had imagined and I tried several approaches, but I think I’ve found one that works well. It was an important issue to me because I think the previous limit of 2 decimals was unacceptable. The patch works by internally allowing up to 9 decimals but then stripping redundant 0’s when displaying the value.

Week 35

Tiled Monday

This day I got back to the wip/tilesetdocument branch, since it represents an important step forward for Tiled. Apart from fixing a cosmetic issue and adding a resize grip, the most important changes were to re-enable functionality that got broken by previous refactoring. The tile animation and collision editors are now accessible again and the menu to control which views and tool bars are visible was fixed. The latter was tricky because previously I could rely on a menu created by Qt, and I could no longer do that because now the map editor and tileset editor get their own embedded QMainWindow.

I also started a big change to avoid referencing tile instances by direct pointers. Using direct pointers made it impossible to handle “invalid” tile references, and to work around that dummy tiles used to get instantiated to avoid losing map data. Invalid tile references can happen easily, for example when removing tiles from an image collection tileset. The goal with this change would be that Tiled can render such invalid references in a good way and without instantiating dummy tile instances.

Tiled Friday

I accepted a pull request by Jack Roper adding %mappath to the variables available when running commands.

Then, I worked the rest of the day finishing the transition away from using direct Tile instance pointers. Instead, tile layers now internally refer to tiles using a Tileset pointer and a tile ID. And when rendering the map, invalid references will be clearly noticable:

There are still some places in the code using direct tile pointers, which I’ll need to check to make sure that they are guaranteed to stay valid to avoid crashes.

Other News

This month is actually the last month that I’m using a rented office for Tiled development, which I moved into back in May. The reason is mostly that my daughter is now going to Kindergarten, so it should be quiet enough at home to resume working from the bedroom. And of course it saves quite a bit of money, which is important since I’m already spending two days/week on Tiled without having reached that goal financially.

Also, I’ll be going on holiday with my family for one week, and my wife would really appreciate if I didn’t take my laptop. So there is likely an incredibly quiet period coming up soon, but then I will come back full of new energy!