Tuesday, 30 June 2015

making another roguelike game (yay/boo)

my last couple of games have been pretty trad and i thought that after those i'd make something weird again. i'm interested in all different things, made a pretty wide range of stuff, but recently not so varied. so i had some ideas, big concept theme express, it was going to pile some really bizarre stuff on top of a basic dungeon scaffold but then i started making it and put some systems in place and it just crystallised out into this very trad "collect magic gem for high score" videogame videogame and all the amorphous chaos i was trying to put in didn't fit anymore. scaffold becomes game.

and like, i'm okay with that. it is good for things to take on their own life. and it is a Good Game. it's very much following on in the same vein as zaga-33 and 868-hack, call it a sequel if you want, but it is still doing its own thing and it is still new difficult interesting work to design it. and the ideas that didn't fit into it, maybe i will use them somewhere else.

i guess i'm kind of worried about being judged for making such easily categorisable games. i am disappointment for not doing "outsider art", if you recognise me for that then maybe it is quite dull that what i am making now is so much game product for sell on market.

or, i judge myself. i don't know how much i'm being influenced by thought of money. i know by now that it is pointless to have any expectation of how a game will sell, but it is impossible to not be affected by the huge difference in response to 868-hack from everything else i've made. this is how sequels happen. it's not even necessarily a money thing, just like a feeling of external validation (though obviously i do need the money once hack credits run out). i don't make multiplayer games anymore because nobody wants to play them, but a roguelike on a telephone! yeah interesting how roguelikes are big now, just a few years ago they were weirdo niche but now seems like every third big budget release has roguelike mechanics honest. or at least all the crowdfunding campaigns. "ugh another roguelike" is the new "ugh another puzzle platformer". so i guess i'm the establishment now, k.

but also like, vesper.5 and become a great artist in just 10 seconds both got quite a bit of external validation too. i haven't even tried to put something like that (whatever we're calling them now, not-games art-games alt-games game-fusion digital-tapestries, idk) as product for commerce, i guess i assume that it wouldn't succeed, don't know how valid is that bias.

i guess it is self-discovery. adventure to find out what i will make. i thought i would make all things wildly different, turns out i actually make a sequence of very closely related things; update self-image. can i justify this.

i think i justify it by saying that i am interested in game structure, and it makes sense to experiment with structure by making different shapes out of the same basic materials. making multiple small-ish games with same mechanics gives space for structural expression, because any major features only need to be internally consistent. if you try to fit every possible variation on a theme into a single game that drastically constrains its overall shape (mostly there is one specific shape). the way corrypt devours itself would not be nearly so bold if it was isolated mechanic in one subset of puzzle levels.

so 868-hack was drafting from random setups, iterating over very short game to build streak metagame. new thing has same pieces, opposite configuration. small differences resonate through entire design.

Friday, 19 June 2015

haven't been writing much here lately.

a few times i've started writing general "game design theory" posts and given up. they either seemed quite obvious or. well. we're all pretty sick of people making claims about what games really are or ought to be which are really just thin attempts to justify their personal preferences. i wanted to avoid doing that. just really tired of any time someone's writing about one kind of play they have to point out why other kinds of play are stupid and bad. so i would try to only say things i was absolutely certain i could fully justify, trying to always be precise about the category of things i was talking about and to acknowledge the outside of that category as also worthwhile, to make it clear that i know perfectly well that any design principle can be fruitfully broken. it's a lot of work to write like that. it takes a lot of words. and the more words there are the more likely it is someone will just skim over and pick one thing out of context to argue about in bad faith. can't be bothered with that right now.

it's easier when i'm releasing games because then i can just write about those and the context is completely clear. maybe i'll start writing about my new roguelike. i've become wary of drawing attention to things i'm making if i'm uncertain when they'll be released - i felt like i hurt helix a bit by showing it at a bunch of events and then putting it on hold to do 868-hack; it got attention too early and then when it came to release i'd already used that up and had a hard time selling it. but i think it would be good for me to write what i'm thinking about it. just don't take it as "NEW GAME ANNOUNCED COMING SOON". i've already been pretty bad at estimating how long things would take me and now i'm travelling i just have no idea. it'll be done when it's done nbd.

also been thinking a lot about dancing.
it is something i have no natural inclination towards. more than that; it is completely alien to me. i had no appreciation for it, no intuition, no understanding of why people would do it. when i ended up in situations where dancing occurred i would just be baffled why otherwise rational people were doing this pointless activity. when i saw a dance performance i would appreciate that things like fast complex steps or throwing someone in the air were technically impressive but i felt no emotional response.
but i am interested in alien things. one doesn't have to go to another planet to study something so incomprehensible as to seem utterly meaningless. so over the last couple of years i have been learning to dance. defying my nature. abomination.
and along the way i have also found that since it is a kind of play there is a lot in common with games for me to think about, especially about non-competitive goalless social play. i tried to write about this a couple of times but it seemed probably all so obvious for normal people. perhaps there is something my outsider perspective is useful for but i am not sure yet.
the one thing i do however really want to communicate regarding this is:
if there is a thing that other people care about that you think is pointless and stupid
stop thinking that and instead think "that might take me a year of hard work to acquire the most basic appreciation for"

no actually go back and read those two lines again because there probably is a thing and you're still dismissing it

ok so here's a blog post. done.

Monday, 2 March 2015


With the help of a couple of people on twitter (thanks Jim & Ciro) I've found a bug in Zaga-33. On OSX/IOS threads are all POSIX-y and "pthread_mutex_trylock" returns zero on success, or a number indicating the type of error on failure. The equivalent Windows function call TryEnterCriticalSection returns zero on failure. I'd missed this distinction in the docs and treated them as both having the same return value. Because threads are fun and unpredictable this was fine for a while until the IOS update changed something and made it not. But it's fixed now and hopefully that's the only problem and I can finally move on. (It'll be a week or so before the update's live because hey appstore.) I'd used the same code in a few other things. 868-HACK had it, chances are that's what was crashing it intermittently on OSX for some people so I've updated that now. Could be the same thing is in Vertex Dispenser because someone reported a crash there, I'll try to get that compiling again sometime and see.

Something else I've done in 868-HACK is add a new scoreboard, only showing active *STILL RUNNING* streaks. Lose a game, lose your place on the board. I'd meant to do something like this all along but Gamecentre on IOS doesn't support score removal and I really couldn't be bothered rolling my own. Steam does allow it so that's neat. I'd considered making it the main scoreboard but I didn't want to discourage people from playing when they were in a risky position. And then I ran out of time to get it in for release but it's there now. Something that happened with the Steam scoreboards is they stabilised really quickly because a lot of people who'd played on IOS came over with their year of practise and knowledge of all the tricks - which maybe discourages newcomers from competing. So hopefully this will be a more dynamic scoreboard, I don't know. At least it'll be interesting to see what people are doing. Access it by going to steam streak scores and select CURRENT instead of HISTORIC. Note that it'll take a while to populate, anyone who's not played since the update won't be listed yet.

Something that suprised me is that Steam sales, after the initial burst, very quickly dropped down to less than IOS. (~4-10 a day vs. ~10-20 a day.) I mean, this is more a matter of the IOS sales being surprisingly strong than PC being bad but I think it's odd? I would have expected the platform it's been out on for a while would be tapped out and the new one would continue steadily for a while. Not the biggest deal since I am funding my existence, but probably I could have better spent the time making a new game instead of getting hung up on ports. (Yeah just shut up about androids or whatever.)

Anyway just trying to get all this kind of stuff sorted before I start living out of a backpack and don't have my old hard drives handy. SMESPORT will be on hold because I won't have controllers to test with, I've barely worked on it for months anyway. The new thing is coming along well and hopefully I'll be able to keep making progress on that.

Monday, 26 January 2015

4:57am on a borrowed netbook.
hacking 'til dawn on a friend's couch, tangled in cables.
compile error in <tuple>.
6:23am and it's error 0xc000007b.
birds singing, traffic starting.
what does this even mean.
7:02am reading documentation.
oh wait steam just solves this problem for me automatically.
click "release".

868-hack now on steam.
also available on ios.

massive thanks to yann seznec for making the trailer with me.

let me know about any bugs; there's bound to be something that can go wrong in some circumstance and hopefully i can fix it. maybe not straight away. i need to rest.

Sunday, 25 January 2015


feeling an era of my life is coming to an end.

releasing 868-hack on steam on tuesday. i thought that once i released it on ios i would move straight on to the pc release but instead i found myself prioritising fixing bugs in what i'd released, and then i was sick of working on it and needed to do other things for a while. now somehow this has ended up hanging over me for well over a year. but it's all ready. i just need to borrow a windows computer tomorrow to compile the release build - mine has broken down irreparably after several years of faithful service - something else that's ended. (yeah i'm cutting things fine, tomorrow night might be pretty busy but hey.)

helix too, i finally got out a few months ago; just did an update fixing minor bugs and i think that's it, i don't need to touch it again. not financially worth it to port anywhere. (of course an ios update will break it pretty soon but NOT THINKING ABOUT THAT NOW.)

smesport has been essentially done for over a year so i should just put it out, i can release it any time really. had been thinking of doing a little more on it but i guess not. hasn't been a high priority because it's a local 4-player game and i hardly ever make an opportunity to play it myself, i know almost no-one else will. it's a good game when other people are good at it though.

the other project i'm working on i haven't talked about much. it's an idea i've been grappling with for a couple of years, making several prototypes and throwing them away, last august i finally figured out how to make it work so i've been building it slowly since then. i don't want to put a time estimate on it but it's getting there.

that's all the things i'm working on. they're all long projects and i'm finishing them off one by one and i haven't been starting new things. i haven't been getting into jams lately, not feeling it. so i don't know where i'm going after this. for a while there i thought i would keep producing games at the same rate forever. but now i've done a lot of what i'd set out to do, maybe i am running out of ambition. i haven't had a reason to make another puzzle game after corrypt, it does what i wanted to do with puzzles. helix, glitch tank, 868-hack, these have kind of fulfilled my design goals for their respective genres. probably i will find myself making something new before i know it, certainly there are plenty more games i can think of making, just right now there doesn't seem to be much reason to. maybe i will make something other than a game. i wrote before about how the weight of supporting released games was hurting me, and that's part of it too, but really not all.

parallel to that, i'm leaving scotland in march. kind of a big deal. don't know where we'll be living next. going to travel a little bit, then maybe back to new zealand for good? that'll be strange. not bad, i miss new zealand, but i'm going to miss europe too. or maybe we won't settle there, maybe we'll end up somewhere else, just don't know. we knew we wouldn't be here forever and it has been very unstable, but it is hard not to feel settled after a while. i'm looking forward to travelling and adventure but then

Friday, 9 January 2015

helix stuff

Helix has sold 3841 copies. Depending on where you stand you might think this number is good or bad, I don't know. For me it is certainly not terrible (hello Glitch Tank) but it is less than I had been hoping for given how long I spent on it and how encouraging everyone had been while I was working on it.
Inevitably I am making a comparison to my previous release, 868-HACK, which sold very well (it is at 13978 copies and still going steady). Each game had been doing better than the last and at that point I thought that I had made it. I thought that yes I can relax now and just make the things I want to make without stress. (And then I didn't get much done for a while because overworking myself and having all the stress has consequences but that is another story.) I expected Helix to do even better because it is much more accessible. Every time I show Helix to someone they figure it out within seconds and then end up just sitting playing it until I demand my ipad back, whereas 868-HACK they'll poke at confused for a little while then hand it back; it is a very obtuse game.

I am not that worried about the money right now; I have plenty saved from 868-HACK to keep going, even with my wife being about to become unemployed. Seriously I'm okay did you see that number last paragraph (and I'm releasing it on PC soon NO REALLY THIS TIME and hopefully people will still buy it there even though I took so long about it). I can keep making stuff. But it does feel very unstable; I can put all the work into something that seems like it will do well and that everyone is telling me will be the biggest thing ever and then it's just not. For me, while I am primarily making games out of artistic inspiration part of the motivation to finish things well and fix all the bugs comes from the hope of getting paid for my time, otherwise I would rather keep chasing new ideas. And Helix ended up taking a lot of time to get done. I don't know, maybe I can get fast again but maybe I am just getting old and slow and I will take longer to make things.

I had kind of intended to stop entering the IGF, at least for a while. I had had three games in it, maybe that's enough and I should leave some space for new people right? But then I was looking at numbers and thinking no I am responsible to do things to promote my work so I entered it again. Helix has received an honourable mention for the design category. I had entered it two years earlier, back when I was making games nice and quickly and I thought I'd be releasing it any week, and it got an honourable mention for design then too. I had hoped that maybe it would get in this time because it actually got a lot better during those two years, but it is okay.
(Aside: "excellence in design" is a bit of a confused category because the judges are divided on whether it means "game mechanics" or "the holistic effect of all elements together", the latter being essentially equivalent to the "grand prize" category. This is something I would like to see them clarify.)
Andi also entered our Ludum Dare collaboration BECOME A GREAT ARTIST IN JUST 10 SECONDS and that is a finalist which is pretty neat. I am positive about life.

Tuesday, 2 December 2014


I started making games in C++ using SDL as a cross-platform library. I was only using Windows at the time but being prepared for other platforms seemed like a good idea; also it seemed a lot cleaner than the Windows libraries anyway. When I was preparing to sell Vertex Dispenser increpare helped me port it to Mac, he'd used SDL before and it wasn't much trouble. Actually how it worked was slightly confusing as I found out when I actually got a Mac and tried to do it myself, but ok. Then later I got an Ipad to port Kompendium to and it was pretty easy (in terms of code; adapting the design to touch was much harder). But there were a few problems with SDL on IOS - it didn't work with the simulator, it didn't handle orientations quite right (the taskbar would appear upside down, WEIRD). So I looked at what other people were using and switched to Openframeworks. At first this seemed better; it worked great on IOS; but I start getting occasional reports of Corrypt and 86856527 crashing on elsewhere which I couldn't reproduce but eventually through trial and error sending lots of versions back and forth tracked it down to being NOT MY FAULT and buried somewhere in the library I couldn't figure out. Also some other odd problems. I wasn't really worried if a few people couldn't play Corrypt but since I was planning to sell 868-HACK on PC I had to deal with this somehow. This stalled the PC release for ages; eventually I decided to just go back to SDL for that - yes I will use different cross-platform libraries for different platforms how perverse.

And operating system updates tend to break things. Actually really just Apple ones, Windows has been respectable here. MacOS broke my SDL stuff a version or two ago - updating SDL seems to fix it but they changed the library interface so it's a bit of work to actually go through and make everything work again; I haven't gotten around to it yet. IOS7 demanded an entire update just to add "View controller-based status bar appearance: NO" to info.plist if you didn't want a line of crap drawn on top of everything, and then 8 broke everything by moving the documents folder and pointlessly changing something about how you get to start putting things on the screen I don't even know?? It didn't take all that long to update most of the games I'd used Openframeworks for, just had to update the library and change where they looked for saved games. Except O; when I recompile that now there's no transparency so everything looks awful I DON'T KNOW WHY. But the SDL stuff's been more work, Zaga-33 is just crashing a bunch now and I can't figure out why because the debugger just won't connect to it WTF, all I can think of to do to track it down is comment out a bunch of stuff and see if it still crashes but it's infrequent enough that that will take far too long to get any degree of confidence.

Also the appstore keeps adding new requirements to slow down the process further; I was trying to update Corrypt to fix a bug and it was rejected with some crap like "we made a different-shaped telephone and now we won't accept anything that doesn't explicitly support that too". So of course I just stretched the screen to fit and it probably looks awful but who even cares. Stretching works okay for low-res like Glitch Tank but it's really quite bad for the medium-res stuff I've been doing lately, but doing layouts for a bunch of different resolutions is heaps of extra work too.

Also lol whenever one of my games is reviewed somewhere a sealion pops up to ask why it's not on Humanoid or whatever, like I have time for that. I used to kind of care that Glitch Tank and O were trapped in some super messed up closed platform, but so far the only alternative is even more of a mess so who can really be bothered.

So yeah getting/keeping things working on different computers has been taking up way too much of my time and attention lately. It's ended up taking much longer than it should have because I keep getting frustrated and giving up, I've been a bit preoccupied with other stuff / LIFE and when I get distracted it takes me a while to get back into it and figure out where I was again. And it's just destroying my motivation to work on anything new, I have a couple of new games I really want to be working on but it's hard when I have this older stuff hanging over me unfinished/unfixed/unported. I feel like I don't even know how to make games anymore, it's become so much more work to make them actually work, it's demoralising to start making something with the expectation that even if it's completely functional now something outside my control will break it in six months time and I'll have to fix it again.

I was too prolific and it left me with too many things to maintain. Maybe I shouldn't bother because nobody bought them in the first place but they actually do steadily sell a little bit whenever I release something new so I feel like I ought to keep them working.

Ugggh I miss when I just made things.