Terry’s Free Game of the Week

Hey hey, welcome back! It’s been a while! So I’ve been working on a new project recently, and I thought it was probably about time that I mentioned it here.

[Terry’s Free Game of the Week]

Since the start of the year, I’ve been writing at this new site, “Terry’s Free Game of the Week“. Basically I pick one recent freeware game each Friday, and talk about why I think it’s cool. It’s just me doing this, and it’s going to stay that way (unless I find another Terry who wants to write about freeware).

You know, at first, I wasn’t really sure how long I was going to keep this up for – even though it’s just one game a week, I still have to play everything that comes out, which is a lot of work! But I’m a couple of months in now, so I think the site is probably not going anywhere. I figure I’ll at least try to keep it going for a year, and then re-assess.

It’s been really interesting, this process of making myself write about something every week – I am not a writer, and I genuinely find this really difficult and stressful, every week. But I think this is a good project for me for three big reasons:

One: I think creative work is more interesting when it’s connected with a larger scene – people making work in conversation with each other. In other words, I think making the effort to pay attention to what’s going on in freeware helps make me better at making games.

Two: I think non-commercial work is important. Commercial viability is not the only measure of value.

And three, just like it was six years ago when we were doing freeindiegam.es, I think an incredible amount of amazing creative work out there is not getting the attention it deserves, and it feels good to be doing my bit to try and shine a light on it.

Ahem, anyway! I’m really proud of this new project. Please check it out!

1 Comments

Featured VVVVVV Level: “Decennial Hangout” by mothbeanie and Allison Fleischer

“The crew throw a party for their famous mission’s 10th anniversary”[Author’s Description]

10 years after their “famous mission”, the crew throw a reunion party to catch up and hang out and play some games together on Vitellary’s fancy new VR headset. It turns out the crew are all budding game designers, and the first thing we do is play through a space station inspired level created by Violet. Afterwards, Vermilion nervously shows the crew something he’s been working on, which comprises the rest of the game.

This thing is charming as all hell. As you play through the game, the various in-universe crewmates chime in, offering each other supportive feedback about their levels. It’s cute and funny and the whole thing is just really nicely constructed from start to finish – it reads to me as a loving tribute to the community of level creators over the last ten years, all hanging out and talking about levels they’ve made for each other.

It’s also a kind of remarkable showcase of tricks the VVVVVV level making community has learned in the past ten years – Decennial Hangout depends on a deep knowledge of forbidden “internal scripting” tricks, and uses custom graphics and sounds, and incredibly, an all new soundtrack created just for this level (available on bandcamp here). There’s some stuff here I didn’t even realise you could do with custom VVVVVV levels.

This is my favourite entry to the jam <3

Favourite part: This whole level is fantastic, and it’s hard to pick a favourite moment without spoiling it: but one trick it repeats, which never failed to be charming, is the level designers “fixing” issues on the fly – “whoops, I made this bit too hard, sorry”.

Download: decennial_hangout.zip (mirrored)
(glorious trainwrecks page)

To play a VVVVVV player level, extract the .vvvvvv file into your VVVVVV levels folder. On windows, that should be in My Documents/VVVVVV, on Mac it’s Documents/VVVVVV, on Linux it’s ~/.vvvvvv. This level also requires you to install some custom music and graphics – see the included readme for instructions.

6 Comments

Featured VVVVVV Level: “Traps R.J.” by InfoTeddy

“This is a troll level fashioned after Super Mario Maker and Super Mario Maker 2 troll levels, complete with misdirection, deception, and anti-softlocks. […] I recommend playing completely blind, i.e. not knowing anything about the level at all, no spoilers, no hints.”[Author’s Description]

More than anything else, this level is just really, really funny. It knows VVVVVV well enough to know how to make it completely fall apart, and it uses that knowledge to tell some really solid mechanical jokes. Its description as a troll level made me worry that it would be impossibly hard, but turns out it’s the *other* sort of troll level, the prankster type. (Not that it doesn’t get, er, a bit hard in some places. There is one particular room I’m thinking of here which got a little too esoteric even for me, though it’s optional.)

It’s suggested that you play this level on camera, if you can. I didn’t, not my thing. But if it’s yours, you definitely should!

Favourite part: Skip this bit if you want to go in *completely* unspoiled – but I loved the joke right at the very first checkpoint, which parodies the bizarre sub-1 minute speedruns of the game that are possible.

Download: traps_rj.zip (mirrored)
(glorious trainwrecks page)

To play a VVVVVV player level, extract the .vvvvvv file into your VVVVVV levels folder. On windows, that should be in My Documents/VVVVVV, on Mac it’s Documents/VVVVVV, on Linux it’s ~/.vvvvvv

3 Comments

Featured VVVVVV Level: “6×7 Planet” by ncrecc

“Viridian and the gang (part of the gang) got stuck in some other dimension-type thing again! With spikes and whatnot. Ha ha ha how does this keep happening?”[Author’s Description]

A simple, design-focused level in a 6×7 space, with four crewmates lost down four distinct paths.

This one’s great! It has some genuinely fantastic level design, including more than one section that features a mechanical “punchline”, which I always love. It’s pretty hard in places, but the hard bits can usually be solved by rethinking your approach – at which point you can bypass the challenge. All four crewmate paths are really well designed, and the trinkets are great too. In terms of level design, I think this is the best entry in the jam.

Favourite part: After finishing this one, I went through the level in the editor to pick out a highlight, and found it hard to narrow it down to just one room. But I think my favourite bit is the transition between “More of the same” and “Haha nope”, where the level plays with your expectation that it’s going to continue to use screen wrapping, and then… doesn’t.

Download: 6×7.zip (mirrored)
(glorious trainwrecks page)

To play a VVVVVV player level, extract the .vvvvvv file into your VVVVVV levels folder. On windows, that should be in My Documents/VVVVVV, on Mac it’s Documents/VVVVVV, on Linux it’s ~/.vvvvvv

3 Comments

Featured VVVVVV Levels: 10th anniversary jam roundup

Happy new year! High hopes for 2021!

Today’s the 11 year anniversary of VVVVVV’s launch. Last year, I made a big splash for it, and released the game’s source code during an AGDQ speedrun. The source code got, uh, more attention than I was expecting, especially once people actually dug into it…

Good times, good times.

Some fun stuff has happened with VVVVVV since the source code release!

  • We’ve accepted and merged more than 400 pull requests, which will form part of a new version that will probably come out a little later this year. Many of these pull requests are contributions from one particularly prolific contributor (shout out to InfoTeddy)! The changes are mostly fixes for a lot of long term bugs, but also include new features like 60fps support, and improvements to the editor.
  • There’s a Dreamcast port now, as well as a port for the Haiku operating system, and you can play the Make and Play edition in web browsers thanks to a webassembly port.
  • At some point in the future, it’s possible there’ll be a localisation update – there’s a branch on the github that I’m watching closely for the technical side of the task!

So, I guess for other game developers thinking about doing this, here’s a data point! Only good things have happened. This whole thing has been a really positive experience, and I’m really glad I did it.

One regret: in the blog post last year, I talked about the 10th birthday game jam independently organised on Glorious Trainwrecks, and said that I’d do a round up post of the entries when the jam was over… which I never did.

A lot of time has passed, but I’d like to make up for that right now. Over the course of next week, I’m going to be posting three of my favourite entries in classic featured level style. I haven’t done this for 10 years.

There was a lot of cool stuff entered in this jam, too much for me to usefully filter here. Still, here’s an attempt: a quick roundup of other entries that I wanna encourage you to check out, beyond my three favourites:


DROD: KVD / Level 1 by EpsilonTheDerg

“My favorite puzzle series’ first level recreated in one of my favorite platformer games! Happy birthday, VVVVVV!” – [Author’s Description]

Hah! I’m a huge fan of the DROD series of puzzle games, and, as this level points out, DROD: Architects Edition was a pretty major inspiration towards the Make and Play Edition of VVVVVV. That aside, though, the two games really don’t have much in common, so I was curious how this concept was going to work.

…ok, turns out, I don’t think you can say that this combination works, exactly. Mostly, it comes down to a lot of timing challenges. But as a big fan of the game it’s referencing, I found it interesting to see the layout reinterpreted, and there’s something I really like about the sheer unlikeliness of the concept in the first place.

Favourite part: It does feature one genuine puzzle, which is how to get back into the entrance tunnel in Quince North, Twice West. The author makes it very clear in the description that this is possible, and it is!

[download on glorious trainwrecks]


Steamed VVVVVVams by EpsilonTheDerg

“Viridian’s Luncheon doesn’t go as planned.” – [Author’s Description]

But what if Viridian were to purchase fast food, and pass it off as their own cooking? Delightfully devilish!

This *maybe* would have been stronger if it had just stuck to the one joke, but eh, what can you do? It’s still a great level.

Favourite part: Honestly, the second I saw that icon on the glorious trainwrecks page, I couldn’t wait to play this.

[download on glorious trainwrecks]


VVVVVV: Moonfall by Azure48

“As for the title, it’s from a dream I had a few months back, about a nonexistent sequel to VVVVVV called VVVVVV:Moonfall. The story would’ve tied into it, but I never got that far.” – [Author’s Description]

Rather than a .vvvvvv level, this one’s a pico-8 demake of VVVVVV. While it’s very unfinished, it’s worth checking out anyway for its charming atmosphere and wonderful demade version of the original soundtrack.

Favourite part: It really is super impressive that so much of the original soundtrack is remade in Pico-8’s synth, and it sounds fantastic. I happily stood around in empty rooms so I could hear everything.

[download/play on glorious trainwrecks]


The Groceries by Lollipop

“Viridian has to go buy the groceries, but of course, there are some small inconveniences along the way…” – [Author’s Description]

I’m not sure where to start! This very story-heavy level opens with a cutscene where Violet asks Viridian to go out and buy some groceries – which they don’t want to do because they’re sick (this hits a bit different after 2020). After Viridian says no a few times, Violet tricks them and locks them outside the ship, and off we go.

On the way, Viridian takes a train trip, and bumps into lots of random people who proceed to argue with them about morality, philosophy, and in one case just try to bully them into getting a drink from the dining cart for some reason. The whole thing has a kind of a strange, fanfic energy, in a good way? The final section when you actually get to the store is pretty strong in particular.

Favourite part: The store section is good, but so is the bizarre quiz section that occurs about halfway through, where an AI needs to check that you’re “not a robot” before it’ll let you continue by quizzing you on the events in the level so far.

[download on glorious trainwrecks]


Simulation by nicholas

“Vitellary makes a simulation for adventure-seeking Viridian! Nothing wrong should happen, right?” – [Author’s Description]

Ok, so, I think I’m pretty good at VVVVVV? Maybe I’m a bit rusty, I guess? But I could get *absolutely* nowhere with this one. This is definitely one of the hardest VVVVVV levels I can remember seeing. I know that a lot of VVVVVV player levels skew hard, so I guess it shouldn’t be a huge surprise that there’d be at least one entry in this jam that was just beyond my skills.

Still, it was pretty clear from the first room (in the screenshot above) that this was a competently made thing, and I was curious about what the rest of the level was like – so I turned on invincibility mode, and went exploring.

What I found was frankly terrifying. Lots of really, really hard challenges, but all tightly tuned and carefully designed. Clearly a tonne of work went in this! If you like VVVVVV, but think that it’s just, like, way too easy, you’ll find this interesting. I, for one, would love to watch a successful playthrough.

Favourite part: If you view the map screen, the name of the level is written vertically along the side, which is cute.

[download on glorious trainwrecks]


Pointy Hazards by ureytw

“Phew, I made it! This is a song i made inspired by the Soundtrack. Enjoy, and happy VVVVVV 10th anniversary. :)” – [Author’s Description]

Not a .vvvvvv level this time, instead, just a really, really great tune inspired by the VVVVVV soundtrack.

Favourite part: That bit that starts at 33 seconds is *killer*. Uff, what a banger.

[listen on glorious trainwrecks]

To play a VVVVVV player level, extract the .vvvvvv file into your VVVVVV levels folder. On windows, that should be in My Documents/VVVVVV, on Mac it’s Documents/VVVVVV, on Linux it’s ~/.vvvvvv

0 Comments

Dicey Dungeons is out now on Switch

Hey! I’ve got some big news – Dicey Dungeons is available right now on Nintendo Switch!

[Dicey Dungeons on Switch eShop]

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

5 Comments

Dicey Dungeons Halloween Special

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.

Anyway! It’s Halloween again, so give it a try, if you haven’t already! Here’s a guide to launching it from within Dicey Dungeons. Go check it out!

3 Comments

Dicey Dungeons v1.8 out now!


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

1 Comments

VVVVVV’s source code is now public, 10 year anniversary jam happening now!

Posted in VVVVVV


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!

[VVVVVV Source Code on github]

The repo contains two versions – the desktop version, ported to C++ by Simon Roth in 2011, and later updated and maintained by Ethan Lee – and the mobile version, written in Actionscript for Adobe AIR, based on the original v1.0 flash version of the game.

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!

VVVVVV’s 10th birthday eVVVVVVent!

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

Even before I released the game’s source code, I made the tools to make and play VVVVVV levels available for free in the “Make and Play” edition back in 2014! You can download that from here! If you’re interested in making levels in the VVVVVV editor, this thread is a good place to start! Good luck!


Mushy stuff

Ahhhhh so I’ve talked about how I feel about VVVVVV a little before – just before the first anniversary, I posted about how things were going for me when the game first came out, and how its success changed my life. Then on its firth anniversary, I posted about how VVVVVV felt like a once in a lifetime project – that nothing before or after could come close to.

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

43 Comments

The Spelunky Showlike

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!

The Spelunky Showlike, Episode 33
[iTunes] [Spotify] [Google Play]

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!

0 Comments