April 2016 development updates

Week 13 (continued)

Tiled Sunday

A short update on the rest of this week, which started in March. It took a bit to get back to the wip/tilesetdocument branch and to start streaming, especially since I was still doubting whether this is the right way forward at all. This is why first of all, I wanted to implement part of the expected workflow when editing either embedded or external tilesets.

At the end of the day I was almost ready to commit the change, but there was still a known problem with a signal connection, so I planned to finish that later.

Week 14

The evenings were short again but on Thursday a crash was reported that I fixed immediately for inclusion in the next patch release. In general, I feel like ever since Daylight Saving Time started I’ve been stolen one hour/day. It doesn’t help that my kids are not adjusting either.

Then, on Sunday my parents visited and we celebrated my son’s first birthday. I would have taken a day off work so that I could still work on Tiled for one day this week, but right now things are way too busy at work with the project’s final deadline approaching, so asking for a day off is not realistic. Needless to say, I will get some time off eventually to make up for this!

Week 15

Office Space

Working from home can be convenient, but I find it often hard to focus and it’s also hard to find some quiet time to stream development. As other developers know, it’s important for a coder to stay “in the zone” to be productive. This is why I’ve been considering to get a small office since a while already. Especially since I anticipate to soon start spending two days/week on Tiled, it will be definitely worth it.

So on Friday afternoon I visited Office Center Erkrath, which is just 15 minutes cycling from home. It seemed just perfect as a quiet place to work on Tiled, so I ended up immediately signing the contract for a 16 m2 room. Starting in May, I will be streaming live from my new office!

Tiled Sunday

After another busy week (where I really make an effort to stay reponsive on this forum and on GitHub issues), and my mother in law visiting on Saturday, I was happy to be able to spend the whole Sunday working on Tiled again. I started with finishing the change of two weeks ago, adding a button to open a tileset for editing that also works for embedded tilesets.

For embedded tilesets, a dummy TilesetDocument is created that holds the undo stack and back references to the map documents using this tileset. This document makes a tab text containing the map file name and the tileset name.

The next change I made was to make sure the tileset name is updated when changed, on both the main tab as well as on the tab in the Tilesets view (that last thing was broken due to signals being moved from MapDocument to TilesetDocument).

In the meantime, there was also a pull request updating the Russian translation, to be included with Tiled 0.16.1 (and already available in the development snapshots).

Finally, I worked to move the Add/Remove Tile buttons (for image collection tilesets) from their old place in the Tilesets view to the new tileset editor view. I almost finished this change, but while doing some testing I still found some issue with clearing the tile references for removed tiles in all open maps. So I’ll have to take a closer look at that before I can push that change.

Looking Ahead

While I’m working on this big change, a lot of interesting requests are of course also coming in. Since I’m not really sure how long my current change is still going to take, I’d like to also spend some time working on easier to tackle things, especially where they don’t really conflict with the wip/tilesetdocument branch.

And otherwise, I’m of course really looking forward to start working from my new office, but most likely the next Tiled development day will still be at home.

Finally, I want to again thank everybody for making all this possible! That includes sponsors, patrons and people buying Tiled on itch.io, who are together bringing me very close to being able to work on Tiled two full days per week. I appreciate this incredibly and will make it worthwhile!

Week 16

Tiled Forum Moved

On Wednesday the Tiled forum moved and is now hosted by the Discourse team. I was busy the whole evening updating links, changing DNS settings and setting up the redirect.

The move saves me $10/month hosting costs and a bit of time on the administration side, while at the same time it should provide a more responsive forum that’s ready to grow. So thanks a lot to the Discourse team for providing us with this service! In return, they get more publicity for their awesome product.

Tiled Sunday

I wrote about working from an office in my last update, but this Sunday I still worked in the bedroom. It went pretty well though and I managed to make some progress in multiple areas, though I didn’t get around to streaming any development.

First of all I finished the patch I was working on last week, moving the Add/Remove Tile buttons (for managing image collection tilesets) to the new tileset editor. If you remove tiles that are in use by any of the open maps, such usages will automatically be removed. What Tiled doesn’t currently stop the user from doing, is to undo this removal. This was previously covered by the fact that both changes lived on the same undo stack, but that is no longer the case. This is an area that will need more work, most likely I will start using tile IDs rather than Tile instance pointers, to avoid crashing when removed tiles are referenced.

Then I went back to the master branch, to fix an issue with the object IDs of tile collision shapes, which I was recently reminded about. With the improvements made in Tiled 0.16, this bug became more visible so the fix will go into the Tiled 0.16.1 release. And while fixing the above issue I ran into a crash when closing Tiled with the Tile Collision Editor still open, so I pushed a fix for that as well.

Recently somebody opened a request for a Paste in Place action for pasting objects, and provided some good use-cases for such a feature. Since it was essentially about disabling the placement behavior it was a relatively easy thing to include. The only thing I’m worried about, is that people will expect it to do something interesting with tile layers. I couldn’t agree more, but that is unfortunately not so easy.

The last thing I worked on was to make a list of all the features of the TMX Map Format. I intend to use this list to make sure Tiled ships with a set of examples that expose all of the features. The list, along with the example maps, can then be used to check the level of TMX support available in the various libraries and frameworks supporting the format. I will include this list in the documentation soon. I’ve already added a new orthogonal example map where I tried to use as many features as possible:

Tile art by Michele “Buch” Bucelli

Looking Ahead

This week I’ve managed to spread out the available time quite well over various activities, and I’ll try to keep doing that. Though sometimes things like a new development branch will simply require a lot of time. But for Tiled 1.0, it’s just as important that the documentation improves and bugs are fixed than it is to fix deeper problems with the overall design.

I hope that Friday I will be able to move into my new office room, so that I can do a full development day there on Sunday. Going forward, I will probably switch the Tiled Sunday to a Tiled Friday so that I won’t be the only guy in the premises and could potentially find people to have lunch with. :slight_smile:

3 Likes

I love reading these dev updates. Thanks for all you do!

1 Like

I have used Tiled for more than 4 years. Thank you and keep going!

1 Like

Thanks, Bjorn. Tiled continues to be well-worth the monthly donation :slight_smile:

1 Like