From the Burrow
TaleSpire Dev Log 436
Hi folks,
Yesterday was spent working towards a fix to prevent cases like the lost build session we spoke of in the last dev log. It’s coming along, but I’m going to give it another afternoon of thought as we can’t afford to get this wrong. It should go into testing later this week.
Yesterday, I also had a long tag-testing session with @chairmander. We picked some creatures and then tagged them using the new system so we could compare our results. As you might have seen in dev-log 434, he’s been working on a set of “blessed tags” and a sort of questionnaire that guides us towards some consistency in our tags across creatures[0].
The testing went well. We found some bugs in our prototype tagging tool, tweaked a couple of questions, and modified a few tag relationships that didn’t hold up under use.
Today, I’m handing this over to a contractor who has not been involved in any of this work. They will then do the same exercise as we did yesterday, and @chairmander and I will see how it works in practice. This is important as we’ve been looking at this problem for a while, so our biases and assumptions are very much baked into the system.
The contractor will then spend a couple of days tagging. We’ll get feedback, make necessary tweaks, and then unleash them on the rest of the creatures. In parallel, and as soon as we are happy enough with the blessed tag list[1], we will upload them to mod.io and start working on some UI for you folks to be able to use them.
Alright, I’d best be off. I need to get a little work done before the daily.
Peace.
Disclaimer: This DevLog is from the perspective of one developer. So it doesn’t reflect everything going on with the team
[0] It is possible to add custom tags, but a core set offers consistency and also lets us upload them to sites with fixed tag lists like mod.io.
[1] This list wont be final, but will hopefully represent a good start.
TaleSpire Dev Log 435
Good evening folks.
Today, I was looking into a really ugly slowdown when opening the “community” section of the asset library. I cracked open the profiler and, after poking around, found that calls to new Texture2D
were insanely slow, easily 1ms each. I think it might be that either Unity is initializing the contents of the texture (which I’m immediately replacing) or can only make a certain number per frame.
The next version of Unity above the one we use does have an API call that allows making textures without initializing them, but the one we use doesn’t. I tried upgrading the project to that newer version on the off chance everything would just work, but no. Some APIs critical to TaleSpire have changed, and refactoring the code that relies on them is not trivial.
So, I need to decide on a different approach next. I could write some C++ to make the textures without initializing them and call that from Unity. And/or I could spread the texture creation over several frames. The first option is trickier than I’d like as I don’t think the conversion between Unity’s GraphicsFormat and DX11’s formats are documented anywhere (hopefully, I’m wrong; please leave a comment if you know!)
Before I could dig further into that, two things came up. One scheduled and one not.
The first was a very disappointing case. TaleSpire did not recover from a lost connection properly and lost 2 hours of someone’s work. This is terrible. So much of creation happens in the moment, and doing something for a second time is never quite the same. With our newer infrastructure, we now have much better logging, so we quickly tracked down the bug. What happened was that TaleSpire, at some point, lost connection to the backend (potentially due to a network issue.) Upon reconnection, we did not correctly re-register the ID of the board the player was working on. This put an invalid value into a temporary cache, which subsequently caused uploads to fail. The board was not destroyed, but the work for that session was lost. This bug has been around a long time, but now we’ve seen it, we know how to fix it. The first step is ensuring the server fails much sooner when it hits this case. That will cause the problem to manifest faster, and thus, the player won’t be able to spend hours making things that we then lose. The second step is to fix TaleSpire itself. On reconnection to the backend, we must ensure that the board-id is registered before allowing play to continue. We will have a fix for this soon.
The scheduled portion of the afternoon was a planning meeting. @Borodust and I sat down and sketched out the next few months of backend development. We also took some time to review previous decisions and talked over some recent process problems we’d like to correct. It was nice, which is not something you usually hear in meetings. Working in a tiny team on something we really want to see exist helps a lot.
And that’s all for today. I’ll be back with more fixes and dev-logs in the next week.
Hope you enjoy the weekend.
Ciao.
Disclaimer: This DevLog is from the perspective of one developer. It doesn’t reflect everything going on with the team
TaleSpire - Bug Month Patch 7
Hi again folks,
In this patch, we have a few tweaks and an experimental thing we’d like to hear your opinions on.
We have:
- Set 800x600 to be the smallest resolution pickable. This avoids a case where the window became so small you couldn’t change the resolution back again.
- Fixed the stats in the radial menu so that they update immediately if another player changes them (before you’d have to close and re-open the radial menu.
- Added result counts to community mod browser folders
Now, on to the experimental thing. As we all know, using the community mod browser needs work. The search is somewhat lacking, and the experience of finding creations is sub-par.
A big part of the answer will be tagging. We are bringing tags to creatures soon™ (we’ll have a dev-log on progress by Monday, and the tagging tool is going into internal testing on Tuesday), but in the meantime, I was wondering if there were any quick wins.
The search implementation is on mod.io’s end so we can’t tweak that. The current behaviour is such that if you search “Lord of the Rings” - it will return every result where the name contains any of the following words: ‘The’, ‘Lord’, ‘of’, ‘the’, ‘Rings’.
There is another option, though. They have an option[0] where you can use %
as a wildcard. That means you could search fi%b%
and get results with both “fireball” and “Firebird.”
So here is the question: Is that useful to any of you? It sounds like it could be, but in theory and in practice can be very different.
To that end, I’ve added it to the game so you can try it out. By default, the search is the same as before, and the wildcard symbol won’t work. However, if you start the search with a question mark, it will switch to the mode where you can use wildcards. For example, ?fi%b%
matches “fireball” and “firebird” as mentioned above.
That’s it for today. We’ll be back soon with more fixes.
Ciao
BUILD-ID: 14543672 - Download Size: Win / Linux 4.9 MB / Mac OS 7.8 MB
[0] Fellow nerds might like to check out their api docs. The two places I think are most relevant are https://docs.mod.io/restapiref/?http#get-mods and https://docs.mod.io/restapiref/?http#filtering Do let us know if you find anything interesting!
Bug Month Patch 6
Today, we tackle a bug that has thwarted the pasting of certain kinds of slabs.
When a slab that combined thin tiles and props was copied, this bug made it impossible to place the slab back on the grid correctly. It would be misaligned.
The following shows the difference before and after this patch.
Along with this, we fixed a case where a malformed slab could put tiles in unsupported rotations. This also allows for some data optimizations later on.
That’s all for this today. We will be back on Monday with Seats and more fixes.
BUILD-ID: 14497681 - Download Size: Win / Linux 2.9 MB / Mac OS 6.7 MB
Ps. We are not going to make a habit of releasing on the weekend. This fix was going to ship on Thursday, but our main build server decided to freak out and mess up the end of our week. Remember, computers can hear you, and as soon as you announce a deadline they will do their damnedest to mess that up :p
Bug Month Patch 5
Hi again, we come bearing more fixes!
Today, we finally make sure that the creatures that have been knocked down show that state properly when placing.
We also fixed the “rename campaign” dialog so that pressing the “return” key will apply the change in the same way as clicking the button does.
See you in the next patch.
BUILD-ID: 14451116 - Download Size: Win / Linux 7.1 MB / Mac OS 7.7 MB
Bug Month Patch 4
Fresh out of the national holidays, we have another patch. This one tackles the following:
- Entries in the unique-creature panel should be ordered alphabetically. Previous they would go out of order in certain situations
- Minor performance improvement: avoid re-sorting the unique-creature panel on every change to a unique (such as changing position)
- Fixed an issue where the first use of the ‘sample’ tool did not properly focus the entry in the asset browser.
The war on bugs continues next time, in bug month!
Bug Month Patch 3
Hi folks,
In this release, we are tackling a single bug.
TaleSpire would sometimes place the prop slightly lower than it should when using attachment points. This was cumulative, so over the length of a fence, each piece would be sunk slightly lower into the ground.
This patch fixes this, so subsidence is no longer on the menu!
We will keep finding and fixing more annoyances like this throughout the month.
Until next time,
Ciao.
Disclaimer: This DevLog is from the perspective of one developer. It doesn’t reflect everything going on with the team
TaleSpire Dev Log 432 + Patch Release Notes
Heya folks,
Good news from Steam. They gave the “seats” feature the go-ahead. So now we continue setting up the production servers and getting ready for a release. I will get you the release date as soon as the team has had the next seats meeting.
So that’s great, and we also have another few bug fixes for you:
- We have fixed a case where returning to the main menu broke the build grid.
- We’ve fixed a potential issue with the “cut region” toggle not working right after returning to the main menu
- Updating a unique-creature’s position or values no longer collapses its entry in the unique-creature panel.
Have a great day!
BUILD-ID: 14359448 - Download Size: Win / Linux 2.8 MB / Mac OS 5.9 MB
TaleSpire Dev Log 431 + Patch Release Note
Heya folks, After much gnashing of teeth, the seat feature is in for review with Steam. Now we wait and fix anything they decide needs tweaking. We’ll let you know as soon as it’s through review and ready for release.
In the meantime, I want to get stuck in our long-awaited “Month of Bugs,” where I just try and fix as much random stuff as I can.
I can’t guarantee it’ll be the specific bugs that you most want to be squashed, but there will (finally) be some visible work from me after a few months of quiet grumbling.
We are kicking off with a little patch courtesy of @chairmander, who fixed these while administering the public bug-reporting site.
- Fixed a couple of cases where “Waiting on GM” was not updating to reflect changes in the player’s rights
- Fix a case where clicking on client-portrait was not focusing the active creature
- fix a couple of typos in an alert message and a tutorial
- fix a log message
Alrighty, I’ll get back to work. I hope you’re all having a successful day.
Peace.
Disclaimer: This DevLog is from the perspective of one developer. So it doesn’t reflect everything going on with the team
TaleSpire Dev Log 430 - April Bi-monthly banter available on youtube
Yup, just a quick one to drop the recording of Friday’s stream. I hope you are all doing well.
p.s. As we mentioned the possibility of an additional dog on the next stream, here is a down payment on that:
Disclaimer: This DevLog is from the perspective of one developer. So it doesn’t reflect everything going on with the team