Week 4 (continued)
Tiled Sunday
As I wrote in last months’ update, I’m now taking Friday off from work and spending Sunday working on Tiled. This fits better in our family schedule and it should also allow more people to follow Tiled development live. Finally, it gave me another Tiled development day in week 4! (if your weeks start on Monday, like they do in the EU)
I was busy the whole day getting WinSparkle to work for the Tiled daily builds for Windows. Overall it went pretty well, but I needed to compile the latest version of WinSparkle myself because the latest release had encoding issues. I also had Tiled crashing mysteriously until I realized it was because the WinSparkle.dll was missing (if only it had just told me…). A lot of time was spent getting Qbs (the Qt Build Suite) to reliably produce an appcast file along with each new installer build, as well as dynamically create the tiled.rc
resource file in order to embed the version into the Tiled executable. Finally I had to set it up to work on AppVeyor.
Unfortunately, I didn’t manage to get it fully working, mainly because there were still some problems with the MSI-based installer that I had set up in the previous week. So for now it lived on a wip/winsparkle
branch.
Week 5
Each evening I got a little bit closer to having the updating feature work nicely. First to have AppVeyor upload the appcast file. Then to split up the appcast into 32-bit and 64-bit versions, because they were conflicting. Finally to make a host of improvements to the installer, fixing upgrade behavior with arbitrary switching of versions (also between 32-bit and 64-bit versions as well as different install locations). Then I felt confident enough to merge this into master, and I tweeted about the first auto-update enabled Windows daily build (it’s not too late to retweet ;)).
Tiled Sunday
With the auto-updating feature and the new installer struggles behind us, it was time to get back to editor feature development! I picked this pull request that adds support for adding predefined properties with default values per object type. It’s actually already one year ago that it was submitted. Unfortunately as is often the case, the changes in the pull request were only the tip of the iceberg and as such a long way from being in a state where it could be merged.
This work is done on the wip/objecttypes
branch and you can of course still watch me struggle on livecoding.tv (unfortunately the live-chat isn’t available… in the future I want to try using a microphone to make things a little more interesting). Don’t forget to follow me if you want to get notified when I start streaming!
In any case, here’s the in-progress new Object Types Editor that will allow you to not only set a color per object type, but also define its properties and their default values:
This new window became necessary because the functionality outgrew the space in the Preferences dialog. Apart from editing the object types, the dialog also allows you to change the file Tiled is using or to import/export object types from/to some other file. These actions are hidden in the “File” menu.
While working on this feature, a few bugs were noticed with the object name labels. They were not removed as appropriate when deleting an object layer and their color wasn’t updating when changing object type or the color of its type. I fixed both bugs on the 0.15 branch and merged it to master. This caused the first time a new Windows installer snapshot was built since they got auto-update enabled, so that evening I was eager to see if it worked, and at least on my system the update went quite well!
Closed issues
- #1089 Notify about new releases (update check)
Looking Ahead
Of course I want to finish the object property definitions feature as soon as possible. It’s actually a preparation for another feature that should go very well together with this change: to support typed custom properties. There’s a pull request for that as well, but it will similarly still require some work before it can be merged. In any case, that’s what I want to work on next.
Finally, I want to thank all my sponsors and patrons for their monthly support as well as the people (about 2 per day) who decide to pay for Tiled on itch.io! This support is making it possible for me to continue Tiled development at the current pace. I’d love to spend even more time on Tiled, so please don’t hesitate to join in!