From the Burrow

TaleSpire Dev Log 111

2019-06-06 11:40:33 +0000

I was too tired to writeup last night’s dev log so here it is a little late.

I really want to get a user visible feature out this week so I implemented ‘duplicate board’. This will let you click on an icon in the board panel and duplicate the chosen board. This will be handy for a lot of cases but I love the idea of making a town, copying it and then destroying the town for the players to visit again after the calamity.

The hard parts had been researched or implemented when I was looking into the S3 part of cleaning up old board files. All that was left to do was write the database queries and expose it to the game itself.

With the core feature now working I just need to do cleanup and handle the fact that it currently doesnt copy the board description (an easy fix).

Back later today with more news

TaleSpire Dev Log 110

2019-06-04 00:11:26 +0000

Good-evening folks,

Today I spent most of my time working on the code that deletes old boards from the backend storage.

Every time you load a board TaleSpire takes a new snapshot of the board that you then modify during that session. We keep hold of these snapshots so that we can at some point give you the ability to roll back to one of these backups in case something drastic happens.

Of course this means we are slowly accruing more and more board snapshots so they have to be cleared up. The goal was to keep only the 10 most recent snapshots. Any older than that will be deleted.

Now even though a snapshot is old it would still be good to be able to recover it for a short window of time so we have set up ‘buckets’ on S3 which auto-delete files that have been in there more than 14days. This means the task is to identify the old board snapshots and move them to these buckets.

As this operation needs to touch every row in the ‘board files’ table in the database it could be rather costly so we are using postgresql’s materialized views to help with this. This lets us chose when to update the view at the cost of it being out of date after that. This is fine for us as the worst that happens is that we don’t delete a few snapshots as soon as we could, it will never result in us deleting something we shouldn’t.

After that it was a case of setting up the erlang process that would take care of this at regular intervals. I got the hard part done, namely identifying and moving the files, but for whatever reason the event isn’t firing automatically. This will be some simple mistake on my part so I’m not worried about fixing that relatively soon.

This also means I’ve tested the bulk of the code I would need to implement ‘duplicate board’ so if all goes well I’ll get that out this weekend.

Until next time,


TaleSpire Dev Log 109

2019-06-01 18:39:09 +0000

Heya folks, @Baggers here again,

I didn’t write a log last night as what I thought was a quick nap on the sofa turned into the kind of sedation usually reserved for surgery.

On Friday I wrapped up the experiments I was doing with resource loading in Unity. I was able to load the icons and index of assets at startup which significantly dropped the pause at first campaign load. The branch i was doing the experiments on is rather a mess so I’ll need to clean that up but it looks promising.

I also took the morning to take on some contracting work. I’ve done these very rarely since starting on TaleSpire but it keeps bread on the table. Here’s to the Kickstarter making that unnecessary :)

Behind the scenes @Ree has been doing great work on the campaign trailer and the assets and tech surrounding that.

Right, back to the weekend!


TaleSpire Dev Log 108

2019-05-30 01:46:15 +0000

Alright today I was mainly experimenting with asset loading. We currently have a big pause when we load assets and so naturally we need to fix that. Some of it is just moving things earlier, spreading things over frames etc, but we need to try this stuff out to see what works.

There’s not really a lot more to tell for now. Research is cool but make for pretty generic dev logs ‘TODAY I DUN STUFF’.. good job me.

Tomorrow is a national holiday but we’ll be back with more on Friday.


TaleSpire Dev Log 107

2019-05-29 00:12:40 +0000

Heya folks tiny log today as I don’t have much of note to report, lots of poking around with Unity and reading up on a bunch of things we may need networking wise in future.

The good thing is that the dungeon tile set is progressing well. It’s been delayed by wanting to add more texture and variation to it but hopefully we get something out tomorrow.

I best run for now.


TaleSpire Dev Log 106 - Back to the back

2019-05-27 20:06:37 +0000

Today started off with looking into how we are going to handle copying and sharing boards. We store all the board files on S3 so the first part of the job was to look into how to copy/delete etc files on s3 from erlang.

I’ve been using this nice little library called mini_s3 so far. It has done all the hard work but there are a few places where certain options have not been handled. For example the ec2 instance gets temporary permission to s3 from it’s IAM role and so when we make requests we need to pass along the x-amz-security-token. The functions in mini_s3 don’t handle that yet.

I have forked the library and have added support for the amz token to s3_url and list_objects. I’ll be adding support to more functions soon but list_objects served as a good test.

For the rest of the day I was working on some other experiments that aren’t worth rambling about.

Seeya in the next dev log

TaleSpire Dev Log 105 - Revenge of the return of the reawakening of the dev log

2019-05-21 21:53:21 +0000

Hello! we return to our intrepid dev log with the least dev’y dev log of them all.

Today I’ve re-read all of the #feature-request channel and broken it down into 150 (suspiciously round but that was the actual number) separate requests.

Ree and I then filtered them into piles of things we will be doing, things that will be addressed in some other form and things that don’t fit TaleSpire.

That list was then pounded with hammers until merged with our internal feature list and a Kickstarter feature list was born! This is one of the main things we’ll be talking about in the dev stream we are hosting tomorrow. You can find the event for that here

I’ve then continuing to prepare for the stream. It’s nice to see this taking shape and I’m looking forward to sharing all this stuff with you tomorrow.

Until then


TaleSpire Dev Log 104

2019-05-06 22:56:35 +0000

Allo everyone,

Today we made progress in a couple of areas.

I focused on changing how we prepare assets for TaleSpire. This is done in a set of tool in unity we call TaleWeaver. The new prop system allows you to clip props to other tiles at certain ‘attachment points’ in TaleWeaver you can now lay out these attachment points and set what the default prop for that point is. This means we can have pretty pre-made tiles that you can disconnect things from, which lets us hit that balance between providing player control and lets people just throw things together.

We now need to add attachment points to all tiles and, since that is quite a task, I’m looking at automating a bunch of it. That will be my task tomorrow.

@Ree has been working on camera control systems for the kickstarter trailer and added an adjustable radial-menu item that can be used for controlling stats. We’ve just hooked it up for HP and it seems to work well so we will provide HP and 4 other stats to start with. These stats are of course sync’d during the session and persist across the whole campaign if you make a creature unique.

The goal for midweek is for you to get copy/paste and the stats stuff so it’s gonna be a fun one!

Seeya tomorrow!

TaleSpire Dev Log 103

2019-05-03 20:08:36 +0000

Heya folks,

Programming has over the years reminded me again and again that problems with trivial descriptions often hide catacombs of complexity, and that any time you use the word just to yourself you are probably in trouble.

‘I just need to do this <insert simple thing here>’ is a ancient spell than summons bugs and leads you into sleepless nights of crunch. SO.. when yesterday I was commenting on how copy paste would be difficult I thought I was speaking sensibly and from experience, and thus the gods of code decided that I would get smacked in the face with my own ignorance yet again.

This a long winded way of saying. This works

I know nothing

Which is nice, if mildly bewildering.

There are of course issues and general lack of polish. One side effect of this feature is that it really makes it easy to run into other bugs in the alpha. It’s now very easy to make very large, very tile heavy boards. Very easy to duplicate areas which already have issues with fog of war and amongst other things our selection tools still aren’t great with large piles of assets.

We’ll may have this in your hands next week so be gentle :D

With this working it made it possible to save out simple data that described prefabs. This will make it possible to save small sets of tiles to use as building blocks in game. In future we will have ways of sharing these but our first order of business to bring something similar to our current tiles. For example consider this tile:

tavern wall

It’s wonderful to have tiles like this but maybe you want to remove the bellows and add a lamp there, these changes could let that happen (in time). Again there are lots of details to get this to work well and it will mean updating a lot of existing assets, but we are going in the right direction.

Until next time.


TaleSpire Dev Log 102

2019-05-03 09:31:14 +0000

Heya folks, Baggers here.

It’s been a few days since the last dev log so here’s a quick update.

I’ve been working on the new prop system and have got it into our master branch. At this point building/creature-dodging/syncing all technically works but it feels bad right now. As I’ve been head-butting props for a little while I decided to take a day off from that and I’ve started looking at copying selections of tiles. Here’s a little gif of the start:


Now as usual just because it looks like a significant part of the feature is done does not mean that it is, this was 10 minutes of work, the hard part is still to come :) However it’s under way and once we can get multi-tile placement working it opens up a lot of potential features, for example sharing small chunks of boards.

I also wanted to take a moment to talk about what my priorities are on the code side right now. The goal is to keep giving you folks nice small things before the kickstarter. A lot of the more fundamental fixes require work that would take over a month to complete and it doesn’t feel awesome to be stopping updates in the lead up to the event that really decided whether we get to keep making this for you or not (especially as without funding we won’t be able to finish the big fixes anyway).

The bug reporting you have been doing is invaluable and we are so grateful so many of you have written up such excellent reports on github. The big stuff will be fixed but first we need give a bit of the ol’ razzle dazzle :D

As ever, we are around most days on the discord so do stop by and poke us if there is anything on your minds,