v21's posterous

Apr 22

Tutorial sections

Bennett Foddy was bitching about tutorial sections on Twitter, and I wanted to respond but was too lazy to tweet. So, blog:

Sometimes tutorial sections are necessary. If it's an explicitly multiplayer competitive game, then you might ultimately need or want a singleplayer section just to teach you the fucking thing before you waste your friend's time. Fighting game practice rooms. The "training" mode in Pole Riders. But if all these are are explicitly tutorials (not just mainly), then they almost certainly suck, and you should do better. For instance, Pole Riders has you vaulting double decker buses. Trials Evolution's Licence sections are hard, as well as explicitly teaching you how to perform things you're going to need to know.

Walls of text telling you what to do are probably not great design. But they can be. The joy of poring over a manual, of reading the Minecraft wiki, or hell, visual novels or a blurb telling you how to use the parser in IF, these can be good things. I hate being prescriptive. There are always exceptions. Just go look at the "Instructions" menu item in Fez to see how best to do this. (although I seem to recall that was only inserted at Microsoft's insistence. It's certainly unnecessary. But delightful and charming and effective, etc. The game pretty much explains itself - I could hand my brother the controls deep into it, tell him what the buttons did and he got it entirely.)

Organically building teaching into your game is clearly better than having a rigid tutorial section. A lot of the joy in games comes in learning and mastering systems. See James Paul Gee for reference on this. So you're teaching the whole time, but this section is the special teaching section... It's game structure basics : teach people the mechanics one by one, let them explore and then see their powers in combination with other powers (again : I hate being prescriptive, but this is a good technique that is used everywhere). A lot of games are dead once you've understood the system and the mechanics. In Portal, once you've solved the puzzles (ie worked out the implications of the portal gun in fullness) the game is over bar the robotic lady singing.

So one thing I did love was the opening to Portal 2. It told you how to operate an FPS. How mouselook worked. That "E" was the use key. I love Valve for that. I didn't need it, but it's clearly going to have taught lots of people how to use a mouselook FPS. Which is a nice thing to do for them, a good business decision, and excellent for the industry. It wasn't a separate tutorial section, but it served that function pretty heavily. It also went heavy on the humor and the spectacle to keep those who didn't need it engaged. Because most people who played didn't need it, to be honest.

Which is the most important thing -- the reason tutorials suck is because they do the teaching thing games do so well, but because they're focused on that they fail to be fun. Or if not fun, to evoke the affect intended. If they did that well, then they magically become not a tutorial section any more. Just "the first bit", or "some nice level design", or "Licence challenges" or "The bit at the start where you get woken out of suspended animation". Suddenly we're all happy.
Apr 1

Holding the baby

"You play a babysitter, you turn up and the baby is made of cardboard. Would you stay? I want games to start asking more ethical questions"

-- https://twitter.com/#!/petermolydeux/status/143052751784525824

This is a game me and Alan Hazelden just sketched up at Molyjam London. I was trying to bully him into making a game, and we clicked througha few at random til we came across this, which seemed so very ripe for making as a kind of theatrical piece. So we went and found some cardboard, and made the game:

(download)
-- The baby is literally made of cardboard. It's swaddled in a hoodie, and held as a baby because it is.

-- One person is the parent, who starts with the baby. 

-- The babysitter comes round, and the parent and the babysitter roleplay handing off the baby.
"You've got my number, we'll be back at 11, everything should be fine, ring me if there are any problems" etc

-- After a certain point, the parent leaves.

-- The babysitters score is how long they continue holding the baby after this happens.

-- I don't know if they should be told there's a scoring system in advance.

It's super creepy and awkward to play. And really funny, as all the best bizarre things are. It reminds me of the Plumber Baby sketch in Jam, a bit. Mind you, we've only tested it between ourselves, as no-one else wants to play. Can't think why.

It ultimately only ends when the magic circle wears off. Which is sustained while you're roleplaying, but afterwards fades quickly. Leaving you holding the baby. Which is actually just an empty Krispy Kreme box. Called "Jamie".
Posted from United Kingdom
Mar 15

Generous game design

In what I think was the only part of the film that talked about game design[1], Jonathan Blow talked in Indie Game The Movie about how you should make each mechanic you put in have multiple effects, multiple consequences. Anything else is just inefficient. Which I can empathize with, as a game designer who also tends to think in terms of systems.

And now I find myself playing Mother 3 again. I've just finished the first chapter, and it was as powerful as the first time I played it (I never finished it the first time, to my shame). And Mother 3 is a game overflowing with mechanics that aren't used to their fullest potential, code put in especially for single cases.

To take a few examples I've hit in the last minute or two of play: locked in a jail cell, you try the door. "The lock is rusty" the text tells you. But you can't do anything. But after a while, your son comes in. "I got you an apple", he says. "Make sure you eat the core, though it might be very hard". So you pick it up, and biting in find a file. I've not played through the rest, but I'm willing to bet that you never again need to use a file to open a door in the game. But it's such a compelling emotional moment, I could never consider it inefficient. 

or : If you find nuts, wandering around, you can take them to a neighbours house, and they'll make Nut Bread and Nut Cookies. These heal only a small amount of health, but knowing that I'm carrying around something made with kindness by a neighbour -- that makes me feel so much more part of the community. Again, I don't think I'll come across any other baking parts, or mini-currencies like this later in the game. It's a generosity that makes the game so much more. And ultimately, generosity is the most important thing you can put into your games.

And that's without getting into the amazing things that Earthbound did with one-off game mechanics and moments. There's a reason the logo for The Best Game Design is Ness riding his bicycle through a swamp. And, of course, the "Pray" move. I'm going to stop now before I spoiler anything, or just gush about how good they are for 2 pages. But they are so good!
Mar 10

I don't know where to look

This morning, I was in the shower, and I realized to my delight that I'd made a game which involves splitting your attention to multiple different places. It's called A Bastard, and you should probably go play it a little to see how it works before moving on with this post (although it's a two player game, so go find a friend).

(You shoot automatically after each movement, the controls remap each time you press them, and the winner is the player who shoots the other player first)

There are at least three places you'll want to put your attention for play -- the 3D view, which shows whether there are barriers in front of you, the current controls for your dude, and the keyboard (to find the keys). Normally the keyboard wouldn't be a source of attention, as you know where the keys are, but when you're suddenly sharing a keyboard, then you can't let your fingers rest in the normal positions. So you need to pay attention there, and suddenly go hunt and peck again. In your head you need to keep track of what key you're about to press - it's a sensible thing to do to say it out loud as you play - "Y!", "SEVEN!", "O OR ZERO!" (I should change the font). This just puts it more easily in the phonological loop of memory, since there's a new key to recall approximately every 0.7 seconds. And then there are extra optional places to put attention -- the minimap, if your enemy isn't immediately in sight, or you just want an overview of the battle. But that doesn't show blockers, so you can't just focus there and ignore the 3D view. And then there's your opponent's 3D view, which can sometimes tell you if they've just fired, which could save you in tense spots. And then the keys they're shouting out -- it would be totally possible to pay attention to those and see what they're about to do, if you were superhuman. And of course, you need to pay attention to them shoving you, to getting their fingers out of the way of yours to press a button, to the fact that they're trying to press your button and make you lose.

So yeah, lots of places to put attention. But all of the locations you need to focus on you can attend to serially, which is what makes it a fun process rather than a terrible one. 

For contrast, take a terrible game I made, SPHERES. You've got to dodge the cubes and shoot the spheres. But when you're shooting, you're not attending to the cubes, and then one come out and whomps you and it feels unfair. Or you focus on dodging the cubes, and ignore the spheres -- and now you get a terrible score, and would be having more fun playing CUBES again. There's no easy way to attend to all the things serially, and it feels really bad.

(In CUBES you only have to attend to one thing, containing multiple things -- the optic flow of the cubes is enough for you to track their positions and velocities. Your focus is always on the center of the screen, more or less -- which is why the timer is there.)

To serially attend, you need to know where next to put your attention at all times (or most of the time). That moment of "the fuck should I be looking?" -- it's powerful confusion, and should be used very sparingly, if at all. In A Bastard, you attend : view of battle, keys bindings, keyboard, repeat, with interruptions from your opponent's elbows. Get the rhythm down to below .7 seconds, and you're killing it. In the movement phase, you have time to assess your position on the field of battle. There's a rhythm to where you attend. In SPHERES, there's no rhythm, just multiple things demanding attention at once.
Mar 1

What we mean when we talk about stories in games

There's a lot of arguing about story in games recently. There was this, then this, and then this. Each one kicks up a bit of argument, and then later someone come back with another tack. So here's me, butting in.

So as I see it, there are two basic ways stories and games can happen together.

  • Games can be used to tell stories.
  • You can tell stories about games.

The two can happen at the same time, and they can be blended, so it's not always easy to tell them apart, but they're clearly not the same thing. This isn't going to be a exhaustive study of either one, because either could be a lifetimes work.

I find holding in my head that these are two separate things clears up a lot of discussions on stories in games. So often people argue against one, and for another, or use examples of one to support a claim for the necessity of the other. But they're different things!

So now let's muddy the waters, and try to find the limits of each. This is necessarily a brief overview, as each would offer many lifetimes of study.

It's easy to think of clear-cut examples of either one. The froth generated by LARPing[1], that's a story about a game, that's when meaning is imposed onto a possibly incoherent experience. If I was running a LARP, one of my big criteria for success would be whether the LARP generated stories worth telling. For a videogame perspective -- I've spent many happy hours reading stories generated by Dwarf Fortress and I've never played the game. Or epic tales from Eve of galaxy-spanning deceit and betrayal. What these obvious examples have in common is the wide degree of player agency. And the uncertain outcomes. Bow, Nigger[2] is a wonderful story told of a game -- it happened in a space with more tightly constrained agency, but the captivating part was the part that was entirely human, was the part that coincided exactly with the the player's freedom. But I don't think a open, unscripted world is necessary to produce stories -- although it does make the ones that get told more worth listening to. If people can happily recount the plot of soap operas, then a scripted game can produce stories for telling (or retelling, I guess). And similarly a game of Tetris can be told as a story, but it's gonna be a terrible story. The point of that game lies elsewhere (although I do have a theory about similarities between narrative structure and pacing -- but now is not the time). The crucial point here is it's a shit story if it's telling you stuff you could hear elsewhere, or in this case, is the same one you'd tell if you played the game too. Or is just a rubbish story.

It's also worth noticing that the story comes afterwards. That's a process that occurs when reflecting on the game, integrating your experiences into a coherent narrative. I assume this is because the human brain is really good at remembering and reasoning about stories, particularly ones about the actions of things having human-like agency. But I was a Cognitive Scientist slightly too long ago to link to anything interesting on the topic, or indeed speak with authority on it. Running with the supposition does imply that if you're wanting to make people learn something from a game, giving them a story to tell afterwards with the lesson embedded in it is probably a good way to go about it. And it's furthermore worth noting that you don't actually have to tell a story to someone else for it to be a story -- you just have to have assembled it and made sense of it. The Oppenheimer quote "the best way to learn is to teach" comes to mind, as does the way writing this post has sharpened and cleared my thoughts on this very topic.

Similarly, it's pretty well established that you can tell stories in games. You can have a single plotline one merely advances through in an unbroken line. You can have branching choices. You can have choices made earlier having subtle consequences throughout the entire game. You can do far more interesting things, in hugely emotionally affecting ways. It's a noble goal to tell a story -- as I said above, it's the basic way humans make sense of the world, so it's strong stuff. Ultimately, though, these stories don't come from the player's agency. It's something done to them, not what they do. Of course, they have to be involved, or it's not a game. But for a game creator to be telling a story, it has to be their story, or possible stories, not one that the player has created.

For example:

"At heart, pulling off a tragedy in a game is about manipulating the player into accepting a situation they don’t want while still making them feel responsible for it. This is no small feat, but it’s not impossible by any means. None of the examples I listed are really immune to the basic “reload and fix it” issue that threatens to rob game tragedy of its impact, but they all suggest methods for making that solution less desirable."

 -- Line Hollis talking about tragedies in videogame stories

Here, she's directly saying : to create a feeling of tragedy, we need to trick someone into thinking they have agency, when they don't. And the biggest problem we have is that they can always take the nuclear option and metagame their way back into having agency. And if they have agency, why would they submit to your tragedy? [3]

Sidenote: Can you tell a story that is entirely generative? Sorry, that question is nonsensical. Can a story be told that is entirely generative? I think I'm obliged by my belief in strong AI to say yes. For a story to be told somebody has to be telling it -- if that person is actually a computer, does it count as a story? Only if the computer can impute meaning to it's (sorry, their -- I think this is a criteria for personhood) words. Else it only becomes story when it reaches the players head. Am I making up this condition, that only people can tell stories? I'm aware this is a silly distinction -- but it's by reaching for the stupid scenarios that we can see the real limits of things. If you made a game that made me believe a computer was telling me a story it had invented, I would be more impressed by your accomplishment than wanting to quibble with your terms.

 


 

None of this is original thought from me, of course. Here's an excerpt from a recent Electron Dance interview with Richard Hofmeier, creator of Cart Life.

Electron Dance: "I see lots of discussions online about people who believe games should be all about rules, right, rather than narrative"

Richard Hofmeier: "It's troubling to me, right, when I was making my failed attamept at games journalism. I said, in not only the Drawf Fortress peiece, but also something I wrote about Snakes of Avalon (which is another Adventure Games Studio piece) is that the only reason to play any game is it's story. And I guess I meant that, and I still feel that way, I do. And I think it's either the deliberate intentional narrative of the developers, or, in the case of something best represented by Drawf Fortress, or Spelunkey even, something more emergent. I think that as a player, we can't engage with either system without creating a narrative for our own enjoyment of it. So we create a story from a Dwarf Fortress playthrough. And for me that's -- Tarn Adams calls them the "After Action Reports" -- but these epic tales of histories of populations and the -- it's fantastic. And they're entirely in the head of the person playing the game. And it says more about the games player than it does, I think, about how well made that game is. Maybe it's easier for me to say that after having spoken with him about it, and his kind of disinterest in posing his own visions on a player, and really it's just a tool for soliciting imaginative work from the people playing -- it's really interesting for me that he does that, but it doesn't change my mind about the only reason to play it is for the story and so whether it's game, or Cart Life, or Dwarf Fortress or Spelunkey, I think that narrative is the only game mechanic. That might not go for something like Tetris, or maybe Sim City, or something -- those toys. I tkind of deteriorates with that dynamic - it's just a semantic problem that we call them all games, when of course some are games, and some are toys, and some are more like movies. I guess in a perfect world we'd have a term for thme -- I don't want to be childish about it, but for me the semantic problem is hugely consequential, and if we had a term for -- I guess it's all interactive fiction really, and that would be one host, one hemisphere, anfd then maybe games could be more precisely used, that term. Interactive fiction is too many syllables, it's very pretentious and academic, we don't have a good word for it, like "movies" is a great word which is fun to say, and it describes a uniting characterist of a whole spectrum of propositions, and they're all united in that they're moving pictures, and games are just interactive - they're not games, they're just interactive, and that goes for board games and card games and videogames is just awful, just a really blunt instrument of language to use to describe shit that has no buisness being called a videogame, you know what I mean?"

[1] Please can we not argue about whether LARPing is a game or not?

[2] I'm aware I'm about a decade too late to make this criticism, but a problem with New Games Journalism is that it privileged games that make for cool stories, rather than games that tell cool stories. Thus Kieron Gillen, lover of Deus Ex and hater of Zelda. You could have the most fantastic time with a game, but if it makes for a shit story...

[3] I'm echoing Pippin Barr here. ie -- some players will choose tragedy, given agency. So let them have agency.
Jan 21

How to make your first videogame

Some people have asked me for advice on how to get started making videogames, usually in the context of the gamejam I'm organizing. (which makes me so happy -- one of the main reasons I'm organizing them is to get people who haven't made games making games). This is my opinion and not gospel, so if you find something else works better for you, do that instead! You should also check out youcanmakevideogames.com, as it's a fantastic resource, and more comprehensive than this blog post. And also the big list of game making resources.
The first thing to say is that game design is entirely beyond the scope of this post. There are good places you can go to learn that (you could do worse than reading these), but what works best is trying things and seeing if they work. The next best thing is playing games and seeing how they work. It's a wonderful, endless, frustrating journey. But to start on it, you need to be able to make games.
Secondly, videogames are a tiny part of games. If you want to make games, you should definitely at least consider not making videogames. It's by no means less valid to make a boardgame, or to write the rules for a game that people play without any bits at all. It's even a good way to test out videogame ideas. You've still made games, I think games are wonderful and more people should make them, so we all win. 
But if you want to make videogames, then okay. I completely understand - I do too. Let's talk about that. The best way to start is to make small games. Make a small game, and finish it, and then make another. Start with a tiny scope, the smallest thing you can think of that will still be a game. 
Similarly, try to minimize the amount of stuff you have to learn, unless your aim is to learn stuff. Don't write your own engine, if you haven't before. Focus on the game part. Don't know how to use Photoshop? Use Paint instead. Can't compose music? Me neither - use other people's music, or make silly noises into a microphone. Don't be afraid of constraints, and of scaling your design to fit your time and knowledge - it's often to the benefit of your design.
Which isn't to say you should be afraid of having to do something new if it's necessary. Dive into it with confidence. Some stuff can be surprisingly doable, if you don't let it see your fear.
Shall we get a bit more practical now?
What tools would I recommend you use?

If you know a tool (if you are a programmer normally, for instance) then that is the best place to start. Minimize what you have to learn, and all that. So if you're a Java dev, look at Java libraries. If you can do web design well, you can make games in web pages, or if you're ace at JS, try out making a canvas thing. If you can draw, make that the focus of your games. Even if your skill is crosstitch, you can use that (if your skill is crossstitch, please make that the focus of your game, I would love to play a game with the graphics done in crosstitch).
But if not, then here's what I'd recommend for programming your game:
If you have programming experience, and want to do something 3DUnity3D
It's quick to get something working, it's powerful enough that I'm employed to use it all day, and it's simple and modular enough that you don't have to read all the (really quite decent) documentation before anything will work. You script in .Net, in C#, or in something that looks like Javascript but isn't, or in something that looks like Python but isn't. It can export to a web player that you can embed on any web page. The free version will suffice for the purpose of making a game, but you'll have to pay for luxuries like it running on an iPhone or getting to do heavy hacking on the engine itself. The downside is that it's a 3D engine and you'll have to either stick to primitive shapes or model and rig and UV unwrap and texture and animate your characters. You can use it for 2D stuff, but it's a hack you'll have to perpetrate yourself.
If you have programming experience, and want to do something 2D: Flash/AS3. 
People keep claiming it's dead, but it isn't. Not for games. AS3 is a decent Java-ey language, that's pleasant to work in. And the Flash plugin is installed in every web browser, and AIR lets you hit mobiles, and make standalone apps. My advice would be to get FlashDevelop (free!), download FlashPunk or Flixel, and work through the documentation. It'll get the basics of 2D games running, and you'll pick up Actionscript as you go. Alternatively, if you want to just write stuff in the browser, wonder.fl is a strange kind of magic.
If you don't have programming experience, but can write and/or drawRen'py
I've never actually used this! I am writing out of ignorance! But I've heard it's pretty close to writing normally, and having a (text-heavy) game result. It's designed to make visual novels, for examples of which I am obliged to refer you to Christine Love. The underlying language is Python, which is the programming language I would recommend to people who would like to be able to program. If your game fits it's constraints, then it seems like the best thing. I plan to use this this weekend, and will report back.
If you like the web, and choose your own adventure booksTwine
I have also not used this. I am not the best person to be writing this blog post. But I want to use it! It looks simple to use, comprehensible, and it spits out webpages as a result. Accessibility : win.
If you can't program, you hate writing, and you have patience : Stencyl
I have used this, and I hated using it. But that's because I can program, so I found having to not program frustrating. If you can't program, you may also find it frustrating to use, as the concepts underlying using it are the same as needed for real programming. But you'll be less lost in a sea of syntax errors, incomprehensible jargon, and vast libraries of functionality you don't understand. The setup is less onerous, and it outputs to Flash.
I should also give a shoutout to Oh My Game here, as it looks like it might be similar, but better. But despite being developed by a friend of mine (hello Erlend!) I still haven't tried it out. So this is a cautious nod.
There are lots of other tools out there. If you have one I should add to this list, let me know, and I'll add it.
As I said above, this is pretty programming centric. This is because I am basically a programmer. There's a nice index of how to produce other resources on youcanmakevideogames.com.
Other bits of advice:
Lots of people have source online for their games in any of these languages. Increpare has source for lots of Flash and Unity3D games, right next to the download links. Anna Anthropy has all her Twine sources up. Wonder.fl shows you everyone's source, right next to the player. Stencyl will show you the generated AS3 code for any game you make in it. Most Ren'py games I've downloaded seem to have the source embedded in them (Don't take it personally, babe, it just ain't your story does, I noticed). If you want to see the source to a famous Flash game, Canabalt is open source. An obligatory reminder: just because it's available to look at doesn't mean you can just copy-paste wholesale. This stuff is variously licensed, check first. But it's all good to learn from.

If you want to make something good, it's better to be consistent than to be ambitious. If you can't draw, lay things out nicely and pick good colours, and you'll get away with it (if you design it well). If you can't program, limit the complexity of the interactions that can happen. If you can't write, write as little as you can.

And if you get stuck, ask for help. Specifically, you can bug me. Or, there's excellent communities - on tigsource, on Super Friendship Club, on Way of the Pixel, on IRC, on Twitter and just generally the Internet. Most people will happily help someone who wants to learn something (but not someone who wants their homework done). And, even more marvellous is meeting other game creators in person at things like London Indies. Or, indeed, at gamejams.

Right! That's your lot. Now go and make videogames! All it requires is lots of hard work!

Jan 12

Second-order design, and choice.

Immediately after posting the last post, I change my mind some. I guess maybe it was the LARP references that set me off - those guys can do anything within their artform(1). And there have been political LARPs. How can they convey messages, when they are the supreme at player empowerment?

So here's one way : you provide elements that, when played, provide experiences that provide a meaning and a point when considered against the real world. To caricature: Tell someone to roleplay being homeless and give them a doorway in which to sleep. They do, fully internalizing it. It sucks. Afterwards, they think about how there are homeless people out there, right now, and how that really sucks for them.

The key thing here is that they were free to enjoy being homeless, if they chose. The message could fail to get through. The roleplaying could go in a different direction. There's a larger rant here about broken games that I am still brewing - but - choice.

I've even experienced this, within my own games. I made and ran Clandestine Candy, and my main goal when running it was to see how it would be played by players. I was reasonably sure I had an interesting frame for people to play within, but I was desperate to see how people played. For the record, people did not disappoint me. This is maybe slightly different - the scenario above had the designer present the player a question, in the hope that they'd hit upon the obvious answer themse;lves. In this, I just presented a question. It's odd to note that despite designing and running the game three times, reflecting many times on how it went and talking for literally hours about it, I'd still absolutely love to play it. I know I won't know what it's like to play until I do. And even then, only what it's like to play, the way I played, that one time.

I guess this is called "second order design", like the title says. "Designing for emergence". But maybe it's more specialized than that - we're not just designing mechanics, the interaction of which produces effects. We're allowing that interaction to be unbounded, to be more powerful than we can entirely anticipate. It's in shaping that blossoming that the player exercises real choice. If it's a bounded choice, you end up with -- a tightly designed puzzle game. Two mechanics interact most beautifully - but there's still only one solution, and the game designer knows what you're thinking as you solve it better than you do.

Another example : Train by Brenda Brathwaite.  A  message, reflected in mechanic, beautifully supported in aesthetic. But the interesting part is once the penny drops. Do you play? Do you not play? Do you obstruct others? Do you walk away? You're still in the play space (unless you choose to leave - you can always choose to leave). That's the interesting part, not how beautifully the mechanics encourage you to cram lots of little people-tokens in the trains, like the Nazis did.

Or, hell, what about this:

"This is the super lazy man’s approach to design: rather than designing an intricate object, I tend to think of it in terms of marketing… the more academic way of putting it, I would say deputizing the player rather than designing for the player. So you’re deputizing the player’s to design their own gameplay, so to speak.
 
And obviously it’s a mix. You are designing, of course you’re designing. I think sometimes as a game designer—especially when you’re designing party games—it can be useful to think beyond this verb of design and more to: how am I going to sell the player on this attitude of approaching things?"
-- Douglas Wilson, on designing B.U.T.T.O.N.

I'm still not done, I don't think. More changes of mind to come...

(1) Disclaimer : most everything I know about LARP I know from Nordic Larp. I want to know more, though!
Jan 11

The usefulness of proceedurality

This blog post is a response to Against Proceedurality by Miguel Sicart. So go read that first, if you haven't already. I should also note that I'm not super-familiar with the literature in this area, so, er, tell me if what I'm saying is old hat, or obviously wrong.

I largely agree with Miguel's arguments against proceedurality. I think that playing through another's experience is ultimately constraining, and can't be as exciting as being a full, equal active participant in a game can be. But nevertheless, within this contrained space there's room for a galaxy of brilliant, enjoyable games.

But proceedurality provides something quite useful, from the creator's perspective. It gives a model of how to make a "meaningful game". Broadly, it goes:
- Have a theme, a thing you wish to convey with your game
- Develop mechanics which reflect your theme. Have them in some way embody it.
- Make aesthetics which support those mechanics, and allow them to be properly comprehended.
- Test it, to be sure that players get the mechanics, and ideally also the theme.

Do all that, and do it well, and do all the other things you need to do well to make a worthwhile game, and you've succeeded. 

If these games are suddenly not so good any more(1), if we've all got to jump to focusing on each individual player's interaction with the game(2), if that's where the action is -- well, us game designers are buggered(3). What good is that for us?(4) If before our point was to convey meaning through a game(5), and suddenly that meaning can only arise separately within each play session(6), well, we either have to be the player or the game to convey that meaning(7), and that's a hard thing to sell to a mass market.(8)

But then again: maybe this is just fear of the new and un-fleshed-out. If Passage is the poster child of proceedurality, J.S. Joust is the poster child of the new approach.(9) It's creation provides a model for making games according to this new school - provide a minimal set of rules, enough to bring people together to play. Let most of the rules remain fluid, and instead allow them to be negotiated and enforced by the players or the play community. 

It's also worth pointing that this isn't uncharted territory we're entering. This is the the way things are normally approached, outside of digital videogames. Bernie DeKoven has consistently stressed that the rules are there to serve the players, that the peak experience is the well-played game. The LARP concept of the "first-person audience". These people are making games, and finding their point elsewhere - so if we're going to see digital games this way, we should look to them for how to do it. 

More to come, I think...

(1) I am aware this is not true.
(2) I am aware this is not true. And besides, we can still see that players behave in ways with similarities to each other, so it's not as bad a crisis anyway. 
(3) Metaphorically speaking.
(4) If we were Doing It Wrong, it would be better to know than to ignore it.
(5) Was that our point? Honestly, was it, I haven't read enough literature to know if anyone had claimed that. I still think explosions are enough reason for a game to exist, just on their own.
(6) This is how I understand Miguel's argument to go. I apologize for butchering it so.
(7) The classic example of this in videogames is Sleep Is Death. But more generally, we end up at LARPing, and roleplaying, and other games where people are trying to play to fun, rather than playing to win.
(8) This being the only other point of making games.
(9) Not that it's new. Also, sorry Doug.
Dec 10

Publicly promising things

So I seem to have got into a situation where I have a very large number of things which need only a bit more a push to get them done. So : let's get them done!

Not now, to be clear. The next few weeks are pretty busy with doing Christmassy drinking things. But during Christmas, during the times one is traditionally supposed to spend avoiding family, I want to:

-- finish CUBES's music and vfx synching and send out test copies to people (if you want to be tested on, please let me know). No doubt something'll crop up preventing me from fully releasing it, but I want to be close come the start of January.

-- I've got a big long list of things that need to be done on Mr Bubble, and there's no pressing release time pressing. But at the very least, I should get all the adjustments for the new mechanic in, and get those animations finally plugged in.

-- I should look at getting no-one's favorite game, Assembly onto an iPad. Just for kicks, and out of curiosity. And maybe Android, too. It'd feel nice on a touch screen.

-- A side-effect of CUBES (or maybe CUBES is a side-effect of it) is a nice library of post-processing effects. And scripts to script them. It'd like to package them all up, and sell them on the Asset Store. The only competitor I can see is Aubergine, and I think there's space for another. I'd love to know how that sold! Along with this, I'd be nice to expand the range of effects - I have further ideas! In fact, let's break down and discuss what I have so far:

  • Scanlines (variable size, and separation, and darkness and offset)
  • Pixelation (variable size - width and height)
  • Dither (variable size, dither mask, and I guess I can easily knock up a greyscale version)
  • Colour separation (variable separation for R G and B in both x and y)
  • Posterization (I don't really have this, but I made it a few times while making the above)

All of which work on iPad. These probably aren't enough, so I might knock up a few more - a flashback effect, and a twirly effect are quick enough to knock up - I pretty much know how to do it already. And there's a textured shadows effect I did at work way back. And I have ideas for shiny shiny extensions to what I have. But the main priority is packaging and releasing. If anyone is reading this: what needs making? What are you starving for in postpressing effects?

-- And picking up on an old abandoned thing, working out what makes my previous attempt at a Asset Store Package unworkable. It's an editor extension that lets you run methods from the Inspector, for debugging purposes. It works fine for methods without any arguments, but devolves into reflection hell when they're included. Releasing this would also be fantastic. Again: would you use this? Would you pay for this?

 

Which is enough to be getting on with, really.

 

The really good bit is that a few of these thing will potentially earn me money. Let's hope that happens!

 

Nov 2

Mr Bubble Amidst GameCity

So this Friday, I showed off my WIP game Mr Bubble Amidst The Fireworks off at Gamecity. Gamecity itself was excellent fun. I'm writing this, happy and drained, on the train back to London. I'm going to write about feedback I got from people about the game, and subsequently where I might take it. This may be long and rambling, as I'm kind of working through this stuff as I write. Fair warning.

So first off, people seemed to enjoy it! Hurrah, and woo! There were loads of kids running around, and maybe the largest proportion of my players were under ten. And they totally dug it! I had kids who came back to play it time and time again. A lot of them played against siblings, or played against other kids, or played against their parents (who had very variable levels of gaming literacy). Ultimately it is a game where you press a button and pretty colours appear, so I guess I shouldn't be too surprised. I hadn't thought about how it would go down with kids, but it turns out : well. I'm probably being unfair on the kids to suggest that it's just "the press button, make pretty" appear that appealed. I guess the "fuck you buddy" mechanic has a good appeal - the kids far prefered playing as The Fireworks than as Mr Bubble. (I totally ended up playing under tens and swearing when they hit me. I apologized once, and the kid reassured me that he swore all the time. I guess I deserved that.) They'd be happy to play through when it was their turn, but often they'd be like - no, no, you have this controller! when players swapped. Fair enough, I guess. Who'd not rather be powerful than powerless? 

Opposing this, I also got the comment once or twice (but I give it undue weight because I share it, sometimes) that it was better to be Mr Bubble. Far more relaxing to just operate at the lizard level of dodging and viewing the field, than to start building up layers of strategy. What enemy has unlocked? Where's Mr Bubble? What enemies will this one place? How much charging to do? How are they playing? What pattern goes with this pattern? etc etc. These ae the questions I hope to have people dealing with anyway. I'll admit that they probably aren't all necessary thoughts currently. Certianly, the kids delight (and success) at being The Fireworks shows they're not necessary for playing. Hopefully they give an advantage - but it's dreadful slim over random chance fucking Mr Bubble.

And of course this lack of effort, lack of beautiful contruction by The Fireworks affects Mr Bubbles experience - it's not joyous unless it's hard, you need to be put into the right position between challenge and slack to get into the zone, as the literature says. Which was often the case on Friday - as I guess it always would be, with novice players with varying levels of skill rocking up to a brand new game. But that sense of skill progression for The Fireworks - that wasn't there either. You learn the mechanics, and there's a few wrinkles there, and then you can try out various strategies, but the later strategies aren't much more complex than your earlier ones. As I think I ranted to someone out on the floor, games is all about learning. That sense of "achieving mastery", that's something like a synonym for learning. And that's kind of missing from being The Fireworks.

Later, I was talking to Ricky Haggett, and he was suggesting ways to deepen the experience for The Fireworks. I, entirely fairly, summarised his suggestions as "farming" and "crafting". So "farming" was : The Fireworks collects bullets that he's fired. And can use those bullets to unlock new enemy types. He's building a more complex structure, as he has these parallel goals, killing and pinning Mr Bubble, and sowing for his own upgrades. "Crafting" involved creating a tech tree - instead of the current random ordering of enemy unlocks, there'd be a tech tree of unlocks, and your choices down it would be decided by what you placed. Deliberately develop your playstyle to get particular enenmy unlocks. I was sceptical, as I always am of other people's ideas. But thinking it over now, it seems like the random order timed unlock system, while a real improvement over what was before in terms of pacing the game and introducing things slowly (and mixing up the rounds, and leaving new things to discover on rounds 2 and 3) isn't good enough. The randomness seems unfair, as the enemies are not (and may never be) balanced carefully enough. And it's not delivering in terms of forcing differing strategies. But I think I kind of reject Ricky's other ideas - they involve simulating learning and progression with ingame rewards, whereas what would be much better would be real learning and real depth going on. Not just in terms of an artifical layer over, but in terms of how to be an effective terror for Mr Bubble. I might be just making things difficult for myself here. And I think Ricky's suggestions were more in aid of leaving more room in the system to explore. More interactions to deal with, more to see at the 30 minute mark and the 1hr30 mark and the 5hr mark - not just in providing rich systems to gain mastery of.

Ultimately, without overthinking it too much, the problem comes down to the enemies. They kill others not of the same type too readily. This means an effective strategy will generally be a monoculture. Fill the screen with Zoomers and Zoomer-bullets, and they'll be pinned and eventually die. Trust to random flak from the Sprinklers, eventually. Or keep them shuffling along between some Strafers, and then maybe put something in to bisect that area, and hope they die escaping. There's good odds, there. Or just use Snipers, because they're a menace. Or spam Splodeys as fast as you can and trust in quantity. The enemies are reasonably balanced, but it's always the monocultures that are the dominant points. What's needed is enemy types with rich interaction between each other. But how, without breaking down the "but enemy bullets kill each other"? What if --- what if enemies could only kill their own types? That'd allow all these strategies to work at once, which'd be bollocks for Mr Bubble, but sweet for the Fireworks. What if you could choose colours for your enemies, but only different colours killed each other? They'd have to be some gating on the amount of one colour you could spawn. A mini-economy? A new incentive for diversity? Designing something subtle enough, something homeostatic enough which keeping it comprehensible in a sentence or two to a five year old... that's a fun task to sleep on.

But hiding richness in the interactions is where the joy comes from, where the dev time goes to. Phil Fish says half of Fez is hidden, behind the scenes content. Dark worlds, subtle, to be unlocked. Stuff to delight over discovering.

Right, that's a whole bunch of core mechanic work that's there to be worked on - man, is it ever hard stepping back from a project with some polish on and making dramatic changes. It's a bit easier earlier on, but just recasting the whole thing is sometimes the absolute best thing. Switching from a tail cam to a static isometric camera. "The Fireworks try to kill Mr Bubble, but the fireworks kill each other, so there's some strategy" to "You're got to try to make fireworks that can kill Mr Bubble, details unknown". But the good thing is I can make these changes, and the game is still pretty. I know the code, I can work pretty quickly on it, it's probably the cleanest code I've ever worked on, it's warm and at the top of my head. This is a healthy patient to be performing surgery on.

And it's pretty! It's pretty already! David Hayward said "Wow, this looks a lot prettier than the build you submitted to Eurograme Indie Expo". And it's totally true. Everything is nicely animated when it lives and when it dies, bullets fizzle out, the enemies and the player glow, and are alive, the speckles float by underneath, the whole thing has a look of it's own (someone said "Hey, is that Conway's Game Of Life?", yes, that was totally on my mind when I made the bullets. Although their pattern is reminiscent of the blobs that stay in one spot, oscillating back and forth, rather than the blobs that crawl...). Looking at it, it looks different. It looks austere. It glows, but it is not a giving thing, it has a charcoal background and things move across it. This being achieved by my innate tendency for subtlety, for wearingly getting gaming effects from a sfumato approach. Laying one layer down nice and thin, and then going back and doing another when it's not strong enough. And another, and another. And if you don't lose patience, then a marvellous result can be achieved. Eventually. I've pointed out to many people that the speckles cluster around the fireworks' cursor, and avoid Mr Bubble. I'll be surprised and overjoyed if anyone ever points it out to me. But the culmination of these details matter. And, more importantly : when I was writing that code, I was working on this project for my own delight at making. And it was great fun working out how to do that effect cheaply. It had a worth of itself.

Am I not now working for my own delight in making? No, not really. I'm showing the game off, I'm thinking about getting press and attention for it, I'm putting it into conferences and scheduling time working on it based on deadlines for them. But it's a good thing, already. And the stress is still fun, and the project itself is still fun. If writing this State Of The Project doesn't fizz me up for it (and it seems to be) maybe I'll give it time to breathe.

======

As I write these kind of things, I find my attention sparking onto new things to write about. So as to not become a terrible octopus of a train of thought, I make notes below the cursor, and when I run out of steam, I write one of them up. The last one I tried "this was made in flash?!", but we barely scraped into that topic, so let's go at it again.

So - yes - lots of people asked me what this was running in, and a fair few were surprised when they were told it was done in Flash. (because it was so pretty! <3 *warm fuzzies, sense of delayed reward*) I wasn't aware it had achieved particularly high heights for Flash, but maybe it has. Maybe it's also the expectations of marketing that technologies create. Flash is for 15 minute browser games, it's for Armor Games and Newgrounds. It's not for fullscreen austere things (even if they're also less than 15 minutes long). Not for Serious Games Shown At Things. But yet, here it is. (Here's a nice article with Ricky about their dev process, prototyping everything in Flash) I guess also the 360 pads make people not think Flash.

Which reminds me! The way I got the joypads for GameCity working was the quick and simple hack of plugging in JoyToKey with mappings from Xbox 360 controller to The Beast's mappings. So it emulates it. But this means we're using analogue inputs to make digital inputs, which are smoothed to an analogue response (actually, not in the case of The Fireworks - but "movement speed" has just been added to the upcoming topics). So that's kind of sucky. If I'm showing this again using pads, if that is becoming a proper platform for showing it off, I should really look into actually talking properly to the pads and getting the analogue input. Mr Bubble will become a lot more controllable, and placing fireworks will be able to get a lot more precise, quick and accurate. Generally all round improvements. The triggers should cycle weapons, or maybe fire - I don't actually play enough XBox games to know what the default affordances are. The triggers suggest charging to me, but having two shoulder buttons also suggests cycling/rotating through things - like (la la la, I played this today) Fez. It's cheap to try the variations and see what's natural, so that should probably be what I do. Certainly thinking of what buttons can be pressed on a pad vs The Beast leads to more verbs. If I'm redoing selecting enemies, why not have only 4, and each face button picks one? Or use the natural mapping of colour to good effect there?

Which talk of controls leads to one early thing I noticed (before my brain fried entirely), that I found wonderfully strange. People laugh more playing it on the arcade machine. It's different, sat down on a comfy chair, arms at ease. It's less funny. I felt this. It's still a neat game, but it's less directly competitive. You separate your games. Obviously, it being the bullets-fired-from-the-thing-you-placed rather than the bullets-you-fired clearly leads to more separation, but it's a wonderful idea that this feeling is affected by physical proximity of the players. That ergonomics affects humour is a lovely thought. And the game is different when not designed for The Beast. For that mater, the mode I usually play while developing is Fireworks-as-mouse, Mr Bubbles-as-WASD. And a mouse can't wrap (Flash won't let you grab the cursor and do funky things to it), but it can move at approaching-infinite speeds. So the Fireworks have an advantage when placing. The Beast's movement for The Fireworks is a cheap copy of that. But it's worth looking at afresh. Games should fit devices properly, not be bad ports. But how do you justifying making a really good port when the machine is too small to be worth developing solely on? That this project-for-two-machines suffers the bad port cancer of the game industry is a amusing thought. It'd be more amusing if it wasn't my fault. (The actual answer for how you do it comes from the section up above, on the joy of making things for making things.) Similarly, the treaclish handling of Mr Bubbles works (I think) excellently on The Beast, but poorly on a pad. If you're hanging off the stick, making movements a few inches across to yank him about, then making him a object requiring yanking is ace. But if you're making a precise thumb-twitch... you want a precise tight result in response.

It's odd that I've neglected this side of stuff so much, as I am usually all about tweaking the curves and the handling of stuff. At work at the moment, we're having endless fun tweaking a curve a fraction this way or that and trying to evaluate the change. But all we have here is a simple iterative lerp, and nada more. Worrying sudden thought - that iterative lerp isn't framerate independent. Fuck. How embarassing.

But yes, thinking about radical surgery, and challenging accepted layers of the game - let's talk movement speeds and handling. Should Mr Bubble be able to outrun bullets? (yes) Should he be faster than The Fireworks? How large should the cancellable charge radius be? Should I finally put in the constant dead-zone of charging around The Fireworks? (yes, why the hell haven't I yet?) How should Mr Bubble move? How precise? How nimbly? How best to let him dance? How best to give The Fireworks control? How best to let him ignore his physciality? To abstract his presence down to sheer tactical intent, under constant time pressure? Is that even an aim? I should talk to Aubrey. He loves this shit.

The most common suggestion I've heard is "there should be some way for Mr Bubble to get back at The Fireworks". Every time I hear it, I push back at it (though I do love feedback! Please send it my way. But I might politely ignore it for a little while, and then adopt it and claim it as my own.) I like his limits. But still, I said earlier that most people prefer being The Fireworks, because they can do more THINGS. And as you increase Mr Bubble's options for pushbacks, you add complications for The Fireworks. But I do so love the lizard level of Mr Bubble... So there are two ideas that came up (read: were suggested to me, ignored for a while, and now adopted and claimed as my own) that I'm going to explore. Firstly, making the charge on The Fireworks larger, and hence more poppable (also, always present on the stage - less possibility for leaving mines in the path of Mr Bubble, and fucking him that way). This makes The Fireworks more corporeal, which maybe is a sensible thing to do. Certainly his non-corporeality is tied into the mouse's approaching-infinite speed... I have expanded on this above. The second is to remove (maybe) the inconsistency between how the Snipers behave and the rest. In the game currently, the Snipers die if they get too close to Mr Bubble - maybe everything should be like this? It'd give Mr Bubble some more options for pushback, add another level of intermediation for The Fireworks to contend with... These are subtle expansions, the sfumato approach again. Any other ideas?

One thing I added for the GameCity build were little contextual bits of text. While this may well have still been misfiring, I found they were not noticably effective. Maybe it's just I pre-empted them by explaining them a few seconds before*, maybe it's just that utter unwillingness to read that everyone has, maybe it's just that if they did work, they did so silently, and it's harder to notice a lack. I'm happy with their look, so I'm not going to rip them out. But maybe I need another layer...

Such as something on the title screen? That too was new, and seemed pretty handsome. It was joked I should have an elaborate and melodramatic backstory for Mr Bubble, which actually would be pretty funny. I got some compliments on the tone of the copy, as minimal as it is. It's an area I am super unsure and unconfident about. I am not a practised or confident writer, and I take the same approach as with I do with art - minimize the amount I do, try to keep it consistent, and hope I scrape through. But both got praised, so maybe I'm doing okay. I do wonder if the enemies themselves should have better diegetic names. The Swizzler, the Woosher, the Crawler, something something, proper firework names. But then, not naming them, letting the text remain so very minimal - that's lovely too, and I guess I should keep it. I do feel nicely retarded explaining mechanics and making reference to how they're named in the code.

The main focus of my work on the game the past few weeks has been just adding more clarity to systems. Smoothing in the introductions, adding flashy background things to explain the music, the text, sound effects -- all are there to communicate the core to the player. And now I guess I'm getting to go back and hack on the core. That's fun! But then you have to go back and do the same again, making the new stuff clearer. When it works well, you don't even percieve it as communication - things just appear, complete with significance. These signifiers - some visible, some not, some completely primal, some cultural, some vidiogame specific, some that only makes sense within the context of this game. Mr Bubble is white, all the fireworks are not. UI and The Fireworks have transparency, c'uz they're not real, but once an enemy starts spawning, that's got a colour. The point isn't that you notice it, that you necessarily have the deep literacy to dissect this stuff, the point is that it works in bringing the significance along.

What else to report? Technical issues! I ended up launching the game in a web browser because that made it faster. Why? I don't know! I was bashing my head against this previously. Maybe plausibly it's my graphics card conking out - I have been having some issues with Windows not redrawing parts of the screen sometimes, but then I seem to have a problem with Explorer as well. And before I installed a new CPU fan controller thingy it was getting super hot. Maybe I crisped it? Maybe Flash is just weird. See my previous post for more ranting on this. But, anyway, I arrived, plugged the big monitor's resolution into the appropriate bits of code, fullscreened a browser window in the right monitor and ... ah fuck. No way to reset the game, save for unfullscreening, refreshing the page and refullscreening. Not smooth! So I coded in the button "R" to send the Javascript command for "reload page". Copying the code from the net on my mobile phone, a few minutes before opening... I like living on the edge. That kinda worked, but it did need me to mouse-click to start the game (give Flash focus) which clicked through the start screen and into the game proper. Ah well. And then after a few hours of that the game started running slower and slower. So I restart Chrome, and it's fine... So I just did that every so often. But this mystery is still mysterious... And getting it running fast in fullscreen would be absolutely lovely. I don't know exactly what to do about the framerate - I've been reasonably cautious the whole time, and it's generally not in Flashpunk's "update" that most time is spent. There were slowdowns when spawning lots of bullets the first time, which I can save by creating a pool at the start, and the floating background clouds aren't in it anymore for stupid memory usage, but... More work needed. And coding around technical limitations like this just slows you down and constrains you, makes you make features less awesome than they should be. But the game working, running at a decent framerate at a decent res... What have you got without that?

So what have I got left in my list of things to talk on? The big question - "How far do I want to take this?". I don't think I'm ready to answer that yet. What platforms? After this weekend, I'm more convinced this can work as a thing people buy, though it still seems optimized for public settings. But then, so is Street Fighter, and that does okay. These choices feed into... well, actaully they mainly feed into choices based around controllers. iPad means touching the screen, and how that could work. You can't see through hands, would that scupper it? Or stupid onscreen sticks? For two players? One each end, holding the iPad between you like a tug of war? (that'd be intimate enough to raise laughs) For two iPads, networking locally? I guess it can survive some latency, as the two are just disconnected enough... Do I want to grind on on this forever? I have so many other things I want to make! Old projects to be resumed! Hm. There are things to ponder on...

(* I try to adhere to a strict code, when testing my games, of not explaining things. But in this space, I felt it was only fair to provide a little context. Generally I told them their respective goals, and then sometimes hinted options like charging shots, and switching enemies if they hadn't noticed themselves.)
Oct 27

Working though the combinations (I don't understand Flash)

Here are the notes from me trying to get Mr Bubble to run in full-screen mode at a native resolution, in preparation for GameCity on Friday:

native res = 1280 * 800

1024 * 768 | full screen | no scale = 14 FPS
1024 * 768 | full screen | show all = 43 FPS
1024 * 768 | full screen | exact fit = 45 FPS 

1024 * 768 | windowed | no scale = 40 FPS
1024 * 768 | windowed | show all = 40 FPS
1024 * 768 | windowed | exact fit = 41 FPS
 
1280 * 800 | full screen | no scale = 10 FPS
1280 * 800 | full screen | show all = 13 FPS
1280 * 800 | full screen | exact fit = 13 FPS
 
1280 * 800 | windowed | no scale = ?? FPS -- the FPS counter is cut off. but it feels smooth. I would assume 30 FPS
1280 * 800 | windowed | show all = 30 FPS
1280 * 800 | windowed | exact fit = 30 FPS

As you can see, it is painful and frustrating. Notable bits of extra-ordinary pain are : the only times it is fast are when it is performing scaling. Or is windowed. Even if it's smaller than the resolution, getting it to display without scaling makes it run slowly. Since the game is cleanly pixelled, scaling appears as doubled pixels. It looks rubbish, and is surely extra work for Flash to do. Surely?

After this I tried rendering at 960 * 600 and scaling up with stage.fullScreenSourceRect. It didn't help at all.

I'd download a newer Flex SDK (I'm apparently on 4.0, there's now 4.5), but I am at home, and on stolen phone Internet, so large SDKs are a bad idea. Apparently the newer one has GPU support. But it claims the newer playes have that, when embedded within webpage, if you set the wmode. Fiddling that parameter did not do a damn thing for me. I don't understand the Flash ecosystem.

My current plan is to show the game within a full-screened Chrome window, in-browser. I can get an FPS that oscillates (noticably :<) between 30 and 60 FPS there, running at native resolution. Why is that faster than without using a browser? Why does the best solution involve turning up, finding out the native resolution, and then hurriedly entering it into the 5 different places it needs to be set for it to work properly (in the source, in the FlashDevelop project settings, written to an XML file you can't seem to override, arg, in the webpage multiple times, including once, halved, as a offset to center the player properly). *sigh*

If someone knows of a better way... please let me know.

 

Oct 26

Clandestine Candy

Alan Hazleden just reminded me I never wrote this up. Here are the rules for Clandestine Candy, a game I ran at Hide&Seek's Sandpit this summer (at the Royal Festival Hall!)

Clandestine Candy

(for around 15 players, in this version)

Take everyone's names, and randomly (but fairly evenly) assign them roles. They are either :

- a Sugar Addict - these desperate creatures want to get their hands on sweets, as many as they can. They start the game with a fistful of monopoly money (the same amount each time)

-a Candy Salesman - these amoral mercenary types want to get their hands on as much cash as possible. They start the game with a fistful of sweets (ideally the kind that are individually wrapped. Boiled sweets, toffees, etc). Again, about the same quantity each.

- a Dentist - these funsponges want to stop anyone from enjoying their money or their sweets. They start the game with nothing. They are allowed to confiscate any money or sweets they see out in the open.

Everyone is also told the names of a player of each of the opposing roles. (so two other players)

The players are then set free in a large gallery space, and left to introduce themselves to others, make friends, do deals, and try not to blow their role. People are encouraged to lie about anythign they wish.

At the end (after 10-15 minutes everyone seemed to have done most of the trading they can do) , everyone gathers, and the Sugar Addicts compare their hauls, the Candy Salesmen compare their wads, and the Denists compare their confiscated goods. And everyone gets some sweets if they want.

 

The exact number of players told about, whether there are multiple values of notes, whether people are given namebadges in advance, and the allocation of roles can be tweaked according to the circumstances. When I ran this, I didn't tell anyone how much money or sweets were assigned, leading the value of deals to be uncertain. But 5 players of each type, a single value of note, no namebadges, and two names seemed to work pretty well.

Jul 17

Fight or flee

So the first day of TIGJAM, one theme was "Fight or Flight". I decided to make a game with playing cards. The game turned out okay, so here are the rules:

"Fight or Flee"

Each player takes a wodge of cards (3 or more, I guess) from the top of a shuffled deck of cards.

They both give the other player 1 or more cards. These exchanges happen simulataneously. If you want to get a good atmosphere going, try saying "Fuck you" as you give them cards.

This exchange happens three times.

At the end, you both consider your position, count yourselves in together and then either thrust your cards at your opponent, while saying "Fight", or withdraw them, saying "Flee". If:

  • both of you say "Fight", then you both lay your cards down - the person with the highest cumulative score wins the game. Well done!
  • both of you say "Flee", then you both lay your cards down - the person with the lowest cumulative score wins the game. Well done!
  • one of you says "Flee" and the other, "Fight" - the "Fight"-er gives the "Flee"-er one or more cards, and you go back to exchanging cards.

The number cards are valued according to their number. The face cards are valued:

Jack : 20
Queen : 30
King : 40
Ace: 100
Joker : -100

Try playing it!

 

Thoughts on the game

The game has some nice bits to it: the symmetry between wanting to have less than or more than your opponent is nice. This game is really about discovering the value of your opponents hand - the point of the exchaning stages is to share information as much as cards. You end up pushing cards at people, trying to convince them of your weakness, trying to hold onto the edge. If the negotiations fail, then you reach stalemate - you both agree on the relative value of your cards. This is one of the biggest problems with the game - too often you end up in an unsatisfying stalemate for too long - "Yes, you have more than me. You gotta give me more if you expect me to fight you".

But you can establish a really quite close idea of the value of the cards circulating. With final scores on each side in the hundred, a couple of games ended within 10 points of each other. The long-tail of cards can add up to a surprising quantity - a half dozen 6s, 7s and 8s is a face card, though might not always be estimated as one. One important skill is accurately estimating the value of cards in your hand. 

Which is a weakness - the amount of fucking mental arithmetic you have to do. Maybe that's not a weakness, maybe that makes it a useful teaching aid. I know my Dad would always beat me at this game - he was always better at math stuff than me. He'd eat it up, actually. It's pretty amenable to card counting, in fact - knowing all the cards that have passed through your hand would give you a really clear picture of the game. 

One neat strategy in the game is to keep a high value card always in your hand - if it's not in circulation, it's effectively invisible. (Almost - it will show in your choice of whether to fight or flee). 'Course, this is a long term ploy - you have to keep it always there, even as you attempt to twist them down into fighting or fleeing as you do. And I have no idea why a Joker would ever see the light of day. Maybe the Joker mechanic is broken - we didn't play enough games to determine it. It certainly throws in a nice element of chaos, and -ah-but- into calculations.

One bit of symbolism I do like is the way it matches animals mating fights - usually the reason for the fight is to establish dominance - who is stronger. In that case, you show acceptance of your position, and no real fight happens. But when two animals are evenly matched, neither one wants to give way. The fight escalates, and they can do real damage to themselves.

Another bit of symbolism is that of gift giving as a burden. After you - no, after you, no, after you etc. Or gift economies led by bond of mutual obligation - you each try to outdo each other in giving gifts. But when the system works well, the gifts match in value - everyone keeps a mental tally of how much the other has given away. For instance, in buying rounds - everyone casually buys each other drinks, yet everyone involved ends up with a complicated account of the drinks bought and owed. (until a certain point in the evening, where it becomes a bit of a blur). It's a rare situation where you just take a bought drink as a gift, without social consequence. An aggressive move in this game is giving some high value cards on the last exchange - there's no way for them to reciprocate.

But in the mating fight situation, the happy outcome is stalemate in this game. The unhappy outcome is what leads to victory. And in the gift giving, the happy outcome - both think the other is equal - leads to a fight (a contest of wealth or poverty - it makes no difference). I guess competition is needed to make this an exciting game (if it is an exciting game, and not an drawn-out finessing of percieved worth).

One modification that was suggested, and that I liked, and that we didn't try was to do the card exchange phase rhythmically. One two three - fuck you - one two three - fuck you - one two three - fuck you - you ready? you know what way you're going? okay - one two three - FIGHT. This would speed the game up, give speed and panic to the swapping discovery phase. And you'd still get the tension before the fight-or-flee ending. Hopefully the fun added would counteract the stalemate. And the speed wouldn't crush most of the strategy, but rather help you to focus on the other player rather than the raw numbers.

From an even more analytical point of view, the relationship between card numbers, card values, the flow of cards, and whther this would bias games to be resolved as fights or flees would be fascinating. There does tend to be a bias towards fighting. 

Thinking on it now, a dominant strategy (theoretically) might well be to not show any of your cards but one. Just keep sending the same cards back. But you'd only win by chance in that case - no-one would co-operate. It'd stalemate forever. I will ponder this game-theoretically. I mean, the game is all about shared knowledge. I wonder what it'd look like if every card that'd hit the open was laid face-up. It'd be a totally different game, though obviously equivalent theoretically.

Jun 21

The point of gamejams.

I read Emma Mulqueeny's post on the point of hackdays this morning, and have A Response:

No, it's even better than that. I've attended game jams where you have to pay to cover costs. Ones held in cafes. There's no sponsor hoping you'll look at thier APIs. Half of the developers are starving students. It's always worth going - just to get together with your peers and make things. I make games for a living, and it's never as much fun as a jam. There's often no presentation at the end, no formal series of pitches to define the teams and end results. To some degree, people just sit down and start making. And similar things hold - you need to 10 to get a buzz, and 20 to make it really good. And if we pay for pizza ourselves, or if we go out to the cafe down the road, it's still as good (though, y'know, not that I'd turn down free pizza). And there's still the rush of "gotta get this done, gotta code this bit up" and there's still the glorious praying that this bit isn't full of bugs. And sometimes you get stuck on this obvious bit, arg, why are my collisions failing! and fail to complete. It's okay, it wouldn't be as good if there was a risk of failure. Sometimes too, people get even more hardcore, and have three-hour mini-jams within the main jam, and then the rush is even better (though the games are worse). And sometimes there's no theme, or there's a choice of theme, or the themes are picked at random out of a hat of suggestions. Still, you work hard to make something good to show your friends and your peers. And sure, who you meet is good, but if I went home from a jam having made no useful contacts, I could still consider it a success. And it can be a good time to learn new tools, sure (picture someone trying a new library coincidentally sat next to the author of that library), but it's also a good time to be using tools that you know inside and out (and discovering that - hey, I really can code this stuff!). And it's good to code without time to fuck around refactoring it and tidying it, and worrying about maintainability, because it just has to last til the end of the weekend, and then done! And it's not about the game you take away, though many fine games have their roots in game jams. You make a prototype, and "hey, this gameplay is fun!", and that might keep you going on it after, or it might not. It's a gift if it happens, and if it doesn't, that's fine. (I wrote this in preference to working on a port of a game I first made at a game jam.) And I'm not a fan of prizes because who doesn't deserve one?

I guess, at the end of the day:

It feels good to work hard

And it feels better when you're surrounded by other people doing the same, and out of the joy of the work. It feels good to break new ground. It feels good to create!

May 18

Unity sometimes makes me a little bit sad.

So Unity is a top-notch development environment. I would describe myself as an advocate of it. It makes easy things easy and hard things possible. The free version isn't unduly crippled - you can create perfectly functional games, and release them and generate money for yourself. But there's one feature in particular that I wish it had - it's called "External Version Control". This isn't just because I'm (thank you Elliot Games) a Pro user and I rely upon this feature (I turn it on with everything I develop on, and usually use Git/Github to manage my projects). If that were all, I could live with the inconvenience of not being able to branch nicely and get on with it, grumbling a little under my breath. No, the real shame is the ecosystem this choice creates.

A Unity which doesn't normally do version control is one where you don't whack that useful little script up on Github. That script that smooths out that common niggle? That port of that handy library? Maybe someone will have written them up. Go look on the forum. Or on the scripts wiki. Copy and paste the code into the right four files, and it'll work (hopefully). But if you find a bug, or extend it usefully, or touch up the interface, you're not likely to share it back. Not if it means copying and pasting five times, or contacting the author with an updated version, and hoping he bothers to update his post. Maybe you will, but neither of these mechanisms can be said to scale. They lead to the problems that version control, and bug trackers were designed to fix. This isn't even touching on documentation. Let's not touch on documentation.

(A slightly tangential point: Unity provides a mechanism for packaging up a library/utility/subsystem for reuse. You can export a set of objects as a .unitypackage, and easily reimport them. But these import/exports happen statically - if you fix a bug in a system reused in multiple places, you'll have to go replacing it in all of those places. Control over your updates is a great thing of course - but speaking as somone who tries to make as many assets in a reusable form as possible, it makes me sad to have to do this administrative bullshit before I can actually use it. And it slows iteration down to a crawl. And bloats repositiory sizes to have things in mulitple places. *sigh* (yes, I have tried symlinks))

So the lack of version control makes me sad. It means I work in an ecosystem that is a pain to navigate, and not as rich as it might be. Luckily, Unity saw that this lack of sharing hurt people. If your editors shining feature is to let you drag and drop objects, it shines best when there's a ready supply of objects to be dragged and dropped. So they created the Unity Asset Store. It's a wonderful land, full of excellent tools (ones I've eyed up: Pixexix, UniSky) - but most of them require you to pay. Now, I have no objection to people profiting from their work - I make things in Unity and recieve a wage for doing so, and long may that continue - but making things paid for leads to other consequences. It leads to sources being wrapped up, and hidden from prying eyes. It leads to excellent code being in fewer hands. It leads to duplication of effort. It adds a hidden cost to being productive in Unity, to hidden secrets that an eager teenager will blame their failures upon not having access to. It makes me a little sad, when most of the other things I code in give me these things for free, and reward me for looking at them, and improving them. If I use Path, and get curious as to how it works, and fire up ILSpy, I'm in breach of contract. If I make a website in Django, and get curious as to how the urlresolver works... well, there's this. Oh, and what's worse - if I work in Unity, and I use UniSky (for example!) - I can't opensource that game (in it's entirety). It's contaminated, and any contributor will have to buy a license of UniSky. GPL is infectious, but so is closed-source.

But then - maybe this is game-dev specific. I know most of these criticisms are irrelevant for the majority of things in the Asset Store. Only code gets put in version control, typically. There's no good merge tools for .psds, more's the shame. Before there was an Asset store, common utilities were owned by particular people. It's AngryAnt's Path, it's Stramit and Texel's Strumpy Shader Editor. They were free, and freely shared, but only in the sense of beer. Strumpy Shader Editor comes compiled[factcheck] - if you want to peer under the hood you have to use a Reflection tool. And not much was in Github, even then. Sure, there are others fighting the good fight, but I don't feel they're winning. I saw Rob Fearon give a talk where he begged developers to put their assets out there. To let others reuse them, to make our tools easy for complete beginners to use, to point them at ways that let them get a toehold into The Making Of Games. I know increpare/Stephen Lavelle provides source code with his games.

But maybe all this is balanced out by the amount of code and tools and assets which are now sold due to the profit motive. There was a lack, and Unity moved to fill it. I'm not going to accuse them of taking a worse course purely for the profit (they get 30% of revenues for things sold in the Asset Store) - I think they made these choices honestly, and to supplant the sharing of necessary libraries in old forum posts. Which just sucked. It's a bit more of a tricky issue when it comes to version control - they sell a Asset Server themselves, which by some accounts is the way to go for team collaboration in Unity, though I've not tried it. The motivation for adding External Version Control was enterprise - huge shops hesitating over buying thousands of seats because they all use Perforce. With that context, Pro only makes sense.

And it's maybe unfair to blame this on technical reasons. Ultimately, this is a social problem. Other areas of programming are far more open - open source gaming does not have a long and glorious history. FreeCiv, Teeworlds and Nethack are the only ones that come to mind (although for libraries - Box2D is bloody amazing and everyone uses it, there's Flixel, Flex is open even if Flash Player ain't. etc. etc.). Projects are structured differently - people play games for limited periods of time before moving on, and that does not for good OSS development make (look at the exceptions I listed again - all games people get fixated on for long periods of time.) Maybe it could never have taken off, and the Asset Store is just an acceptance of this fact.

Anyway. I'm not going to change things. I'm okay going with the flow on this one. After all, if I'm so shit hot, why can't I be the one profiting? I'm going to launch my own handy editor utility soon[1], and I'm going to put it on the Asset Store and I'm going to charge money for it. And I'm going to have a big long think, and maybe I'll also put it on Github, and accept patches. I hope I do.

[1] Terrible marketing to bury this in a footnote, but it's an awesome tool. Add a [Bang] attribute to a method on an object, and it provides a button to call that method. Testing a spawning function? Not quite sure how you'll trigger it, and just want to get it working first? Just add [Bang] and you can test to your heart's content. At the moment I'm working on letting you specify parameters, which is a huge pain in the arse. But it'll come, and your life will be better for it.
Apr 28

Bioinformatics 23andme SNP Top Trumps Fantasy Game Design

 George Buckenham
 

23andMe to me : "Your DNA sample has arrived at the lab"

 tom wyatt :
@ now this is interesting.. ready to produce some top-trump cards based off the stats?

Sure, you could do that.[1]

Or.... you could play with the full set of SNPs.

Imagine playing Top Trumps, only instead of 1-10, you only have the base pairs, ACGT to choose. Be simple and say that alphabetical order decides it - Adenine beats Cytosine beats Guanine beats Thiosine[2]. So each person starts with a full whack of identical cards representing themselves and has to choose a base pair to compare. If they win, they win a point, and so on til you run out of cards.

Boring, and impossible.

(I think I'm getting 600,000 base pairs back. That won't fit on a card.)

But then apply bioinformatics techniques to it. Instead of playing, develop an AI to play.

I mean, you can see corpuses for each of these base pairs - you know if you've got a good chance or not.

(Make it more interesting - restrict each person to picking each base pair only once. So there are > 600,000 moves)

So far so - compare your cards against the likelihood of winning, slowly work down that sorted list.

But then consider - each of these base pairs will be correlated with other base pairs. So you can start to take the correlation data into account.

(But of course, the game actually becomes very boring past where you see the other's card - at that point you share in the hidden knowledge, and that's all the fun of this game. Which is why we can't play with the others cards, or even see them. Past what has been revealed through play. In fact, maybe it would be more interesting if you can't see your card details either.)

And maybe you could start getting real crazy - start taking real world data and medical histories and use that as input to the game. Oh, your dad got cancer? Then let's see your pair #908709 - I've got G.

There you are - a game loosely based on Top Trumps that is actually a bioinformatics project.

Let's never make this.

[1] We should do this, it's a far better idea than I outline here.

[2] I am fucking astounded I remembered what the bases in DNA are, and how to spell them.
Apr 27

Games without end.

In the latest of his wonderful series of posts over at whatgamesare.com, Tadhg Kelly says "Under more traditional (retail-derived) thinking, games were often something to be mastered or completed, but many online games seemed to focus more on achieving an endless steady state that players eventually just gave up on. Some even thought that maybe World of Warcraft wasn’t really a game at all." Now, this is as a lead-in to a larger point about a shift in perspectives within the gaming world from the traditional game-as-entire-object to the newer game-as-platform, but ... I disagree with this point.

When I was a lad, some of my favourite games were Caesar 3 and Puzzle Bobble. Both of these games had progressive start and end points to be achieved - I enjoyed playing through these, though I'm not sure how far I got in both cases. But where I truly derived my joy, when I enjoyed sitting for hours, was balanced between the competing pressures of those games. In Caesar 3, for example, I would be happy to play on free play, start up a city, and gradually expand it. Keeping that city on that successful cusp between over and under employment, getting trade running smoothly enough to forgo taxation, a point where I had mastered all the systems the game made you trade off between. Except the military part, because that wasn't very good or fun. 

Similarly, in Puzzle Bobble, my favorite thing to do would be to play an endless game of 2 player. The "rain" mechanic was fully understood, and I knew you could fit the bubble between a gap wide enough for a single bubble if you shot it directly upwards. I've reached scores of over 100. And equally, I'd develop a visceral, as well as intellectual, mastery - I would get into a comfortable groove of firing and strategizing that left the part of my brain that handles speaking entirely unmolested. Which meant I was free to babble distracting trash talk to all those who hadn't reached the same level as me.

Fuckin' bliss. These experiences are one of the marker points for what I want to create when I make games. A interesting enough balance that one can just balance there in a state of supreme contentment. Something like that Zone state everyone goes on about.

(But then! This aspect/approach was neglected then, and maybe has a new emphasis on it nowadays. And maybe that goes along with Tadhg's larger point. But really I just wanted a rant.)
Apr 15

I think they call it "ambient computing"?

I just read iamdanw's retrospective on his pachube internet of things hackday project, DisplayCabinet. It's a beautiful bit of work - a simple projected circle, which when an object is placed within, shows information.

But here's the biggest limitation, as I see it. You have to have a little lump of wood representing the fridge to show the information from the fridge. You have to have a little lump representating _____ to show data about --- well, not quite ______. It's not literal, despite the presence of atoms - each object represents a sphere of information. Keys, for instance, represent the entire home. But what if you want to know what state the locks are in or if the alarm is set? The 'keys' mapping means something else already. You place the Dad maquette in the circle to see his tweets - what if you want to check your @s? What shape a lump of wood to represent that? Or "the girl I met last night"'s tweets? Sure, there's no reason this one interface should show everything, but expanding it's scope is such an enormous effort, I can't help but think you wouldn't.

There's an almighty world of data out there, increasingly, thank the Berners-Lee, queryable in a sensible semantic way. I do get that the point of the excercise is to humanize this data, to work it under the skin of our lives, but it seems such a great cost to lose the power of that vast sea entirely. If I can see my power consumption graphed, maybe I'll want to explore typical power consumption graphs for people of my demographic type. Maybe I'll want to share that data with more ease than taking a photo, or recreating the data elsewhere. In the example given, the data was explored in more detail by bringing in another token - it just seems overly, inherently, bounded. Unless you have more abstract navigational tokens, but this makes the metaphors stretch yet further. I might be wrong on this point. Maybe this sea of data is exactly what we're trying to exclude. But I still think I want it, now. For one thing, I'm used to having it around, and seeping, in it's full power, into everything I interact with.[1]

Where are these lumps going to be kept? The keys live in your pocket, or on the side, sure. But the place I would imagine putting a set of figurines representing your household appliances and family members is in a thimble case next to the table. And if you're going to do that, this whole system only gains over a touchscreen the joy of moving little wooden tokens[2]. It feels cumbersome, it feels less like wallpaper.

But! The explorable status system, that doesn't demand your attention. That feels like it has legs. Technology that we can use while not thinking we're staring into a screen like we do all day at work. That's nice. A picoprojector onto wood looks a treat, but they're expensive and require carpentry. So I think a natural place for this to emerge is the ebook cover [3]. As detailed by Tom Armitage, it's happy at rest. It doesn't call for you, but fits in. Somehow it doesn't make itself known as technology until the page changes (I think that might be the magic of it, that they change between object and technology so easily). People already have them and they leave them lying about. Always on top of things, always face up. If you want to explore what they're showing, they have buttons for now. Or wait a year or two and they'll all have touchscreens.

Or - you can go further, if you hate buttons and touch screens and boring technology. You can make the ebook super location aware. Why use a fridge token, when you can just go to the fridge? It can be a magic window on the metadata behind the actual object. Walk past a thermostat, and see it's set high. Look at your ebook, and see 24 hour and 7 day temperature graphs, and that the thermostat was changed last Tuesday. You take it to the kitchen, it tells you stuff about your food, then becomes a cookbook.

Of course, this only naturally maps to exploring the metadata attached to lumps of atoms in front of you. There's still metaphor involved, inevitably. But hopefully it should emerge naturally as a result of showing you the thing you're most likely looking for, if you're standing where you are. And of course, you can't view far off objects without resorting to symbols again. But at least these symbols can be scattered, a disparate set. Place your ebook next to a photo of your Dad, you see his Twitter account. The only real gain is that you're more likely to have a photo than a maquette, and it can carry in sitting on the side where it's already sitting. And it's easier to register new links.

Huh. I guess I just got halfway to reinventing the Chumby...

[1: for this reason, it would seem totally reasonable if this just displayed information. But as soon as you can use a thing to investigate data, it seems to call out for Google. My watch doesn't want it, but my Wii does.]

[2: a cruise on boardgamegeek will reveal this isn't an unappreciated joy. But it doesn't feel like it should be enough.]

[3: or we could cover yet another surface with ads, as Amazon is exploring. They'll be there, lurking on your bedside table, fucking display ads. It'd be a shame if that's what they end up being used for, but it does show there's money that's noticed their untapped potential.]

Sent from my phone.

Apr 8

Does Minecraft have a win condition?

No.

I mean, a win conditon ends the game. You strive for it. It is imposed from without.

But it does just as well by giving us a framework in which we (I want to say inevitably) form our own win conditions. My boss spent the day constructing a temple with an entrance shaped like an enormous cock. The game didn't tell him to do that, and nothing happened once it was complete. Other than him showing me. But he had a task and he set to it, against obstacles. He died but persevered against obstacles. He learnt from the process. All that gamey stuff, that happened.

I guess if you're wedded to the idea that games do need a win condition, you could argue that Minecraft is merely a frame that gives rise to such. But that seems such a mincing theoretical cop out, when so many things construct fun in just the same way. Like Electroplankton. Can we just call these things games? They feel like games when we play them, even if they do require our engagement. We don't deny the status of play to plays with audience interaction, just because they're only finished when they're performed.

I have also argued vigorously (and while drunk) that Minecraft has an excellent story. It builds it generatively, and you help make it, but that doesn't argue against the craftmanship with which it was designed by Notch. That's a step further, though.

There's a deeper link to the self-effacing games designed by the Copenhagen crew (and written about by Doug). But I'm two pints too far to tease that out right now. And on screen keyboards suck.

Sent from my phone.

Feb 4

Blog posts are hard to write.

I've been trying to write here more often, because it does me good and because I enjoy arguing, but to be honest, it's hard. With the exception of the worklogs, which are written to myself, my blog posts are arguments. I try to make what they're about important, because the world has enough arguing about dickwolves[1] already. But there are two universal rules that trip me up:

- it's simpler than you think.
- it's more complex than you think.

Everything I write seems to want to become a tweet or a book.

For example - I'm considering a post about learning and games.[2] Boiled to tweet level it comes down to: "Games can be seen as primarily about acquiring mastery, aka learning", which is pretty succinct even with all the academic hedging in there. But of course, expanding on that statement and the (largely obvious) ramifications thereof could fill a book. Indeed, I'm reading a book on pretty much that right now.[3]

I guess everything can be written about in various levels of detail, and it is only my inexperience with the form that causes me to be at all surprised by this. I guess with practice, I'll be able to judge the scope and detail a post needs to be writeable, and I won't wander down so many intriguing sidestreets on my way to the fucking point. I guess that keeping on experimenting with the choices available to me, and trying to perfect my execution until I have control over the end result will be an occasionally uncomfortable but ultimately rewarding learning experience. Like ... a game? Hmm.

[1] if you don't know, you don't want to.

[2] as is Joe Bain. I may well wait til he writes one, then write a riposte.

[3] James Paul Gee's What Videogames have To Teach Us About Learning And Literacy. But I'm ripping off Jesse Schell's The Art of Game Design: A book of lenses a lot here, too. [Edit: Oh Christ, and Raph Koster's A Theory of Fun]

Jan 20

Worklog

So I have made some incremental progress, in between all the ignoring this project I've been busy with.

 

Where were we last? I confess I have no idea, as I am typing this offline for later pasting up. Note to self: go to the pub, alone, with a laptop and no internet connection - you'll get hella shit done.

 

So recently I have made a proper helmet for all my electronics junk to fit within. I spraypainted the visor black (though it's coming off worryingly easily when it gets scraped), I put headphones in the ear protectors ( although they're a little too nice for such a role, and the left is in the right, and vice versa. thus leading to this), and I put all the wiring duct taped to the top inside of the helmet. I taped the vibration motors in place, and - voila - a lack of sensation on the sides. Evidently my head is the wrong shape. After much fannying, I gave up and went home.

Img_20110116_194218

Many days later, I returned, and did the obvious thing - push the motors out with padding. This also helps cushion the helmet itself from the vibrations, which is a good thing. Still, you can hear more than feel the motors. I don't really have a solution, but it's a pain. Not Ideal. The helmet is also a little uncomfortable after a while, but no more so than some uncomfortable earphones. Ergonomics matters, kids! Still, it's functional, and can now be offered to people without fear and worry on their part. (It's still outlandish, don't worry - but it doesn't look like it'll electrocute you anymore.)

 

To make the helmet more diegetic (fuck, that Nordic Larp book is worming into my brain), I need to spreaypaint it like a knight's helmet. KNIGHTMARE, indeed (never saw that as a kid, but that's what people say to me). Silver spray should do it? 

 

Anyway, platform is nearing final shape, and is at least good enough to go on with. I'ma offer it out as a gaming platform for people at the jam - be nice to see if someone can think of something cool for it. Cooler, and quicker than this long-ass project. :<

 

Software side, software side, I made some lovely progress last night. Testing at the hackspace produced a cry of "I don't know what the fuck is happening", and while I can reliably get to the other end, I must admit to being lost, pulling on a thread doing it. Takes too much commitment to a dull bad place to get through - no reward. Too little feedback does not a joyful experience make. This could be maybe transformed with lore, and I'll make that do some heavy work, but lore is not a place I am experienced with, so I will slap on everything else I can to make this stupid concept* work. 

 

To that end, last night I pimped up the sound most splendidly. The issue people were having was a lack of a sense of location. Sure, there's the siren giving you one thread to follow, but that's not enough to position you, just to drag you through. So I have added a deep roar at the entrance, a hidden source of wind deeper in, and ever so many drips and echoey areas to navigate through. As well, I've been further simplifying the level down, it's harder to get lost, and there's fewer obstacles to avoid. Possibly too far, but everything is easy enough to drag around to modify if it comes to that. And "too accessible" isn't a problem I currently suffer from.

 

I've also just now reworked my trigger-using scripts, and they appear a little more comprehensible this time. I did just rewrite this code out of laziness and disgust at the thought of understanding the stuff I wrote before, but I think it counts as a win. The Gorgons now no longer use UnitySteer, they just naively march towards you. But that's basically all I had got them doing before, and they're a lot more comprehensible now, so again, an uneasy win. They also only start chasing you once you stumble into their trigger area. With a sufficiently light density, you shouldn't end up with too many chasing you. I'm hesitant to develop the Gorgons too much until I'm happy navigation is possible.

 

What next? Work on the whole "make it more comprehensible". Polish and feedback. Working out a script to play at the start, and at the end - to make the plot comprehensible. Adding footsteps - the biggest necessity for making movement comprehensible. Once you can move and feel okay, once the game is boring, then we can add some shit to shoot! And then make that shit comprehensible. After that? Die of old age, I guess.

 

(*what concept? just "an FPS type game you can play with your eyes shut" or with tactile/audio only feedback, I guess.)

 

========================

 

I want to make this a comprehensible game. I know a few developers (*cough* increpare) who are happy making interesting, incomprehensible pieces. That's cool, the struggle for meaning is something I get off on. And maybe there's the old effect where game makers make games too hard due to their own practice - Increpare perhaps makes the meaning too inaccessible, because he knows it. Partly, I like games that everyone can play - I don't want to appeal to a niche. And also - this is an experiemnt in one direction, and not one I am confident of. If I have to mix my medicine with sugar to make it go down, then I'll make the sugar as sweet as possible. I wish I made more things, so each could be flimsier.

 

Posted from Barking, United Kingdom
Nov 17

Work Log - Singing and colliding

Right, so at the end of the last work log, there was a list of tasks. Let's go through them, and see what I have achieved.


"enemies" : the game now has nasty red cylinders in. These cylinders move using various schemes from UnitySteer. This was a pain to get working - there's not much documentation. But there are some example scenes, and by referring back to those I was able to enable all the stuff that didn't work immediately. This would be aided if you could have multiple projects open at once, Unity, hint hint. The actual current behaviours? Not the desired ones. But I feel I have enough of a grasp of them that I can create the desired behaviour once I have a level to test it in. The one I don't think does come out the box is to home in on the player (to attack) when he is within a certain distance. But I believe I can modify one of the preexisting homing scripts to do this relatively easily. Oh yeah, and I nearly forgot, because I did this first - when you get near them, they make the headband pulse where they are instead of a steady vibration. It works really well!

"slaying": if you click on a nasty red cylinder (or "Gorgon"), then they make a sound much like "euagh!" and have their health decremented. Click enough times and they vanish, making a sound like "Eaugughuh". I need to record some sound effects that aren't just me groaning into Audacity. But yeah! This bit works fine, and took like 5 minutes and worked first time, and I felt very smug and went downstairs and played some Scott Pilgrim and drank some vodka. I wish that was typical game-dev.

"dying" : This I just finished off - when the Gorgon gets too close, you get hit and make a suspiciously Gorgon-like "Euagh" sound (told you I needed to record more sound effects). And you health decreases. You don't actually die yet, but whatever. This was a pain in the arse to trigger, a pain I suspect I've not seen the last of. To do things properly, I am using a sphere trigger collider on the Gorgons, which intercepts the Player object and sends a OnTriggerStay(Collider c). But then it wasn;t sending due to a CharacterController not being a Rigidbody? And then I tried it again and it did work. And to get the proximity based-homing I talked about above, I'm totally going to have to make another sphere trigger collider, and then disambiguate the two, or set one to be in an appropriate layer? It's heading to a messy place, but I think I might get this done before the mess takes over. It's really a race against technical debt, I guess.

"maiden" : This I haven't done any coding for, but I totally have exciting progress on it. My friend Claire (who London Philharmonic Choir) has agreed to record some singing for me, to guide the hero to fair lady. I have totally blabbered on to her all kinda of somewhat unhelpful and contradictory requirements, and she has suggested she sing maybe something like this

"And the game feeling vaugely okay." : haha, not yet. But with sounds and variable vibrations I have hope this can happen. My headband has lost a vibration motor (the one at the front, as it's currently configured), so it's difficult to test. But I've faith!

Todo summary: maiden, make a level, and the game feeling vaguely okay. And fix the headset!

And all this possibly by 1pm on Saturday...
Nov 16

Small parts, loosely joined.

Google hasn't yet launched a competitor to Facebook, though they are apparently designing one. Wave was aimed at people who email office files around with names like "presentation_garys_FINAL.doc" around, and didn't take off because those aren't the kind of people who flock to new, fancy, experimental sites. Buzz aimed at hitting Twitter more than Facebook - and equally StumbleUpon and FriendFeed and so on. Buzz is a "share the things you found" site, which isn't a good description of Facebook.

The difference between Google and Facebook (okay, a difference) is that one launches rival, separate services, the other adds features to one huge monolithic service. So Google will never match Facebook, because while they have good calendar systems, great messaging systems, a good IM service, a fairly terrible Photos service, I-have-no-idea-how-good set of tools for small businesses to create sites for themselves, a nascent social gaming platform etc etc, each has only a subset of Google users on them. With Facebook, all this stuff is shoved in your face, and it all depends upon you being within Facebook. Variously fiddly privacy settings notwithstanding.

In fact, thinking on it, Project Titan is something of a departure for Facebook. Here's a big new tool, and it's aimed at communicating with ... people not on Facebook. I can't think of a time they've done that before. I wonder how it'll feel.

Nov 10

Work Log

At some point in the week, I killed the maze I was happily getting stuck in. There's a lesson here about saving your work. But it's okay, I wasn't going to use it.

So - I have a featureless plain. You can wander with WASD and turn with the mouse (no looking up or down, I've decided). There are many cylinders, and a couple of cubes ( cylinders are better than cubes, I've decided, as the edges aren't as sharp. Sharp edges are hard to interpret.). One of the cubes plays "The Hangover Song" from Midsummer (a play with songs)*. If you have to listen to something repeatedly, it ought to be pleasurable in and of itself. You can wander this desolate videogame plain and try to find the musical cube, if you like. You can try to avoid the cylinders (though you'll eventually slide past if you walk into them long enough - another advantage). There's no failure and no success programmed in, but it's still a weird and engaging experience.

(Game idea : game set on a a featureless videogame plain. No idea what the gameplay would be. Maybe a distant, hard to spot hole to which you could plunge to your death. It's important this game has cool weapons.)

I set up the ability to pulse all the motors independently of the obstacles. This even works off an AnimationCurve so it is a sweet-fancy pulse. Next is to set the conversion between distance and intensity to use one (and - totes not an issue, but - don't repeat commands if they haven't changed). Tuning this I'm not quite sure how to do, but I'm sure hard work and guesswork will provide.

I've also made some decisions about the game. In it, you save a singing maiden, besieged by Gorgons. You can slay the Gorgons (with a bow and arrow?), they can kill you with their touch. You can hear them and sense them. You have to navigate through the maze and out again.

So : enemies, maiden, slaying and dying. And the game feeling vaugely okay.

* Gordon McIntyre, if you're reading this, triggered by an errant Google Alert, hello. You're a lovely man, and your songs often seem to express my own inner life better than I can. Anyone else - I recommend the play, Ballboy, him.

Headband

(download)

Nov 6

Work Log

Once again, a worklog from the nightbus home from the Hackspace.

Lots of progress today, far too much for the little work I put in. Reducing the timeout on the reads from 500 ms to 10 ms has made the whole thing more responsive - still takes a few seconds to start up, but it only hung once in a day of hacking. The problems I was facing controlling the analog PWM stuff was due to having the wrong software on the Arduino - stupid stuff, but thrilling to have it fall so easily today. I wrote some stupid simple wrapper stuff for the serial stuff, which now lets you merely say VibrationScript.SetVibrate( int motor, float vibration). Hook it up to turn on on when hoping click and ah! I never get bored of physical actions being performed by a computer. A click = a buzz! How delightfully arbitrary.

And now all the hard technical stuff was suddenly out the way. I quickly and painlessly (painlessly enough) added raycasts -- at this point writing I fell asleep. Since it's now a week later, I'm going to post this as is.

But basically, the interesting technical bit is done. Now I need to make the game (or rather invent the game) and tune it to feel right. Which is rather exciting.

Oct 28

Why is it hard to do cool things?

"Why is it hard to do cool things?"

It's a good moan to have. It means you're trying, and you feel pain.

Some people told me that if it was easy, everyone would do it, and the coolness would be spread like margarine spread by a stingy person. You'd have to retreat to harder things to get a decent share. I can see the logic.

But I'm not sure that's all. When you build a computer in minecraft, that's cool, and the coolness doesn't depend on the tools. If this serial connection on the headband thing I'm working on had worked first time, the project would have been no worse. In fact, it would be better, because the damn thing still doesnt work properly. Jonty took the internet by storm with something he made, insomniac and irritated this morning. I don't see why coolness has to be zero-sum, anyway.

So all these thing have simple powerful ideas underlying them, and I guess you could argue the ideas are what count. But any idea can fuck itself up with a cackhanded implementation (and if you know a counter-example I would be overjoyed to steal it.)

So maybe you need talent. That's a large part, that and caring about what you produce. The two are very similar, really. One lets you implement well, one makes you need to.

I could come up with counterexamples to the talent and giving-a-fuck part, but I don't want to. They depress me. Anyway, you can also get lucky. Take risks, sometimes they pay off. Make the hell out of five hackdays, one or two resulting projects will be super cool. At least. Guaranteed.

But you have to really try.

Anyway, I'm not sure the premise holds, either. It's hard to do cool things? You could start tomorrow. I make many assumptions because you are in a position where you're reading this but really - you have some free time! You have a computer! You've no excuse.

Especially because - it just gets easier. Tools are better, cheaper, and better explained than before. Your supposed rivals in the make-cool-things race? They'll help you make shit just as cool as theirs, just to see what you come up with. If you want to make games? Flash is free! Unity is free! Excellent instructional material is free! The Internet us full of people who will solve your problems for you granted a modicum of respect.

This continuing feeling, that cool shit is hard? It just points out cool shit yet to be invented. Nowt's as good as pain for showing you opportunities. Previous-George, shut the hell up and work out how to make an Arduino library for Unity. It's cool, it's useful, and it's easy. Everyone else, I'm sure you have that thing that the lack of makes your cool thing hard. Make that, and don't give up in despair if it also turns out to be hard. I'm sure it's worth it.

Oct 22

Headband Work Log - A Single LED Turns On

So! Progress has been made! I didn't expect this, but here we are.

The COM11 thing is resolved - Device Manager turns out to be remarkably intuitive and powerful, and let me reassign whatever-the-fuck it was on COM5 to COM11, and COM5 has now been set to be my Arduino board. So that's happy, even if it is a gotcha for running on any other machine. But fuck it, there's only one headband, how much can portability matter? (I fully expect to eat these words)

The other problem was Mono hating to do things with this Firmata library. My first thought was "Fucking threads, how do they work?". After understanding them a little more, I concluded they were most likely not to blame. Instead, I decided to blame it on Mono's SerialPorts module sucking big floppy donkey dick. More precisely, asking for port.BytesToRead on Windows will crash your program. Luckily Unity's crash report contains the Editor.Log, so I could painfully add debug statements and narrow down the problem. Then followed rewriting of the Firmata library code I had scavenged before. Before, the code was like this:

while(port.isOpen){
if (port.BytesToRead){
lock(this){
int data = port.ReadByte();
//do a buncha stuff with data
}
}
}

Now it's like this:

while(port.isOpen){
lock(this){
try{
int data = port.ReadByte();
//do the same buncha stuff
}
catch(TimeoutException) {
continue;
}
}
}

Which has the downsides of being a bit more retarded, and persisting the lock for stupid quantities of time. But has the upside of not crashing Unity to the ground every time it is run.

I also edited the constructors so that they default to not auto-starting the port. Unity seems to have the wonderful knack of calling constructors when in the Editor, so the serial connection was running every time, not just when the game was started. Now they only autostart when I pass in that option in Start() (Unity runs this when an object is first run in the gameworld.)

I also spent like an hour wondering why the existing headband vibrate-near-a-wall functionality which I wanted to show off wasn't wondering. Eventually I realized I was loading up an old, retarded version of the sketch. Good work, George! I also soldered a vibraton motor back on, as it had come loose. The wires coming from them are really thin, they don't have much strength in themselves. The whole prototype is flakey - wires fall out all the time. It's also an intimidating thing to put on someone's head. I'm all about accessibility, and I will admit that the way it looks now, it don't look inviting. Also, for non virtual-world use, it needs a battery pack.

Anyway, the Firmata-in-mono part seems to be working to some extent (there was some time before I got the baud rate the same on both ends). I have turned an LED on and off. And then when I tried to turn it on again, Unity appears to have died...

So, what next? Well, first thing, future George, is to set the timeout of waiting for a byte to be crazy short. It'll make that thread a lot snappier, and hence block the port for shorter periods of time. Next is to actually encapsulate the vibrating-a-patch-of-head thing, so I can forget this serial stuff exists.

Oh, and, Tim who made Firmata.NET? Thank you for doing that. It's not your fault Mono is occasionally poopy. (Oh, and thank you Mono authors. I totally get why SerialPorts is a bit poopy, and I know that I should really go in and fix it. The trouble is, I can't change what runs within Unity, so this proper fix will only help me years from now... which doesn't seem as fun as moaning.)

Click here to download:
firmata.cs (14 KB)

Img_20101022_005903

Posted from South Ockendon, United Kingdom
Oct 21

My favourite famous programmer...

... if such a thing is a reasonable thing to have an opinion about...

...is jwz.

Why? Because he quit programming to go do something way cooler. Because his writing about code mainly consists of him bemoaning the state of libraries and platforms that seemed entirely sensible choices at the start. Which is largely my experience too.

He cares about things just working, and being sane, and it seems to physically pain him how much shit you have to wade through sometimes.

I'm just saying I can empathize currently.
Oct 20

Work Log

So tonight I went to London Hackspace, and as well as drinking beer and chatting, and suchlike, I worked on this headband project. You know, one of the two that I promised myself I'd finish, but the one that doesn't yet grind painfully at my soul.

The plan of attack is to get Unity talking to the Arduino board. The sensor reading isn't going to be used, so all I have to do is set some pins to output PWM (and no maxbotic setup logic to worry about!). As it happens, the bodged together protocol I wrote lets you read but not yet write. But anyway it's shonky, and standards are awesome, so lets rip it out and replace it. So now the Arduino board is running Firmata. Firmata has it's own protocol that I'm not particularly enthusiastic about writing, so I found Firmata.NET, a class for talking it in .NET.

(Although! First, I banged my head getting serproxy working. Serproxy lets you read and write TCP and have it come out through a serial port. Useful if you wanna use Flash, although a better solution is to not. Turns out the configuration file was slightly more magical than I expected, and there was no readme bundled to tell me that net_port7, for example, meant com7, not the 7th port I told it about. Also, I had to find a patched version for it to talk to com10 and above. Given on my PC anything lower than com11 is reserved... also, I had to fuck about getting telnet to work on Windows. The Windows CLI - eternally unloved. Anyway, it worked, and I was about to write some ugly Arduino code to read rotation vals when I decided to abandon all that and do it all in Unity with someone else's protocol and C code, ie Firmata.)

So I managed to get Unity to accept Firmata.NET and import (it's not import in C#, it's something else) it from an actual game object. But not open a connection to COM11. After some fiddling with opening it myself using system.io.ports.serialport, I concluded* that COM11 wasn't going to work. Reshuffle my serial ports in device manager, and hey presto! I can now reliably crash Unity!

Writing up these notes it occurs to me that window's warning that another program is bound into COM5 may be a clue. Anyway, at this point I stopped.

Next time! I guess either I fix my ports up good, or return to serproxy. I wonder if I'll ever get the GPS my laptop supposedly has working. It's just sitting there on sweet sweet COM6...

After that, I make Unity do sensible encapsulated vibratey things, hook it up to raycasters, mount them on a first person controller. And make a game/world to wander through.

*read on the internet.

Oct 8

Videogames are sold like videogames

Sophie Houlden felt like being controversial today, and sent some tweets, like so:

> I feel like being controversial again today; anyone who thinks selling pre-owned games shouldn't happen is a big fat poop head

> dont want people making money off something you have done (and already made money off)? then sell licences to play instead.

> making people who cant afford to pay the ridiculous cost of a new release feel bad makes you (as previously stated) a big fat poop head

I'm not entirely sure her argument, but it turns out I have Opinions, and so I thought I'd lay them out in a bit more detail.

First off : pre-owned games happen. They're a fact of life, and people buy them and don't feel guilty. And they're pretty much the only way for shops to make money selling games these days. The margins on a new console are pretty much zero, and only a little better on those shiny new games. That's why they push them. I'm not so sure they make all that much money on pre-owned games, either - turns out, selling to digital-savvy consumers from a physical location is difficult. Who would have guessed?!

But these days a lot of games get sold in ethereal and gaseous form.  Mainly by Steam. That's groovy, but it turns out when you don't have a physical artifact, your right to resell the product purchased becomes equally ethereal. This is due to the medium, pretty much - a digital copy is identical, and is also the only way of transporting the game. And games would be awfully expensive if buying one meant you could sell unlimited copies to other people. So we move to this world where you only have a license to play games, which kinda sucks, because everyone is quite used to the notion of ownership by this point. The rules are kind of instinctive, but they're made weird and twisted when all you own is a license. It offends your natural state of fair play.

So this is going to happen, and physical copies will become more tokens of appreciation, and treasured artifacts than Ways To Play Games. You buy the Nidhogg figurine, and get a free physical download. How many people buy vinyl, then listen to the music on Spotify? These artefacts are treasured, and hold their value well over long timespans. Even if they're only tangentially connected to the work itself. Is it wrong to show appreciation for music or a webcomic with a T-shirt?

Those are the two future forms of games, in my opinion - licenses and per-month payments, with everything in the cloud, and treasured mementos where the actual playable game isn't quite the point. Mass produced plastic boxes, all alike - who wants those? They're the awkward child of two divorcing parents.

Sophie also was driving at a point about comparing the medium with other mediums - some of which have lively second hand markets, and some don't, but in almost all of which things hold their value better than the traditional box of videogame.

I guess I have to take a stab at explaining why this is, and I think the most obvious point is that videogames are computer programs. Viewed as a weird, unproductive computer program, they start to look a lot more normal. How much is a second-hand copy of Quicken? (it's notable that other programs are almost always licensed, not sold - the same digital weirdness infects them) How quickly does Madden 2007 go out of date? It's no less fun, but... How soon do fashions and technology move on, and cause games to look like ancient crusty cripples, clinging on to their DOSBox life support? Sure, some games stand out as timeless, beautiful classics, but most really don't (though naturally when you think about old games, you'll think about the best - they're the ones that still endure). And even if they are still beautiful in gameplay, graphics and sound, they become increasingly less easy to play. Consoles die with age, and TV connectors get ever more complex. Pick up a book printed 90 years ago, you can read it fine - pick up a game made 9 years ago, and see how much faff it is to play. And the second-hand market begets the second hand market. Some buy games as a form of rental, counting on the trade-in value to get them their next game.

(A lot of these criticisms don't affect indies. We distribute digitally, and so have no second-hand ephemera to leave behind. And we can't afford the cutting edge of shininess, so we tarnish slower. Not that theres a market at the moment, but I like to believe there will be. Like CD-Rs sold by the Arctic Monkeys in their early days - those retain their value and then some.)

It's also - I'm probably wrong, but I could understand a tone of defensiveness about this. How come videogames aren't lasting durable art forms, like those others? Roman statuary retains beauty 2000 years on, but we can't even manage 2 months! Well - fuck that shit. Mediums are different, and they should be allowed to be. A game becomes obsolete quickly? That's because the state of the art is (hopefully) advancing rapidly. The world of games is exciting at the moment, but I hope it becomes ever more so, that what we have is but the tiniest fragment of the range of games we'll have soon enough. If the work we make now appears worn-out and worthless then, then how much better will the form be? Even for indies - try to make a 3D game with real physics and good lighting and online multiplayer in a month. Difficult but possible, yes? Now go back to 2005 and try. Technology runs on, and hopefully if we run with it, we'll cover more ground than the games of yesteryear thought possible.

Get Updates

Tags

Archive

2012 (11)
2011 (16)
2010 (12)