Monday, 8 April 2013

how to do a game jam

1) Start with a concept. Anything will do, it's not really going to matter. The standard form of "just like X except with Y" is perfectly fine.

2) Believe that it's a real game. It already exists, in a sense; games are mathematical objects, they have independent existence in the Platonic world of forms. Or something. Whatever it takes to convince you that it will work.

3) Start with the smallest thing that the player does regularly in the game. If they're mostly moving a character around, then that. The core interaction. Code it.

4) Spend lots of time on graphics, and on getting the feel of the controls right. These are really important for being able to trick yourself that this could plausibly be an Actual Game.

5) Play with it. Lots. Pretend the rest of the game is there. Yay, you made a game! (Now you just need to finish it.)

6) Drop your original concept. There's not enough time to implement it, and it's probably stupid anyway, what were you thinking? Just forget it. What you've done already can work without it.

7) Okay that's probably left some threads hanging: tie all of them together. You had this big idea but now that you don't have time for it there's a gap there, something else needs to fill its role. Just join everything up, it'll work out somehow. If there are two characters that aren't properly fleshed out - just make them the same person. If you've dropped your elaborate crafting system but the player still needs to acquire items somehow, and you've dropped your complex AI controller but you still need to introduce enemies somehow - just make the items be the enemies. Does that even make sense? It doesn't matter.

8) Keep playing the game. This is important, way more important than programming it. You need to get a feel for what it wants to be.

9) Realise it's not going to work, and throw it all away to start again. It's stupid, it's not interesting at all, and even at its newly reduced scope there's no way you're going to finish it, you were just deceiving yourself all along. You've probably still got time to make something really small... goto 1. (NOTE: skip this step in the event that your game is actually any good.)

10) Uh if you reached this then you have something interesting, keep working on it until it's done I guess? Don't worry too much about the deadline, it's better to make something good than force it into some arbitrary constraint. Neat.

Sunday, 17 March 2013

7drl success: 86856527

edit: please bear in mind that this was a prototype made in a week. the commercial game i have now released based on it has the same basic idea but is considerably more advanced and more clearly explained. this prototype is not intended as a demo version.



Successfully completed this seven-day roguelike. It's a CYBERPUNK HACKING GAME with COMPLICATED RESOURCE MANAGEMENT and LONG-TERM DECISIONS.

There are some issues that I don't have had time to fix yet, due to the whole seven-day thing:
- It's quite complex and I skimped on explanations so expect confusion.
- The mac version doesn't work on older versions of the operating system (this is part of Apple's planned obsolescence hellhole; the latest version of xcode won't build for older systems but I'm forced to update to it because the older ones won't build for newer systems and I've been forced to update the operating system on my ipad so UGH; basically I have to have multiple xcode versions installed and I really can't be bothered untangling this mess right now so).
- It might crash on completion. Or other times, who knows?
- It doesn't save.
- It might not be that well balanced, there's lots of costs to get right and I haven't played enough yet.

I intend to spend more time on this and release a more finished version in a few weeks.

download:
latest version: windows mac
7-day version for the record: windows mac

Some explanation if you're finding it too confusing:
- Arrow keys move, moving towards an enemy attacks it.
- You pick up resources from tiles by using DATA SIPHON, which are the smiley faces you collect.
- Siphoning floor tiles gives credits or energy, which are spent to activate programs.
- Siphoning wall tiles gives programs or points.
- The red number on a wall is how many enemies will appear when you siphon it.
- Mouse-over walls/programs to see what they do.
- Click programs (on the right sidebar) to activate them.


edit: hahahah I said "a few weeks". anyway it's released on ios now and I'm still working on an updated PC version.. it's way way better now though!
edit: now also available on steam.

Tuesday, 12 March 2013

7drl: day 2

I enjoyed seeing Terry's posts about his progress on his 7-day roguelike so I'm writing one too. No promises about keeping this up consistently.

The classic roguelikes I've most played are Nethack and ADOM, so any critical generalisations I make are mostly about these. (The Angband family seems to suffer from most of the same problems without the redeeming features though.)

My 7drl last year was a curated selection of some common elements of roguelikes - tactical combat (focusing on evasion rather than slogs), inventory management (limited to single-use powerups), the identification game. This worked out pretty well, so I started thinking about trying to do something similar but with a different subset of roguelike components. Specifically, it would be nice to include richer character growth. Gaining items in Zaga-33 is a form of growth, but because they're consumed when used their effect is quite short-term (gaining identification knowledge is long-term growth, but very limited).

I'd classify the common forms character growth takes in roguelikes as follows: either intrinsic (innate abilities of the character, usually permanent or close to it) or extrinsic (granted by items which can be lost or replaced), and either interesting (granting new abilities and changing the rules) or boring (making numbers go up).

Advancement in roguelikes often ends up being quite dull because there's not much choice involved. Intrinsic growth often lacks any choice at all (you killed some things and went up a level and now you are stronger). Extrinsic growth often offers obvious choices where one alternative clearly dominates another - particularly when the choices are boring (it's very easy to determine which of two numbers is bigger; take the sword with the most plusses on it). Decisions often come down to either being obvious or a pure gamble once you understand them: either you know fire damage is going to be better because the strongest enemies are made of ice, or it's unknown whether you'll turn out to need one or the other. Worse, most of the time the correct choice is "carry both of them and switch between them as appropriate"; i.e. not a choice at all and just tedious micromanagement. (Apparently Brogue has treasure rooms which only let you take one item; this is good because it removes the "all of the above" option.)

So here I'm trying to create a character advancement system based on choosing between interesting alternatives, in such a way that there's no obvious best choice but without it being a matter of blindly gambling, and committing to them rather than micromanaging.

So far I have four enemy types with different abilities, and they're super-easy to kill because the player has a ranged attack which stuns them. No advancement yet, but that's totally the goal. (Zaga-33's goal was a system of politics based on making and breaking deals with different enemy factions so uh I guess we'll see.)


(You can only see three enemies in this picture. Like I said: abilities!)

Tuesday, 26 February 2013

two-player games

A two-player game is a tool for paying attention to someone and expressing yourself to them. With more players, group dynamics creep in; there's more to pay attention to and it's harder to give your focused attention to an individual. On the other hand with a larger audience self-expression is amplified - games that ask you to act, make jokes, and generally be extroverted work much better with larger groups. I value the focused attention-giving of one-on-one games over larger group interactions (though I do value both); similarly to how I perform better one-on-one conversations than in group discussions.

Good two-player games present many opportunities to impress and admire your adversary. What can these opportunities look like? When you're figuring out a game, learning together, you can show off by figuring out how to do something before your opponent does. Strategy games like Chess let you spot moves your opponent hadn't, or think ahead to come up with a cunning plan, and then surprise them with it. These surprises don't feel strictly delightful in the context of the game - they hurt your position - but there's an intellectual delight in being shown something you weren't expecting, and in being presented with a new challenge to think about. Chess also lets you demonstrate your memory and experience by learning openings and endgames, though personally I'm less interested in this.

Many different skills can be expressed through games - creativity, reasoning, reading your opponent ("yomi"), attention, humour, strength, and so on. It is unfortunately difficult to express moral virtues like generosity, selflessness, courage, love, honesty, faithfulness in many games, because either these actively cost you through inefficiency, or they're actively rewarded and feel less meaningful because they don't cost you; perhaps this sense that morality should cost something excludes it from being fully expressed in games because all in-game costs are imaginary.

Expressing your virtues in a game is not about trying to be the smartest kid in the room, to figure out who's smartest, to lift yourself up by putting your opponent down. These are attitudes of insecurity. Let's try to help each other feel more secure, to lift each other up by appreciating each other's abilities - whether it's the grudging respect of nemeses as portrayed by Holmes and Moriarty, or more likely in the context of a friendly relationship. Maybe one of us is smarter, though this is impossible to measure absolutely, but even if so we can still admire each other.

When designing a two-player game, ask these questions:
* What virtues does it allow the players to display to each other?
* How can I direct the players' attention onto each other rather than just onto the game?
* How can I avoid the feeling of "multiplayer solitaire", playing together alone?
* How can the game continually present new opportunities for players to express themselves to each other?
* How can it give scope for moves that are particularly notable in their cleverness or idiosyncrasy?
* Can it provide high-pressure moments requesting quick/clever thinking followed by low-pressure moments to reflect on the previous?
* Are there hidden depths that players can impress each other by revealing and share the joy of exploring?
* Are there unexpected combinations requiring creativity to uncover?
* Does the mastery curve exclude players low on it from having anything interesting to say to those higher?
* Are one player's clever actions sufficiently clear for their opponent to see why they're clever?
* How will actions in the game provoke admiration?

Monday, 18 February 2013

acknowledgement of privilege

I'm ridiculously lucky to have been supported in making games full-time for a couple of years, and before that to have had a flexible enough occupation to spend a lot of time dabbling, and before that to have had a childhood with plenty of leisure and access to technology.

I consider that I've made some things that are worthwhile. But if not for these opportunities, I wouldn't have. If I'm any good at what I'm doing now, it's only through having had the chance to devote an incredible amount of time to it. I'm fortunate. Being able to put years of unpaid full-time work into something before seeing anything back from it is an incredible privilege.

It's still very unclear whether I'll be able to make a living from this. I hope I can. But now that I've gotten over a certain hurdle in terms of recognition, more opportunities are appearing - the IGF, interviews, people writing about my work. Opportunities that wouldn't have happened if I hadn't been able to work on this for an extended period. Just being part of a community of mutually-respecting artists; that's incredibly valuable and it's a place I've had to earn. I've been lucky to have lived in the UK for a while, where there's a thriving community of game developers, and where I've been able to meet many successful and interesting ones. I wish that everybody could have such opportunities.

Friday, 4 January 2013

2012 introspection

I'm not usually much moved by new years, the calendar being such an arbitrary division of time. But recently reading a lot of other people talking about what they've achieved in the last year and their plans for the next has got me thinking about the same.

Putting things in context, in 2011 I released Vertex Dispenser, which I'd been making in the background for years. This was massively stressful: first I overworked myself crunching to finish it while simultaneously trying to do a PhD, then at release some new bugs showed up - this isn't unusual but I panicked over each one, and then sales were very poor and it became clear that I'd failed in a lot of what I'd tried to achieve with it (I'm still proud of it, but it's not what I wanted it to be). This was followed by a period of depression in which I did very little. Gradually towards the end of the year I started recovering by jamming on small games, I moved back to the UK, and released Glitch Tank - which I'm massively proud of.

2012 largely continued on from there; I'd gotten into a rhythm that worked really well for me, and I've managed to mostly stay there. I had a ridiculously productive year, in fact. The things that I've released are only the iceberg-tip; finding good ideas involves a lot of time spent filtering through bad ones, trying things out, making prototypes. Here are some highlights:

- Released Kompendium. Most of these games were made in late 2011, but I'd kept them sitting for a while.

- Pirate Kart V. This is an event focused on making lots of games in just a couple of hours each - I find this is usually too short for me to do anything I'm satisfied with, but the experience of making things so fast is worthwhile in itself. Multicolour Alien Olympic is a worthwhile companion to Kompendium, it came out better for my having spent a lot of time exploring similar ideas already. Game Title and Lost Levels ended up taking much longer than the prescribed time, but were well worth it, and have made some appearances on people's end of year lists which is wonderful!

- The Indie Royale bundle featured Vertex Dispenser, which was really great for me. It was lucky enough to be alongside a first-person-shooting-thingummy that people actually wanted, and so sold a substantial number of copies. It's keeping me going. I jammed out an interesting remix for the bundle, which was worthwhile, used a couple of ideas that I'd had floating around for a while.

- Made Zaga-33 for the 7-day roguelike challenge, following it up with an expanded version later. I had tried making roguelike games before, but each time I got over-ambitious and ended up in a sprawling mess; I wanted to make something that did everything all the games I loved did and more. With Zaga-33, I took the opposite approach: instead of adding features, I dropped them, pruning down to a delicate bonsai of a game, and I found something quite special in the process.

- Continued updating Glitch Tank, and it's gotten even better. We still play it quite a bit, more than a year on. Seriously happy with it.

- Started Helix at a Cambridge jam back in August, have been working on it on and off since. I have mixed feelings about it. It very consistently evokes a positive response from people I show it to. It might turn out to be the most popular thing I've made, but that will be because its virtues are more obvious rather than because they are greater. It's very conventional. But still, it's quite a good game.

- Made VESPER.5. It's kind of silly, it's just one simple idea, it completely baffles me how well received it has been. It's by far the most viewed post on here, and it's been mentioned on a few different people's end of year lists - which is all lovely, but completely unexpected, I don't really know what to make of it all. I love seeing the sporadic flurries of discussion about it that crop up on twitter; people speculating about the tiniest details.

- Finally quit my PhD. A slow and painful process of something that I loved becoming a burden to me. It was tough, but I feel much better now that it's over, and now that I have no formal obligations to the subject I'm able to approach it more comfortably.

- Made O. This is just so good. It's the platonic archetype of touchscreen multiplayer. It goes down amazingly well with almost everyone I show it to. Groups of friends or relatives gathered around watching heated matches, taking turns. The delight when someone realises they can throw off-colour balls to disrupt their opponent's scoring, or gather great handfuls on the screen to collect all in one bunch. So pleased with it.

- Made Corrypt. This was a beautiful ordeal. Nobody who wasn't present when I was making it will realise how difficult it was to put together: everything had to be arranged just so or the whole thing would fall apart. It's not perfect; I don't think there exists a perfect solution to all the constraints I was under; but it's pretty great.

- edit: Porpentine just reminded me I made Walking Story. I'd forgotten this because it was so quick to make, but that frenzied speed is what's interesting about it. Twine is an amazing tool for making games in the moment without anything getting in the way.

Lots of good stuff. On balance it was an amazing year. There have been a couple of negatives though:

- Aside from the bundle, nothing has brought in much money. To some extent that's okay; the bundle makes up for it; but it doesn't bode well for future sustainability. My wife's income is similarly volatile; more regular at the moment but equally uncertain for the future. I expect to keep going for another year or two and then have to give up and get a real job.

- I feel like I've failed O and Glitch Tank. These are the best things I've made, but they haven't reached many people. This isn't about money, it's about people missing out on playing them because I haven't managed to communicate that they'd love to. The games deserve better marketing than I'm capable of. This makes me really sad, and I don't know what to do about it.

Plans for 2013: continue on in very similar form to 2012. I have a few games I'm working on at the moment to finish, and many ideas for more, and no doubt new ideas will take hold of me along the way. Multiplayer games are important, and I'm finding the iPad ideal for them, so expect more of those. Corrypt was very satisfying to make, so expect more of that sort of complex level design and weird world-sense. I'm trying a bunch of ideas for roguelikes (or zagalikes), so expect something there. I'll follow inspiration wherever it leads; can't predict where that will end me up. Looking forward to it.

Tuesday, 18 December 2012

Corrypt




download:
iOS appstore
itch.io (windows/mac)

This is a new puzzle game.

It's today's free game on the "Advent of Indies" calendar. I used this as a deadline to motivate me to finish it. I'm quite pleased with how it turned out.

There will be an iOS version, but there's a delay of several days between when you upload something there and when it actually shows up, so I'll mention when that's available.

(Oh, and if you enjoy this you'll probably like Game Title and Lost Levels, and vice versa.)

edit 31/12/2012: Minor bug-fix update.

edit 06/01/2013: seems to not be working for people on Windows 7. Trying to fix this now.