It’s been a busy week at Nova Blitz central! We’re back in the saddle, and we’ve been building more of the game. When you crunch to get a demo build out like we did for PAX South, you incur a bunch of technical debt – little hacks that work, but aren’t OK for production code. Our week’s been split between real solutions for that debt and some brand new mechanics.
After spending so much time getting the demo ready, it was refreshing to get back into card mechanic coding. Because we’d built some good structures, there was a lot of low-hanging fruit. Some of which might be surprising – “copy” cards were much easier than we expected (though shapeshifters are a little harder to handle).
Of course, there’s also a lot of cleanup to do – that technical debt won’t fix itself. The biggest cleanup we did this week was making all our effects use our event system (that’s what we use for triggered abilities, damage prevention, etc). This opens up a lot more quick wins – for example, we can now make a triggered ability that triggers on a unit being healed. Another big piece of technical debt was ensuring that card resolution works intuitively – checking that targets are still legal, handling units that enter the arena during resolution, etc.
There’s still lots more to do before we get where we want to be. The good news is that we’re now confident that card mechanics are going well enough that we’ll have a lot of interesting cards for Alpha.
We’re making great progress on the deck builder. We can load, save, and edit decks (and they’re saved up into the player’s account on the server). And, we’re now working on the UX – the image below is today’s latest UX mockup, which, I want to be clear, is a work in progress. We’re making some more adjustments, most notably making the energy, rarity, type, and aspect filters into drop-downs so we have more space for cards – we’ll be able to put all the filters in the top bar, and get rid of the bottom bar entirely.
The card area scrolls vertically, so you can review your collection. Also not pictured on this mockup are the icons that tell you how many of a card you own.
(It’s designed to show 12 cards on screen at once so that we can re-purpose this view for drafting. This is also one of the reasons our card packs are 12 cards each.)
If you’ve played the demo build, you know it’s got a few issues that need to be fixed – using tons of CPU being the most obvious one. We’re working on that one right now; it’s not a quick fix, but it is an easy one.
We’re continuing to work on the server to get it ready for Alpha. The big things are making the client-server messages as small as possible (the smaller they are, the less lag) and to make the server more crash-proof (for obvious reasons).
We’ve already cut the total data transferred by the game messages by a factor of 10. Yes, it was really inefficient before, but that’s a good thing, as it let us quickly test and adjust the game. Now that we’re closer to Alpha, we’ve got a better idea of what we need, and we can simplify what we send. The message size is good enough for Alpha since we’re only sending around 5kb per second to each player. We’re still not done here, as we can make a ton more optimizations to make the game play experience even better.
As far as server stability goes, the rules engine (which drives game play) is very stable. We do get some server crashes in other areas, and we have to prevent them before we hit Alpha. Some of the crashes we’ve seen are tangentially related to the CPU bug, so they’ll clear up when we finish that fix. Most, if not all, of the others are holes in the client-server messaging system. We’ll be spending some time next week hunting them down and preventing them.
In terms of forward progress, this was one of our best weeks yet. Making new cards work (without requiring any client changes) always feels good. And the more stable the server becomes, the more production-ready it becomes. Alpha is in sight now, even if it’s still a long way off. In the mean time, we’ll have a new demo build up this month (if we crush enough bugs, it might even be a client-server demo build…).
As always, we want to hear from you – what do you want to hear more about? Let us know on the forums.