Week 6
During the week I did not get around to Tiled much, apart from answering some questions on the forum and reponding to some e-mails. I did consider how to deal with multi-selection in the object types editor and made some preparations by inroducing a new AggregatedProperties class. Fortunately, Tiled Sunday went rather well.
Tiled Sunday
First of all I had promised to enable audio in my live streams to explain what I’m doing and what I’m thinking about while I’m coding. So this time I had a microphone set up. I was a little nervous about this when I started, but it was a nice experience and it allowed better interaction with those who were watching, so I’ll definitely do this every time. The videos may even be interesting to watch later now (starting from 14.02.16).
My first priority was to finish the work on the object type definitions that I had started the week before. One after another, I fixed and implemented all the issues I had commented on the pull request. By afternoon I was done and pushed the new object types editor to master. After lunch I still made a small visual improvement to the tool bar buttons, by putting them on a tool bar.
Then I continued with the pull request adding types to custom properties. Since its original author was too busy to work on my feedback, I merged it locally and then I worked through my own feedback instead. I also had to make the type selection work in the Object Types Editor. I finished those changes just before it was time for dinner preparations.

Later that evening, I fixed an issue where Tiled would fail to save objecttypes.xml when its directory did not exist yet and I made some tweaks to the layout to make it look better on OS X. However, I was still not comfortable pushing this to the snapshot builds because of two known issues. On OS X, the Object Types Editor has the tendency to swap behind the Tiled main window for some reason. And more importantly, I still need to make sure this change goes well with the JSON output.
Snapshots
I just mentioned snapshots, so let me explain that a bit. Previously, there were “daily builds” of Tiled that actually updated with every little change to master. People could try such a build anytime, but of course not every upgrade made sense and sometimes they would have known issues. Since this month both the OS X and Windows daily builds are auto-update enabled, so they will notify the user about any new build and offer an easy upgrade procedure. This is why I think from now it is important that such builds are done only when there is something meaningful to upgrade for, and there are no known issues that could cause loss of data.
So I’ve introduced a new branch called snapshot, which I synchronize to the master branch every time I think an update would be safe and meaningful. The OS X and Windows “daily build” installers are only updated for builds based on the snapshot branch. Soon I will rename things to “snapshot” everywhere to make this more obvious.
Now, of course I just finished two nice new features and I want to have it in the snapshots as soon as possible, but I still want to check the JSON format first. In general, I try to make sure that the snapshot branch can be made up to date with master for any meaningful change.
Closed issues
- #365 Dynamic placeable objects with default properties for custom engine - Implemented
- #367 Simple object type property library - Implemented
- #877 Loading Objecttypes.xml with default properties - Merged
- #1131 Added Types for Custom Properties - Merged
- #1192 Ability to change the transparent color of individual objects - Closed
- #1198 Update OSX install instructions for QT - Merged
- #1199 Add XML-item to new map dialog - Closed
Looking Ahead
My first goal for tomorrow will be to check the JSON format and push these changes to the snapshot branch. Then it’s time to consider what to do next. I’ll probably have a look at adding the Properties view to the Collision Editor, which is all the more useful now that you can predefine properties. The overal goal remains to get closer to the Tiled 1.0 milestone.
Also, I’ll raise the DPI of my screen a little during my next livecoding.tv appearance, since for some people the code has been hard to read when the video was not maximed.