I’ve been having a great time coding down at @Ree’s place, but it has meant I’ve neglected these updates. Let’s fix that.
We met up so we could collaborate on merging our feature branches
together. Up until now, I’ve been focused on performance, and the data
layer and @Ree focused on tooling. The goal isn’t to com...
Hey again folks, another quick ‘kept of working’ post :) Yesterday was spent working on Paste and Deletion of single tiles.
The latter is fun as we don’t keep unique ids for individual tiles as
the memory usage adds up fast. This means we have to take some
network-safe aspects to use to identify the tile. This is ...
Today has mostly been spent on implementing ‘paste’. Although not
finished, it is coming along well, and I think I’ve hit most of the
surprises the implementation has for me.
I also think I’ve worked out some details to deleting single tiles
that mean we can defer shifting data a...
I didn't write a log yesterday as I was really struggling with undo/redo histories, and it was just too painful!In short, I was fighting with the behavior and then making sure the board was behaving the same as the simplified model we use for tests. I finally got that behaving this morning and so have turned my attention...
Today I found and fixed a few nasty bugs, two of which were caught by the automated test generation mentioned yesterday.
I started off by writing the code to handle the undo/redo history.
When that looked like it was working I set the automated test generator
to make sequences of board changes between 80 and 100 o...
Today I got a useful portion of the automated testing working. It generates lists of changes (add/delete/undo/redo) and applies them to:An instance of the actual board data-structureAn instance of a simplified modelThere is also a second instance of the actual board data-structure connected to the first via a dummy netwo...
Today is a short but sweet one.
Ree has been hunting down bugs in the new building tools and I’ve
been working on the automated test suite which we are using to validate
the building code.
That and of course the pre-orders are out, so we have been keeping an eye on things there.
Righto, I’m gonna get some...
Greetings! Growing and harvesting Creatures.Over the weekend I had the pleasure of starting on the Kickstarter Exclusive Hero sculpts. I haven't been able to do as much artwork with designing and coding the floor/build system, so this is a wonderful change of phase. (more on the Building system and floor system in anothe...
Today I’ve continued on server work:
I rewrote the sign-in code to promote the connection to a secure websocket if sign-in succeeds.
I’ve started wiring up erlbus so that the client will subscribe to
the campaign and board and receive messages broadcast by other clients
or the server.
One interesting note wi...
Over the break, I’ve put down the front-end code to begin getting a
handle on the changes that will be made to the backend. Most of this has
been focused on reading, here are some of the things I’ve been dipping
https://erlang.org/doc/man/gen_event.html some of the http
handling code go...
I’m currently writing this on the train home, I’ve been down working with Jonny for the last time (in person) this
year, and it’s been a great few days. We made a bunch of progress in
different places, so lets natter about that.
First off, we were looking at tile placement and control. We may have
Hey! I best recap the last two days before even more get away from me.
Monday was spent debugging some of my uses of unsafe code. Unity’s
Job system has some great tools to detect race conditions, but they also
let you disable it if you have a use case that demands it. This is a
Phew, so that was the meat of the week’s work. Let’s wrap up the loose ends.
This is probably skippable as it’s just a note of some other things that got changed.
Moving to Unity.Mathematics
Unity added a new math library
recently and whilst having practical benefits, it also results in muc...
Sound of trumpets BEHOLD, Part 3 commences.
We have talked about updating the data and the presentation but we still have to animate the tiles.
In TaleSpire we want to be able to have animate tiles as they appear
and disappear as it makes the game feel better. We have a lot of tiles
to update so...
Alright, part 2!
So in the last post, we talked about updating the data representation
of the board. This time let’s get into the bit the players see and
interact with. The GameObjects.
In Unity’s currently supported approach, any thing in the
world is a GameObject. GameObjects do very litt...
There have been no daily updates for the last six days as I’ve been
in a sort of self-imposed crunch to hammer out some things that have
been on my mind.
The first one was related to the performance of Add/Delete/Undo/Redo
operations on tiles. The faster we do this the better and we ...
This will be a quick one but there's plenty of additional reading for those who like the technical details
On the asset side of the story, we've been working on base meshes and
tools to speed up the asset production workflow. This should give us a
boost, especially when making Heroes and NPCs. We are aimi...
The last two days touched a few different things.First off I was working on the resource list for the Spaghet scripts. This holds references to Unity objects in the asset like Colliders and Animators, and also the configuration of radial menus and GM requests.In implementing this I re-learned a terrible rule of Unity's i...
A day of wrangling packages has completed. It turns out Unity's package system is really easy to get started with so moving Spaghet out of TaleSpire wasn't too bad. In doing so it made sense to move a bunch of utilities and extensions that make the whole affair easier and so now I have a small collection of packages at m...
Today I carried on working on the scripting implementation.Each script has a small section of memory that it will be able to store values to, my first job of the day was finishing of that data store. A few things were a little difficult to debug as VS2017's debugger doesn't show what data is on the other end of a pointer...