I’m really excited about today’s launch! I think the game is a great fit for the Switch, and I’m really hoping it finds a new audience here that digs what we’re all about.
If you’ve enjoyed Dicey Dungeons, today is a really good day to spread the word and tell people about it! We’re a tiny team of independent creators, publishing a console game on our own, and to be honest, we really need all the help we can get <3
Happy Halloween! What an absolutely horrifying year it’s been.
Haven’t been updating the blog much recently – not really much to say I guess! I did a Ludum Dare entry earlier in the year that I’ve been meaning to clean up a bit and post, but that aside, I’ve mostly just been working on Dicey Dungeons updates and our upcoming ports (will have more to say about that very soon, I hope).
Today I wanna post properly about one of the more unlikely things I’ve worked on: The Halloween Special for Dicey Dungeons! Here’s a great video of Retromation playing the first episode of it last year:
Dicey Dungeons had a pretty crazy launch. You know that gif of a burning car driving across the finish line? I relate to that. I feel like it was only in the last three months of development, as we were wrapping up, that I really started to figure the game out on a deep level. There was a period, just after the last alpha, when I was working on the the Parallel Universe episodes, where *everything* clicked. I felt like I was on fire. One year on, my only real regret about Dicey Dungeons is that I didn’t cut more of the early stuff from the game before release.
After launch, when the dust settled, people on the team started talking about wanting to make some Dicey Dungeons content – a DLC. It was a new idea for me: after VVVVVV, I absolutely didn’t feel like making any more platformers. After Super Hexagon, I didn’t feel like making any more action games. But after Dicey Dungeons? I was well up for it.
So, we made the Halloween special, and I think it’s our team’s best work.
With the adrenaline rush of launch behind us, everyone on the team was punching at their best. Everyone brought their A-game: Niamh’s spooky soundtrack is absolutely killer, Marlowe’s Halloween costumes for the baddies are fantastic, and Holly’s script has some of my favourite jokes from the whole game. And I’m damn proud of the work I did: the Inventor and Witch episodes in particular are the very best episodes I’ve made, out of the entire game. When it all came together, I was so, so proud of this dumb thing. I know it’s just a weird Halloween tie in for a game that’s not even horror themed, but we put so much energy and love into it.
I guess I was *maybe* a little bit disappointed that it didn’t get more attention, but ahhhh what can you do? I think people maybe just didn’t even expect it to be interesting – people see seasonal DLC and think it’s just like, a gimmick. Fair enough.
So, probably I’m never doing this kind of seasonal thing again – I just don’t think it’s for me. If we ever do another DLC for Dicey Dungeons, I want it to be something that stands on its own, and has its own identity.
Hey! It’s me again! It’s been a while. Time for a very overdue news post!
Dicey Dungeons is on sale!
Just a heads up: right now you can get Dicey Dungeons on steam for 50% off – the cheapest it’s been since back in alpha. I guess if you’re reading this post there’s a good chance you have the game already, but, you know, in case you missed it 😀
The game’s in Irish now!
v1.8 brings lots of new stuff – new enemies, gamepad controls, a design pass on You Choose, You Lose – you can read all the details on the steam patch notes!
But the new feature I’m really most excited about: The Irish translation is finally complete! This is something I’ve been going on about for a long time, so I’m really thrilled it’s finally ready!
I honestly have no idea how much interest there’s going to be in this. It’s kind of an experiment! Regardless, I’ve been really enjoying being able to play it in Irish myself, and learning a few things as I go.
…but it’s not in Japanese, yet.
One big promised feature that’s missing from this update is the Japanese localisation. I’m really sorry! I recently told a Japanese website that I was planning to add this in v1.8, so I know this is disappointing.
It’s almost ready, but unfortunately it just narrowly missed this update – it needs one more round of edits. Apologies to everyone who’s been waiting patiently for it – getting this ready to go is my number one priority with the game right now.
We released a switch trailer!
I know a lot of people have been wondering about the switch version: all I can say right now is that development is going well, and we’re on schedule! One of the big focuses of the last steam update was gamepad controls, which is a really vital part of the switch port – we really wanted to nail the controls, to make it as good to play with a gamepad as it is with a mouse. I think we’ve done that!
What else is going on?
So, uh, I’m in Australia now! We were here visiting in late February, and then, as Holly put it, the thing that happened happened. We made a decision to stay put for a bit, and we’re still here, for now at least.
We’re doing ok, but truth be told, I’ve had a kind of unproductive spell with everything that’s been going on. (If you’ve been waiting for me to get back to you recently, sorry!)
Lately, I’ve been back to myself, though. Hopefully the next Dicey update will be a lot quicker than the last one! <3
Today is the 10th anniversary of VVVVVV’s release!
Or possibly tomorrow is, depending on who you ask – technically, the game first went live at 3am GMT on the 11th January 2010, after a very, very long day of fixing every last bug I could, making last minute builds, and trying to slowly upload everything on an extremely unreliable internet connection that kept cutting out. But I’ve always gone by “it’s not tomorrow until you wake up” rules, so I still think of January the 10th as the real launch day <3
Gosh, ten years.
VVVVVV is such an important game to me, I barely even know where to start. I wanted to do something special to mark the occasion: so, as of today, I’m releasing the game’s source code!
I wanna give a big big thank you to Ethan Lee, who helped a lot to prepare for this, including getting the repo ready for the public, and organising the reveal on AGDQ (hi speedrunners!)! Thanks Ethan!
A quick overview of the source code
So, I think a fair question to ask here is: “What’s interesting about the VVVVVV source code?”.
I think even a peek of the source code will quickly reveal that VVVVVV is not a technically sophisticated game! Even by the standards of self taught indie devs, it’s kind of a mess.
Some possibly interesting notes/explanations of why things are they way they are:
There’s a lot of weird stuff in the C++ version that only really makes sense when you remember that this was made in flash first, and directly ported, warts and all. For example, maybe my worst programming habit is declaring temporary variables like i, j and k as members of each class, so that I didn’t have to declare them inside functions (which is annoying to do in flash for boring reasons). This led to some nasty and difficult to track down bugs, to say the least. In entity collision in particular, several functions will share the same i variable. Infinite loops are possible.
If you’re looking for the game’s text, that’s mainly (but not entirely) in the Scripts.cpp and TerminalScripts.cpp classes. These functions basically load data into a very simple script parser that controls cutscene logic. Fun fact: modders reverse engineered this “internal scripting” years later to do amazing things with custom levels that I didn’t even know were possible.
Somewhere along the road, I picked up that it was a good habit to separate your code into input, logic and render, and boy did I take that to heart. Most of the critical game code is in three files – input.ccp, logic.cpp, and the incorrectly named titlerender.cpp. Every state in the game is packed into these three files, under functions called things like “teleporterrender” and “towerlogic“. There’s a lot of copy and pasting going on here.
All the actual levels in the game are hardcoded in huge arrays that I generated with my own map editor, which exports the levels in source code that I could read in. This is just kind of how it worked when making a flash game in 2009 – accessing external data assets is hard to do, so it just made sense at the time to compile that into the game instead. All the really big files (like Spacestation2.cpp, Finalclass.cpp and so on) were made this way. I’ve uploaded the code for the editor here for completeness, but it’s not really useable anymore to be honest (it requires Allegro and Mingw to compile). I made a similar tool for rearranging the final level layouts!
When I was making this, I didn’t really understand how static classes worked, or why they were a good idea. I think I read somewhere that static classes and global variables were BAD in flash, so I tried to avoid using them at all ever. The result? Virtually every function in the game is passing around the following arguments: “Graphics& dwgfx, Game& game, mapclass& map, entityclass& obj, UtilityClass& help”.
VVVVVV basically has no temporary objects, and it fills all of its entity arrays (and most of its other data arrays) with hundreds of blank entries when the game is first initialised. It does this because I read somewhere that deleting objects in flash causes weird hiccups as the garbage collector takes over and slows things down, which is actually sort of true. I was still doing this weird thing in new projects until very recently – I finally broke the habit in Dicey Dungeons.
One more: as well as the cutscene parser, I had another way to control game logic as you were playing – a monolithic state machine, which had gotten completely out of control by the end of the project! You can find it in Game::updatestate, and I kinda recommend checking this out even if you don’t read anything else! This controls things like triggering the start of more complicated cutscenes, where teleporters send you, the timing of the level completion animation, and other miscellaneous things that I just wanted to kludge in quickly. The states are numbered, and it counts all the way up to 4099, with gaps. When I was developing the game, I kept a notepad nearby with the important numbers written down – 1,000 triggers the collection of a shiny trinket, 3,040 triggers one particular level completion, 3,500 triggers the ending. This dumb system is the underlying cause of this amazing 50.2 second any% speedrun of the game.
I dunno, what can I say? I was young and more interested in getting something on the screen than implementing it properly. Maybe the best thing about VVVVVV’s source code is that is stands as proof of what you can hack together even if you’re not much of a programmer.
Looking back through it myself all these years later, I find it really funny how much of it is basically just the same parts copy and pasted over and over, with the values changed. This basically makes it impossible to read and maintain ten years later, but back when I was in the thick of it, it made it really fast to iterate and add new things. I’ve gained better habits over the past decade, and I’m definitely a better programmer now – but it does seem to take me longer to do things.
Surprise Birthday Party!
Just as I was getting ready to post all this, Sergio Cornaga announced a 10th anniversary game jam for VVVVVV over on glorious trainwrecks!
I am so excited about this, haha – and I love glorious trainwrecks, which hosted the regular Klik of the Month jams that I did regularly around the time I was making VVVVVV. This feels like a perfect home for it!
I’m really, really excited to see what people come up with – once the jam ends, I’ll do a big round up post here on this blog, in the style of the old VVVVVV player level posts I used to write <3
A decade on, I still feel the same way. I’m incredibly proud of VVVVVV, and grateful for everything. I want to thank everyone who helped me along the way – Magnus for his incredible soundtrack, Ethan and Simon for all their work to bring the game to more people, Bennett for naming the rooms, Stephen for helping me get that mac build out late in launch day. This game is special to me – thank you to everyone who played it and supported me over the past ten years. It’s meant so much. <3
Hey, I was on a podcast! This is new for me – I’ve been recorded talking at events and things like that, but I’ve never actually been a podcast guest like this. It helped a lot that I knew both of the hosts!
This was, uh, terrifying, but I think it went pretty well! Actually, it was a lot of fun – Started off a little shakey, but I relaxed a bit as it went on, and I think it ended up being pretty interesting. Anyway, check it out!
Hey! Welcome back to my series of seven daily blog posts on the run up to Dicey Dungeon’s launch! This one’s a bit overdue, as the game actually launched, uh, *checks watch* three months ago. Ah. Well, let’s have a news update and catch up on everything that’s happened! I barely know where to start.
…I still don’t really know how to talk about all this. That’s actually why this blog post is so late. I kept trying to write it and getting nowhere.
I tried to keep my expectations low – I’m really proud of this game, but there have been so many indiepocalypse stories in the last few years that I was nervous that it all might go wrong. And I, uh, took some risks. I blew a huge chunk of my Super Hexagon and VVVVVV savings to make this. I was quietly hoping it would do ok, but really I was just hoping that at the very least it wouldn’t end up being a total disaster.
What actually ended up happening is that it shot right past those quiet hopes, and massively exceeded my wildest ones – it’s been by far the biggest and most successful launch of my career. Within just its first month, Dicey Dungeons outsold the lifetime sales of my previous two games on Steam combined.
I might have more to say about all this when more time has passed. I’m probably not the best person to talk about business stuff, to be honest. I do think we did a lot of things right – going to expos, reaching out to press and streamers, cultivating a community on our discord. I think it’s worth talking about that and sharing that knowledge, and I hope to do it at some point in the future. But also, we owe a lot to Lady Luck. We’re really, really lucky to have been this successful, and I don’t think I’ll ever be able to fully explain how we did it.
We won the Indiecade Grand Jury prize
This came as a pretty huge shock, to say the least. We were all really, really honoured by this, and it meant a lot to me personally <3 This was my third time as an Indiecade finalist – VVVVVV won the “Most Fun and Compelling Game” award in 2010, which was huge for me, and At a Distance was a finalist in 2011 – but winning the grand prize? That’s something I thought would never happen.
We’ve been updating the game, like, a lot
Since the game came out three months ago, we’ve released six updates, and we’ve also released a free DLC, the Halloween Special!
When Super Hexagon came out in 2012, I immediately moved on to a different project, and I really regret doing that. It was bad for Super Hexagon, and it was bad for the other project too – I was too exhausted from the stress of releasing that game to really get into anything else, and I ended up just resenting the amount of time it was taking to work on necessary things like bug fix updates and ports. That period of working on the PC port and fixing iphone bugs was actually more stressful than the launch.
With Dicey Dungeons, I’ve thought about this a lot, and I’ve decided to do what I wish I’d done with Super Hexagon: to have a long cool down period of maintenance work. For the foreseeable future, I’m gonna try to work normal hours, and just focus on making sure that this game is as good as it can be. I wanna start taking more time off, to actually play games and to relax and take care of myself and rest up a bit and actually figure out what’s next for me, instead of rushing into something new. I’m basically planning to keep working like this, making Dicey Dungeons as good as I can, until I can’t think of anything else that needs to be done.
The next update planned is v1.7, which will be shifting focus to modding support for a while (which is already pretty cool, as the Halloween Special shows!). As well as that, I’m also thinking about how we can do some more big updates… We’re not doing anything for Christmas – it’s too soon, and we need a break – but hopefully we’ll be doing more stuff like the Halloween Special in future. I’ll be sharing more about all of this in the coming weeks and months!
We’re planning ports
I’m really happy to announce that both Switch and Mobile ports of Dicey Dungeons are underway!
It’s worth saying that these things can take some time to come together, and there’s currently no release date planned. I think we’re talking probably next summer at the earliest. It’s really, really important to me that every port of the game be at an extremely high standard – I don’t want there to be any bad version of the game.
There’s not really much more to say at this point, but when I have something to share, I will! Probably the first step towards this that people will see will be improved touch controls on the PC version, and well as keyboard and joypad controls as we figure out the best way to make this work on a Switch! Am really excited to see this all come together!
I think that’s everything for now. Thanks so much to everyone reading for your support! Excited about the next steps <3
Yes! Well, sort of. I’ve never finished a game like this before. But I’ve, uh, taken quite a few runs at it.
The website Hardcore Gamer wrote a very lovely article about Dicey Dungeons from when it was at Indiecade’s E3 showcase, which began like this:
It feels like it’s been a while since we’ve heard from Terry Cavanagh. The acclaimed indie developer delivered amazing work with VVVVVV and Super Hexagon earlier in this decade, but since then he seems to have been happy just making smaller, experimental Flash titles. But now he’s back with his next major game, Dicey Dungeons.
Yeah, lol, fair. I can see how it looks that way! Actually, I considered making today’s question “Super Hexagon was in 2012! What on earth have you been doing for the last 7 years?“. So let’s quickly answer that one first!
The way I usually work is to prototype a bunch of small ideas, and then try to develop the promising ones into bigger projects. This worked pretty well for me until about 2012 (both VVVVVV and Super Hexagon started out as jam games!), but over the last couple of years, it does seem like my success to failure ratio has gotten pretty bad. Or maybe my standards are too high, I don’t know. In any case.
I’ll say right off the bat that I’m extremely fortunate to be in this position at all. VVVVVV and in particular Super Hexagon were both very successful, and that’s meant that it was possible for me to have a few years of failed projects. I’ve been living off my savings from the initial releases, and through what I’ve made from various ports of both games over the last few years. It helps a lot to be a solo developer without much in the way of expenses.
But: yes, I’ve had a few years of failed projects. Since Super Hexagon, I’ve attempted four commercial games, all of which are currently either on hold or cancelled – State Machine, Halting Problem, Four Letter Word, and Nexus City – I’ve also spent a lot of time working on projects that I did consider making commercial, but ultimately ended up making available for free, like Tiny Heist and Naya’s Quest.
I have been a little bummed out about that over the past few years. But it’s kinda hard to feel that way just right now, a day away from releasing the best thing I’ve ever made.
Here’s a big thing that’s new for me about Dicey Dungeons: it’s not a solo effort. For the first time in my life, I put a team together to make a game.
Dicey Dungeons is being made by four full time creators – myself focusing on design, Chipzel on the music, Marlowe Dobbe on art, and Justo Delgado Baudí doing the programming. We’ve also got about a half dozen other people contributing part time – including Holly Gramazio, who wrote the script, and Dana Trebella, who’s helping us with PR and Marketing (we don’t have a publisher!). (The rest: Philippa Warr helped us out with copyediting, Lars Doucet implemented his polymod library into the game, and Niilo, Adriana, Jules and Will did the game’s voices.)
By a lot of people’s standards that’s a pretty tiny team, but from my perspective, after a decade of mostly working on my own or with just one other collaborator, it’s a huge operation, and a huge change, personally.
It’s been an adjustment – I value working on my own a lot! Being in control of every little element of a game is a wonderful thing, and after Dicey Dungeons, I do plan to make more small solo stuff – but gosh, it turns out working with a team is really great as well.
A big part of it is probably who I’ve been lucky enough to work with – everyone on this project really gave it their all, and cared as much as I do about making it into something special. It’s a really amazing thing to be able to just rely on people to do great work – when you have a team like that, you end up with a project that is so much greater than just yourself. It feels like an obvious thing to say, but the version of Dicey Dungeons I would have made on my own would not have been on the same level as the thing that we have now.
Dicey Dungeons started as a game jam game for last year’s 7 day roguelike. I had a pretty simple ambition: I wanted to make a “dreamquestlike”.
I’d been replaying Dream Quest a lot at the time after rediscovering it again, and I was really interested in trying to make something small and different that was a bit like it, but with my own spin on it. I figured it’d just be a tiny 7 day thing, so I didn’t think about it much more than that. I tried using dice instead of cards, just as a random prompt to give me something different to do with the genre, and gosh, it turns out, that was a rabbit-hole that I’m still exploring.
Okay, so it looks a bit wonky, I get it. And actually, it plays a bit wonky too. At times, it feels ridiculously unfair and unbalanced! That’s actually a huge part of what I find so refreshing about it.
For me, there’s sort of a galaxy brain meme thing going on with this game – from first impressions to second impressions to still playing it five years later impressions, I feel like I’m always finding something new in it. Dream Quest challenged the way I think about game design, and gave me with a whole new paradigm for thinking about what I actually find fun in what I play, and what a good game “is” for me. I can’t think of another game off-hand that’s had more impact on how I think about what I do.
The closest experience I’ve had to this is discovering pop music in my 20s. As a moody teenager, I’d always been super into rock music and metal and dance music and things like that, and low-key dismissive about pop music. I used to really care about certain concepts that I thought were important: “authenticity”, “auteurism”, that sorta nonsense. Letting go of that? It opens up this whole new dimension of ways to care about music.
What I’m trying to say here is: Dream Quest is the Girls Aloud of videogames.
The thing I love about Dream Quest is that it’s WAY more interested in letting you find cool combos and discover things, and in letting wild and astonishing things happen, than in being fair, or in being neatly designed. It recognises that it’s more fun to understand and master the mechanics of its systems, to learn how to unbalance and break it, than it is to try and balance everything so that it feels broadly the same every time.
I love that Dream Quest just has playstyles and strategies that are clearly better than others. That is has the guts to be so unbalanced! It’s clearly deliberate – it presents you with different choices, all of which sort of work, but some of which really work once you learn the ropes. It also has other choices, which don’t work nearly as well, but if you know what you’re doing you can make them work anyway.
I think this demonstrates a huge amount of respect for the player, and leaves breathing room for them to set their own goals and explore this little universe, in the same way the designer did. It makes the game feel wild and free and playful and open. More than anything else, this is what I loved about Dream Quest, and what I wanted to explore with my own work.
Dream Quest, of course, isn’t my only inspiration for this game – it’s also influenced by gameshows, by the many RPGs I played as a kid, by Undertale, by Adventure Time, probably loads of other stuff that I haven’t even consciously realised yet. If you ask other members of the team they’ll have their own answers for what inspirations they brought to the project too.
I’m a big believer in talking openly about what’s inspired me, and I think more people should do it! Everything anyone *ever* makes is inspired by what’s in their head – what they’ve played or read or encountered or thought a lot about. Creation doesn’t happen in a vacuum – everything is a remix! You start with the ideas you love and obsess about, and go from there to make something that’s uniquely your own.