Monday, 17 February 2014


netrunner demake
made for retro remakes "cassette 50" jam

windows download
mac download

(mac version is only running in windowed mode right now because i haven't figured out all the new hoops i have to jump through since apple most recently coerced me to submit to their updates. and maybe i won't bother.)

clearly it doesn't capture all - or even many - of netrunner's dynamics, but there's something there.

Friday, 17 January 2014

868-hack update

Okay, 868-HACK has been updated on iOS. The update clears the high score tables and starts fresh. The old scores can still be viewed through gamecenter under "legacy". If you don't update, any new scores you get will remain separate. If you're in the middle of a streak, updating will reset that so scores can't be carried over that way (sorry!). Your local score list is also cleared, so if you want to keep that record take a screenshot before updating.

Since release I've been learning more about the game and tweaking the balance. Most of the changes are smallish, but they add up and make a difference to how easy it is to score. Many of the things I've learnt have come from observing the game in the wild; I couldn't have known to account for them before release.

At some point during development .STEP allowed stepping off the edge of the level to wrap around to the opposite side: this felt very cool as a glitch in an abstract digital space, but was far too useful for skipping levels (because it makes the corners adjacent) so it didn't stay. So at release I felt like .STEP was slightly underpowered because it was weaker than it had been; it was more expensive than .WAIT / .PUSH / .PULL as a parity flip and it was less useful for grabbing lots of points on the last level and getting out safely than before. I WAS WRONG. It's still extremely effective, you just need to make sure to save up enough energy. I've nerfed it a little: it now spawns 4 enemies instead of 3 on acquisition, and it can no longer be used to instantly siphon (since while that was a neat interaction it's a more interesting problem to find a safe space to siphon while stepping through a level full of enemies). This means it's now harder to get a high score because you're more likely to have to deal with the enemies you alert, and it's harder to get a streak because you're less likely to be able to skip the hardest levels.

I wrote before about the question of whether .SCORE was overpowered. I don't believe that it technically was because I was able to get scores as high without it as with it. But many others did believe that it was and that belief was shaping the way they played in a way they were unhappy with - it doesn't always matter if a belief is true if it has genuine effects anyway. This belief reinforced itself: players convinced that it was the only way to get high scores would only try to get high scores when they had it, so the high score list filled up with .SCORE-based scores, convincing anyone else looking at it that this was the way to get high scores. James Lantz describes the process of constantly restarting the first level to get a good run - this is mostly a problem with .SCORE because it is clear from the first level whether you'll be able to get many points out of it, whereas other ways of scoring big aren't obvious until later. Meanwhile I would almost never pick up .SCORE myself because it just wasn't worth the risk. Also I noticed that many of the high scores weren't quite as high as they could have been because they'd forget to dump their remaining energy into .SCORE on the last level when it was safe - which is admittedly a boring requirement. I'm attempting to fix these concerns in a way that remains balanced by making .SCORE grant one less point with each use, while spawning one less enemy on acquisition. This means it's harder to get high scores with it (you'll need to take even more risks or rely on other methods of scoring as well), every use of it is an interesting gamble (you can't use it safely at the end because it's worth 0 by then), it less encourages restarting lots to get a good run (because it has less variance), and it's more viable during streaks (because it's less dangerous to pick up).

SPOILERS: There is a secret level. It's expensive and risky to get there but sometimes it can be exploited for an advantage. There was a design error which is now fixed, in which it was possible to recursively access it and maybe push that advantage too far. It remains a possible way to get extra points, but not so many as before.

SEMI-SPOILERS: During streaks difficulty modifiers get applied to provide an extra challenge and hopefully end the streak eventually. I didn't want streaks to continue indefinitely because then the optimal way to play would be to get one point per game for a thousand games rather than taking any risks, so I increased the chances of failure as you go.
(It seems like bad form to just present an impossible run, but with a finite discrete game you can't just keep increasing the difficulty without it ending up impossible. The best I can hope for here is that when you eventually lose it'll be because of a risk you took that you could have done differently: this feels less unsatisfactory even though in the limit it's still outside of your control.)
When I made the game I was enamoured with the idea that a streak might last a very long time, that there could be some elite hacker known only by a mysterious pseudonym somehow *STILL RUNNING* against all odds. And this happened exactly as imagined, nobodyweknow has an amazing streak, 1228 points in 47 games at time of writing. But there's a side-effect to this that I hadn't anticipated: it's putting other players off even trying for streaks, leaving them just grinding at the (less interesting) single-game scoreboard. Additionally, nobodyweknow has said that at the level he's playing at some of the runs seem pointless because they're not offering enough challenge - the difficulty modifiers, originally conceived just as a way to kill off streaks, have become a core part of what makes the game varied and interesting. So I've significantly ramped up the difficulty increase to hopefully end streaks quicker and more consistently challenge experts. This has a more dramatic effect on scoring than the single-game changes because of how much the points can add up across a streak.

All of these combine to make scoring more difficult, but in ways that are somewhat ambiguous - I can't just recalculate old scores to fit the new scale. There may only have been one score that exploited the old secret level (my own) but I can't be sure, and certainly there were many that exploited the old .STEP and .SCORE. Probably all the old scores would be beaten eventually even though it's harder - just by someone eventually being more skilled and having a luckier run - but until then they'd be hanging around in the lists and I worry this would seem unfair to new players. Also it matters because you can examine what progs a score was obtained using, so this would be providing misleading information to anyone hoping to learn from it (similarly, you can examine what modifiers were applied to games in a streak). So all up I think it is best not to have the old scores hanging around. I hope this is okay with everyone!

Wednesday, 18 December 2013

where i am at with 868-hack

When I released 868-HACK on iOS I said I'd release it on PC soon. That was like four months ago and it hasn't happened yet. In particular I may have claimed it would be released this year and now it's mid-December and it's not done and there's no way I'm going to get it out in between visiting people over Christmas, and it's probably a terrible time to release something anyway given that everything else is on sale.

And now some people are putting it in lists of their top games of the year! Which is really great, but makes me feel a little awkward because it is not a game that everybody has access to this year, maybe I am losing money by not offering it for sale to everyone at this moment when attention is being drawn to it, maybe someone is sad because they hear about it but cannot play it. (Here are some of these nice list-writing people: Kris Graft, Leigh Alexander, Brendan Keogh.) The year thing is kind of arbitrary but still it happens.

I guess I don't owe you an explanation or anything but since I have said things that were not true I would like to give some justification.
A few different factors are combined to cause this happening!
- When I spend lots of time working on one thing I get too many ideas for other things and want to try them out instead. So I really wanted to do that instead of spending even more time on 868-HACK. Distractions!
- Also I'd promised someone a game for a Kickstarter reward a while ago and not delivered, I'd tried to make it a few times but the ideas were not working out, and I'd finally figured out what to do for that so I needed to spend time on that.
- One of the things I have to do for the PC version is fix a crash that affects a few people and which I do not understand and can't replicate. I've spent a while trying to track it down but mostly I get frustrated and give up, do something that feels more productive. I will find it eventually. (A couple of my free games that have used the same API have the same problem but those are free so it kind of doesn't matter.)
- There have been a bunch of things to fix in the iOS version, and those have been higher priorities since that's OUT.
- I had been working too hard and stressing too much and really needed a break.

This last element is the main one. For the last couple of years I've been working really hard and there's been this constant worry about whether I'd be able to keep going, just making me feel tense all the time, draining. I didn't know what to do, I'd tried the "spend years polishing something" approach and that was bad for me and didn't work out, I'd tried being ridiculously prolific and out-performing almost everyone else and that got more positive responses but paid even less. I'd made - to my taste - some of the best games, felt like I was doing something worthwhile, I'd gotten some recognition for them, but it wasn't enough.
So then when 868-HACK came out and was so well-received and made enough money that it looks like I'll probably be able to keep going, I relaxed. (So far it's sold 6000 copies. I know lots of people will scoff at that, sales figures from Actually Successful games contain more digits than that, but since it was just me it's enough.) My tension fell away, I stopped feeling like I had to spend every waking hour making things or self-promoting, I took some time out to not be stressed, read some books, play some games that weren't my own ones I was working on (MOSTLY DOTA), have a social life. IT'S BEEN REALLY GOOD FOR ME.

OK so I'm feeling better about things now, I'm working on another update for the iOS version (some bugs fixed, some balance tweaks), I'm prototyping some new things which are exciting and new, and hey sometime in the new year there will be a PC version of this and also some other new games and hopefully I will keep doing game-making art things. Really sorry to everyone who's still waiting to play this game on the computer they have, I will get there but I haven't yet and it is better this way really.

Wednesday, 20 November 2013

i spy variation

Dreamt this game last night. Have only tested it 2-player but it seems like it might work?

Start by playing I Spy as usual. One player is the spy, they pick an object they can see and say "I spy with my little eye, something beginning with C" (or, you know, substitute the first letter in the object's name).

Any other player may guess what the object is. If they guess correctly they get a point and start the next round as the spy. But if they guess wrong, the spy gets a point and the round continues.

Any other player may become the spy and raise the stakes by repeating the description with a new detail - e.g. "I spy with my little eye, something beginning with C that is red" - describing an object they can see (which may turn out to be the same as the original spy's object, or may be different). Guesses are now worth one more point. You can raise the stakes as many times as you like, but each time you must add a new detail while repeating all previous details.

Play as many rounds as you want to I guess?

- There's only one spy at a time; when someone raises the stakes they are now the spy and the previous spy is back to being a regular player.
- I guess there's no reason why you should have to start with a letter? Any detail will do.
- If there's a bunch of similar objects, like a shelf of books, should you have to pick a specific object? That's probably better I think?

Thursday, 7 November 2013


Most games feature an element of randomness, or something that behaves like it (e.g. hidden information, simultaneous decisions, unpredictable chaotic systems).

Sometimes I hear some games dismissed as being "just luck". Usually this isn't literally true (we're not talking about Snakes and Ladders), so why do people say this? Maybe because, even when you've made "good" moves you can lose for reasons out of your control. This isn't necessarily a bad thing - Tom Lehmann describes it as "one of the most powerful things that strategy games can teach us". But also, often this judgement is made rashly: things that appear purely random to a beginner can be taken advantage of by a skilled player. A game having elements of luck isn't opposed to it requiring skill, there can be deep skill in navigating chance.

I think of Race for the Galaxy. My skills have probably decayed a bit now, but when I played regularly I won most of the time. And at first some people dismissed this as luck - "you drew a lucky combo, I didn't get any cards that worked together" - until they realised I got lucky almost every game, and so could they. Partly this is learning to recognise good combinations among the cards you draw, and shifting course to accommodate them - often beginners will dismiss good cards because they're fixated on one "strategy" (and other times they'll insist on playing them to their detriment when they don't fit; navigating between these takes subtlety). Partly it's about learning to use the mechanisms the game offers for controlling and responding to your luck - there are so many small decisions in terms of which cards to keep or discard, whether to draw a greater number of cards or to have more control over which cards you draw, whether to reveal a card now or hold it back for later.

Ascension also is a game worth playing to study chance. Much of the game's depth comes from subtle manipulations of the randomised cards available to buy in the centre: responding to what's available, denying your opponent cards that fit their strategy, searching for the ideal cards for your own. And also recognising that removing a card from the centre may create an opportunity for your opponent, so sometimes it's best to not buy something that would benefit you just to avoid that risk (this justifies why cards in the centre are superior to always-available cards at the same price). Also there's trashing cards from your deck - beginners often find it hard to understand this because it feels like throwing away resources, but by removing the less valuable cards you increase the frequency with which you draw the better ones.

Okay here are some general concepts that I think can apply to a whole bunch of different games.
* The more random events occur, the more likely the overall distribution is to average out to something not very random at all (i.e. the Central Limit Theorem). Safer to take lots of chances rather than letting everything hang on just one. This applies in a stronger form to card games, since any given card is guaranteed to be drawn eventually if you go through the whole deck.
* So there are two broad ways of performing better at random events: increase the number of events, or increase the chances of success on each one. In an RPG: make more attacks, or improve your chances to hit.
* There's often a risk-reward trade-off; choosing between a high chance of a small advantage and low chance of a big advantage. Which one is correct depends on your position: if you're behind you want to take a long shot for a chance of getting ahead because the reliable option will reliably not be enough, and if you're ahead you usually want to play it safe to maintain your lead. When there's only one possibility that will let you win, no matter how unlikely it is, play assuming that it will happen. But usually you want to bear in mind all possible outcomes and have a plan for each.
* Flipping that around: if something comes together perfectly and someone scores extremely highly, it was probably a long shot rather than something you can count on happening again.

Don't be bitter and blame luck. Embrace it and understand it, flow with the chaos.

Tuesday, 8 October 2013

general status update

- I just moved house and getting an internet connection is taking its time. So I am unreliable right now. As usual.

- OK I know some of you are waiting for 868-HACK to be released on PC. I've not been making much progress on this. There's not a huge amount to be done but I want to get it right not have BAD PORT. I think it's been really good to do this separately, I've fixed a bunch of bugs while only having to update them in one place - maintaining several copies of a game in different places is such a hassle. Probably simultaneous release is Optimal Marketing Strategy but you've got to sacrifice some things when it's just you.

- But hey the response to that game has been pretty great. Some really nice reviews link link link link link, a few negatives but hey whatever I don't expect to please everyone. A bunch of negative comments about the (DRASTICALLY EXORBITANT) price, but it's achieved my goal of being able to afford to keep doing this for a while more which is FANTASTIC (I just feel sorry for anyone who tries to do this without someone to support them for a few years to get to that point). Talked with indie statik about that. Anyway, way cool, thanks everyone.

- Some concerns about whether .SCORE is too strong for single-game high scores? I suspect part of this is because it's part of the initial set of progs available, whereas other high-scoring progs are unlocked later. But I'm keeping an eye on it, it's interesting to watch. I personally pick it up very rarely because it's so risky, and I've had 90+ scores without it. But basically the problem is: a lot of what's balancing it is that risk (enemies spawned on acquisition, and lack of resources later if they're spent on it earlier) and if you just try enough times you'll get games where the risk pays off. This problem exists in the usual scoring system as well, perhaps less transparently, which was my reason for focusing on streaks (for probabilities multiply out to be very small very quickly). Perhaps I should have omitted single-game scores entirely and only had a streak table? Insufficient bravery.

- I've been making a 4-player game, SMESPORT. It started as a stripped-down dotalike for the 7-day RTS jam, but I failed the jam and kept working on it through several iterations until now it looks a lot closer to Hokra, I should write more about this process sometime. It was shown at a recent Wild Rumpus in Texas, which sadly I couldn't make it to. I'll be showing it at Nottingham Gamecity in a couple of weeks (officially in the open arcade on 20th, 21st, 23rd, 25th but I'll be around for the whole time). Hopefully watch lots of people play it and learn things to tune it to be better. Might try to organise a tournament towards the end of the week if people are into it? It's really intense competitive electrosport.

- I'm speaking at Practice at NYU in November. Can't escape academia. Upstart. Something about roguelikes.

- Yeah still doing little things on Helix sporadically. Ugh who knows, no hurry, I'm finding it good for harvesting procrastination energy anyway.

- Not sure if I mentioned BECOME AN ARTIST on here? Made it with mcc for a jam a few weeks back. I'm still finding it pretty useful for making pretty pictures.