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
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
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.
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!
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
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:
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.
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,
Today there isn’t much to report as I’ve carried on with the prop system. We will be able to add this without breaking anything that currently exists.
We will probably deprecate all the tiles under the prop section and then provide all the same assets using the new system. This means existing behaviour is maintained but anything new will have the new behavior.
As usual work still rumbles on and we’ll be sharing more as it happens
Heya folks, it’s the 100th log so whilst I haven’t got any special dev news I’d just like to thank all of you for checking out these little updates and TaleSpire as a whole. I could easily wax lyrical on how much your feedback means and how it has helped us work out what TaleSpire needs to be, but I’ll spare you that for now. Regardless, Thank-You!
Now back to the snooker,
Today I’ve been working on the prop system. I’ve pushed the fact we are prepping large system refactoring out of my mind and am hacking in a version of prop support for the alpha.
The first version will go something like this:
- Tiles will stay pretty much how they are, snapping to the tile grid and rotating in 90 degree increments
- Props will be a special kind of asset which can be snapped onto attachment points on tiles
- Tiles will have many attachment points. These (for this version) will be authored in TaleWeaver when making the tile asset.
- Props will not obstruct line of sight or effect fog of war
- Placing a creature in the same space as a prop will cause the prop to temporarily ‘dodge’ out of the way (springing back afterwards)
- Props will be rotatable in finer steps (currently things 22 degree steps so 16 per revolution)
- Props rotate around the normal to the surface the attachment is on (really it’s that they rotate around a vector defined by the attachment but the common case is normal of surface)
- Props will become children of tiles in the scene so will show and hide with whichever one they are attached to
The code I’m writing for this is real ugly but I’m just gritting my teeth and plowing on as getting a playable version will allow play testing which is way more valuable than holding of until after all the other things I want to change.
As this is a slightly larger task we aren’t putting out a midweek update so we’ll have to see what we have for the weekend.
Good evening folks.
Not much to report today I was mainly working on a redesign to how tiles, props, pathfinding and zones work, so pretty fundamental. This stuff has been rolling around my head for a month or so but today a bunch of ideas arrived pretty fully formed which was nice. I’m not going to go into detail yet as I’ve still got to work on how I want to identify tiles across the network and how to handle multiple people placing tiles in the same place in the new approach.
Tomorrow I have a day off but I’ll be back around over the weekend (hopefully with the next little update) and I’ll keep working on these ideas alongside the regular feature work. We aren’t rushing this fundamental stuff as it’s more important to me that the alpha is a picture of our intent before the kickstarter, rather than trying to nail down final versions of various internal systems.
Today has been fun.
I fixed a bug that appeared when editing the lineup in initiative mode. Each creature added would recreate the whole list which, whilst it technically worked, it looked bad. This was a simple ‘reused the elements which were there previously’ fix. So that was nice.
One of our lovely gang in discord then pointed out that when you first spawn dice they have a nice spin which is an effective randomizer, but when you pick up rolled dice they don’t spin. Now then you throw we do add some random angular momentum so the result should still be random, however it didn’t feel great so I’ve added the spin on pickup too.
Lastly I’ve done most of the work to add a way to control the volume of sound effects in the same fashion as music and ambiance. I’m still hunting down a bug where this new volume is not applied correctly but it’s nearly done.
My goal for tomorrow is to get an update out so if I don’t get the effect volume stuff done in time it’s no big deal, we’ll probably have another update at the weekend anyway.
Good [time adjusted] evening to you all,
Today I’ve been keeping busy with bug fixes and some small workarounds. These changes will be out in the next update (hopefully wednesday or thurday)
- We now show the name of the selected creature along with the player name in the GM UI
- We clear the history panel when switching boards
- Fixed a case where, if you controlled many creatures and clicked on their image in player mode it might focus the wrong creature
- Fixed an ugly exception that would occur if you disconnected after having used the turn based mode
- Fixed a case where the first GM joined after other non-gm players and the gm would be put in cutscene mode
- Tweaked the number of tiles updating per frame. We still get ugliness in large, multi-floor boards but this makes it a tiny bit more playable whilst we find a better solution.
We also pushed out the next 900 invites, so thats 1900 in two days which feels nice.
Now to get fixing so we can get another batch out!
p.s. I’m not going to get much done tomorrow as the machine I use for streaming and testing has died so I need to sort that out first.