I’m working away on the Android build. It’s running on my Galaxy S now, the UI issues are mostly cleared up, so it’s getting there! I’m starting work on the API integration – leaderboards and so forth.
Still, I’m trying to stick to the habit of updating the game every two weeks with fixes and at least something new. So I put aside a couple days and made Patch 1.02!
The main changes are another round of improvements to the Thief, a new skill to find in the world, two new weapons, and some overdue fixes to the Act 3 boss fight.
iOS players: sorry for the wait! I can’t push a build to iOS without testing it thoroughly, which with a game like this takes longer than I’ve spent making either 1.01 or 1.02. For now, these little Flash updates and the feedback I get from them are helping to make sure the next iOS update will be a good one.
Fixed a number of AI issues in Act 3 boss fight where allies and enemies were often failing to attack or cast spells.
Fixed bug where game could sometimes lose some progress towards streak achievements when closed and re-opened.
Fixed bug where consecrated Stealth/Heavy weapons were losing their weapon type and gaining extra stat points instead.
Flash version now ignores first mouse click when regaining focus.
Fixed a rare bug that could cause the game to crash between levels.
Main menu now shows achievement rank number.
Updated Achievements screen to make room for additional achievements in future.
CLASSES AND SKILLS
Added new skill “Smite”.
“Sleep” effect updated. Enemies that are asleep can no longer block. Instead, hitting sleeping enemies will wake them up faster.
Pugilist “Sweep” skill tweaked to balance changes to sleep effect.
Thief: Increased base Defense by 1.
Thief perk “Speed Runner”: increased bonus to +3 faith.
Thief perk “Bosh”: increased length of daze effect.
Added two new Stealth weapons.
Moved Stiletto later and rebalanced accordingly.
Fixed bug where Act 3 boss, Shiurath, did not have a ranged damage spell.
I’m currently trying to beat the game into shape so it can go out on iOS. This means doing a lot of iPhone/iPad specific stuff, fixing a lot of bugs and solving some dull technical problems as quickly as possible.
Like loading screens.
The iPhone 4′s kinda slow. Loading times can be a bit long! A bit too long for the screen just going black to be OK.
Adding an animated loading screen over the loading process would have been easy if I had access to threads or coroutines or could manually update the screen, but HaXe+OpenFL doesn’t have do of this because Flash doesn’t do it. Without any of the above I’ve had to restructure all my level initialisation/loading code, slicing it up into tiny tiny bits until every single bit can run inside a few milliseconds. It’s been a bit like breaking a rock up into sand using only a pickaxe.
I’ve also been doing this in a hurry and without tidying as I go! Which means a whole bunch of my code now looks like this:
I am a bad person.
Just another little thing that probably no-one’s gonna notice and which takes longer than it probably should. They all add up.
It’s been pretty rough. In many ways, I feel like I’m still where I was writing my 2012 retrospective a year ago. It doesn’t help that since then I’ve been socialising less to save money and working harder to get things done; I’ve been banking stress and isolation for a while now. I’ve developed regular bursts of depression. Ste Pickford’s retrospective comic cut pretty close for me in many ways, as I’m sure it has for others.
I’ve withdrawn. I’ve posted less on Twitter and hardly posted here at all. My life’s kinda sucked and I haven’t wanted to share that. Even this post’s difficult to write.
But some good stuff’s happened this year too!
I’ve been working with an artist for the past year, John Attea, who’s been doing a great job redoing and expanding the environment artwork. You can see the general bump in quality in this Let’s Play from May.
The game got huge. It now has three campaigns, each with new monsters, new environments and an epic bossfight. Even if you never die, I’m pretty sure just seeing the end of this thing is an easy four or five hours of solid gameplay and new content. You definitely won’t have explored all the classes or made a dent in the achievement system by then. I’m super happy with how the game’s come together.
It now runs on iPhone and iPad and does it pretty well.
The game was approved on Greenlight and will, in time, be coming to Steam.
Finally, here’s the big one for me personally. It made most of the rest possible.
Late last year I tried an Indiegogo campaign for CQ2 to fund remaining development – which failed. Things were looking pretty bleak, but early this year Kongregate stepped up and took Cardinal Quest 2 on under their new mobile publishing initiative. They saved CQ2 from being pushed out early and unfinished, so a huge thank you to them!
This is another reason I’ve been quiet about some stuff. I’m no longer working by myself, the game has a publisher. I’m frankly happiest leaving business and marketing decisions to them and focusing on the game, so it’s their role to discuss release dates etc. I’m hopeful the forms the game will be available in become clear over the next few months, as our plans come together and – if all goes to plan – the first versions of the game come out.
My resolution for 2014 will be the same as last year’s, I guess: make more games, after I ship this one. I should have a chance to act on that soon enough. Until then, I’ll add a second resolution which I can start work on right now: I’m gonna find ways to heal the situation I’m in and make sure the grind doesn’t pull me back down.
Way back last February I came up with the approach I’ve been using for most of CQ2′s development: make a handful of little half-size 8×8 tiles, and the system goes and builds everything it needs from those. It was super efficient… but it was kinda inflexible and obscure.
The new system is not efficient.
This is test artwork, stuff that won’t go into the game, but it shows how things work: every single possible tile, up to 47 tiles for a complete set, is laid out separately. Each one is 16x16px but has an 8px bleed area all the way around so it can overlay the tiles around it, like the high walls in the image above.
The system’s really stupid but it gives you total control. Being able to mess with all the tile variants, and having the bleed areas, means it’ll handle all that stuff in last year’s Boundaries post – and more besides – with no code changes, just artwork.
For now, I’ve made the existing forest tiles overlap the tile above.
It’s amazing how much time in game development can go on everything but game development. I’ve been using the time I’ve had left over the past week or two to sort out loose ends: minor features and persistent, lingering bugs.
The sort of bugs I’m talking about have been in there for months, uncaught, because they’re just so rare and difficult to ferret out. One which came up a lot but which I’d never been able to track down required you to be carrying five consumable items, drop one to picking up a new item, drop that item to pick up a third item and then go try to pick up the first item again.
Another bug required you to charm a Conjuror, wait for the charmed Conjuror to summon an Elemental (which would also be charmed) and then attack the friendly Elemental with a spell. There is almost no reason you’d ever want to do this.
So I’ve been wandering through the codebase, fixing this stuff, while sorting out a few other minor things – like this Paladin class spell, which now has a unique skill type all of its own:
Another loose end tied up is acknowledgement of your chosen difficulty in game with shinier portrait borders:
I think that’s all the little issues out of the way. Over the next two weeks I’ll be working on big changes to Act 1 to get it into as close to a final state as possible. Here goes!
Something’s been bugging me about Cardinal Quest 2 for a while. Yesterday I fixed it.
Gender and skin tone are now customisable.
The concept I’m trying out is that you can have an explicit choice of gender in character creation without the outcome necessarily having an explicit gender. See, it’s a single player game. You know what your character’s gender is – you picked it! If the sprite itself is ambiguous, that’s fine. The characters don’t need to be strongly coded to one gender or the other… I’m thinking they just need to be different, so you can tell you’ve made a choice and the game’s acknowledged that choice.
So I’ve gone for a mix of character designs where some have strong gender signifiers and some don’t, roughly in line with their culture or needs. Practical Fighters slip on bulky, figure obscuring armour; weapon-despising Pugilists, their physiques a defining part of their identities, prefer to travel light; flashy Wizards wouldn’t be caught dead in a muddy field looking like commoners. And so on.
This is perhaps a bit experimental. Choices in games tend to have obvious consequences, so one which has less obvious consequences than it could have might be interpreted as broken rather than making a point. I think I’m OK with that though.
If you’ve got any comments on the character designs re: gender or skin tone let me know. This is something I really want to get right and I’d appreciate pointers.
This started off as a necessary Chapter Select screen to let you pick between the three chapters of content the game will have. It ended up absorbing a bit more functionality; I needed to rewrite the character selection screen, so I threw it in there. I also realised I’d lost interest in the idea of Bastion-style extra challenges – so I’ve gone for three tiers of carefully calibrated difficulty instead.
It took a while to figure out a new flow that incorporated all these decisions while providing you with the necessary information without feeling overcomplicated, but after fiddling around a ton I’ve finally settled on something. When you hit New Game now, here’s what you see:
There are three acts. Each one is about hunting down and murdering an evil tyrant in the FACE.
The stuff in the bottom corners is the difficulty you’ve cleared that act on with each character. This is important.