Today I fixed the issue that all GM shared one flashlight. I also started looking into this issue where removing GM permission from a player doesn’t close some of the GM UI they have open. I think I’m on the right track with that one so hopefully I’ll have that one done in the first few hours tomorrow.
Alright that’s the most interesting stuff.
Yesterday we pushed out a little update. It was significant for us as it’s the first update after upgrading the version of Unity we were using. That’s always tense as it can be hard to ensure that everything is still working the way it was before. The update also included a proper fix for the bug from log 61 along with a few new nice to haves like shortcuts for camera rotation etc.
That bug fix was going to go out last friday but when we tested the release we saw that synchronization was broken between the clients for this like doors, chests etc. That was super weird and after a LOT of head scratching we found out that it was due to not having reprocessed a bunch of assets after the Unity upgrade. That was a bummer that we lost a day or two to it but good as rereading all the code helped me find and fix another unrelated issue.
Today I’ve mostly been looking at tickets reported by the community. We’ve not done a great job getting back to the awesome people who have filed tickets and that bums me out. Even though most get seen as they arrive the very least we should be doing is letting you know whether we can reproduce the issue. I’m gonna try to make sure I leave some time every day for that so I don’t fall behind again.
Once again thankyou all so much for the super thorough reports that have been coming in, they truly are invaluable.
Now that the last big tickets are dealt with I have a small gap before the UI for the new features is ready so I will get back on tickets again. Expect movement on those real soon!
Time for some sleep.
Heya folks. A quick one today. With both some life business and serialization fixes out of the way it is finally time to get back to tickets. People have been amazing at filing them so the fact I haven’t been triaging these for a week sucks. I’m gonna get through reproducing as many as I can today so I can then focus on fixing next week.
@Dwarf has been killing it making tonnes of progress updating all of the tiles to the new sizes and fleshing out the sets to include everything in the test tile set we made available in the last update. These will all count as new sets as, because of dimensions changes we can’t just swap then out with the originals without breaking your existing boards. Of course that will be coming with the floor changes but until then we want to keep everything working.
@Ree has made a pile of progress on props. As they will become their own class of object they can now have their own behaviors. This includes being able to be placed in way more place, orienting to the surface they are placed on and automatically ‘dodging’ out of creatures way if the creature steps in the same tile as some props. He’s also started on the floor UI as by nailing that we can then start on the deeper engine changes.
All go but mostly behind the scenes. We can’t wait to show you more though so thanks for joining us on this journey.
p.s One thing we haven’t made time for yet is tweaking the emails so they are less likely to end up in spam. We will be doing this for the next invite push though. When we do that we will re-email all codes to all of you who are already meant to have access.
Tonight I dont have a writeup but I have a video of a simple shader effect prototype. It is just a simple vertical cutaway we can use on tiles for when your creatures are in tight coridoors. It’s going to be evolved a bunch to make it more aethetically pleasing but this was just so I could prove to myself that the core idea would work.
Only the first 50 minutes of the video are about making the effect so you don’t need to hang around for the whole thing. Also this is naturally a technical video so if you arent into hairy muppets rambling whilst typing lots of stuff then this may not be for you :)
Today I finished testing the fixes for serializing board-assets with state (doors, chests etc). There will be one side-effect when this goes out and that is all door/chests etc will revert to their default state.
This side effect is a trade-off. We are fundamentally changing how that code worked and so to handle this change we would need to do a of work and testing to port the current state over. This would be the only choice once we have released but whilst we are at this point in the alpha we want to focus on getting more content out there and that is blocked until this fix it out.
So yup that’s all for today. I’ve lost some work time due to sorting out some health stuff and tomorrow will be most taken up by that too. However in the evening I will be prototyping the start of the tile cutaway shader in my lisp stream so that’ll be fun.
Until tomorrow, Peace :)
WARNING: We want to be open in these technical blogs so you are reading unfinished, unproven ideas. This should not be taken as a promise of anything.
Today @Ree and I have been white-boarding a replacement for the floor system. We need to do this as the current system has a number of issues including (but not limited to):
- Tiles are revealed by floor which means large features need to be built on multiple floors or built in a huge stack from one floor which intersects the others
- building raised platforms that belong to one floor requires stacking and then deleting tiles as tiles always try to drop to the floor.
- hair loss
- Can’t delete or position floors as the floor is infinitely wide. If you have a town and delete a floor it deletes that floor for every building in the town.
There are also a bunch of other things that fall out of this regarding how fog of war works, which is another area where the current version of the game has issues
We are making progress but it’s a very extensive change. The goal is to let you create floor plains that are separate from each other. You will be able to adjust their height from the previous floor (in fixed increments) and they will grow as you place more tiles. The footprint is maintained down the whole stack of floors.
This would let you have buildings where you can set floor height, delete floors, etc. Building raised platforms is easy and you just build the plain and build on top of it.
Tile reveal and fog of war is also not ideal in open areas like towns right now. You build lovely multi story buildings and don’t see them until you switch floor. Also, as we reveal what your character can walk to, players don’t see roofs often either. We are musing on inverting the logic of fog of war, where you place a origin for the fog (let’s call it a fog-machine for now :D) and then scroll (or something) to adjust how far the fog flows. this gives the GM control over what is shown and the same (or similar) method we have now is used to uncover it. Each ‘body’ of fog is separate so it should hug walls in a better way improving on the current tile reveal.. we also need some more shader magic to improve the look too.
So yup, massive changes could be afoot. This is ALL just thoughts and musings right now. We are going to start prototyping the gameplay side of floor building tonight and I’m musing on ways to maintain some of the nicer qualities of the fog of war whilst getting some of the new stuff.
I expect I’ll do a stream soon to talk about the problem and the design space even if we have nothing new to show. We’ll keep you posted with things as they happen.
A slightly unusual one today. I needed to prototype the approach I want to use for TaleSpire’s line of sight and I decided to try doing it in a couple of hours on my lisp stream. Here is the result:
We got it working but right at the very end of the stream so there isnt a sexy payoff. We’ll revisit this to make sure it’s working as expected and then reimplement it in Unity.
WARNING: The stream contains a lot of parens :D It’s also built on prototypes from other episodes so sorry that we dotn go into detail on how most of it works.
I’ve changed the name until I get my arse back in gear and start doing these daily again.
The weekend was rather eventful. We had a collection of bugs that acted together to corrupt peoples boards. The good news is that a while back we started making checkpoint saves of boards on each session so we are able to revert to those un-borked version.
|The principle bug was a mistake is some of the serialization code that made an assumption that the number of Assets in a Tile didn’t change. This was a very dumb assumption and it was really just luck that this hadn’t bitten us sooner. This was compounded by the fact that, on failing to load, the game didn’t recognize this and jump back to the empty board. No, instead it decided the board was out of date and saved the now broken board back to the server :|
Needless to say that changed my Sunday plans. Thanks to some invaluable help from those affected (extra props to Blappo here) we were able to replicate the issue and get a patch out a few hours later. I’m currently working on a proper fix for this but it needs to be done carefully so we don’t slip in any more problems.
Also in a couple of days I’ll be meeting up with @Ree so we can start work on the next revision of the floor system in TaleSpire. No spoilers today but news (and pics) will come soon.
Alright, time to wrap up,
Hey again, I’ve not written for a few days as it would have been a ‘still working on the same thing’ post.
I’m done with the issues with unique creatures for now. As ever it doesn’t feel like it’s in its final form but it’ will certainly address a few of the issues:
- When a player joins a board their permissions over unique creatures were not always maintained
- Uniques spawned into unsynced board disappeared on first sync
- Only first GM gets the unique creature panel populated
- Renaming unique creatures doesn’t update the UI promptly
This stuff should be in the next update and we hope to get that out soon. That (if all goes well) should coincide with the next batch of invites. The backend has been fine with the first batch and with the bugs we have fixed recently it makes sense to get more folks in.
I’m going to pick a few simpler tickets now so I can get through a bunch over the coming days. Along with that I need to do some work on the client so we can support ‘props’ that are separate from tiles. More news on that soon as it should be a fun one :)
Ok folks, until next time.
Hey again, it’s been a satisfying day. I spent the morning tracing through the logic that handles creature ownership and some users have seen a bug where people lose control of unique creatures seemingly randomly. By doing that I found one mistake that was causing 2 bugs:
- a unique creature deleted and respawned from the unique creature panel has incorrect ownership
- making a creature unique gives the GM permissions to the unique on the server even if they didn’t have that previously have that client side.
Luckily the bugs came from human error rather than something fundamentally wrong with the design of the system, so that was nice. I also managed to consistently reproduce another bug:
- If a player joins a room that already contains a unique creature they should have permission to, it doesnt give them that permission.
I expect this is a mistake is how we setup the synchronized version of the board.
I think tomorrow I should be able to get that bug fixed with plenty of time to spare. With the rest of the I want to go after a more fleeting and thus trickier bug. I have seen cases where I have dragged in a unique and all seems to be fine, but then the unique disappears. It almost looks like twhat happens when a unique is summoned to another board so I’ll probably start debugging there and see what comes up.
I’d be quiet happy if I can just get a reliable way to reproduce the bug tomorrow. I’ll then be in a good place to fix it Monday, or over the weekend if I fancy.
After the month or so of crunch I am really trying to get back in the habit of doing things other than TaleSpire in my free time so I don’t burn out. I’ve been playing ff9 again after a 2 month break and I really want to start looking back into my personal projects again. Maybe next Wednesday I’ll restart the lisp streams.
Right, time to get some rest.