Downpour is out!
Today, Downpour comes out!
In case you don’t know, Downpour is the game creation tool I have been working on for the past few years. I started it after I left Niantic in October 2022, and I have been working on it ever since then (with breaks for illness and freelance work and going on trips and so on). I am proud of it. I hope people make good things with it! And also, of course, I hope they subscribe and make this retrospectively not a kinda dumb financial decision. But also I very sincerely hope they make good things that they wouldn’t’ve made otherwise.
The aim when I started working on Downpour was to make a tool that makes making an interactive game-like thing quicker and easier than any other. There’s a lot of parts that go into that, but this, and a secondary goal of making it expressive, remained my north star throughout development. Here’s some examples:
- The simplest kind of game is one where you just make choices. So that’s what Downpour gives you - just choices. Lots of other stuff can be added in a kind of hacky way on top of that.
- What are the choices made of? Well, you can write text, of course. But also we want to be expressive, so let’s also allow pictures. Where do the pictures come from? Let’s let people draw on paper and get them into the game. That’s the quickest easiest way to make a mark. Or they can take pictures of other things, and use those. Or they can draw using some software, or they can import images they find online. Any of those things.
- It’s an obstacle to fire up your computer, and maybe you don’t have one. So let’s make this a thing you can use on your phone. And as a bonus, it has a camera built in and easy to point at things you’re looking at (laptops have cameras too but they face the wrong direction).
- Some people have iPhones, some people have Android phones. We want this to work on both, so let’s make this cross-platform.
- And we want this to be fast to start up. So when I was looking for a framework to make this in, I tested how quickly various tools took to start. Unity was very slow, React Native also pretty slow. Native obviously had the capacity to be fastest, but it would have meant making it twice. But Flutter was cross-platform and also pretty quick! I just tested launching Downpour on my phone and it starts in under a second. Happy with that.
- Endless bits of UI design, thinking through how to edit an infinite canvas on a phone, trying to make it so you can do all the common things holding the phone one handed (important tip is to put stuff at the bottom of the screen). And also looking enviously at computer software like tldraw where they get to use hover states and right clicks.
- A tutorial, to teach you how to use all this UI.
- There’s also a psychological angle to all this. What stops you from making a game? Maybe it’s that it’s hard to come up with an idea, hard to get started. So let’s also bundle in some games that are unfinished, that you can open up and see how they’re made and just mess with or add a single thing to. Much less intimidating than coming up with a whole game by yourself. (This is actually an area I should do more work on)
- When you think about the process of making a game, it’s important to consider the whole thing. Which means making a game also includes sharing that game. When I started, people would ask - so you can put these games on itch.io? And you can put Downpour games on itch.io - but uploading a game to itch.io means filling out a long form and maybe even picking some colours. It’s a lot of fuss, it takes at least a few minutes to do. A good choice for them, as they focus on games that have taken days, weeks, years to make - but we’re focusing on games that have been made in minutes or hours. So instead, there’s a button inside Downpour, and when you press it, the game is uploaded onto a server where anyone can play it. That button took a long time to make - it needed a server, and hosting for images, and an account system, and conflict resolution, and DDOS protection and…
- But also having to make an account slows people down, and makes the tool more fragile. So let’s let people make games without needing an account - just if they want to use the upload button.
- On the other hand, you want people to play the game you’ve made, that’s also part of making it (and of getting the motivation to make it). So other people should be able to play your games inside the app, and follow you so they can get a push notification when you’ve added or updated a game (they need an account for this bit, too)
- Of course, most people won’t have the app, and you want lots of people to play your games. The best way to let anyone play it is to make the games playable in a web-browser. Which seems pretty possible - we’re just displaying images, text and links after all, and browsers are pretty good at those things. So there’s a second version of the code that can play games, made in HTML and Javascript. The end result is that when you upload you get a little link you can share, and people can click on it to play your game.
- Looking over at Bitsy, I can see a nice little opportunity for expressiveness here - there is a thriving community of hacks for Bitsy, things that take the HTML that Bitsy produces and extends that. So there’s also an export button that downloads your game and the webpage that plays it. And let’s open source that browser code, and make it so it’s separated from the game data so it’s easy to change one part or the other separately. Then if people want to add weird new features to their Downpour game, they can do that without being dependent on me. Or they could modify the game data and upload it back into the app!
I’ve joked through development that it’s not been an especially fun or creative process, and while that’s mainly a joke – there’s plenty of fun problems I’ve faced along the way – it’s also true that the bulk of it has been trying to take on the tedious work so that other people can make games without thinking about it. Making a Downpour style game without Downpour would be pretty easy for people with reasonable technical chops. But it would involve a lot of faff and a lot of figuring out and it would almost certainly involve a computer and firing up an image editor and thinking about web hosting… It would not be worth all that to make a game that is a single stupid joke. And I like games that are single stupid jokes, and so I guess I have spent a few years in the hopes that I can let more people make more of them.
So if you want to make a game - a quick game, maybe it’s a joke or maybe it’s a poem or maybe it’s something else - Downpour comes out today. I think it’s probably the quickest, easiest way to make a game from end to end. Here’s some links for you:
Wed, Mar 6, 2024
Downpour will launch on 6th March 2024
I am delighted to announce that Downpour, the game making app I’ve been working on for the last few years, is coming out on Android and iOS on March 6th!
So what is Downpour? It’s a tool for making videogames and websites and other kinds of collage-y hypertext-y things. Think Instagram Stories but you can easily link to other stories and they don’t disappear after 24 hours. Or, if you’re coming from indie games, think Twine except it works on your phone and it’s way easier to make images work in.
And the other half of Downpour is that it’s also a platform for hosting these games. Because what’s the use of making it easy to make games if it’s still a pain to actually share them? So instead, if you’ve got an account, you can just press the Upload button and it’ll upload to my server. And then you can share the link, and anyone can see it by going to that URL in their browser.
I’ve been working on this for a while now, and as a result I would quite like to make some money from it. So there are also subscriptions within it. The main appeal of these, to be completely honest, is that you want me to keep working on the tool and keep the platform alive. But also they gate access to adding hyperlinks to places not on the Downpour platform (because I’m worried about moderating spam) and they also gate access to how many images you can upload in a month (because I’m worried about hosting costs). We’ll see how this plays out - I’m hopeful that I will be able to dedicate serious time after the release to working on it and improving it. But that’s always the exciting/scary part of releasing.
Anyway, yeah - it’s coming out soon. I’ve put some shiny new screenshots on the website. I’m gonna be yelling about it loads more over the next month or so. If you’re press (or, to be quite honest, just friends with me) then please do reach out and I can give you early access. It’s happening!
Fri, Feb 16, 2024
A talk: How To Find Things Online
This is a talk given at the Pervasive Media Studio for their lunchtime talks series. It is therefore written to be read. You can also watch the recording of the talk if you like - it takes the rough form of this post, but I think I landed a joke or two more than are on the page.
Hello, hi, I’m v buckenham, I’m an artist & game designer, and general person who uses the internet and thinks about the internet a lot. I make a lot of software tools that let people make other things, and I think a lot about how people interact online. As a plug for later, I’m currently making a game making tool called Downpour, which is super cool & you can playtest if you stick around for First Fridays later on.
But that’s not what I’m here to talk about today.
I’m here to talk about how to get the carrot cake from Otis in The Secret of Monkey Island.
So, it’s 1991 and you’re playing The Secret of Monkey Island. It’s a game about walking around and clicking on things and hearing funny dialogue and trying to solve puzzles by combining various objects. It’s a pretty cool game! It’s very funny. But the puzzles are… sometimes obtuse. So you’re stuck, and this is a time before you have an internet connection. So what do you do?
Well, if you were in the US, you might call a hint line! You ask for your parent’s permission (because it’s expensive), and you dial the special number, and then you either talk to a real person on the other end, or else you go through a little phone tree. And then it tells you to give him the gopher repellent to get past.
So this talk was billed about being about AI. I’m gonna get to that in a bit. But I’m using games as a framing device for this kind of history of how people could find out information as the internet has progressed. And how that information came to exist in the first place. Just keep that in mind that when I am talking about the gopher repellent, maybe I’m actually talking about, like, identifying a bird. And when I talk about the hint line, maybe I actually mean buying a strategy guide, an encylopedia, a telephone directory, talking to a librarian or putting an ad in the local paper.
So, in this example, we don’t yet have the internet. But information still exists! People know how to get past this puzzle. And if you didn’t know this information, if you couldn’t figure it out yourself, then what could you do? You could ask a friend. If you knew someone who knew this information, then they would probably tell you. And they would do this because people like to be helpful. If we wanted to get reductive about it it’s because providing small bits of assistance to other people is a way that people bond and form social relationships with each other. And forming social relationships is a thing that people love to do. It makes people feel good, and it means when they get stuck later on maybe you’d help. Reciprocity.
But maybe the person who knows how to get past doesn’t want to tell you, maybe this is a playground power games thing and they wanna keep this knowledge secret to exercise some power or because they think it’s funny to watch you struggle, or because you didn’t tell them how to beat a different game. Or you just don’t know anyone else with this game.
Well, then you could phone up the hint line or buy a guide to the game down in WH Smiths or write in to a magazine. And these ways will answer your question, and they will do so for a fundamentally economic reason. They want you to give them money, and in exchange they will provide a service to you. Even if the hint line was free, then it would be run by the games company, and they’d do that so that you’re more likely to buy their next game.
Okay! So. The Internet. Or “the World Wide Web”.
The founding of the Internet is a complicated story and honestly we don’t really need to get into it. Even the distinction between the web and the internet is kind of complicated. To summarise, let’s just say that people invented websites, and they were academics, and they were the kind of people that made logos like this
I think that’s beautiful. It’s that impulse from before, about the kid on the playground who tells you how to get past the puzzle. Why should they want to? Because they want to help, and they want to share what they know. And this urge online is a bit more abstract, it’s not just helping one specific person who you know and who you hang out with at lunch break. It’s helping… anyone. Without having to know who they are. They can ask their computer to make a HTTP request to your computer and your computer will automatically respond with a document, and then they can read this document, and answer their question. Gopher remover.
And like, this is not all there is to it. The people who made the internet did not do this purely out a love of humanity, although that was definitely a factor. They did it because they were academics, and being an academic means that you are paid to share knowledge. And you are rewarded for having your knowledge used. And since the invention of the Internet, people have invented things like “impact factors” and h-index scores, which measure how often other academics use your knowledge by which we mean cited your papers in their papers. Which of course is a similar thing that has become a totally different thing since we started measuring it and rewarding people for it.
But, anyway, the academics who invented the internet did not do it to share solutions for Monkey Island. But the good thing about the internet is that you can put whatever you like on there, and pretty soon the kinds of people who like games about saying clever insults to pirates got on there, and of course they were going to help each other get past puzzles.
So now it’s 1992, and you’re playing Monkey Island 2: LeChuck’s Revenge, and you got stuck on the waterfall puzzle. Then how would you get unstuck? Maybe you’d ask a friend who was also playing it, maybe in this hypothetical you are now at university and it’s someone who you’re in some student society with. But also, maybe you have the internet now, and so, pretty likely, you’d go onto GameFAQs and you’d look it up.
And GameFAQs is incredible. It’s this huge website, full of text files, and each text file was submitted by a particular person. Giving a walkthrough for a game, or for a section, or giving advice on strategy. I love it in part because each entry so clearly shows the hand of the person who made it. Like this one
which is a fully justified monospace document. Which seems kind of boring until you realise that in writing this, he had to choose words so that each line would have exactly the same length. And also describe how to speed run Super Metroid at the same time. Incredible.
And of course, I’m gonna turn to why he did this. Because he could. Because he wanted to show off. His name is on it, thousands of people have seen this and been impressed. And that’s why people wrote walkthroughs for GameFAQs. For status, to be helpful, to share their love of the game.
Now, where we are chronologically is up to the first big dot-com boom. And GameFAQs was founded by a guy called Jeff Veasey, who ran it for the first 4 years as a side project, a thing he ran as a hobby while working in tech. But it brought in some money - there was a sponsorship with IGN, a network of games sites, and after that ended there were banner ads that brought in some money. And it kept growing, and in 1999 it became his full time job.
Which… good for him! He’s performing a valuable service, and he’s getting paid to do it. Other people are doing the work of writing the walkthroughs, but he’s doing the work of keeping the servers on, doing moderation, upgrading the code, generally all the maintenance work that is needed to keep a machine constantly working. The internet is a place, but it is also a process, a set of responses that happen to particular signals, and he was keeping that going.
And now for the bit of the talk that is just a confusing barrage of corporate acquisitions. So, GameFAQs was bought by CNET in 2003. In 2007, Jeff Veasey left the site. CNET was bought by CBS in 2008. Nothing happened for a while. And then in 2019, CBS and Viacom merged to form ViacomCBS (which is now known as Paramount Global, and which owns Paramount Pictures). And then in December 2020 Red Ventures bought all the CNET properties from ViacomCBS, including GameFAQs. And then finally on October 3, 2022 Fandom acquired a bunch of websites from Red Ventures, including Metacritic, GameSpot, and of course GameFAQs.
And I should say that throughout all of this, GameFAQs has trundled on, less and less central in terms of videogame info, but keeping a committed core of users who liked to hang out in the message boards. Once a community gets going somewhere, people will hang on, making the space their own through all kinds of neglect and disuse. What are they supposed to do, go somewhere else and lose the community that has been a part of their lives for years?
Okay, so we’re up to last autumn, and… what do you know, there’s a new Monkey Island game!
Now, I should say that, in accordance with modern design sensibilities, the puzzles are less obtuse and there’s an in-game hint system. But nevertheless, let’s say you want to find out how to get past a bit of it. Where would you look today?
I can think of a few answers.
If you google it, you can find several websites that work in much the same way that GameFAQs did. Including our old friend IGN, which has survived through all these years.
For games websites, which are businesses, a large proportion of their traffic is stuff that comes through search. So, SEO, search engine optimisation, is important. Making sure you have the right keywords, trying to get backlinks, that’s a big thing. And just building out content that fits the stuff people are searching for. So most videogame news sites now have dedicated guides writers - people search for it, so they provide it. It’s basically the worst paid job of a badly paid industry, with the least focus on the writing quality/judgement.
And games websites are competing with companies like Fandom, who started out as “Wikicities”, set up by this guy:
And Fandom has a wiki for Monkey Island!
Fandom runs many many wikis for different properties. And they’re pretty garbage, by all accounts? It is hard to move a community at the best of times, and they actively resist moderators who attempt to move their communities away - taking over the wikis that are run there to remove any reference to the community moving. And they’re good at SEO, so they stay on the top page of the results. For video game communities like Super Mario, there is an ongoing tug of war between the community run wiki and the Fandom wiki.
And to look at why these sites exist - for Fandom, the company, it’s straightforward business. They gain money from the advertising on these pages, and they gain market value due to having higher traffic from many users. For people who actually write the wikis - they do it because they are in a community with other people, and they want to support that community. They want to share what they know, they want to support other people who are into the same weird thing they’re into.
Okay, so, other ways you might find out how to solve a puzzle in Monkey Island these days. Youtube! You can go onto YouTube and find a video walking through the whole game. You can find lots of videos of people playing games on YouTube. Did you know!
It’s pretty straightforward to understand why YouTube operates - they’re a crucial part of Google’s ad empire, which makes them a very large amount of money. Enough money they can pay the pretty considerable cost of storing and serving all those videos - I tried looking up how much storage space it takes up, and there’s no real consensus, but… exabytes? ie billions of gigabytes? multiple of those.
And people who put videos on YouTube, why do they do that? Well, it’s wanting to be helpful. And it’s a desire for fame, or at least recognition. It feels good to have “numbers”, by which I mean an indication that people have seen a thing you have done and an indication they approved. And YouTube pays money. Usually small amounts of money, but enough that I know people who make a living that way. And even if YouTube itself doesn’t give you enough money to live on, getting popular on YouTube, being known - that leads to other ways of making money, like a Patreon, or commercial sponsorships for videos. But really the money is less in providing a useful service, like putting out a video showing how to beat a game, and more in providing a simulacrum of that sense of community that people like. Viewers watch at home, by themselves, but they feel like they are with someone charming and friendly and it gives them a sense of being with a friend. The term for this is “parasocial relationships”, and it’s really where the money is in terms of making “content” online.
And the third way you might find out how to get past a puzzle in the new Monkey Island is… you’d ask someone. And nowadays if you want to find someone who has particular knowledge, you don’t have to hope to bump into them on the school playground, you can find them online. And so you can go to the Monkey Island Discord and you can ask someone for a hint
And again, why would they give you that hint. Well, it’s for the same reasons we’ve discussed. People want that sense of community, and Discord is the place to get it. Why contribute to a wiki that’s full of ads and annoying to use and makes a big company rich? Why buy a load of video gear and learn how to edit videos? If you wanna share what you know and in return receive a sense of community, it’s best to do that in a small space that’s hard for someone to insert capitalism into. Where you can form actual two way relationships.
And of course Discord is still a corporation and has it’s own incentives - news announced this week of how they were changing usernames has been generally taken as a sign that they are moving towards being a more open platform where communities will be a bit more exposed to the light.
But this is a shift you can see across more than just games communities. In the world of social media, there is a general shift away from public-focused platforms like Twitter and Instagram and towards smaller communities built on mutual trust. In many ways I think this is a shame - there’s a lot of power in having information somewhere where anyone can see it, where what you know isn’t predicated on who you know. When it comes to information about how to get work, how to access things important for people’s lives, making connections…
Okay! So that was last year. And now finally!! Let’s talk about AI. We’re in the future now!!!
So, you might have heard, but in the last decade or so, AI has been having a real resurgence. The computers have gotten big enough for neural net techniques to be applied on a large scale. And the Internet has provided the vast quantities of data that they need to be trained on. There’s a bunch of different models out there, but I’m gonna focus on a type called “Large Language Models”.
How do they work? Well, GPT works something like this:
These are basically a machine that is trained to guess the next letter in a sequence of letters. If given the sequence of letters H-E-L-L it’ll probably guess “O”. Or maybe a space. And the way you train them is that you give them some text, and you look at what it thinks is likely to come next, and you tweak the machine to make the thing that actually does come next very slightly more likely. And you keep doing this, repeatedly, with all the text you can find, until it is very good at it.
2048 letters of input, 800 gigabytes of connections (“hidden layers”), and one letter of output. It’s honestly not that important how that middle bit works for our purposes - just connections with various strengths that end up producing the right answer, and that, if they give the wrong answer, the people training it can tweak them until they do produce the right answer.
And of course computer scientists have sweated over it a lot. How to structure that middle bit, how to turn “letters” into “math”, how to tweak the structure to train it, how to structure the training data, how to make the whole thing run just about fast enough & just about cheaply enough to be practical. And the interesting thing about a lot of these answers is that often the decisions are based on trying things and seeing how well they work rather than any kind of, like, really solid theory on why a particular thing is a good idea.
And of course, once you’ve trained it, no-one knows where the information inside it is. It’s just… 800 gigabytes of “model”, there’s no part of it you can point to and say “here’s where it contains the word hello”.
Anyway, that’s the machine, it’s a thing that guesses the next letter. And the thing about having a machine that is really good at guessing the next letter is that you can run it repeatedly to produce longer and longer strings of text. And if it’s really good at guessing the next letter, then those strings of text will look like text that people have written. So if you start a bit of text with “If a pirate says “I got this scar on my face during a mighty struggle!”, the correct reply is” then it might know that could continue with something like “I hope now you’ve learned to stop picking your nose.”. Somewhere in that big letter-guessing machine it encoded information about Monkey Island! We dunno where or how, but it needed to learn that to get good at guessing the next letter, so it did. I think it’s important to break this down a little like this, because so often people use the words “think” or “know” or “understand” and they’re useful shorthands, but they’re also kind of misleading when trying to understand what’s actually happening. The same as whenever someone says that evolution “likes” or “wants” something. There’s no desire here, there’s just… fitting better to the task.
But at the same time, it’s pretty extraordinary how effective this machine, that is just trained to predict the next letter, how good it is at a whole range of things. Like, we’ve talked a bit about how it might tell you the right answer for an insult swordfighting puzzle, but it has internalised a lot more stuff than that. I asked one about me, and it knew some facts, which is kind of wild to me. And it’s not just regurgitating facts - it can obviously generate stories, poems, copy, text of all kinds. And you can also ask it to write code for you - it has digested enough code and enough tutorials that it can generate explanations of what’s going on with it or write new code given questions about what’s needed (assuming, in my experience, if it’s seen code like that before). And you can get even more out of it by asking it to talk to itself, explain what it’s doing to itself - that gives it a short term memory, and allows it to start planning things. Or if you tell it a format for interacting with the world - it will do those things, and use the information it gets back as prompts to write more.
But again. It doesn’t think. It doesn’t learn. It doesn’t have a memory. It’s just fundamentally the probability of the next letter.
(And if you’re wondering what the difference is between GPT and ChatGPT, it’s that ChatGPT has been finetuned (trained a bit more) to be better at completing text that’s shaped a bit more like a dialogue. People aren’t used to asking questions of a machine by writing the first bit of the answer and then waiting for the machine to fill in the rest of it - they prefer just asking the question and getting a response.)
Anyway. For all this to work, we need to train the AI on a lot of text. The more text it sees, the better it gets at picking the next letter. So the companies that make these, like OpenAI and Google and Facebook, they feed it all the text they can get their hands on.
Which in this case means… pretty much everything I’ve discussed so far this talk. GameFAQs is in there, all the wikis are in there,
So we can see, like 3.8 million words from GameFAQs in one common training set.
And 420 words from the Fandom Monkey Island wiki.
So. To return to our Monkey Island example, when the next game comes out (and I should note that as far as I’m aware, they’re not planning on making another one), and we get stuck, and we decide to ask the computer how to get past the puzzle. And we type the question into a next generation search engine that is actually just a large language model. What answer do we get? And where does it come from?
Well, maybe it’ll be helpful. Or maybe… it’ll just hallucinate something. And at this point in writing the talk, I tried to prompt ChatGPT to make some nonsense for me, and
It didn’t fall for it. Annoying.
But then I tried the puzzle from before
and it happily made something up for me.
So yeah, this is actually pretty reasonable as an outcome, it “knows” what an adventure game is, and it “knows” what kind of format the answer would come in, but the actual answer is not encoded in those 800 gigabytes.
But we’re setting this hypothetical in the future, not in the present. And maybe the model has gotten better. Bigger, more reliable. And, if it has read the answer somewhere online, then it can actually pick up the answer. Or maybe it has been fused with a traditional search engine, so it can look things up itself, “understand” what it reads and then return the answer to you. This is a technique many of the search engines are actually using these days, which helps with the bullshit problem, and also means it can answer questions that relate to stuff that’s happened since the model was trained.
But here’s where I think things get a bit screwy - the question then becomes… why does someone write the walkthrough and publish it online? There’s already this shift from publishing information openly and without expecting reciprocity. And towards either a really corporate model, where you’re really trying to extract money from it. Or towards a much smaller group, where you’re talking within small groups of trusted friends. And neither of these groups has much incentive to write up stuff that can train AI models.
For the groups of friends on Discord, or even studios running community groups… these communities exist because they are in relative privacy. They don’t want their chats to be public - in a search engine or inside a large language model. And there’s a tension here where the AI companies would love to get their hands on this data, all this rich data about how people actually talk that would make their robots work so much better. So I think there’s an open question about how well the companies that provide these platforms, like Discord, will shield their users from this kind of disclosure. And there’s encouraging trends here, in terms of smaller group chats, like Signal and WhatsApp moving towards end to end encryption by default. And you can see greater awareness of data rights & the harms that can come from indexing on social networks like Mastodon. Obviously that’s a little skewed because it’s full of nerds (and full disclosure, so I am), but I think it shows the way that people are increasingly aware of this.
But of course, the flipside to this is that we lose much of the sense of the “commons” that has characterised the Internet so far. You lose a lot of the serendipity that comes from logging on and suddenly talking to someone in another country, who maybe shares an interest in adventure games with you but is otherwise quite different. And once people are in smaller groups, then in-group norms can shift and become more accentuated from each other. If these are norms that seem kind of harmless then this is called a filter bubble and journalists wring their hands in The Atlantic about how it’s happening to them. And if these are norms that seem kind of racialised or scary then it’s called radicalisation, and journalists wring their hands in The Atlantic about how it’s happening to other people.
Anyway, that’s one motivation for writing this information up somewhere where the AI can read it gone. What about the other main motivation, profit?
For the companies like Fandom or IGN, they make their money from advertising to people who visit their websites. And, like, to state the obvious, but if a robot tells you the answer then you don’t have to visit the website. It is generally a pretty terrible time right now to be working for a website that tries to make it’s money from selling advertising space next to well written articles. I mean, not that it has been a good time for a good while now. But while people talk a lot about the threat caused by robots writing the articles, I can’t help but think that the problem of robots reading them is worse. And the kind of friction you might imagine between the AI models & the sites they’re being trained on is already starting to happen. Reddit, for example, has tried to stop AI models from training on their data (at least, without paying them).
But there are other business models out there. Remember, way back when we were using the telephone to find out answers? Those lines were often run by the companies who made the games. So there’s still a reason for the people who make products to make websites. Even if people don’t read it, you start writing for the robots. And you see this already, don’t you, the little grey text at the bottom of the shopping page that is clearly written not for people to read but for Google’s crawlers? Well, no doubt the same thing is going to happen by for telling Large Language Models specific facts about the world you want them to internalise. Is it unethical to publish a lot of fake reviews for your product if you never meant any human to look at them? Is it unethical if they’re fake negative reviews for your competitors? And people are doing this today, in little jokes, like:
And there are measures the new search engines can take to try to prevent this - this text was fully invisible, but that SEO spam text has to be visibile to be picked up on. But ultimately it’s an arms race between the spammers and the people running the LLMs, and I think on this one the LLM people have a bit of a disadvantage - because they don’t know how their machines work, and have to discover things about them experimentally, just the same as the spammers.
And I guess this is my overwhelming message here - that the crucial thing with AI is the data it’s trained on, and the crucial thing for that is the reasons people create it, and the way that it exists in a wider ecosystem. I’m pretty down on AI in this talk, and fundamentally that’s because I don’t see how these new AI interfaces loop back round and motivate the publication of more training data. By which I mean, people sharing what they know for other people.
And maybe AI will solve this, maybe we’ll have AIs that play the games themselves and generate walkthroughs, and AIs that read scientific papers and write accurate press releases for other AIs to digest. But without the kinds of feedback mechanisms that come from having people reading other people’s work, it’s pretty easy to see how that could become pretty weird pretty quickly. Or maybe we’ll get stuck in this kind of 2023-era, where the weird turns of phrases we use now get locked in forever, as later training sets start getting filled up with AI generated text that recreates the phrases we use now.
And the other way to look at this, really, is not about AI at all, but seeing this as the continuation of a gradual corporate incursion into the early spirit of sharing that characterised the internet. I say incursion but maybe the better word is enclosure, as in enclosure of the commons. And this positions AI as just a new method by which companies try to extract value from the things people share freely, and capture that value for themselves. And maybe the way back from this is being more intentional about building our communities in ways where the communities own them. GameFAQs was created to collate some useful stuff together for a community, and it ended up as part of a complicated chain of corporate mergers and acquisitions. But other communities experienced the kinds of upheaval that came with that, and then decided to create their own sites which can endure outside of that - I’m thinking here especially of Archive of Our Own, the biggest repository for fan-writing online. And incidentally, the source of 8.2 million words in that AI training set, larger even than Reddit.
And there’s a lot more to talk about with AI, and the weird things going on in that space. Even just with LLMs, there’s stuff about fine tuning for different tasks, the explosion of open source models, prompt injection attacks and how impossible they seem to be to mitigate… And outside LLMs there are obviously models that make pictures, understand video, do all kinds of different things. But I still I always return to the same question with AI - where does the training data come from? And, if this AI thing catches on, where will it come from, in the future?
Some more reading:
“in 2003 I could have googled this and gotten to a neon blue geocities called Jim’s Teeth DYI”
“Where do we go when good web citizenship itself may be biting people?”
“But if even trusted sources start mixing in just a lil bit then there no incentive not to.”
“Nobody was told this was happening; many fic writers still don’t know that their work was scraped at all.” (added 13 June)
Thu, May 11, 2023
Notes on Twitter, 28th October 2022
So, last night Elon Musk bought Twitter! Let’s talk a little bit about what I think the future holds.
He bought Twitter for more than it is worth. You can tell this is true because after making a binding commitment to acquire it, he then made a load of excuses and paid a load to lawyers to see if he could find a way to wriggle out of it. A lot of that drop in value is not really to do with Twitter per-se, as it is to do with general economic sentiment and tech companies generally being worth less now than they were a year ago. But still! Bad timing.
The reason this is a problem for people other than Elon Musk is that he is financing a bunch of the terrific sum he paid with debt. This means Twitter now has to pay around a billion dollars a year interest on that debt.1 This is a lot of money! Twitter’s projected 2022 revenue is just (“just”) $1.4 billion (edit! I was wrong, that’s per quarter. So I was wrong, it’s 4 times that). If Twitter doesn’t have the money, then either it will need new injections of capital (from Elon Musk? from other investors?) or… the banks foreclose on it? unclear, tbh, but not good.
So the purchase of Twitter is a bet that it could make a lot more money than it is currently making. How to do this? The classic private equity value extraction playbook goes something like this:
- buy the company by loading it with a lot of debt (yes, this one has happened already)
- slash costs (which usually means mass layoffs, and worse conditions and pay for the people who remain)
- do what you can to juice the revenue (charge for more things, trade off making more money per person at the cost of decreasing satisfaction)
- rely on the historical goodwill & reputation of the company
- sell it ideally at the point where short term profits spike, and before the long term underinvestment starts to drag it under
The private equity model is a scourge, yes.
One rule of thumb I find useful to apply is to look at people’s incentives as a guide to their future behaviour at least as much as what they say they’re going to do. Elon Musk has said a lot of things about free speech, and making an “everything platform” and about reining in spam and so on. But I think the basic model of: how does he service this debt, how does he cut costs and raise revenues is probably just as informative as to the future of the company as the stuff he’s said.
OK OK, enough about money
Let’s look at this from another side. What does this look like for the current employees?
Well, it looks bad. You have a new boss who has done the following things:
- publicly trashed, sued, etc the company he now owns
- said he was going to fire 75% of staff (but then later walked that back)
- started out his tenure with a weak physical pun about a sink
- immediately fired the executive team, a few minutes after taking control of the company
- and, importantly, decided last minute not to have the all hands meeting that had been called to actually announce these firings, leaving it instead for people to find out via the press
- also just generally seems like a shitty boss from all the press about his other companies - all those reports of unnecessary factory injuries, etc
If I was at Twitter right now… I would be reaching out to people I know in other companies and seeing if there were any good roles going. Or, I mean, I guess I would’ve done that a few months ago. Getting out before the rush, you know? And it’s worth noting that one of the classic ways that tech companies keep you when you might be tempted to leave, the prospect of stock – well, Twitter is private now, so that lever isn’t so good any more.
So, there is likely to be an exodus of talent from Twitter. And, on the other side, likely lots of layoffs in the future. What kind of impact is that going to have on the company?
- worse spam prevention - which means more spam, but it also means more arbitrary false positives
- more hateful and abusive content (even leaving to one side the big policy changes Musk is pushing for in the name of free speech - hello Donald Trump)
- fewer new features, which is a bad thing no matter how much people dislike change. Twitter Circles, the edit button, API expansion - they seem to have just gotten up to a good velocity of shipping good features recently, and I expect that to stop
- the return of the failwhale, and, more than that, random parts of the site just not working very well. Searches take longer. Follows are inconsistent. Everything feels a bit more janky.
And the thing is, most users don’t really post on Twitter. They mainly log on to read from a selection of big name accounts that they do follow. (Understanding this is key to understanding a lot of otherwise baffling product decisions - algorithmic timeline, trends, automatically giving people a lastname-bunchofnumbers username rather than prompting them to pick one themselves). But the future of Twitter does kind of depend on the popular kids who sit down and write tweets for everyone else to read. And these are the people who are most engaged with the quality of the platform, the people who are thinking hardest about whether to go elsewhere. So if this gradual deterioration of the Twitter experience drives away these users, then, while the numbers might not immediately reflect this (I am sure there will be meme accounts to fill the gap for a while), the platform is still on a slow decline.
Section break! Let’s zoom out a little.
The thing that makes Twitter special is that it is, to use the hackneyed metaphor, a town square. It’s a place that is, sometimes uncomfortably, public. Politicians can make announcements there. The media will report on things said there. You can shame a company that’s screwing you around and they will ask you to take it to DMs where other people can’t see. It’s a place you can “build an audience”, as they say.
The default audience for a tweet is “everyone”, but this is increasingly unfashionable for a social network! The big defining trend for “hanging out online” is to do it in small spaces, where you are posting only for people who you have a certain degree of trust with. This means group chats, Discord servers, Instagram close friends stories, etc etc. This is where the interesting discussion happens! Where it’s safe! Where you can post your shit without worrying that lots of strangers are going to yell at you!
But the flipside here is that to get into these communities you also have to have a degree of trust with the people who are in them already. This is pretty unproblematic and good if the group chat is, like, your family group chat. But if the chat is “game dev professionals”, and it’s somewhere where people post job links, then those degrees of trust start to get more nepotistic. And it doesn’t have to be quite as straightfoward as that - one thing that I value from an earlier version of Twitter was creative discussions being had openly, where I could lurk and absorb them.2 I think I learned a lot, and would be a worse artist and game designer without them. And now to get those same insights, it’s necessary to already be friends with the right people and hang out in the right places. And, likely enough, that means being the kind of person who shares the same kind of background and experiences with the people who have these kinds of insights.
Of course, this is kind of nostalgia for a now-vanished past, and I don’t think it’s as easy as just saying everyone should post all their spicy criticism publicly to solve this. They won’t, there’s too much scar tissue, everyone has learned not to do that. For many gamedevs, Gamergate left a lot of trauma about having a public persona that could attract hate. Similar swarms of harassment roam around even now, let alone the constant chipping of the soul of people making tedious replies or boosting hate to tear it down. I don’t think we can simply go back. But this sense of “the public” is a thing that Twitter gave us, and is an element of the social media ecosystem that has value.
Here’s the bit where I plug the thing I’m working on
I think a kind of interesting response to this kind of thing is a re-insistence on the value of good old fashioned email and websites.
Email was a big thing over the last few years, as Substack and the like took off - ironically driven by, on the one hand, writers fleeing the journalism jobs that private equity had hollowed out, and on the other, venture capital funding trying to turn email newsletters into a more enclosed platform (Substack). I think there is something solid amid that hype, though - a sense of a more direct connection with an audience. Something (despite Substack’s efforts) less dependent on a platform, and more of a model where the platform is just a service you can switch between, taking your subscribers with you.
And websites also still exist. Even more so than with a newsletter, you can make a website take the shape you want it to. It can look how you like, it can slowly change colour, it can get updated rarely or often. There’s mechanisms, although they’re old fashioned, for learning when a website has added new stuff. And there are standards, although they’re kind of new, for populating a comment section with things that people have said elsewhere. You are reading this on a website right now!
But the thing about websites is that you kind of have to be a nerd to make one. Sure, Wix and Squarespace and Wordpress.com exist, and do make it more accessible, but they’re kind of annoying, and most of them are expensive, and they’re kind of a drag to update. There’s not enough joy there (unless you are a nerd). They don’t feel like a place you wanna hang out, but an obligation to fulfil.
So this is (one aspect of) my big project right now. Downpour is a tool that lets you make a fun HTML thing from images (and later text), straight from your phone. It is a platform, in that there is built in hosting and following other accounts and all that. But it also has a button you can push which will export a particular project as a zip file that you can then put on a webhost of your choice. itch.io or neocities or any service that can serve some HTML.
Downpour is still a work in progress - it would be good if it was out now and I could capitalise on all the people looking for a life raft, should Twitter sink. But it’s already feeling good, and I can already make things with it. Here is a visual diary I have been keeping for the last week or two. Speaking from my very biased position, but it’s been fun to make? I drag images around and make a collage & set the links up, I added a few pages on the train last night, it feels easy. I’m very much looking forward to seeing what things other people will make with it.
So! If you would like to hear when it does come out, then you can put your email address in the following box:
And if you think it’s an interesting idea and want to talk about it, please do get in touch.
-
Why does Twitter have to pay rather than Elon Musk, you might ask? And to that I would say: good question! I think the answer comes down to “because he can” ↩︎
-
see also: the continuing complaint about projects which have a Discord in lieu of documentation, and the way that all of these private spaces resist archiving ↩︎
Fri, Oct 28, 2022
Epicycles
I have just released a new tool for generating epicycles.
If you’re wondering what an epicycle is, here’s the short version: it’s a pattern like a Spirograph might make. You know, those toys you might’ve played with as a kid. Where you put a pen tip in a plastic cog and then spin it around inside a larger plastic cog and then it makes a nice shape on the paper.
The longer version goes back to the motion of the planets. Before it was widely agreed that they orbited the Sun, people would still observe them and try to predict their movements. People have always wondered about the sky, and while most of it stays in place relative to itself, there were some bright spots that moved within a complicated pattern. Usually the planets would move forwards across the sky, but sometimes they would go backwards for a bit (the term for this is retrograde motion, which you might recognise from horoscopes). So, while inventing the concept of geometry, the ancient Greeks found that they were able to describe this motion by tracing the way a point would move if it was on a circle that was itself moving around a larger circle. Mostly it goes forwards, but sometimes (when the smaller circle is turning against the larger one) it goes backwards. And that’s what an epicycle is! Wheels within wheels.
There’s a lot of history I’m skipping here, but let me gesture to it with this diagram from Johannes Kepler’s 1609 treatise Astronomia Nova, which plots out the course of the planet Mars (as recorded by Tycho Brahe). The kind of shape it describes will become familiar to you if you spend a few minutes playing around with this tool.
So! This tool is a tool which will let you visualise the path taken by a point controlled by the motion of many circles combined together.
Each circle within the tool is defined by three parameters:
- loops: the number of times we draw the circle going round
- size: how big is the circle
- phase: where on the circle do we start drawing from
And you can also toggle on a mode where the phase changes over time.
But that’s it! But within that, I find it pretty remarkable the range of forms it can create. I love making tools that provide a set of simple parameters, but which can form a surprising variety of outputs. Not least, because I like to explore them myself - and even now I’m releasing this tool, I don’t think I’m finished finding new things within it.
I originally started investigating epicycles in order to generate files to plot with my pen plotter - and this tool is still useful for this, in that pressing the ⇣ button in the corner will download a SVG of the currently displayed epicycle. You are free to use these SVGs to do whatever you like with - plot them, print them, use them as the basis for a art or graphic design. Credit for using a neat tool is appreciated, but ultimately this is just maths & as such belongs to everyone.
All of which sounds very serious - but really, this is a tool for messing with. Push some buttons, move some sliders, get a feel for it, and see what interesting loops you can find. Go play!
Tue, Aug 2, 2022
CW: Mastodon
With the recent news that Twitter is being sold to Elon Musk, lots of people have been setting up or rediscovering Mastodon accounts. Much fewer than have been setting up Discords, but still… a good number.
And with this new influx, I have been seeing lots of discourse about CW warnings, their use, people complaining about people using them wrong, people complaining about people complaining about people using them wrong, etc. 1
So I thought I would use this as an opportunity to write a little about the content warning system, and how I have seen them used in practice. Not least because they are one of the things I have been thinking about while developing Downpour.
So, what is this system? It’s an optional bit of metadata you can add to a post. When activated, it gives a little textfield which is the CW, and is directly shown to a viewer. And then the viewer can click on a little SHOW MORE button to see the main part of the post.
Let’s simulate it here in this post, using the built-in <details> HTML tag2:
The CW warned you that there was going to be a mention of writing, and there was! You could choose whether to view it or not. It is a consent system for posts.
So what kinds of things is this used for in practice?
Spoiler warnings
This was the use-case that convinced Gargron to add CWs to Mastodon! You can talk about a show and also people who haven’t yet seen the show can choose whether to see the spoilers or not.
Allowing you to talk about shit that feels a bit too heavy to talk about without the reader opting in
(“ph” stands for “physical health”, as distinct from “mh”. The “-” means that it is negative)
A classic use of a content warning! And helps provide an atmosphere where it can feel a bit more accepted to post about difficult stuff you might be going through (or maybe I am just in a good community, and post private).
Allowing you to talk about shit that feels a bit too boring to talk about without the reader opting in
This is also important! Lotta boring stuff, and yet an important part of posting is allowing you to say all of the stuff that is a little too boring for you to directly message a friend or loved one about. Because posting is for the void, and sometimes there is stuff you wanna say that only the void wants to hear.
Talking about stuff that is fine for you but might have higher than expected emotional load for other people
(“alc” is short for “alcohol”)
Sometimes something is fairly casual for you to post about, but you know it could be harmful for others to read. You might hesitate to post it - is saying this casual thing worth maybe ruining someone’s day? But a CW can make that easier to post about. And it doesn’t have to be a serious thing - necessarily day-ruining, just a moment of discomfort.
This is I think the category that causes the most controversy & strife about the use of CWs. This requires you to project out to a hypothetical audience and consider how your words will be recieved there. This is kinda hard to do, because empathy is a skill, and there is a lot to learn about what maybe-innocuous things could be unpleasant or upsetting or inaccessible to view for other people.
It’s also hard because the nature of wide-broadcast social media is that a post can travel beyond the specific audience (and specific norms) that it was originally written for. This manifests on Twitter as people learning to couch their words really specifically - full of caveats and hedges because they’ve had the experience of getting negative replies for not considering a particular perspective when posting a short and context-depended tweet. And on Mastodon a post can be written for a small group, travel further - and now someone is asking someone to please add a CW for whatever specific thing. I don’t think this is specifically a problem with CWs as much as a problem of social networks which tend to take statements and recontextualise them into broader contexts and conversations that they were not originally intended to be a part of.
Topic markers
Once you are in the habit of using CWs, then you can find yourself using them just to kind of denote what you’re gonna be talking about. It’s a little intro to the post, a title, a subject line. “here are my thoughts on blah” => “blah blah blah”
And also this is helpful if you’re not interested in the topic, it’s just boring to you. It helps here that replies by default inherit the CW of the post they’re responding to.
Little jokes
Okay, this is the one I really wanted to talk about. I love the rhythm of the CW, the way that it builds a little arc of anticipation into the process of reading a post. It makes the reader complicit in the unveiling of the post. Whatever happens after you press that button is partly your responsibility. It was my bad post, but it was you that clicked on it and chose to view it.
You probably clicked on that fold out bit just above automatically, didn’t you? And now you have [REDACTED TO PROTECT THE INNOCENT] in your head. And is it my fault? Yes. But is it also your fault? Kinda!
And that’s really the source of a lot of the humour that can be derived from CW-based jokes. And it’s a source of humour that feels very videogames to me. I mean, it’s a joke based on interactivity. A joke where the humour rests on the fact of interactivity, not just one that is delivered within an interactive context.
Which is why I say that CWs are an inspiration for Downpour. CWed posts are a tiny interactive experience, and derive a special type of power from that interactive nature. What if we made them… just a little bit more capable. Just a little bit more complicated. But still kept the scope nice and small. Shitpost sized. What could people make, then?
-
This is not quite true - I don’t have a public account on there & only really follow people I am either friends with or who are on the small and close-knit server I am on. So as a result I have mainly seen a few boosts of some of the more meta commentary, from which I have deduced the presence of all the other posts. I am not about to go looking for them to confirm, because they seem annoying. ↩︎
-
Just want to give a little shoutout here to Everest Pipkin’s work Soft Corruptor, which is built entirely out of nested <details> tags. ↩︎
Sat, Apr 30, 2022
New project: Frog Chorus
Together with Viviane Schwarz, I am releasing a new social network for frogs. It’s called Frog Chorus, and it’s a place where all you can do is ribbit.
The initial seed of the idea and the illustrations came from Viv, and the coding & the rest of the design were done by me.
The site is a social network for frogs. Open it, and you will see yourself sitting as a frog in a pond. You can click to ribbit, and you can hold down to do a really big ribbit. And you can see and hear other frogs ribbiting in the same pond. It’s the smallest satisfying online social space that I can imagine.
The last few years have been difficult, for reasons that I am sure will be familiar to many of you. Alongside the typical sense of isolation brought on by Covid precautions, I developed chronic fatigue, and have had to be very careful about my energy expenditure. This has meant I have spent a lot of time online—even more so than I usually do. And—there are a lot of opinions online. There’s a lot of things people share, a lot of Takes, a lot of Content. This is, on the whole, a good thing. But sometimes, when you’re tired and overwhelmed but also you still have this real thirst for connection… you want a way that you can be in the presence of people but also not have to say anything. You want to just be able to ribbit, and maybe recieve a ribbit in response. Or to leave a pond open in a tab, occasionally hear a frog plop in or ribbit, and know that someone else is around.
So that’s the motivation behind the project. Why is it built the way it is?
- it’s designed to give you just enough control that you feel able to express yourself. You can choose when to ribbit, and you can choose how big a ribbit you want to do. And that’s enough? Or at least, that’s a lot. It allows you to reciprocate. Someone does a big ribbit, you respond with a big ribbit. You heard what they were saying, and you responded in kind. I am generally very sceptical of people saying particular bits of human behaviour are innate, but I am pretty sure that “repeat after me” is.
- it’s also designed to be very sharply limited in terms of how much expression is possible. There is a term used among designers of games where users are able to express themselves and then share that content with other players - it is “Time To Penis”. As in, how long does it take a player to make something that looks like a dick and share it. Or a swastika, if they want to go for fascist abuse rather than sexual. Frog Chorus is not completely immune to this, because nothing is, but it is resistant to it. You can’t choose your username, you can’t choose your colour or pitch, you can’t choose where you sit within the pond. I guess you could Morse code out the letters P-E-N-I-S, but that’s not very satisfying.
- but there’s still a sense of persistent identity. Even though you might not know who the person controlling each frog is, you can still recognise that they are the same frog each time. You have a sense that you are there with specific people, and get a sense of their personalities from how they ribbit and how they respond to ribbits.
- I love a minimal interface, and I love letting people discover things. Generally as a developer I have more fun figuring out the smallest set of things I need to build to make an experience compelling than I do figuring out the largest set of things I can provide without the experience collapsing under its own weight. And of course, the fact that it’s much less work that way is also very appealing.
- finally, and very much not least: it’s funny. I’m happy with the goofy ribbit samples I recorded, I think it’s fun to be a frog, I think it’s good to be in a space that is playful online.
I hope you have fun being a frog too.
And a quick technical rundown, for those of you who are interested:
- the site is running on a boring Linode VPS (that I plan to migrate my personal site to, once I get round to it)
- the backend is written in Rust, pointed at by Apache running as a reverse proxy. The backend is essentially a heavily modified version of some example code showing how to use actix with websockets to make a chat room.
- and the frontend is built in Typescript, using my homebrew vector utility class. There is a bit of fussing to try to keep performance reasonable — some stuff with multiple canvases and dirty flags to try to avoid re-rendering unnecessarily — because I hope that people will keep this open as they go about their day, and it’s good not to waste computing power unnecessarily.
Mon, Apr 25, 2022
Collective backups
I’ve not set this up, but I think it would be a good idea.
The problem:
You have a NAS or a hard drive in a drawer or a second computer with some storage space. And you do backups, because that’s the sensible thing to do in case your main computer breaks. But you also want to still have your data even if someone steals all your computers or your house burns down or some other calamity happens.
The easy way to solve this would be to pay a company to keep all your stuff on their servers. But that’s expensive and also it kind of sucks that everything is based around paying a company money.
(Is it expensive? Backblaze costs $70 a year. Compare: About $140 for contents insurance, which would replace all my stuff in a similar situation, or $35 for a 2TB external hard drive, which could back up all my stuff in cases that are much less calamitous. Depends on how you feel about money, and how you feel about your data.)
And you have a couple of friends in a similar situation, and they have the same problem and feel similarly about paying rent to a large company.
A solution:
Everyone sets up Syncthing for their backups. Syncthing is an open source, peer to peer, encrypted program that keeps a set of files in sync between two or more computers. It does all the stuff so that the computers can talk to each other over the internet (even if they’re moving around and connecting to random wifi hotspots, like a laptop or a phone would be) and also figures out what files have been changed and sends the changes between them.
This is actually a pretty good way to keep backups yourself - if you have two computers, you can set up Syncthing and stuff will keep synced between the two and you don’t have to remember to do back ups manually.
But you can also set it up so that all your stuff also gets synced with your friend’s computer. And now you have off-site redundancy. Maybe your friend is happy to just do this for you, because y’know, you’re friends. Or maybe you agree that in return you’ll let them sync their stuff onto your computer. Now, probably your friend does not have the kind of setup that can guarantee perfect uptime. Their internet might flake out, they might upgrade something and break their computer for a week, they might get all their stuff stolen. There are two answers to this. One is: this is already a secondary backup, in case something catastrophic happens to your stuff, so you can probably assume that stuff isn’t going to happen at the same time something catastrophic happens to your stuff. Or you can find a third friend and divide the risk even more. Insert extra slices of swiss cheese as appropriate.
So, a final thing to address: if you upload your shit to Backblaze or Dropbox or wherever, you kinda trust that they won’t go snooping through it. They have a business model which is about storing things, and about not looking at that stuff more than they are legally obliged to. But a friend does not have a business model, and might decide to snoop. Or they might have a housemate who has access (because their computer is also the thing they use to play music in the living room, say). Two answers I can see here: one is to only do this with people you have a basic level of trust with. Or with data that is important to you but not something where there are catastrophic consequences to having someone poke around. And the second is that you can use Syncthing’s new encrypted mode, which stores stuff on a computer without letting the person who runs that computer see the actual contents of the files.
So. Seems like a nice idea? If you have friends who have a reasonable level of technical skill, and a preference for co-operative solutions over capitalist ones. Like I said, I haven’t set this up yet, but if you have, I’d be curious to hear how it goes.
Tue, Apr 5, 2022
Announcing: Downpour
Today I announce a new project! This is the big thing I have been working on since leaving Niantic, and I am very excited about it.
It is a game making tool for phones, called Downpour. Here is what it currently looks like:
The utopian vision for the project is this: making a tool so that anyone, without prior knowledge, can make something interestingly interactive in a spare ten minutes. And without having to have access to a computer. What would you make if making a game was as easy as writing a letter?
It’s inspired by seeing how an accessible tool can open up a creative space that wouldn’t otherwise exist. Seeing the impact that tools like Bitsy, Twine or itch.io have had in creating spaces and genres that wouldn’t exist otherwise. Or even outside of games - for example, my own Cheap Bots, Done Quick!, or musical instruments like the TB-303. The transformative power of approachability.
More specifically, though, it was inspired by my experiences making a flatgame. Flatgames are a type of game where you put together handmade images in a (flat) space you can wander through and exist within, but without focusing on traditional gamey stuff like collision or 3-D-ness or winning. As someone who is so often On The Computer, I loved the process of drawing and collaging things together… but I hated the part of the process where you had to scan things in, photoshop them and fuck around with the settings in Unity (I spend enough time fucking with things in Unity). If only there was a way to automate those annoying processes. And if only people didn’t have to learn the basics of Unity and of coding to make them. So, I thought: what if you made this on your phone? A device with a camera built in, and that you already have in your pocket.
The game format has changed a little in the process. The games you can make are fundamentally hypertext - they are built around capturing images, and linking those images together. Select the door in the image, and link it to the monster that’s hiding behind the door. It turns out this is enough to make expressive, interesting things! I spent a week or so at the start of the year making games with this tool, and I’ve not yet scratched the surface of the possibilities. And I’m not done yet.
If you want to try it out and are within reach of London, the best way is to come to the Now Play This festival between the 8th-10th April. I’ve made a special build for them, and there will be stations set up with crafting equipment, props, a doll house, etc. Plus, the festival is a great time, with lots of other cool & thoughtful games and artworks.
Or, of course, you can wait for the full release, which will be coming out later this year (touch wood). If you want an email when it comes out, you can sign up here: downpour.games.
Wed, Mar 30, 2022
CBDQ update : videos, every two hours
This is a crosspost from my Patreon page, but with the bits thanking people for their support removed. However, if you do support me there: thank you. And if you don’t and use Cheap Bots, Done Quick!, please consider doing so. It keeps the servers humming & pays for my time doing this kind of tweaking and fixing.
So, after leaving Niantic, I put a bit of time into rejuvenating and restoring CBDQ. I had neglected it a bit, what with having a full time job and falling mysteriously ill. It was running fine, but the thing about maintenance is that you can keep putting it off and it’ll be fine until one day it’ll just fall over. So it was a good time to go in and update and upgrade things, sand off the barnacles and apply some fresh paint.
So, to switch out of marine analogies, I migrated CBDQ from running on my server that I’ve had for about a decade now, and onto a fresh shiny one where everything is up to date and there are fewer weird configuration bits hanging around from this project or that. I replaced the old SVG rendering solution, as the old one was very much deprecated and was in danger of stopping working - this was kind of frustrating, as there was nothing that was a good drop in replacement. So I ended up putting together a package myself, which wraps “puppeteer”.
(sidenote: SVG is a language for describing vector images. So far, so straightforward. However, SVG can also contain arbitrary bits of HTML… and in fact, if you want to do stuff like “render text, in a font, with linebreaks”, you pretty soon start to make use of this functionality. So, rendering it is complicated! And in fact, the server actually does this by spinning up a little instance of Chrome for every SVG it’s trying to render, loading the SVG in as a webpage, loading any images or custom fonts or whatever it might contain, taking a screenshot, and then closing again. Whew! This also means the new SVG rendering might change the output of SVGs a little - sorry if this broke your bot!)
What else? A lot of work trying to trace down an annoying bug where sometimes CBDQ’s processes would get stuck, not doing all the tweets they were supposed to and also taking up system resources. But also not emitting any errors or giving any indication of what was wrong. I am still not fully convinced I’ve ironed it out, but I have at the least made it happen less often. And not need me to come in every so often and turn it off and on again to fix it. And as part of that I did a lot of work to make the internal error logging cleaner and more sensible. Boring work, I know, but it’s this kind of thing that keeps an exciting service running. Sometimes I think making tools is like 5% exciting shiny things, and it’s like 95% doing a load of boring stuff so that people who use them don’t have to think about it themselves. I also went through and upgraded all the node dependencies. Fixed up the admin panel that I use to block spammers.
Here’s where I talk about new features
You1 asked, I listened! You can now set your bots to tweet every 2 hours. For when every 1 hour is too frequent, and every 3 hours too infrequent.
And this is an exciting feature that almost snuck in for free - you can now use CBDQ to post videos! Just use the vid
tag to link to a video (in a format that Twitter supports), in the same way that you’d link to an image. Here’s an example: {vid https://cheapbotsdonequick.com/example.mp4}
.
And also I made a bot, inspired by my love of the band Dry Cleaning. I mainly mention this here because the source might be a helpful reference if you’re trying to make a lyricsbot.
Long live the bots!
-v
-
Okay, two people asked. ↩︎
Wed, Mar 23, 2022
Making Room for people with chronic illnesses
Update, 20 Apr 2022: The recording of the talk is now available to watch on the GDC Vault
This is a rough transcript of a talk I gave at GDC 2022, as part of the “Making Room” track. So it’s written in a this-is-for-speaking style, and you should imagine the headings as slide transitions. OK! Let’s go:
Hello, I’m v buckenham, and today I’m going to be talking about chronic illness and what you can do to support any of your employees who have a chronic illness.
So, first things first, I should say now that I’m going to be focusing on my own experiences as someone who has a chronic illness, as that’s what I know best.
[spoiler warning]
- ask people what they need
- build an environment of trust
And as a spoiler warning for the end of the talk, I should say more broadly the important thing is to listen to your employees and find out what they need. And to build an environment of trust so that they will actually tell you about what’s going on and what that is.
And the other thing I should say upfront is that my experiences are not unique.
60% of Americans have at least one chronic illness
So depending on how you define it, about 60% of adult Americans are living with at least one form of chronic illness. Chronic illness can last from several months to a lifetime and can take many forms: Long Covid, arthritis, musculoskeletal pain, diabetes, asthma, migraines, blood disorders, cancer, heart disease, irritable bowel syndrome, autoimmune diseases, and a range of mental illnesses like depression, anxiety. the list goes on.
So. Let me tell you my story.
My Story
I’ve worked in videogames for about a decade, much of that time in small teams, and in indie spaces. I’ve put on games events, including being part of organising That Party here at GDC with Wild Rumpus. I worked on a game called Mutazione for a few years, then joined a startup making a weird digital physical stacking game called Beasts of Balance, for which I did the majority of coding & game design for. We were eventually acquired by Niantic (who make Pokemon Go), where I worked as a lead designer.
So August 2020, the pandemic had hit, everyone was working from home. Obviously a weird time in general, but I was dealing okay… until one Monday morning, I woke up, got ready, sat at my desk for our normal morning let’s-start-the-week meeting, and found I was kind of sliding out of my chair a bit. I’d had a migraine earlier in the year and the after effects from that were kind of similar feeling, so I wondered if it was something like that, and moved to my bed to keep working. An hour or so later, it was clear I wasn’t really in any kind of state to do work. And then found I wasn’t really in a good shape at all. All in all, I basically spent the next month or so in bed other than medical appointments and for quick trips to the toilet and to the kitchen.
I had a lot of investigations done
(here’s me in a hospital gown about to get an MRI scan)
but none of them turned up anything concrete that would explain the fatigue.
And at this point I’m still after all this time trying to chase down a proper diagnosis, but my assumption at this point is that I have Chronic Fatigue Syndrome, which is a “diagnosis of exclusion” - basically, when you are suffering from fatigue, have been for a while, and there’s no other good reason why. My symptoms seem especially triggered by being upright - standing, walking, even sitting up in a chair. Which means I also suspect PoTS, which stands for Postural Orthostatic Tachycardia Syndrome. This is basically where your heart doesn’t respond appropriately to the extra challenge of pumping blood all the way from the feet up to your head. Which it turns out is more effort than pumping it around when everything is on the same level. The primary symptom I get is what’s called “brain fog” - when this is bad, I can feel my eyes unfocusing, my attention starting to slide off things, my capacity to, just… think about things goes away. And this also means frustration with memory, just lots more of those “tip of the tongue” feelings. I know this, I knew this, but—
And I should say that this was really scary. It turns out a lot of my self identity was built up around being a person who can do this work, who is a sharp thinker, who exists in the world, who can run around plugging cables into things at events. It’s really scary to not know what level of function you will regain, to not know if you will be able to do those things again. Ever, maybe.
Over time, I’ve slowly improved a little - after a month or two (and when my sick leave had ran out), I returned to work, although initially on reduced hours, and only slowly picked up the responsibilities I had beforehand. Around Christmastime that year, my health had improved to the point that I could go for like, half hour walks in the park nearby, as long as I could sit on benches along the way and rest.
And this is pretty much the state I’m still in now, 19 months later. I have left Niantic, I’m started up my own company, working on ██ █████████ ████ ████████ ████ ███ ███████ (████████! I’m announcing it next week! sneak preview!). The fatigue has gotten better and worse. At my best times, I’m able to travel into London and work in an office for a day or two or see friends - but I still have to be careful with resting before and afterwards. And there’s times when I do too much, and have crashes - the worst of which was last November, which took me back for a week or so to being unable to leave my bed for more than a few minutes at a time, and which I’m still not fully recovered from. I am giving this talk from bed, now, although I would much rather have travelled out to SF, and be hanging out with all of you in Yerba Buena Gardens eating icecream.
What was helpful
So. Let me talk about some of the specific things that have helped me.
First up, just an obvious thing
Medical insurance
I’m not going to go on about the difference between US and UK healthcare systems, but I do want to state the obvious and say that not having to worry about access to healthcare is a big thing. Do what you can to make sure people don’t have to stress about this. even outside of the US that might mean health insurance! Although I will say that Niantic had good coverage… but it would only cover diagnosing a chronic condition, and would stop as soon as that happened. And I’ll say that the NHS is also bad at covering this stuff - literally yesterday I was on the phone, still trying to chase up a referral to a rheumatologist to get a diagnosis, years into this. So… it’s not easy, and chasing up healthcare can be a job in itself.
What else?
Paid sick leave
I should say that the norms in the UK are much more generous than in the US. Here, sick leave is counted separately from holiday, and everywhere I have worked has had an allocation of paid sick leave, which (until this happened) I had never had to worry about the duration of.
This is crucial. In the case of Long Covid specifically, being able to take time off and rest in the early days is what makes a full recovery much more likely. And worrying about the financial hit is what pushes people back to work before they’re ready. Before they ought to.
And I’d say as well that time off is not just limited to times when people are too ill to work, but also about getting to medical appointments. It can helpful to track this separately, and flexibility can help a lot here if people need to take random hours here and there.
Working remotely
And working remotely, which is a thing I think everyone has had to get better at over the past couple of years. Obviously, this makes a huge difference. The energy involved in commuting, the ability to work piecemeal through the day, with rest in between, the ability to work from bed…
as helpfully modelled by Pixie here.
It sounds messed up to say, but I feel so fortunate to have fallen ill during this pandemic. Comparing my experiences with people who fell ill beforehand, I don’t think before this I would have been able to return to work remotely, don’t think friends would’ve been as up for hanging out online, I wouldn’t have been able to give this talk without having had to travel.
So, speaking of online…
let’s talk about Zoom.
Zoom Fatigue is such a real thing. Illness has made me a fine connoisseur of exactly how tiring different activities can be. And I can really tell the difference between being on Zoom with video or audio only. Just making the “I am engaged and listening to you” face! (at this point I made the face) There are actually academic studies around this that back this up1.
And I’d say as well, that scheduling meetings so people have time before and after to recover from them can be very important.
So, as I said before, after a year or so, I had improved to the point that I could occasionally come into the office. One thing that helped when I did come in was:
A Giant Plush Snorlax
and here you can see me, helpfully modelling it.
Because I was working at Niantic, we had Pokemon stuff around, including a giant plush Snorlax, of the size where you can sit/lie down on it. Because my fatigue is triggered a lot by posture, and lying down helps me a lot, being able to work lying on this giant Snorlax meant I could come in more and for longer than I would otherwise have been able to.
Now, I am not saying that you need to go buy your chronically ill employees a giant Snorlax plushy. And if I was coming in every day, I would’ve asked for a more professional setup. But the basic point here is that tailoring the office space for what people need can be helpful. Different people will need different things, be that desks, seating, computer equipment, noise cancelling headphones, whatever - ask them!
Phased return
So having a lighter schedule especially in that time when I was returning to work helped a lot. A lot of managing this illness is not being sure what your energy limits are. And if you go over them, you’re really punished for it.
So, it’s best to start with a light workload, and a light schedule, and then, if you feel up to it, slowly increase.
Reduced hours
Or this might just permanently mean working less. Either fewer hours per day, or maybe fewer days per week. I am very pleased to see an increasing number of studios bringing in a 4 day week, which seems like both a great move for the workers there generally, as well as specifically for people with chronic illnesses.
One thing that’s important to remember is that having a fatigue condition means that you have less energy overall - so even if you can still technically work fulltime, that means you’re likely cutting back a lot on things you’d be doing outside of work to keep within that energy budget. And that’s just not a good way to live.
Reducing stress
So, for me, there are broadly 3 types of things that tire me out:
- physical. Luckily we make software, so this is less present than with a lot of jobs
- mental. This definitely is present! Hard to get around this. We have to do some thinking sometimes.
- emotional. This is also a big source of fatigue. And it is something that is hard to avoid. Especially when dealing with really scary things, like fear for the future, potentially losing your income, and maybe even your source of identity.
(There’s a kind of funny thing: a booklet I saw early on gave the advice to limit your worrying to a few hours a day. Just not to get too tired out.)
So it’s worth thinking a lot about what sources of avoidable stress there are for your employees, and how you can try to reduce them, and let them save their energy for more existential terrors.
And the final thing that was helpful for me was:
Understanding
Just… knowing that you can ask for accommodations, knowing that you can go “I’m feeling out of it, I need to bail from this meeting”. That lack of judgement if you do so. That matters a lot.
But the flipside to this is that you don’t have a right to know everything that’s going on with your employees. They should be able to have space to have work be about work not about their illness. So. Understanding, but without prying.
OK, but what about people who aren’t me?
So. This has been some stuff that was helpful for me. But what about people who aren’t me? Who don’t have my particular condition. Who work in a different workplace.
Well, I already kind of gave you the answer up top. There’s a lot of different illnesses, and a lot of different people experiencing those illnesses in different ways. So, I’m sorry to say:
Ask them
They will know what they need much better than I can guess at. Your workplace will be different to mine, I can’t give you a perfect answer. Ask them.
[this next bit was cut for time! but you get to see it. bonus content!]
But ok ok, I’ll try to be useful. Here’s a few more examples for various conditions:
For people with Irritable Bowel Syndrome or Crohn’s disease, if they’re in the office, it can be helpful to provide sufficient access to toilets. This can also be something that affects people more or less at different times of the day, so it’s also helpful to be flexible in terms of working hours. It’s also worth considering that commuting in can be a anxious time, in terms of limited toilet access - shifting working hours can avoid rush hour, or maybe it’s more important for them to be able to drive in.
For people with chronic migraines, again, different times of day can be better or worse. Shifting work hours can help avoid the worst times. And if people are in the office, see what you can do to remove triggers. For example, if they’re set off by scents you can remove air fresheners, swap scented soap for unscented, ask people to stop wearing perfume in. If it’s triggered by noise, then maybe they want to move desks to somewhere quieter, or try to dampen noise. if it’s lighting then maybe swapping light fittings can help.
If you have diabetes, then you might need to inject insulin, which some people are very understandably not keen to do in public spaces. It can also be important to eat on a regular and predictable schedule - which means doing things like making sure a meeting doesn’t overrun into lunch can be important.
But for a lot of these diseases - it’s the same kind of thing that’s needed. Providing flexibility, working to try to adjust the workplace so that it fits their needs better, giving people slack to take care of themselves.
So this is the part of the talk where I want to get a bit more real. If you’re here at this session I am going to take it for granted that you want to support employees who are dealing with chronic illness. And why you might want to do that is pretty clear - ie, it makes their lives better, and that’s a good thing. So I want to flip this around, and ask the harder question.
Why don’t people get the support they need?
And I don’t want to assume that it’s just down to people being evil, cackling away in their lairs as their coworkers go through difficult times. People want to help people… and they want to think of themselves as the kinds of people who help people… but good intentions are not always enough.
So why does this happen? Let’s dig into some of the reasons, and see if we can break them down a bit.
Reason one:
It’s expensive.
I’ve described some fairly good treatment from my old employer, Niantic. But I do want to acknowledge here that Niantic is a large company with a lot of money, and most small studios… have less money. I definitely have sympathy for people who are looking at a tight budget, trying to make things work, and then finding that a core part of the team is not going to be able to work at full capacity for a while. Or ever, maybe.
But there’s two things I’d say to this.
First off:
…But it’s the law
it’s the law. In the UK, it’s the Equality Act of 2010, which says that, if you have an employee who has a disability, you are required to make “reasonable adjustments” to enable that employee to work.
And in the US, there’s an equivalent provision in the ADA, which says that employers are obliged to offer accommodations unless that would impose an “undue hardship.”
And I think there are similar laws in many other countries around the world. Now both have a reasonableness test, which means that you’re not forced to make these accommodations if it’s going to bankrupt you, but you do have try.
And for the other reason, I’m going to be a bit cynical here for a second. Making these adjustments might be painful. But that means
It’s… an opportunity?
An advantage that small studios have over larger companies is that they can be much more flexible and respond to the needs of their workforce. You don’t have to worry about making a single policy work for thousands of people, managing all the exceptions that can create - you know the people you’re working with, and you can adapt how you work to fit them.
And… there’s lots of people out there who have these kinds of invisible disabilities, who can’t fit into a regular in-the-office 9-5 type schedule, who have tried that and found it doesn’t work for them. And, a lot of them are really talented. So, by making your workplace somewhere where they can thrive and be happy, you can (and again, apologies for being really cynical here) hire a level of talent you might not otherwise be able to afford. Because what they value is a workplace where they can work. And work sustainably, and which supports them to have a life outside of it.
And I’d say as well, these people often have another skill that can be undervalued in the workplace, which is pacing themselves and setting boundaries and knowing what their limits are.
Ok, so, next reason you might shy away. And here we’re getting a bit closer to the bone.
It seems unfair
So maybe it seems unfair. You maybe have a little niggle in the back of your mind, like – if I put this stuff in place for one person, then how am I going to explain it to everyone else? How come one employee gets this stuff and other people don’t?
Or maybe it’s more than that. Maybe the reason is actually
You’re jealous
Maybe you’ve been listening to this talk, hearing me talk about working 4 day weeks, taking time off to recover from things, lying on a big Snorlax plushy… and you’ve thought… damn, I’d quite like that myself. How come they get that stuff and I don’t?
And to this I say. Yeah. That’s fair. And if you’re finding yourself with this kind of reaction, then
You deserve better too
Like, maybe you’re starting to get a bit burnt out? Maybe you deserve a better work/life balance. And it’s worth just really reflecting on this point, really sitting with any of this discomfort you might feel, any twinges of unfairness you might have. and really reflecting on changes you can make to make your working conditions better, and changes that might make conditions better for everyone who works there. There’s nothing saying that good conditions should only be for people who have a disability.
Everyone deserves better, too
Disability is not an unique thing, it’s part of the spectrum of human needs. Different people need different things in order to be happy and healthy at work. Parents need time off and flexibility for kid stuff. People going through war, people who have suffered a death in the family, people who are dealing with burnout, people whose cats got ill and they need to take them to the vet. People are people, and they have whole lives. And… you don’t deserve to hear about their whole lives, but you should try to give them the space and flexibility that they need.
So this brings us onto the final reason you might not put these accommodations in place
You don’t know they have it.
They haven’t disclosed their disabilities to you. So. Why not? Why wouldn’t they? This talk has been about the positive side of this, what you can do to support people who have disabilities, but on the flipside of this is that people can look at you differently when they learn about your disability. I was hesitant to give this talk, because I knew I would be here talking to a lot of people and being public about my weaknesses. About the ways that I am maybe a little more awkward to employ. And you can’t unring that bell! You can’t take it back, you can’t transform yourself back into someone who isn’t looked at in a different way, maybe with pity or concern.
And I want you to take a moment, and just seriously consider that someone you work with does have an illness that they struggle with, and is concealing that from you because of fear of the consequences of disclosure. Does that seem possible? Can you think of some reasons they maybe wouldn’t be coming forwards?
So. How do you build an environment where people feel like they can come to you and talk about any illnesses they have. Any changes they need. There’s a ton that goes into this, and more than I can talk about here, but fundamentally it comes down to a single word:
Trust.
And this is about the big things, yes, but it’s also about the small things. Do you keep your word about things you casually promise? Are you sometimes dismissive about people’s reasons why they might be late in or struggling with something. Do you take people’s minor problems seriously, or do you dismiss them or brush them off? Can you be trusted to keep a confidence? If someone tells you about a thing they’re struggling with, can they trust you to keep it to yourself, or is it going to spread around the studio? Being a leader, being someone with power over others, that means those people study you intently, and are very motivated to learn exactly what they can expect from you, and what trust they can safely place in you. So: what messages are you sending them?
OK OK OK. So. Let’s sum up.
Summing up
- paid time off
- flexible working times
- working remotely
- or, adjusting the office environment
- reduce stress
There’s a lot of specific things you can do to help people with invisible and chronic illnesses. Some of the big ones are giving people sick leave, giving people time for medical appointments, giving people flexibility with the timing and number of hours worked - do they need to come in late, or work part time, or what. Letting people work from home is a huge thing that is really revolutionising access to the workplace. but if people are coming in, what can you do to make the office environment less hostile to them? Maybe that’s a giant Snorlax. And just generally what can you do to remove unnecessary stress from people’s working lives? where are they carrying a load they don’t have to?
But more fundamentally, the things people with chronic illnesses need are just more enhanced versions of what everyone needs.
- ask people what they need
- build an environment of trust
Everyone has different access needs, and the most important thing you can do to meet those needs is to ask them what they are. But in order to have that conversation, you need to build a relationship where they will trust you. Trust that you will take this seriously, and trust that you’re on their side.
-FIN–
Tue, Mar 22, 2022
r_g_b.html
I have a new webpage up! It is called r_g_b.html [warning for flashing colours].
This was developed out of my older webpage ▛▚▞▗, using the same technique that I call “iterative convolution”.
As the name “r_g_b” suggests, this version is a lot more colourful. You may notice the three static dots of red, green and blue that continuously seed the pattern - everything else is just the traces of those original colours interacting with each other.
This new version is also different in that it runs on the graphics card. I had tried this before, but ironically the faster update loop and full-resolution graphics made it harder to appreciate the patterns that the convolution created. I struggled for a while to create larger colour forms, but am very pleased with where I got to. I’m especially pleased with some of the ways that I’m injecting a little bit of noise, and how it sometimes creates a crunchy, fizzy kind of texture where two colours meet. I’m slightly surprised by how analogue this thing can feel - like it is physical video feedback equipment, or a cross processed negative, rather than an entirely digital effect.
Oh, and like my other webpages, this is interactive. It responds to mouse position (or drag, on mobile) and clicks/taps. And, somewhat more hidden, but if you want to capture images from it, you can press the spacebar to pause (and return to step forwards a single frame).
Fri, Feb 18, 2022
Let's Chat
I’m in the mood to chat with people. A thing I value and care about is being part of a interesting creative community, and to repeat a sentiment you have no doubt heard a lot, a pandemic makes it hard to see people in person, do international travel, etc.
Also I quit a job at a large company and now I miss meetings (???)
So, I am copying a concept I have seen others do, and setting up Open Office Hours. The way this works is, you can go to that page, pick a slot, and it will get added to my calendar (and yours!). Then when the time comes, we can meet up online and have a chat.
Here’s some examples of stuff I would enjoy talking about:
- you’re making a creative tool and want to talk about the design
- you want to compare techniques for making generative art
- you’re making a Twitterbot and could use some help
- you think I might have something interesting to say about a videogame you’re making
- you want some advice on curating a show with videogames in it
- you’re a friend and we haven’t spoken for a while and you just want to catch up
- I’m someone you know from Twitter and you want to say hi and actually have a conversation
- you’re interested in offering me some work
(It is possible, especially if you work at a company with money, that we’ll have a nice chat about me maybe doing some consulting work for you. But that sounds like a nice chat too)
If you are reading this and feeling a little shy and hesitant about reaching out, then I would say that that is often how I feel, and go on, do it, it’ll be nice.
And I should also say that you are very welcome to get in touch with me outside this system (especially if you are in a timezone these slots are inconvenient for, or want to offer me some work).
Okay! Here’s where you click.
Mon, Feb 7, 2022
In Praise of Chorded Input
The other week I saw a tweet by my friend & banging chiptune musician Chipzel, where she was giving a little guided tour through LSDJ, the premiere Gameboy music software.
should probably rehearse this or find someone to edit 😅 pic.twitter.com/ijgKcXDqAw
— ⚡️chipzel 🌊 Brighton (@chipzel) February 18, 2020
It inspired me to download the demo rom, find a Gameboy emulator, and give it a go. I have had some experience with trackers before, so I found it pretty quick to get going with. And fun! It makes the good bleeps and bloops. I was pretty soon at the point where the main limitation on me making nice music is my actual musical ability.
But it also got me thinking about chorded input schemes. LSDJ is a workhorse of a program, able to do a lot of stuff. And it's designed to let you do that stuff quickly - to let you iterate fast, put down a tune fast, adjust things while you're standing on stage. But also... a Gameboy has 8 buttons - 4 directions, A, B, SELECT and START. So it has to make those buttons work hard. And that's where chording comes in.
Chording is a means of inputting commands to software by holding down multiple buttons at once. Ctrl-C is an example of a chorded command. Hold down Ctrl, then press C while you're doing it. Text copied. But you can also make chording work harder than that. So, in LSDJ:
press A: insert note on empty step
while pressing A, press RIGHT: increase the pitch of a note by one step
while pressing A, press LEFT: decrease the pitch of a note by one step
while pressing A, press UP: increase the pitch of a note by one octave
while pressing A, press DOWN: decrease the pitch of a note by one octave
(here's the manual, if you want to have a look at the other commands)
Chorded input is rare these days - the movement of software to touchscreen devices argues against it. It works best when there are physical buttons to press, where you develop muscle memory for where those buttons are. It's not great for discoverability, unlike context-specific controls - you don't know that holding SELECT and pressing B three times will do anything until you do it (fyi: it selects an entire screen of notes). You can design to mitigate this - the same commands working in different contexts, like Ctrl-C copying objects of many different types, across many programs, or those LSDJ commands above working for any type of sequence data, not just notes.
So: chorded input is useful in situations where there are no other viable choices, fine. So why am I writing about it? Because it's fun. It takes a little work to learn, but as game designers know, learning is fun. It uses muscle memory - but developing muscle memory is fun, and exercising it once you know it is, too. It is fast, once you know it, and developing that speed is satisfying. It's not discoverable - but that means it feels like secrets. It's a form of input that doesn't really need much feedback from the system, unlike touchscreen-like interfaces. You don't need to look at what you're pressing, but can input a whole sequence, with decent confidence that it'll be interpreted in the right way. You can input commands as fast as your thumbs can move! And your thumbs don't have to move far - the Gameboy is designed so that you can go in any direction, push any combination of A & B without lifting them. And the buttons are designed for tactile pleasure - but I've experienced similar joys with Teenage Engineering's Pocket Operators, where the buttons are hard little ciruitboard studs, optimized for value engineering.
All the examples I've given for chorded input come from music software, and I don't think that's a coincidence. It's an area where there's an expectation that users will invest time into learning the intricacies of the systems they're using, and that that investment is part of the joy of it. And they want to cram features in, and are happy restricting the inputs - that's basically what a musical instrument is, a device that can produce a wide range of [audio] output via subtle manipulations of the inputs. But it's not just music software: pretty much all the joys I've listed can be used to explain people getting so into learning Vim or Emacs. "It's so efficient", they say, "I barely have to move my fingers from the home row". They enjoy learning more and more arcane commands in order to use the software more efficiently. They enjoy the dance of their fingers as they perform increasingly more sophisticated operations at a speed only limited by thought. (I... don't. I can't be bothered to learn those arcane commands, I'm happy doing things inefficently. Especially because by the time I open up Vim or Emacs, I probably have enough problems already)
Finally, I guess I should mention that there are also methods of text entry that use chording. There's a whole alternate history of keyboard technology where this became dominant, where everyone wears weird gloves and twitches their fingers in place in order to enter text. As it is, this is really only mainstream among stenographers, whose job is literally all about typing fast & accurately, and where you have to take a course to learn to type.
Sun, Mar 1, 2020
Apple is a type of food that restores 4 Hunger Points.
I have been excitedly following the progress of Electric Zine Maker, by Nathalie Lawhead. It’s a goofy, idiosyncratic software application that helps you make 8 page foldable zines. It has a potato tell you how things work. I wanted to try it out.
A few months ago, I was looking through a fan-wiki for some show or another, and I came across the entry for “Apple”. It earnestly explained that an apple was a type of fruit, descibed an apple’s typical appearance, and that various people had eaten one or mentioned one at various times and I was just really struck it. The care that had went into this entry, the seriousness with which the editors had approached an absurd task. What is an apple? Describe it in a single sentence for people who definitely know what one is already. It’s important.
I was so struck by this, I decided to see what other wikis had written for “apple”. And pretty soon I found myself systematically collecting the first sentence* for all the entries for “apple” in all the wikia.com wikis. This took a little while. But I now have a text file with 190 lines, each describing the place of “apple” within a fandom.
But I didn’t really have a purpose for this text file, besides the feeling of having an interesting text file (underrated feeling, imo). So last night I decided to make a zine, to test out my corpus and to test out this exciting new creative zine-making tool. I asked my computer to pick 7 entries at random, and I combined them with some stock images (because they have a very similar vibe, I think) and some built in grunge-ifying filters (because this is a zine, after all).
And here it is, “Apple is a type of food that restores 4 Hunger Points.”:
- a version that’s nice for reading on a computer
- a version that’s designed to be printed out on A4, cut up and folded
- a version that’s designed to be printed out on “letter” sized paper, cut up and folded
Supplementary info, if you’re printing this out yourself:
(* or the sentence that descibed an apple, or very occasionally I did some light editing to make it fit with the rest of the corpus. This is the magic of collecting things by hand for artistic purposes - you can just make some judgement calls as you go.)
Fri, May 24, 2019
20 Games I Played Or Did Not Play In 2018
10 Games I Played This Year
Black Room by Cassie McQuaterThis was one I really wanted to show in this year's Now Play This, but we couldn't find a space for it. I'm generally very excited about Cassie McQuater's work, and it's been great to see this sneaking onto a number of game of the year lists. This game is an unfolding of browser windows, delighting in the tactility of the web, the ways that windows can pile up, get bigger or smaller, can contain fields of content to pick through. It's a collage of recycled sprites, voids to pass through and plains scattered with discarded objects. It can be hard for work that lives in a browser to escape the general scattered attention of everyday life, the pull of the next tab over, but this definitely did for me.
Minit by Kitty Calis, Jan Willem Nijman, Jukio Kallio & Dominik Johann
My bio on Twitter used to be "i always liked broken games the best anyway". I still stand by that, and you could point to many of the games on this list to back that up... Not this one, though. This is a game that is made by masters of their crafts. Nothing is larger than it needs to be, there's no pointless repetition, everything has been worked on to add jokes in the right place, surprises in the right place, always something new to see. It's like a tasting menu at the kind of restaurant where you reserve a table at a year in advance.
Grace Bruxner Presents: The Haunted Island, a Frog Detective Game by Grace Bruxner, Thomas Bowker and Dan Golding
I had played a bunch of Grace's previous games, and I had friends who were keen on them, but I thought they were... fine? Small little spaces with curious objects and funny characters, but I didn't really get them, y'know? And then I went to Fantastic Arcade and played this and met Grace and both experiences were delightful. For a while I was scared that this game that is so funny & full of charm was only funny & full of charm because I had met Grace and found *her* funny & full of charm. But luckily it seems to work for other people, too.
Holedown by Martin Jonasson
A book I keep going on about is Pilgrim in the Microworld by David Sudnow. It is from 1979 and it is still once of the best books about the experience of videogames that I've read. It attempts to describe, as straightforwardly as possible, his experiences of playing Breakout again and again, as he attempts to clear the screen with a single ball. The joy as the hand moves the stick, moves the paddle, moves the ball, moves the eye. Holedown is basically Breakout, but somehow Martin managed to find new and exciting things to do with Breakout. The most obvious thing is that he gave the corners round edges, which is a simple change that has so many consequences. Holedown is also as juicy and as satisfying as you'd expect from someone who gave the "Juice It Or Lose It" talk (with Petri Purho! who is working on Noita, below), showing all the ways you could make a game of Breakout more juicy and satisying to play.
Into The Breach by Justin Ma, Matthew Davis, Chris Avellone and Ben Prunty
The miracle of this game is the years that they spent sweating the UI design. So much dense information, packed into these chessboard-like layouts, and any one of these little details could be the hinge on which victory turns. But somehow they've made these difficult situations straightforward to read, if not to escape.
Reigns: Her Majesty by François Alliot, Arnaud de Bock, Jim Guthrie, and Leigh Alexander
This came out in December 2017, so I think by some people's standards I shouldn't be putting it on a list, but I am pretty sure I actually played it this year. I liked seeing the short and long cycles of the game play out, as you make choices you'd rather not in order to to stay alive to do the things you really quite want to that you learned about in a previous life. And I liked hearing Leigh's voice come through in the largest project of hers I've seen, with chewy takes on gender and privilege, and characters you can empathise with one moment and laugh at the next.
Human Errors by Katherine Morayati
This is a game set inside bug tracking software. It feels like bug tracking software, too, helped by being a webpage just like most bug tracking software (a luxury that games about fictional software built in game engines must envy). And within bug tracking software there is a wide expressive potential - text field to fill out, categories to pick, and Human Errors makes good use of these. And then inside the bug tickets are these prose poems, evocative fragments of all these lives you're dealing with, touching, failing to fix.
Noita by Petri Purho, Olli Harjola and Arvi Teikari (Hempuli)
This one is kind of cheating because it isn't out yet, but I also saw this at Fantastic Arcade, and... well, you might have noticed that there's not much on this list which I am compelled towards because I like playing them over and over, acquiring muscle memory and gaining more knowledge of the systems underlying their gameplay? Y'know, that classic loop that traditonally drives someone to play videogames? I was not expecting to start getting hooked in that way at Fantastic, a festival focusing on the small and strange, but I did. (OK, but what actually is it? It's like Spelunky, but in a messy falling sand simulation world.)
Helix Waltz by uBeeJoy
I did a Twitter thread about this before, but basically, this is a Love Nikki-style dress up RPG, with hundreds of thousands of words of badly-translated text (I don't know why I like reading badly translated prose these days, but I definitely do). Pretty lacy dresses, yes, ornate and intricate and somewhat overwhelming UI, yes, but also an actually pretty heavy storyline which seems to have no desire to sell the fantasy of courtly romance. No, you're a tool of your mother's cunning, obliged to suffer and scheme and collect intelligence on your rivals. And also the splash screen art is just gorgeous.
Black Bird by Onion Games (Yoshiro Kimura, Kurashima Kazuyuki, Tom Ikeda, and maybe some other people? I'm not sure)
I was randomly assigned Million Onion Hotel as a juror for Indiecade a few years back. I had those low expectations that you have when you don't have any context for a game... and so I was very surprised to discover that it was great? and super funny, and with immediately compelling moment-to-moment gameplay and layered complexity on top of that. And since then, every game by Onion Games has lived up to that standard, even as they've shifted genres and business models. So many tiny details, so much personality!
10 Games I Did Not Play This Year But I'm Pretty Sure Are Good Anyway
This is maybe a weird thing to make a list of. But I spend a lot of time keeping up with videogames, or having friends who are making videogames, or just thinking about games, and I am pretty sure that all that time exceeds the time that I spend actually playing videogames. So it seems somehow appropriate to mark games that have passed through my life in ways other than me actually playing them.
The new EDF game
I'm not sure I've ever played an EDF game. But I definitely approve of them, and assume I would like them if I did. This is a series about shooting giant ants with big guns. Shooting things feels good, but often people making games try to improve upon that fact. But sometimes it is better to focus on shooting things? Ideally with big guns, and ideally big things. And all the better if they are giant ants & not people who the game is also trying to make you feel bad about killing because games are a serious medium blah blah blah
EXTREME MEATPUNKS FOREVER by Heather Robertson
Okay, a lot of this list is probably going to be me feeling bad about not playing games by people I like. But I really like what I've seen of Heather's work (we showed 10000 Years at Now Play This, and off the back of that commissioned I-35 from her for last year's), and this seems to be the project where it all comes together and forms a larger work where all the cool stuff that's been forming is fully expressed and suddenly more legible.
Paratropic by Arbitrary Metric
Honestly, I don't know much about this game. But I am imagining it as a indie-game recapitulation of wandering through grimy, abandoned houses in Silent Hill 2. Which I also didn't play this year, but I did comment on as I guested on my friends' Kat Brewster & Jack de Quidt's stream. Silent Hill 2 is still good and interesting and atmospheric. And so a modern indie version of that sounds like a good pitch for a game? And people say that this game is good? I hope those expectations meet up in the middle.
Pool Panic by Mike Robinson, Angus Dick and Grandmaster Gareth
I was in Indianapolis for GenCon this year and the commercial for this came on on the TV in the bar and I got very excited. My friends made this game! I yelled. And they did! Angus Dick is one of these illustrator types who is constantly coming up with wild ideas. I would hear them second hand from friends whod work with him, collected like people collect all the terrible names they considered giving their band. One day, he drew a pool ball with legs & a butt, and that was the one that stuck. A mere couple of years of very hard work later, this game exists. And I haven't even played it yet. Terrible.
Yeti In The House by itten games (Naotaka Shimamoto, Yoshiaki Tomioka and Nozomi Obinata)
This one is cheating for multiple reasons. It is a boardgame, and if I started counting those properly I'd have to do some jiggling and poking all over this list. And also I have a vague plan to pirate it and play it within the next 24 hours (I am currently writing this very early on New Year's Eve). So maybe I will discover whether it's good or not before the year is actually out. I could attempt to describe it, but instead I will embed the rules summary:
Right!? Looks like it's pretty much a perfect little game.
Hitman 2 by IO Interactive
I love hearing my friend Jack de Quidt (we streamed Silent Hill 2 together this year!) be excited by this game. I liked Hitman, but I liked hearing Jack talk about why he loved it more.
Subnautica by Unknown Worlds
This came out of early access this year. I love diving, and I think it's a really underused environment for games to be set in. You feel deliberate, you think about the constraints of air & pressure & visibility. This game apparently has a real sense of discovery, of slowly expanding the depths to which you can go, mysteries lying a hundred feet below, effectively sealed away until you can expand your capabilities. And it's artfully designed, too... there's something so special about moving through 3D spaces which have been thoughtfully designed to direct your attention.
Celeste by Matt Thorson, Noel Berry, Amora Bettany, Pedro Medeiros, Gabby DaRienzo and Lena Raine
I am sure if I had played this, I would be celebrating it in the same way I did Minit & Holedown - a space where you can relax, knowing that folks at the top of their game have thought about each detail in more depth than I would be able to. But just maybe, I would be appreciating it the rare way I did with Noita - a stone to grind myself against, and sharpen a tiny part of myself (that tiny part would be my capacity for playing Celeste).
Cinco Paus by Michael Brough
Having been a fan of Michael's previous boiled-down Rougelikes, I am sure I would delight to the unfolding layers of strategy and tradeoffs, an evolving perception of what each particular element implies within each possible context that I'm sure this game would give me. But I want to play it on the train or on the sofa, and it's only out on iOS and computers, not Android, so... I haven't.
Cyberpet Graveyard by Nathalie Lawhead
Another thing I saw at Fantastic Arcade! In this case, it was a real treat having Nathalie walk us through it and show us various nooks and crannies within the game. And I could've picked multiple things from Nathalie's output this year - it's been so good seeing her stuff go from strength to strength. This game feels like it rolls together a number of things elsewhere on this list. Where Black Room & Human Errors only make sense within the setting of a browser, this only makes sense within a file browser. Exploring nested folders is moving through the landscape of the castle and it's surroundings. And then, deep inside... virtual pets you can hang out with! It's messy & expressive & tropey in the way that Nathalie's work always is, and I am very excited to see where this strand of her work leads.
Tue, Jan 1, 2019
the greens
last night i was on a website that writes reviews of obscure retro games, and i decided to poke at it's archives to see if i could find a game that's been itching away at me. it was a golf game i remember playing from a vaguely Christmas-themed shareware CD I spent a lot of time with as a kid. to my surprise, i found it. The Greens, with a course named Scylla and Charybdis (a name that was always evocative, but a reference that completely flew over my head) and a nice pock sound as balls bounced off the walls and into holes.
it's a cosy little game, that looks good windowed. the courses are tiny, so small that you never need to power your swing up to it's fullest. they're dinky little putting greens, with lava hazards. there's obviously a lot of specific detail that had fallen out of my head in the intervening 15 years, and one thing i had forgotten was how Windows 3.1 it looked. nowadays, the fact of all those buttons, all those fiddly little details, that stands out. but i guess back then it was just normal, just how software came.
there is something delighful about the way it's framed. it's a game built into the standard Windows UI, the same way that Castle of the Winds was (Castle of the Winds was originally made as a way for the developer, Rich Saada, to get practice with Windows APIs). every control is in it's own panel, the way the green glows against the omnipresent default gray, the chunkiness and physicality of the pre-skeuomorphic buttons and insets. there's a wizard in the corner. it's cute and precise and charming, a feeling that's rare for software today.
but more than that, it speaks to something about that shareware CD. i feel like it taught me a set of values I internalised, took as normal, and now fight for in my work. the CD was a random collection of themes and games and screensavers and utility software, if memory serves only partially Christmas themed. you got the sense they filled up the disc like 70% full with Christmas stuff, then just added some extra stuff to make up the numbers. i'm sure there were categories on the disc itself, but this disc (all of these discs) never felt like it was just about games, or about screensavers or whatever. all of these categories of software mingled, and stuff could comfortably sit between. you got the sense that a single developer could dabble in any of this stuff.
The Greens speaks to that. i wouldn't call it a videogame. computer game is probably most accurate. but really, it's just software, one of hundreds of software applications that came on this disc.
what does software look like? it's gray, with rectangular buttons like flattened pyramids.
where does it come from? it accretes on CDs, it's passed around on floppies, it's downloaded over slow minutes of modem hum
what does it do? it lets you play golf
Tue, Apr 17, 2018
a manifesto of creative acts
making tools is a creative act
teaching is a creative act
curating is a creative act
criticism is a creative act
community building is a creative act
manifesto writing is a creative act
making games is a creative act
(there are many more creative acts than this)
the end result of all of these things is a change in the culture we’re making together. no work exists in a vacuum. think about what change you want to make in the cultures you exist in, then make the work that can best make that change.
different people are better at different things. that’s okay. we’re all working together, and no one way is more important than any other.
there’s not one culture. there’s many different cultures, and they look different from every different perspective. every culture is important and valuable to people within it. every culture is harmful to some people within it. every culture is harmful to some people outside of it. let’s try to make the cultures we’re part of better.
“The inferno of the living is not something that will be; if there is one, it is what is already here, the inferno where we live every day, that we form by being together. There are two ways to escape suffering it. The first is easy for many: accept the inferno and become such a part of it that you can no longer see it. The second is risky and demands constant vigilance and apprehension: seek and learn to recognize who and what, in the midst of the inferno, are not inferno, then make them endure, give them space.”
there are many reasons to perform a creative act. you could do it because of money. you could do it because you enjoy the process in itself. you could do it because it is a satisfying to see people using a thing you have made. you could do it for a sense of power. you could do it to find a sense of belonging within a community. you could do it to prove a point. you could do it because you wonder what would happen if you did. you could do as a gift to another. it’s good to know your reasons.
why do i stress “creative act”? the way you do these things will necessarily be inflected with your values & personality. that’s a good thing. there are problems to be solved, and no-one else would solve them the way you will. there are standards & best practices, and they’re often good ideas… but execution is never a case of just blindly following them.
related: there’s no such thing as a neutral stance, no way of approaching a problem that will let everyone be equally welcome. that’s okay; there are other people & other places. it’s unhealthy to think that any of these things are owed to you. but at the same time, it’s unhealthy to be arrogant about the things you’re creating. the work exists as a connection between people, and only has value because of that. technology allows this connection to be massively scaled up - but doesn’t change the essential fact of connection between people.
when you take an idea from someone else and execute on it honestly, it becomes your idea. i don’t mean that you have ownership over the original idea - i mean that by executing on it honestly, you will create an entirely new thing.
no-one makes a thing alone. we draw from our cultures just the same as we feed into it. someone made the tools you’re using, someone taught you, someone made the games you’re drawing from, someone organized the meetup where you met the person who is doing the sounds when the thing happens… our strength is not our individual strength, it is the strength we have together. and credit (or blame) should be apportioned that same way.
all of these creative acts change our cultures. different acts change them in different ways, but the mapping is not always clear at the start. it’s your responsibility to learn as best you can what change your acts will make.
what change do you want to make? what ways can you make that happen? how best to use your strength?
written for the 2018 manifesto jam
Tue, Feb 13, 2018
no record is kept of what you say to your friend. feel free to tell them anything.
friend simulator is a videogame about virtual pets. in friend simulator, the simulated pet is not a real pet - it is a stuffed toy instead. it would be easy to recurse into an extended bit about "simulating the simulated" here, but i'm going to resist - it's not really the point of friend simulator.
instead i wanna liken it to how do you Do It? (Nina Freeman, Emmett Butler, Joni Kittaka and Decky Coss), a game about exploring your sexuality as a young child by mashing Ken and Barbie doll crotches together. both games are explicitly about capturing a moment from childhood, recalling a memory common enough it might well be a specific memory of yours. but where HDYDI has a lot of frisson (your mom is coming home! you might not understand what you're doing, but you know enough to know to feel weird about it!), friend simulator has slack. there's no urgency to the setup - no frame that gives a sense of narrative pressure. eg: the game persists state so you can close the browser tab and return later to the same situation. it's just you in there. as the title of this blog post says, "no record is kept of what you say to your friend". this is a space free from judgement.
this feels really radical in a videogame space, to me! to give you space to just be, to not put in either larger or smaller interaction loops to hook you into returning. to give you tools but also the responsibility for deciding for yourself why to use them. the things you can use on your pet differ - some fall to the floor, some stay attached, the light toggles on and off, the toys can come out of and get put back in their chest - but there's not even the small consequences that attach to, say, the combs & scissors of Toca Boca Hair Salon. the interactions available to you are verbs - but there are no consequences beyond what you yourself enact.
i guess the really novel quality is allowing boredom to enter & dominate the videogame space. boredom was such an important thing for me as a child. i remember wishing for the summer to come, a big 6 week expanse of nothing, waiting to pit myself against that emptiness. it spurred on wonderful acts of creation and fantasy (and less wonderful acts of conflict with my siblings, admittedly). as an adult, as an artist, i'm relearning the value of quiet spaces, time to burrow deeper into myself, to ask questions quietly into a void and listen to what i whisper in response. a game that celebrates that is rare, and quietly radical, and that's why i like friend simulator.
ps: i guess maybe it's unsurprising i'm into boredom in games? see my calming sphere (and writeup) and Always Stuck Minding The Store for examples of me evoking boredom in my own work.
Mon, Feb 5, 2018
2017 year-in-review
What did I do last year?
I'm still at Sensible Object! I went part time, which should hopefully allow me to have my cake (a really cool job making cool games) and eat it too (all of the other things I care about and which I was overstretching myself trying to keep up with in my spare time). I have done some cool stuff with this extra time, but I've also struggled to set good routines and habits for myself. Something to work on this year.
At Sensible Object: we launched and funded another Kickstarter, this time for a competitive mode and a bunch of expansions ($396,907!). The competitive mode will be out next year - it's went from nothing to something we're pretty sure will be good. We've also went through a lot of organisational change and growth - not always comfortable, but I think I've learnt a lot. Moving from "let's ship this thing" to building a proper team and processes and capability to do multiple things at once. And pretty soon it's looking like I'm going to be moving off primarily working on Beasts and onto Voice Originals, a series of games for Alexa and other voice devices. I'm excited!
We did our third Now Play This, and it was better than ever. Against our natural inclinations, we're continuing to try to have fewer things, more thoughtfully presented. Currently in full swing planning 2018 - here's the open call.
I launched a Patreon for Cheap Bots, Done Quick! It's doing pretty well - currently at $157 per month. In preparation for and as a consequence of this I've done a bunch of overdue background maintenance and upkeep. I guess by now I've properly internalised that it's a institution and something people care about, not just a side project of mine. Thank you everyone who has pledged, and thank you everyone who has used it. I have more plans for expansions coming soon, too!
In November took a trip out to the States (more on which later), and while I was there achieved a long-standing ambition - to collaborate with KR Pipkin on a project. The result was our NaNoGenMo entry, views on an object. It was a delight to work with them on a thing, and I'm really proud of the output.
There was an unexpected outcome from that project: while working on it, I rediscovered the nearly-complete code for the bot version of calming sphere. So over the Christmas break, I did the final little push and got it up onto Twitter.
The Unity version of calming sphere also got dug up - I reworked it for inclusion in the Zium project, a collaborative virtual art gallery. It's really cool to be in a project with so many other talented people, and fun to think about space and architecture when displaying software.
One thing I was looking forward to about going part time was working with Holly & Sophie (of Matheson Marcault, who I do Now Play This with) on other projects. And I did! As part of thier Scientific Village Fete at New Scientist Live, they had a foods of the future hook-a-duck game. And I put together a little Unity project and some hardware for scanning in these little bowls of fake food and giving you your score. It was good to work with them, and good to stretch my muscles working on a little hardware/software project. It turns out I know what I'm doing by this point? A good feeling.
In May, I went up to Bristol for a Flatgame Jam, organized by Becca Rose. While I was there I made i'm yearning for a train journey, which I think turned out really well. It was great to make, too - really good to be forced away from coding and into drawing on paper, at least for a day.
I also took part in the Slow Game Jam, organized by Rosa Carbo-Mascarell. My project (which I have not released, and am unlikely to) was an abstract digital simulation of moving stones from one bowl to another. I might pick this up later - I am still interested in slow games, calming games, games you can play whiule falling asleep or that can become part of your daily routine.
I spent an enjoyable day or two down in Margate with Marine Studios, as part of the Margate Festival. We ran Punch The Custard and some other games, and I learned how to play Nine Men's Morris.
A few other stray bits: I put out some new episodes of the machine gently stutters ❏❐❑❒, my series of readings of generative poetry, and produced a visual essay on digital hair for Emilie Reed's Visual Essay Jam.
I also gave some talks this year! The one I am most proud of was Very Quick and Very Slow at A MAZE Berlin. This is probably the most preparation I've ever put into a talk, and I think it really paid off. It was a high concept talk, where I went through a series of durations, from the very brief to the very long. Some related to videogames, some didn't. I would love to adapt the contents into a different format, or give it again somewhere - if you're interested, please let me know.
I also gave an artist's talk at CMU STUDIO for Creative Inquiry (my first time giving an artists talk! I can say that now I've done it), a workshop on narrative structures in Twine games at Arcadia in Dundee, and a talk about digital-physical design for children at the Children's Media Conference in Sheffield. In all three cases, the real pleasure was getting to spend time with people old and new around the talks. For that matter, hanging out in Berlin and getting drunk and having hijinks was probably the highlight of the AMAZE trip, which leads nicely on to personal life updates....
This year, I moved again, back up north of the river to Whitechapel. I miss Kat terribly, but am also nice and cosy in my new flat with Eli Rainsberry, Beck Michalak & Fede Fasce. I took up climbing (bouldering), which I love in the entirely predictable way that game designers do. And then I stopped, after an elbow injury forced me to take a break. However, in the last few days I've went again, and hopefully I'll be back on it this year. I've been reading poetry with friends every few weeks, which has been lovely (and has now escalated to us occasionally writing our own).
In terms of travel: I went to Screenshake and it was lovely. I went to AMAZE and had a great, maybe too raucous time. I didn't go to GDC and was a bit sad about it. I went to Feral Vector and had a lovely chill time - special shout out to playing The Quiet Year with kr, kb & Jack (poor Cornflower!). I went to Paris, saw Versailles & Indiecade Europe. I went to the States for PAX Unplugged, then visited Pittsburgh and New York. I saw people I care about, and met some people I'd wanted to meet for a while.
I'm not going to properly talk about relationship stuff here, but I will say: a number of good things happened.
Oh, and I came out as non-binary, a thing I alluded to in my round-up last year. "developed my personal style", hah. But then, the primary audience for these posts is myself in the future, and I know what I meant.
And that's last year! My new year's resolution is "be less tired", but also I have a sneaking hope I launch a bigger thing this year. We'll see how we go.
Tue, Jan 9, 2018
New recordings of the machine gently stutters ❏❐❑❒
Last week, I recorded and put up three new episodes -- I guess they're episodes, I guess this is a podcast, and if it's a podcast then they're episodes. Or maybe I should lean into this machine-minimal aesthetic and just call them recordings? yeah, that makes more sense, who wants a 2 minute podcast, anyway? -- three new recordings of the machine gently stutters ❏❐❑❒.
The first, to ease myself into it, is of Ranjit Bhatnagar's Wolf Proverbs bot. This had been on my list for ages - there's something about the physicality of it, the fact that they're dance steps or physical instructions, something quixotically non-verbal that seemed interesting to translate into spoken word. And that came through - it was interesting trying to put the emotions suggested, the wolf-like nature into the performance. There's questions about the extent to which this is anthropomophization, the extent this is real wolf-feeling and the extent to which it plays into romantic ideas of wolves instead, the place they play in culture. I am thinking of two stories by Saki, especially. It's also worth pointing out this is the second bot by Ranjit I've performed - the first recording was Pentametron, which has a completely dissimilar feeling. This wasn't intentional, they're just really good.
Last week, I came across this remarkable article about male shame about sexual desire. It really struck a chord with me - it's a really tricky path to walk, to talk about desire as a man and not come across as creepy, or overbearing or... I keep thinking of this horrific tweet. There's a clear example of this shame in the difference in how fleshlights and dildos are percieved. Or - I have a really interesting talk in me on the really fascinating bot-economies and game design you find on Chaturbate - but I definitely feel hesitation in talking openly about this for fear of being "that dude" (I feel hesitant writing these words).
So, with all that in my mind, it's not surprising I should decide to record my flatmate Kat Brewster's excellent erotica/botany bot, @sexwithflowers. I feel like at the core of this bot is a mixing of these allusive formalized metaphors for fucking (flowers), and explicit, tangible body parts, sensations and verbs. It makes them equivalent, it flattens them out, it makes both feel just as sodden with lust. And the fragmented, decontextualized utterances (encouraged by the lack of persistent state in CBDQ, the harsh character limits of Twitter, and Kat's decision not to track pronouns and body parts) matched the way sex can often feel, shifting from aspect to aspect and between liminal states of sleeping and arousal. What I am trying to say is: this bot is really hot.
I tried a bunch of overbearing things when recording this piece. I tried capturing foley of sheets, skin, mouth sounds, breathing (too much, too much). I recorded it in bed, lying down - and I knew I was doing a good reading if I felt my legs curl. I tried doing the whole thing in a whisper - this was also too much, but I kept the soft tone and closeness to the microphone (here learning from Jarvis Cocker on the Sunday Service). I added some steamy (get it?) rainy greenhouse ambience. And over the course of those readings (more readings than I hoped for, because technology is hard), I edited the script, imposing an order and a sense of escalation to the tweets. I had some reservations doing this - in some ways, it keeps the purity of the project to extract a text and run with it with no alterations - but also, it is an always an act of interpretation, and I am necessarily doing violence to the text by taking it from it's natural home, scattered among everything else you see on Twitter, and pinning it down into a linear script and audio file.
But -- it seems to have been recieved well? And I seem to have hit the right level of sexiness?
@jawsew @v21 @sexwithflowers i also can't listen to it!!! it's MY bot!!!!!! smdh
— kat, at gdc (@katbamkapow) 25 February 2017
So the final recording was one I have had on my list for a long time - I emailed for permission back in the first half of last year. It's pushing at the coundaries of what could be considered generative poetry - I think it was likely compiled by hand. It is a reading of all the comments referring to crying on the YouTube page for Stephen Malinowsky's recording (with custom visualization of the notes) of Clair de lune. This song makes lots of people cry! And YouTube comments are a genre into themselves - easily mocked, but also often moving, a raw slice of humanity.
In this case, I've tried to enhance that juxaposition by setting it over his recording of Clair de lune, which is genuinely a beautiful and moving piece of music. And this was interesting to record - the first read through, I went fast and unsatisfyingly finished a minute or two after the end of the recording. So on this take, I went slow, and tried to hit the length of two recordings. I went over, but it worked out as a happy accident because it brought new focus to the words, just in time for that last, heartbreaking, story to hit. Performing on top of music was interesting - I couldn't really edit as freely as I usually do, because the words were timed to play with the music, to get louder and more emphatic as the music does, to wait for gaps where it felt appropriate.
I think I will continue making these recordings, or at least a few more. It's been a way to stretch new muscles, a fun outlet for curation and creation that fits within the span of time I have to work on stuff outside of work (so much has to be chopped up to fit the space available - but that's always the case). The next batch I think will be from my slight collection of actual paper books of poetry composed via generative means! Maybe I will have another go at katie rose pipkin's the one movie with the cowboy and his wound, the inital spark for these readings.
Wed, Mar 1, 2017
2016 year-in-review
Yes yes, it's February already, I know. But still! Here's what I did last year.
Shipped Beasts of Balance. You can buy it in shops! And a year ago... a year ago, we were running our Kickstarter. This was an enormous amount of work, and I think we did good. I want to thank everyone I worked on this with at Sensible Object, but I want to especially thank Jonathan Brodsky, who was there with me during the dark crunchy times just before pushing the digital side out the door.
There's kind of too much to say on this, as it took up such an amount of last year, but I think I'll leave it at: last night, as they said goodbye to me while leaving a party, someone held me by the shoulders, looked me straight in the eye, and sincerely thanked me for making a good game. That's not happened before. It feels good.
Now Play This happened again! This time, it was bigger. Possibly too big - the main thing we took away at the end of it was that it was at the limit of our capabilities, and this year it should be a bit more manageable. We'll see. I think the exhbition we put on was great, and I feel really good about working with the people I did - we all took care of each other, respected each other, and there was a surprising lack of tears and upset. We're in the thick of organizing the next one (5-7 April! Come along!), and hopefully that will all continue.
Wild Rumpus returned, with another event in London. This one was co-ordinated by Ali, who was a great addition to the team. I feel regretful I didn't quite pull my weight on this one - it had unfortunate timing with the dark days of shipping Beasts of Balance, mentioned earlier. But it was great to see rooms full of happy people playing good stuff again. And there's already vague plans in the works for another this year.
And Mild Rumpus! We did our GDC thing again. I feel kind of weird about a bunch of these things - it's not as exciting to continue on a valuable thing as it is to start a new thing, and it still takes roughly the same amount of effort. In related news, I turn thirty in about a month. It's okay.
Oh, also at GDC I finally got to go to the IGF awards! Panoramical got some nominations, and so we all got drunk on free booze in a huge hall. That was cool. And Beasts was at Alt Ctrl Play.
Cheap Bots continued to run, people to continued to make things on it. I added image support (via SVGs), and the ability to do replies, which has unlocked a whole bunch more possible bots. Shoutout (because it's recent, and v good) to @tinyspires.
And speaking of: I made some SVG bots. The first one was @manygradients (currently at 4661 followers!)
and also there's @softlandscapes (9580 followers, my most popular bot).
Soft Landscapes was then shown at an exhibition in in San Francsico, Codame, on some nice big prints (which I haven't gotten to see, actually). I got (some) money for showing visual art at a show! That's cool!
Other bot stuff: I gave a workshop at Art of Bots, which was a lovely show at Somerset House. Was also nice to see other CBDQ-based bots there, including Emma Winston doing an improvised performance of @graphicscorebot, directly enabled by the SVG possibilities in CBDQ.
I also gave a talk at Bot Summit about the joys of making tools for other people. I had been aware of Bot Summit for a good while, and it definitely felt like My People - so it was a real honour to be asked to talk. And then the next day a bunch of us went for an entirely lovely trip to Kew Gardens. I want to also say what a joy it was to hang out with katie rose pipkin, who was over for both of these events.
I also did a series of readings of procedurally generated poetry! the machine gently stutters It was nice to go back to working with audio, and to have a curatorial project that I could do solo. Maybe I'll pick this up again?
I also collaborated on A Bonfire, a short interactive vignette-game with Hannah Nicklin. It recounts the stories of the residents and activists involved in Sweets Way Resists. It was really good to collaborate with Hannah again, and to get to share these stories.
Some personal stuff notes:
Continuing on from last year, as if this was a very infrequent soap opera - me and Sheila split. It was as gentle and mutual as a break up could be, and we're still friends.
There was another relationship I'm going to keep vague, out of respect for their privacy. But it was a very important thing to me, and I'm very glad it happened.
I moved from Broadway Market down to Deptford, where I'm currently sharing a flat with Kat Brewster. It's been great to get to know her better, she's a great housemate and I'll miss her when she moves back to the States (which is imminent).
I grew my hair into a bob, developed my personal style, and started taking more selfies.
I took some holidays that weren't also conferences! Had a good time eating good food and drinking a lot of vermouth in Barcelona, and a good time eating a lot of good food and seeing people hide up chimneys at this place
So that was my year! As usual doing this post made me realize just how many things I did. Never seems so much when you're in the middle of it.
Sun, Feb 19, 2017
hair - a visual essay
A few weeks back, Emilie Reed ran the Visual Essay Jam. This was inspired by John Berger's Ways of Seeing, and tried to encourage people to express thoughts on games in a new format. It was an exciting thing, and of course I didn't do anything in time for the official end of it. But now I have:
Sun, Feb 19, 2017
online consequences
videogames are presented as consequence-free sandboxes. you can try things, you can run over the pedestrians, you can do a genocide run with no real world impact. i hear lack of real world consequence is a fundamental condition of play?
which makes it unsurprising that online spaces related to videogames are so bad. you add other people to the sandbox - and of course you continue on the same habits. you do things that push other people's boundaries, to see how they react, same as you did with NPCs. but of course - that's a bad way to be. there is now consequence, there is now a community that can be harmed. i mean, actually play always has some consequence - just because it happens in the real world (as everything does) between real people. play communities are powerful and dangerous things - just ask Bernie DeKoven.
and of course, this is also true for online spaces in general. attempts to enforce real name policies, to push people away from anonymity are gesturing towards this problem - it's one overemphasized channel by which they try to attach lasting consequence to your acts online. however, your name is only one of the ways consequence is attached to action - the real thing is the totality of the design & community decisions which make people feel like they are in consequence-free spaces. because: this is not all of online, despite the way it's sometimes written about. i certainly don't feel consequence free pushing the big button to submit a visa, or a tax return, or the message that asks out my crush. or even the message that asks out that good looking person on OkCupid - and, hey, look, that's an environment without a real name policy.
this is not to say everything online should be consequenceful. consequence-light space is liberating and powerful. there's a reason that play is powerful! we need space to experiment. the idea of carnival is powerful - a space where we can see what it is like to be people other than ourselves, a space where we can imagine other possibilities. 4chan is awful, but it's also alive. it gave us many good bits of culture, and it'd be dishonest of me to renounce it in totality.
so, to sum up: consequence? sometimes good, sometimes bad. let's all think carefully about things as we design the places we live.
Wed, Jan 18, 2017
Some videogames I liked in 2016
Gosh, it's been a long year. I hope I'm not missing anything great from January, but I probably am.
Kentucky Route Zero continued to be made, and I continued to play it. It's so good it feels unfair to compare other games to it, so I won't.
Ladykiller In A Bind. Here is a list of it's virtues:
- it's really hot
- which feels like it shouldn't say much, but the bar is so low for erotic videogames (this game does not care about those low standards. It sets it's own high standards, and then meets those instead)
- it's more informative on the appeal of kink than anything else I've come across
- it's really funny
- it has characters that feel like real people
- it's political, both in a personal-is-political kind of way and in an actually political kind of way
- it's got neat innovations in narrative design - and they feel really natural and must have been a right pain to write, but totally work
- like, some of the dialogue options involve being cruel to people in the kind of way that me and my friends are sometimes cruel to each other
- I said it before, but it's really hot
Toca Boca Hair Salon 3. It's like Toca Boca Hair Salon 2, but with a bit more stuff. I've only just started playing it, so I can't give an Authoritative Judgement, but Toca Boca Hair Salon 2 was one of my favourite games, and this is a nice update to it. It's a game about learning how to use tools that are a bit wonky, that have their own quirks and give to them, to achieve something open ended. And it's intimate and responsive - it feels like you're touching someone's hair, and they're responding to what you're doing, not just a blank canvas for you to scribble on. And it's cute.
Ableton Live. I've not got a chance to play with this as much as I'd like, so I'm only just getting to grips with it, but it's a great toy to play with. So many sounds, so many intricacies to master. And there's a nice interplay between being in tweaking-mode and being in a jamming improvization mode.
Imbroglio. Is this pronounced like the word, or Im-brog-lio? Anyway - this is a Michael Brough game, and by this point I know what a Michael Brough game feels like. As deep as you want to go into the intricacies of the system, Michael will have been deeper. It's also funny and charming and surprising. And death could always have been avoided if you'd just paid a touch more attention a few turns ago.
Dishonoured 2. I think I am putting this on this list just because I've played a bunch of it? I don't know if I love it. Dishonoured I liked because it felt like a return to the immersive sim, and because it's art dared to be non-realistic - I think the high point of it for me was seeing a wall. It had a really good texture! it was done in gigantic brushstrokes, picked out by the specular map. And the character's faces were wonky cut-up lumps of clay. Oh, yeah, and the heart was great - a way to have story and texture to the world, without just playing cinematics at you. I've played more Dishonoured 2, if only because it's on the PS4 downstairs and it's been nice to play in parallel with my housemate Kat - but all the things that it was exciting that Dishonoured was doing, it's less exciting that Dishonoured 2 is still doing them. And I've fallen out of the world a bit, which means I see the levels as levels, all with a set format and a couple of neat twists to make you mix up your strategy from the previous ones. Ah well. It's still nice to play some expensive games every once in a while - have a long soak in a budget that could have paid for everything else on this list combined.
Viridi I have been interested in games that you check in on regularly - things that become a small part of your life, a small oasis of optionality when other things are stressful. For a good while this year, this game was this for me.
Hidden my game by mom (and others by hap Inc) This game is funny and surprising! It makes virtues of all it's weaknesses.
Ice-Bound. This is a game that's like our game, in that it's kinda complicated to explain. There's a book (no, not a digital book, a physical one), and the book has AR markers hidden in the pages, and you show the book to an AI (it's more of a fictional AI than a real AI) in the game, and the AI is editing a novel, and the novel is set in a polar research base... It's a lot of stuff to explain. And by the time you're done explaining, you then kinda say "and it's good", and that completely fails to kinda capture why it's good. But within the context of the game, all these interactions feel natural, and the layers of narrative all build on themselves in a really effective way. It's good.
Get Lost! This one is maybe kind of cheating, because we commissioned it for Now Play This. But I love S Woodson's work so much. Like all of their pieces, it delivers on a formal constraint (being quick to play at an exhibition) and layers on a light, charming, fantasy world that has the edge of real human interaction.
It's Spring Again. I can't remember if I first played this in 2015 or 2016. But anyway: it is a game that made me cry at the inevitability of winter. It's aimed at small children and adapted from a puppet show.
Devil Daggers. Seemingly every time I sit down to play this game, I discover that some part of my computer setup isn't good enough for this game. My mouse is too unreliable, or my headphones have secretly become mono, or some weird jank with display resolutions that they've now fixed. It's so... PC? So hard-edged and low latency, chunky aliased graphics and the perfect death metal monster roars. The experience of this game is plugging myself into about 90 seconds of hell and coming up gasping.
Digital Bird Playground - you're a duck and you can mess about with your friends. When you get on the bike the bell goes "ring ring!".
Push Me Pull You Oh yeah! This came out this year. I have been playing this for so long (with the Wild Rumpus crew), it feels kinda of weird that it's out and a final thing. When it was not finished, it was great, and they definitely stuck the landing. Dog mode! The free roaming bit where you can play football! Adorable menus! Australian bird noises!
Oik OS When people first start messing with a tool, there's a kind of freedom in the way they do things. They don't know what should and shouldn't be done, they layer things up messily, they show the limits and the grain of the material in a way you later learn to hide. Somehow David Kanaga is making a game like that, but with the benefit of years of incredibly deep thinking about what games are and can be. This game is Too Much.
TIS-1000 Last winter break, I holed up in bed and spent an obsessive 24 hours burning through the first half of this. I love the Zachtronics games so much because they're problems, not puzzles - like programming (which I like enough to do for a living), but without any obligation to do things "right". It's addictive in the same way a puzzlebox Netflix show is, and I hope I never play it again.
I just realized I missed a bunch out.... here's a sneaky extra 4 entries
Firewatch This was a good human story, well told by a studio who knew exactly what they were doing. Like Gone Home, this is demonstrated most effectively by their mastery of scope - it's just big enough to be delivered on time, with enough innovation to make it real and interesting, but familiar enough to be made reliably. I definitely cared about Henry & Delilah's story, and I yearned for a summer wasted out in a cabin in the woods. Also, special shoutout to the Campo Santo quarterly - if this game had no reason to be but to give them an excuse to give Duncan Fyfe money, it would have been worth it.
Stephen's Sausage Roll "A simple puzzle game". This is a masterwork - every puzzle asks something new of you, and yet the entire game operates on the same logic. Over time, you start to see things through the eyes of a sausage-pusher - every element starts reading in terms of its affordances, and everything starts chunking as a higher level plan. It's a noticeable shift in perception - similar to how Super Hexagon bent the flow of time.
Quadrilateral Cowboy This maybe shouldn't be on this list, because while I played a reasonable amount of it, I don't know I fully got the measure of it. It sketches a world, it exudes a particular style, it layers virtual space on top of virtual space, it gives you satisfying things to chew against - but it keeps switching stuff up, never establishing a formula and letting you just exist within it for a space of time. Which is definitely how I'd prefer things to be, but (like Cargo! The Quest For Gravity) means you need to actually finish the damn thing to feel like you can properly pass judgement.
Wheels of Aurelia This came out after Firewatch, but I'm still glad it was on public display early enough it was clear that they didn't rip the conversation picking mechanic from it. Like Firewatch, it's about doing a task while conversing, but where Firewatch goes the literary fiction route of being about a dude's internal feelings, Wheels of Aurelia is outward facing, and is about making strong choices and dealing with creeps and abortion and political action. It's very Italian.
Aaaaaand, cheekily, Beasts of Balance I have spent a lot of time playing this game, and longer watching others play it, and longer than that making it. I am incapable of viewing it with any distance - but I think we did well, and it is a good game.
And that was this year! I guess I played more videogames than I thought. Are there any lessons to be learned, taking the list as a whole? I guess it's that there are a lot of games out there, and many of them are good, and many of them make money. Isn't that nice? See you next year!
Sun, Dec 18, 2016
Reasons I'm Excited For VR
Some people I know can be pretty negative about VR! And I can understand their reasoning. But - personally, I'm at least cautiously optimisitic. Here are my reasons why:
- I'm excited for a future of computing where you can do high-focus work standing up and moving around, rather than slumped in an office chair.
- Violence is disturbing again. It feels icky to shoot people when it's this real. Maybe we'll all get over it, but right now there's actual commercial pressures not to just make games about killing people.
- Everyone up and down the software-hardware stack suddenly gives a shit about latency. Latency is a painful thing, because it accumulates, so if anyone drops the ball it goes. And there's a step change in the quality of an experience when it gets to a low enough latency (which is why we pushed so hard for this in Beasts of Balance). Stuff just starts to feel real, and tangible, in a way it didn't before.
- The idea of strapping a box to my face and having interesting patterns of light shone into my eyes (and sounds pumped into my ears) sounds amazing. Just… yeah. Perfect.
- I was being genuine about that last point. Ilinx! A sensory overload. A post-rock gig.
- GDC is now Games and VR Developers Conference (at least for now). This might take a little zooming out to explain. I think of videogames as a continuous part of a larger space of… "interactive art", maybe. "Interactive entertainment". In previous eras, the division between games and other software wasn't so rigid, and there were some interesting, beautiful things that existed between them (I'm thinking of Kate Compton's work on tools for casual creators, among other things). Maybe VR will blur those boundaries again.
- When I was a kid, my most vivid dreams were of flying. VR seems like a good way to simulate that experience. Maybe?
- Creating 3D stuff in a 2D interface is weird and painful (no matter how used to it we've gotten). VR allows us to use a 2.5D interface, and intuitive look controls (ie, moving your head). Humans will always be a bit shonky at thinking in 3D, but this will help.
- Money. VR means there are tech companies scrabbling to build the platform that will own this particular future (this part is depressing, okay). But to do that, they're spending large sums of money on small teams with interesting ideas. This is great! I hope all my friends get paid well to make interesting things for a bit.
- Because this stuff will be interesting, because old design conventions don't work. We get to do new things! We get to rethink UIs from the ground up. We get to make games without much violence, where you can walk (but only in a small area). The idea of framing everything within a rectangle is gone. Wildly new constraints. We'll have to work quite hard not to make new things, given all that.
- Although it's maybe still unfashionable to say so, a thing I like is immersion. I like feeling like I am in another place, another situation. I don't know I care so much for the fictional place as for the disorienting sensation of transitioning, the flicker as the holodeck fades in (the sensation of suddenly being in a hallway in Battersea Arts Center when nipping out of a Coney production for a piss). VR is great at this. What do you do when you're there? idk. I imagine someone will figure that out.
- Small teams can, for a while, compete with bigger teams. Large games companies don't really know VR better than anyone else. And they're locked into business models that don't make sense for VR. I hope the small teams that become big this time round are nice people. I also hope pushes for diversity start to get locked in a little, and a few more of them are not white men.
- "What if we weren't too late with game culture, what if weirdos had a seat at the table from the beginning? What if we didn't let capitalism shit the bed so badly? What if artists and theorists were there, from its early days, to help guide popular understanding of it? " - Robert Yang
- What I guess I'm reaching for is the idea that maybe games aren't what VR is for. Maybe it's a new thing. I like new things. Let's try to make this new thing good.
Fri, Dec 2, 2016
A Game To Fall Asleep To
A while back, I became interested in the design problem of making games that would help you fall asleep. It's slightly unlikely - a common model for games is for high-intensity and high-engagement, the addictive pull of just one more turn that keeps you up too late. But there are many other charms that games can have - stories, comforting repetition, good sights and sounds, for example - and they're not incompatible with drifting off to sleep.
So. What are the basic design criteria?
- They should have a low intensity. If you have to do a thing frantically, or urgently, or under time pressure, you wake up. If you even *have* to do a thing, you wake up (there's degrees, here, and framing matters. You could still have goals, and outcomes contingent of actions)
- Low intensity visually, too. No flashing, sudden transitions. Best if it's not too bright, either. And apparently there's something about avoiding the colour blue, as the brain interprets it as sunlight and sets your circadians accordingly.
- Yeah, also no sudden bangs? I mean, obviously enough. But : thinking about what people do fall asleep to - white noise, gentle competent human voices, soft music. Stuff like that.
- No level select. I'm a bit uncertain on this one, but my intuition says that interruptions to the flow of the game are bad.
So, those are pretty sensible, but: why a game? Why not just… go to bed? Or, if you really have to, read a book, or play white noise?
When I think about the reasons I don't sleep, they're pretty stupid. I don't have issues falling asleep when I'm trying to - I have problems deciding to go to bed. I spend my evenings in this hyped up, simulation-seeking (ultimately comforting) state from which it's difficult to unwind. So I seek something that provides those anxiety-deflecting distractions, but gently winds me down until I drift off. Stopping suddenly feels like too much.
For others, they're kept awake by catastrophizing in their heads, or other anxiety loops keeping them stimulated and unable to settle. Or people suffer from starting off too hyped for other reasons, and unable to bridge the gap towards sleep. And for other reasons, of course, including many a game can't begin to touch.
But some of these reasons do suggest a role for games, for me, as a way of providing a bridge in terms of intensity of stimulation, from awake to asleep. Something that can act on both levels, but naturally guides you from one to the other. They can give you goals, or motivation to keep playing, but can fall away when you're not interested.
I've made a first attempt in this direction.
As you may know, I make twitterbots (and run a popular twitterbot platform, Cheap Bots, Done Quick!). One bot I run that has achieved some measure of popularity, is called @manygradients. It posts a circle filled with a random gradient. A lot of people find it quite soothing, especially mixed into a stressful Twitter feed. Just… colours. Sometimes ugly, sometimes pretty, existing for their own sake.
A while back, I tweaked the generation of many gradients to include more radial gradients. A thing I kind of wanted was the sensation of it being a sphere - but I think either the gradient options within SVG are too limited, or I didn't work hard enough to achieve it. I did expand the range of outputs and add lots of new variety. But still there was an itch.
many gradients itself was born out of an excess of energy when we reached the end of our Kickstarter for Beasts of Balance (then Fabulous Beasts). Suddenly, I had time and headspace and wanted to make something. Something I could finish within a day or two. And a few weeks ago I got done with a stressful bit of work getting Beasts of Balance ready to ship. I felt a similar surge of creativity coming back. So I decided to make a twitterbot that would be like many gradients, but spherical (and rotating slowly, because that's makes sense)
The technical details were a bit too long and torturous to go into here, but suffice it to say that I eventually could run a thing on the command line and get a pretty gif as an output! And then just before I did the boring bit and hooked it up to twitter, I got distracted and made it as an app.
It pretty immediately changed the context it was experienced in, and the form it ought to take. It matched to my free-floating aspirations to make a falling-asleep thing. So I committed to that route and designed it with that in mind, slowing and slowing the rotations and the transitions to match the inherent pace. A small touch is blocking you from hurrying a transition when it's started, forcing you even at your most frantic from interacting more than once every 10 seconds. That builds the significance of the gradients you are shown, focusing you down on the slow wash of the colours changing. You invest in predicting where the gradient will end up, the axis of the rotation, making small theories and seeing them confirmed or not. And every gradient you do see matters more - the same hook that keeps you interested in @manygradients, of "what will happen next?". @manygradients is even slower, of course, a durational performance that happens without your intervention, threaded through other accounts in your feed. This is more direct, more intimate, more solemn, floating against the black with no sense if scale. There are no options or other controls to distract you, only staring into it and watching it slowly rotate.
It's not only useful as a thing to fall asleep to, of course. I think it's valuable as an aesthetic experience in it's own right (I'd love to exhibit it somewhere). I also think it's useful as a pocket oasis throughout the day, a thing to flick open and poke at instead of refreshing social media.
calming sphere is out now for web browsers, Android and personal computers.
I hope to make more games to fall asleep to in the future. I would love to hear any thoughts or feedback you might have.
Mon, Nov 21, 2016
Robot Picnic
After the wonderful and inspiring Bot Summit last weekend and Art of Bots this weekend, it feels like there's a critical mass of botmakers and associated folks in London. So: we should start meeting up in person every once in a while, rather than just talking on the Internet.
To that end, I propose the first Robot Picnic, to happen from 3pm on Sunday the 8th of May, in Victoria Park (near the West Boating Lake, about here). Bring food and/or drink if you want to eat and/or drink it. And if it's raining or otherwise awful we'll go the People's Park Tavern instead.
This event is open to everyone interested in the use of computers for artistic purposes, no matter the level of interest, skill or accomplishment.
For more details or if you've got any questions, on the day or otherwise, you can reach me on Twitter @v21 or on the phone at +447962403825.
Sun, Apr 17, 2016
My 2015
I've been reading other people's year-in-reviews, and I thought maybe I should do one, before it's quite too late for that to make sense as a thing to do. Here's the things that made up my 2015:
I started dating Sheila. We've been seeing each other for coming up to a year now, and it's really lovely.
Fabulous Beasts turned from a vague idea, to a team, to a prototype, to a prototype people cooed over, to an opportunity, to a company, to a much better (but reasonably different) game, to a draft Kickstarter page and source of nervous tension. It's been a wild ride. Onwards!
I released Cheap Bots, Done Quick!, a website that hosts Twitter bots for people. It did better than I dared hope - we're at over 400 bots made by this point. And (okay okay, I did it in 2016) I just added hashtag support and the ability to generate images via generating SVG files. Mainly I feel happy to have joined the friendly and welcoming #botALLY community, and to have enabled others to do stuff that seems very fulfilling for them.
Panoramical came out! It feels weird, because I did most of the work on my scene so long ago, and it's only now that people are playing it. But I've had some lovely feedback, and I feel really proud of what me and Jukio did there. (And it's a privilege to be part of Panoramical itself, which since I started writing this post got 3 IGF nominations).
I put together a totally credible bid for The Space to make a Tamagotchi-like game-toy thing. We were shortlisted, and waited, and waited... and then didn't get it. Ah well. It's good knowing that putting a application like that together is something I'm capable of. Thanks to Mink (who I applied with), and everyone else who helped.
Mutazione won some money from the EU Narrative Games fund... and I had to drop out of the project, due to Fabulous Beasts taking off. Still sorry about how this worked out, and I wish them all the best with finishing that game, and making it everything I hope it can be.
I Digitally Curated, and also generally helped on the first ever Now Play This, a weekend of games and play at Somerset House. I feel very proud of what we accomplished - it was a great selection of interesting (and varied!) things, presented beautifully. And much love to everyone I worked with on this - Holly, Jo, Sophie and Louie especially.
We put on another Wild Rumpus party, and a Mild Rumpus forest at GDC in March. We got them to transport a giant metal leaf up some escalators! We put on Qrion's first ever US gig!
I've started doing visuals for live music! I did visuals at Screenshake (with Fernando <3), at our Wild Rumpus party (apologies Alice), and for the Hyperwave chiptune night (cheers Mikey!).
And as a kind of spin off from that and kind of as a continuation of the work that led to my Panoramical scene, I've been messing around with some convolution noise generators. Fun little toys, which I'm still tinkering with.
I made a game for the Wellcome Late - Shadow Photocopier. A fun little experiment, in the classic Sandpit style.
With Hannah Nicklin, won a bid to make an interesting narrative thing about the Sweets Way community. In progress!
I went to Zoo Machines, and helped make a game about feeding a monster in an extra-dimensional portal. Hard to document, as the experience hinged on making your hand feel strange and alien with time delay on the visual feedback you get. Shoutout to my team there, and for Zoo Machines for inviting me over.
Did a bit of electronics for the Oubliette Escape Rooms and Adventure Shop. Though I mainly mention this here to encourage you to go visit them. They're open! It's a great experience.
Embed With came out, and I saw lovely words about me in a published book. Still feel very lucky to have been included in this project.
Hannah Nicklin did a talk about me in her wonderful Psychogeography of Games series. I feel that a number of my strands of thought were tied together much more convincingly than I would have been able to do on my own.
I gave talks at:
- Bees In A Tin
- Screenshake
- Amaze (for 45 seconds - thanks to Lorenzo and the Klondike crew for letting me crash their microtalk)
- GDCE
- Videobrains (twice)
- Zoo Machines
Whoo! That's a lot of stuff. I didn't realize how productive a year it had been until compiling this list.
So, what's my aim for next year? That's traditional in this kind of format thing, right?
- Get Fabulous Beasts out (and make it great) (and hopefully also make it sell)
- Keep on doing curation (in a more low-key, advisory way)
- Keep making small projects (I think I'm getting good at doing them in a way that feels like fun, not obligation)
- Maybe get better at writing
- Maybe get a bit fitter?
- Be less stressed and have more time for people.
Wed, Jan 13, 2016
Twelve Games About Counting
Count from 1 to 100.
Do not use any external aids.
Count from 1 to 100.
Leave at least a second between each number.
Do not use any external aids.
Count from 1 to 100.
Swim at least one length of the pool between each number.
Do not use any external aids.
Count from 1 to 100.
Leave at least a minute between each number.
Do not use any external aids.
Count from 1 to 100.
Walk (or run) at least a mile between each number.
Do not use any external aids.
Count from 1 to 100.
Leave at least a hour between each number.
Do not use any external aids.
Count from 1 to 100.
Eat at least one meal between each number.
Do not use any external aids.
Count from 1 to 100.
Leave at least a week between each number.
Do not use any external aids.
Count from 1 to 100.
Cross at least one border between each number.
Do not use any external aids.
Count from 1 to 100.
Live under at least one full moon between each number.
Do not use any external aids.
Count from 1 to 100.
Celebrate at least one birthday between each number.
Do not use any external aids.
Count from 1 to 100.
Leave at least a decade between each number.
Do not use any external aids.
Wed, Jan 13, 2016
The Literature of Totality
I remember reading about how the advent of computers into math had changed what it meant to prove a theorem. If you could reduce a problem down to a mere few billion possible cases, then you could just have a machine check all of them, and bing: there’s your answer. They all pass, or you’ve found your counterexample. No need for tiresome decomposing of a problem down to a tractable human scale. (One response: “Well, that just proves it wasn’t an interesting problem after all”)
There’s a recent Katie Rose Pipkin interview, where she crystallizes something I’ve felt about my work in procedural art.
“To expand; the goal of work-by-generation is a fundamentally similar, but shifted process from that of work-by-hand; rather than identifying and chasing the qualities of a singular desired artwork, one instead defines ranges of interesting permutations, their interpersonal interactions, how one ruleset speaks to another. Here, the cartographer draws the cliffs that contain a sea of one hundred thousand artworks. And then one searches for the most beautiful piece of coral inside of their waters.
So, I suppose this is where bots are truly interesting to me. Because this kind of making (the looking for the best moment in a sea of automated possibilities) is a methodology of construction that feels, in some ways, new.”
When working on a bot in Tracery, it feels like building poetry, but poetry comprised of possibilities and probabilities. You’re not just sculpting a phrase, but the shape of all possible phrases. Where are the contours? What’s the worst case? I don’t know if it’s a new process, but it’s one I find very invigorating.
There’s an idea, most famously associated with Borges, that the idea of a story can be enough, without needing the substance. Why build the Library of Babel, when there’s a perfectly good construction of it in the mind of a reader? But I’m not sure this is true. For me, there’s an excitement about the knowledge that all of the permutations exist, or are in the process of coming into existence, or are not, but could be. The joke is better if the library exists.
But the library cannot literally exist. In all of these cases, a crucial part of the work is the part of the work that does not exist, that will not exist. It’s a rare generated text that, explored deeply enough, does not end up eventually comprehensible, predictable, understood (if only in it’s formlessness). It’s entropy is exhausted, and we are left with a sketch of the full shape and texture of it’s possibilities. It hangs inside our head, filleted and diagrammed. We can see the shape of the cliffs.
That’s okay. That’s maybe the point. If the task of the procedural writer is to sketch the parameters and constraints of the eventual outputs, maybe it’s the task of the reader to sample those outputs and feel the grain within them, feel the shape of the hole the puddle fills.
Thu, Dec 24, 2015
NaNoGenMo entries I have seen, Pt 1
What I Thought About The World, by muffinista
https://github.com/muffinista/NaNoGenMo2015/blob/master/i-thought-output.mdI thought about how easily I thought about other people. I thought about my relationship. I thought about the morning. I thought about being in. I suppose I thought about the afternoon. I thought about that statement. I thought about the books. I thought about my visit. I thought about her and. I thought about leaving her. I thought about things like I thought about the guy. I thought about other people. I thought about the hours. I thought about a girl.
I thought about it calmly.
I thought about going home.
I thought about this girl.
It feels like any three consecutive sentences of this evoke a wonderful fragment of story. Sometimes this will continue on, sometimes even to the limit of semantic satiation, but then it bursts, and you're released.
I mean, I love this, but I'd love to read the v2 that's only a page long. Or the poem.
"Matthew 25:30", by Nick Montfort
http://nickm.com/poems/matthew.pdf“Playing-cards, chessboards, a nice hardback copy of the Grettir Saga,
a classy cerulean gym suit that is new this season,
a classy ash gray stovepipe that is available with free shipping,
a contemporary silver bluebonnet that is available with free shipping,
subtle cerise outerwear that is available with free shipping,
a fashionable steel gray two-piece suit that is on sale today only,
a rustic dapple-grey greengrocery that is now 10% off,
a fashionable ochre gaberdine that is new this season,
a modern sage green kerchief that is now 10% off,
an understated snuff-color ice machine that is significantly reduced in price,
I like jokes. I like the joke that this novel tells. I like it in part because I like jokes where the punchline is delivered through an absence.
And this joke is enhanced by me having read the source only just before, and having appreached the text like a NanoGenMo entry - that is to say, my eyes are skipping over the text already, looking for repetition and structure before I look for words.
Phone It In, by hugovk
https://github.com/dariusk/NaNoGenMo-2015/issues/173- An with big A space entry space for space National with big N space Novel with upper case N space Generation with capital G space Month with upper case M space starting round bracket, NaNoGenMo close parenthesis, with upper case N, N, G and M, space two oh one five dot and then a new line.
- Mhmm.
- The with capital T space plot colon space someone space needs space a space computer space program space but space the space network single quote s space down comma then a new line.
- Say that again.
- The with capital T space plot colon space someone space needs space a space computer space program space but space the space network single quote s space down comma then a new line.
- Keep going.
- So space a space second space person space has space to space tediously space read space it space out space over space the space telephone fullstop and then a new line.
- Sorry, missed that bit.
- It went: So space a space second space person space has space to space tediously space read space it space out space over space the space telephone fullstop and then a new line.
- Carry on.
- Hilarity with capital H space ensues fullstop and then a new line.
- Say that again.
- Hilarity with capital H space ensues fullstop and then a new line.
- Can you repeat that?
- I said: Hilarity with capital H space ensues fullstop and then a new line.
- Keep going.
- quote
I was totally prepared to not care about this joke, but I do. I think I like this novel only when it achieves a certain level of psychological realism, when it hits the same combination of grey polyester cubicle apathy with Beckettian doggedness that My New Filing Technique Is Unstoppable hit. The rest of the novel is still funny, but this part hits those heights even better because you feel for the characters so much more when they are so close to understanding the terrible joke they are trapped within.
- Hilarity with capital H space ensues fullstop and then a new line.
Machine Wisdom, by ftzeng
https://github.com/dariusk/NaNoGenMo-2015/issues/171The Tao is ever his work.
The more he gives to the left of the world.
The person who is not full of his body.
The more it could be a beginning of life and fame or a state of the world.
I do not know its name.
It is the beginning of all things.
It is because they are able to be self-more and some are strong.
This is called the source of the world.
It is the beginning of the master of all under Heaven.
The man of the sage acts as the source of the world.
The wise man is like the state of death.
The world is forgotten, and the people will be beneficial.
The people will be taught and strong.
It is because they are able to act as a carriage of the world.
To know the constant is the mother of all things.
It is the foundation of the state with the subtle essence of the same and weak and weak are hungry.
It is because they are skillful and weak.
The world is forever and so deep and some are forguted.
It is because they are able to be able to be strong.
The world will be self-assertive.
The more he gives to the left of the world.
Therefore, the sage produces them.
It is the beginning of the store.
The state of the world.
Char-RNNs are magical! Look at how wonderfully it captures both low-level and high-level structure! Human-like pacing and rhythmic variation, with repeated refrains and longer detail sentences. And (though the internal workings shouldn't matter to the evaluation of the output), it doesn't even operate on the word level, but can even synthesize new words entirely - look at that "forguted" in the quote there. Plausible English word, in a plausible context. Char-RNNs are magical.
Alphabetical Order, by Leonard Richardson
http://www.crummy.com/writing/NaNoGenMo/2015/-------- ----- ------ ---------|---+---+---|---+---+---|---+---+---| ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- , ---------------- , -------- ----------- ----------- ------------ ------------ ------------- | ------------- ------------- ------------- ------------- ------------- --------------- ------------- ---------------------- ----------------------- ------------- --------------- ----------------- ------------------- --------------- --- ----- --- ----- --------------- ------------------------ -------------------------- ------------------- ------------------- ------------------- ------------------- ------------------- --------------------- ----------------- ----------------------------| | | | | | | + ------------------------------------------------- | | ---------------------------------------------------------------------------- -------------------------------------------------------------------------- ------------------------------------------------------------------------- ------------------------------------------------------------------------ ----------------------------------------------------------------------- ----------------------------------------------------------------------
Let me quote the accompanying text, too, though:
This book was generated by searching 47,000 plain-text public domain works for lines that contained no alphanumeric characters. The lines were then deduped and sorted. The complete source code for this book is:
find . -name "*.txt" | xargs grep -vh "[[:alnum:]]" | grep -v "^[[:space:]]*$" | sort | uniq
According to the wc command, Alphabetical Order is about 110,000 words long.
This is beautiful.
This was my bot of the day for Nov 20th 2015. I wrote: "a testament to the manual effort underlying any large dataset". This is a collection of chisel marks left on the Pyramids.
Mon, Dec 14, 2015
Videogames That Go Squish - my talk from Bees In A Tin
This is a heavily-edited version of the talk I did at Bees In A Tin on Friday. There's also a recording of the original, with slightly different jokes.
I've realized recently that I seem to have made a lot of games have both digital and physical components. And having realized this, I felt I should have learnt something and have some kind of generalizable lessons about making them to share. So it is that I present this list of universal, always-applicable and entirely transferable principles for the design of games with both a physical and a digital component. Ready? Okay, here we go:
You get to design the entire experience
I come from videogames, where traditionally you a) make some software and then b) you sell it to people. The hardware, the input mechanisms, the expectations people have when going in: all of these you have only very limited and distant control over.
So digital/physical games are great! You get to design pretty much all of:
- the software
- the hardware
- and the context it's experienced in
As I've said before: If you have some control over it, and it affects the player's experience, you should either design it, or think very hard about why you're not going to. When designing one of these elements, you can fix problems or reinforce things happening in another element. Defects in the experience can slip between layers. For example, in Fabulous Beasts, there are some pieces that have very powerful effects in the digital boardgame. One reason they're not overpowered is the physical design of the pieces make them really difficult to place on top of a wobbly tower. The task of balancing these pieces (in the game-design sense) happens across both the physical design of the pieces and their digital effects.
Another example: we wanted to explain how to play Doom Piano. The traditional way to convey this in a videogame would be onscreen prompts that explain the control mappings. But modding Doom is a pain to do, and people who can't play piano won't know what the keys are called anyway. So we just wrote the controls above the keys with a marker pen (on some tape, so as not to permanently damage the piano. It's a rubbish old piano, though, so it doesn't really matter). That's a simple fix that's a bit of a bodge - but it works perfectly. Similarly, one of the keys on the piano had busted strings and only made a "thonk" sound when hit. We made that key the "use" key (I did say it was a rubbish old piano).
Including, importantly, the framing
There's a quote I first heard from Tassos Stevens that I love:
"A play begins when you first hear of it, and ends when you forget it"
This also applies to games where you don't get control over the hardware: but when you do, it's common to have a lot more control over it. Ultimately, you're not designing a game, you're designing the experience of playing it. When I gave this talk I was still in the pink apron I wear when I run Punch The Custard - I wear it because it enhances the sense of occasion when approaching the table to play. That's also why I put stray wooden spoons, bright cheery tablecloths, and leftover tin foil on the table - it adds to the sense of an out-of-context kitchen experiment. It's a much more distinctive thing to approach than "a weird game which uses custard".
To use a mainstream example: Guitar Hero is more fun when you play it standing up and play-acting a bit than when you play it sitting down on a sofa by yourself. It gets even more fun if you're on a stage and people are cheering as you play (or so I imagine, anyway). It's the same software and the same hardware in both cases, but the context has shifted - resulting in a vastly different experience. We can take inspiration from playground games - they're as much about the rituals, the "eenie-meenie-miney-mo", the lining up and preparing to play as they are about the actual game that lives in the centre of them. Often, what you're really trying to achieve with a game is to provide a social experience, with the game as an excuse. The game is just the grit in the oyster that the pearl forms around.
Tell a good joke
Games are generally best when they're built around a single appealing concept. If everything else has to build on, or support, that single idea, then you have a very useful tool for deciding what work is important or necessary, and what work is unnecessary or is a distraction. In my case, I find it clarifying to think of my games as jokes, and then decide what's worth doing based on whether it makes the joke funnier.
Doom Piano is basically a joke. It's the experience of being able to play Doom on a piano. I think that's funnier if you can use every single key of the piano to do something - so I argued for that and consequently ended up spending a few hours soldering wires onto endless strips of copper tape.
Punch The Custard is also a joke (it's also a game with a deadpan, straightforward title. Apparently I make a lot of these). The hardware is shonky and could do with being improved (when your reliability is improved by shoving in a sock, you're not operating at a high level). The software and graphics were bodged together quickly. I've not improved them : partly because it wouldn't make the joke funnier, and partly because I'm quite lazy, and Punch The Custard is a small game and only likely to be run at events.
They're usually small, because they're usually made for events
This is even less universal than the other non-universal principles in this list of universal principles. But most of the games I've made have been made for events. The reasons for this are largely economic - it's hard to make a physical thing, and it's even harder to make lots of them at a price that a consumer could pay. It's hard to sell a thing, too. This leads to a local maxima, where lots of these games are built for novelty - they're small, they're weird, and they're jokes.
Fabulous Beasts, which we're developing now, is an attempt to break out of this, and build a game that's large, deep, and can be actually sold to players. I'm excited for the new problems we're already tackling. For most of the games I've made, though, they're made for events, and as such, ought to be good games-to-run-at-events. That means answering questions like these:
- does it attract players from across the room?
- is it fun to watch people playing?
- how much do you need to know before you can start playing?
- how long does it take to learn?
- can you learn from watching it?
- how many people can play at once?
- how long does a game last for?
- does it need to be constantly staffed? (this is tiring to do)
- does the structure of the game encourage the circulation of players?
I'm going to take a quick digression and talk about this using the example of Doug Wilson's game JS Joust, even if it's not technically using custom hardware. When you play JS Joust at an event, you typically play for a few rounds and then bow out. At large events, a natural circle forms - everyone stands, watching the players face off against each other inside this arena. While you're watching, you're getting the idea of the game. You might not quite twig that the sensitivity depends on the speed of the music, but you'll at least get the aim (and it's likely that a nearby spectator will fill you in on any details you've missed). When a player feels like they're been playing too long, they can just offer up their controller to the people standing around the circle, and step out and become a spectator. There's continuity between players from round to round (which is important, so you can form grudges against the other players), but there's constant circulation of players. And the atmosphere the circle creates is wonderful - right now, I am smiling remembering the magical experience I had playing and watching Joust in the front storage hold of an ex-German fishing trawler. I can't imagine you could design upfront such a beautiful emergent behaviour for your game, but you can absolutely do your best to give one the space to emerge, and then tend to it if it does.
Where should I look?
At any one time, people are generally capable of attending to about one thing. They can sometimes keep an eye on another thing, and they can often switch between things quite quickly and fluidly, but they're only usually attending to one thing. If you're making a game that's got multiple interesting things to attend to at once (for example, on the screen and also in your hands) then you need to deal with this. This applies to typical videogames, too, but the problem wears off: once you're expert, using the controller becomes second nature and your attention can focus entirely on the screen. It can take a long time to become expert, mind - typical game controllers are not comfortable things for people who aren't from games - and mouselook is really confusing until you're used to it. It can be simpler for touch screen games where there's a one-to-one input mapping or a simple (approaching one-button) control scheme. My game A Bastard is an example of competing demands - the controls need attention, the minimap needs attention, the first person view needs attention and your opponent needs attention. The game is very much about trying to decide what's worth attending to at any particular moment (and also squabbling over the controls). This extends up into high level play - attention is the ultimate resource to be managed in Starcraft.
The simplest way to deal with this problem is to clearly indicate where attention should be paid. In Jumpotron there's a single place you should be attending to at any one time, and everything else becomes inert to avoid distracting you. You go from adjusting values using the controls and the screen (the split there isn't problematic, because there's no time pressure and there's an immediate 1-to-1 mapping) to pressing the big "Prime" button to jumping on the pad to watching your robot jump to receiving a receipt printout. At any one time there's only one thing you can be doing, and it's clear what that is - even at the expense of allowing more people to play the game in parallel. This wasn't an accident - when we were designing the game flow it was with this principle in mind.
Punch The Custard plays with attention. As you're putting the effort into punching and your attention is shifting entirely onto keeping your weary arm moving, you can be caught out by the instruction flipping from "PUNCH" to "DON'T PUNCH". There's a number of reasons for the split in attention - it keeps the focus on the videogame part of the game, it means you're paying attention to your respective scores, it's funny to get caught out, you need breaks or else your arm would fall off and it's more exciting if there are peaks and troughs of intensity. But if you become overwhelmed or distracted and you stop paying attention to the screen, your attention can be called back when score-up sound effect changes to a score-down sound effect or when your opponent stops. And if you still fail to notice the state change the game fails open - you'll lose some points, but you can carry on just fine and you'll still end with a positive score. Ultimately, this mild split in attention is there to mildly overload your ability to pay attention - this feels exciting, and intense, and the experience is short enough it never becomes irritating.
Tenya Wanya Teens goes the whole hog (though I can't claim design credit here). You have too many things to pay attention to - moving your character around on screen, remembering what the button mappings are - and then on top of that you have to look down at the controller, so you're sure they haven't just changed out from underneath you. It's a very silly game, and it's deliberately overwhelming - which nicely captures the feeling of being an awkward, uncertain teen boy.
Magic
You can also think of these games as a magic trick. You approach a technology that's implicitly promising an experience, and it does something unexpected and wonderful and outside of your everyday experience. That's a satisfying thing! If you can smooth out the rough edges of the interaction, then you absolutely should do so. This was a guiding principle in our work on the prototype of Fabulous Beasts.
But there's another way that magic tricks can be satisfying - hearing how it's done. Penn & Teller have made this a trademark - first you show the trick, and that's pretty thrilling, and then you show how it's done, and that's a different sort of enjoyment. When people see Punch The Custard, their follow-up questions are always about how it works. Doom Piano is an impressive object to approach and interact with, but there's also another sort of impressive once you unbuckle it and show all the shining copper and dangling wires (and bits of sticky tape) on every single hammer inside. Also, there's a neat trick where we use the brass soundboard as a common ground for all 88 hammer-switches. Still pleased about that! Don't be afraid to get technical with people, if they seem interested.
Mind, I'm not arguing for a tech-first approach, here - focus on building the experience you want, as straightforwardly as possible. But if that technology is non-obvious, then there might be satisfaction in seeing your workings.
Actually making stuff: boxes are hard
The hardest part of making the Tenya Wanya Teens controllers was just building two wooden boxes. Enclosures are difficult. If you can find a way to not make them, go for it. Shove your electronics in an old custard can (then add a sock to keep them in place), or bolt them into an upright piano.
Electronics are easy
Punch The Custard could just be a Makey Makey board (it's an Arduino with Firmata on it and a few resistors in a breadboard instead). Tenya Wanya Teens is just LED buttons and boards bought from Ultimarc (highly recommended for arcade controls). Jumpotron was a matter of first looking up how to wire up encoders, then doing that. None of the skills you need are ones you can't pretend you have after an afternoon of Googling.
Programming is ... alright?
I dunno. It depends what you're doing. Hard stuff is hard, easy stuff is easy, things are generally simple until they suddenly get very complex. Try to keep your requirements simple, and get the most effect possible from the simplest code.
I come from a background as a programmer on videogames, so I probably have a skewed point of view on the difficulty of coding. For me, programming is easy, and making boxes is hard. I'm envious of the skills of carpenters. Design your project around the skills you have or can stretch to. Use what you know - the obscurest skill or interest could be the germ of a great game. There's no standardized skill set for making this stuff.
Despite what I said at the start, please don't take any of this as prescriptive. I hope it has offered up new ways to think about making these exciting hybrids of hardware and software. It's very much biased by the games I've made and the things I am interested in. I'm not sorry. When you're designing for the whole stack, and trying to create something truly new, received wisdom is even less useful than it usually is.
As always, the important thing, and the most practical and universal advice I can give is:
- think quite hard about the problem you're trying to solve
- and then try something out and see if it works
Fri, Jun 19, 2015
Feral Vector Bot Workshop
This weekend I ran two workshops of botmaking at the always fantastic Feral Vector (this time, tucked away in a gorgeous valley in Yorkshire). This is the reason I made Cheap Bots, Done Quick, so it was a treat to see so many people take the tool and run with it in so many different directions.
Here are the bots that people made:
- @DeepSpaceProbe
- @ShitBandReviews
- @algorithmbot
- @MilleniumFalbot
- @friendlybeating
- @tildesofthesea
- @hipstercocktail
- @yr_face_is
- @flowerscatalog
- @aerithcanlive
- @weirdLilPeople
- @what_hastings
- @MumAndDead
- @mynameiskcuhc
Mon, Jun 1, 2015
A Philosophy of Tools For Novices
I have just released a tool for making Twitterbots, called Cheap Bots, Done Quick. I feel pretty pleased with it, and it provides a good context for talking about my approach for making tools for novices (a disclaimer - most of the heavy lifting was done by Kate Compton, in developing the Tracery syntax and library. I don't speak for her, though). First up, I should say that this doesn't apply to all tools, but I do think it's useful if you're making a tool that aims to democratize some aspect of creation. Please don't remake Unity along these principles.
The main principle is that the tool should be as simple as possible when first approached. This means, of course, removing all unnecessary options and making as many decisions as you can for the user. But it goes deeper - it also means giving them a simple, consistent (but still powerful) conceptual metaphor to bind everything to. Take the example of Twine - the conceptual stuff you need to onboard is the concept of nodes, the concept of links, and a few details like stories always starting at Start. These are reified visually, making these organizing concepts the most prominent things - this helps immensely in making these concepts comprehensible quickly to naive users. With CBDQ, the important concepts are that of random selection from a list, and #hash markers# expanding out to the matching symbols. There's no nice visual representation, but I do the next best thing by having a simple example to start from that implicitly explains these two rules (plus the fiddly one about starting from origin).
There's more advanced functionality in both of these tools. Tracery has modifiers and variables, Twine has macros. But in both cases (less so with Twine 2 than Twine 1) these extensions are awkward and kinda hidden away. More advanced users will use them and find them, but by that point they're committed to this tool, and they can endure awkwardness and unintuitive logic. This obviously connects to Worse Is Better, but I think an even more powerful perspective is Olia Lialina's Turing Complete User. People will always find their own uses for things if you give them sufficiently powerful tools, and they will apply ingenuity to that purpose. Simplify the tools too radically, bury them in slick UI that doesn't interoperate with anything else - and there's no purchase for them to dig into. I've made a series of scripts that take Twine source files and mangles them and produces C# equivalents that can run in Unity. I've used Sublime Text's extensive Find and Replace features to take corpuses and convert them to JSON representation for feeding into CBDQ. Users find their own way of working with things, if you just give them enough points of friction to attach to.
There's a way of looking at this that considers this game design - designing the learning curve that users of a tool can go on. It should start out as accessible as possible - you should be able to dive in immediately and start seeing results. But the ideal learning curve is not necessarily low and shallow - there's satisfaction to be found progressing up, learning how to manipulate probabilities first one way, then another. Refining your results, learning the grain of the material - and then discovering the advanced features like complicated variable tracking macros or symbol expansion or automatic pluralizing. None of which is hidden, per se - in CBDQ's case, it's clearly linked from the introductory text on the same page you're working in. But reading the instructions is high-level play, if the example is enough to get you working. Unnecessary complication is bad - but given a tradeoff of a slight increase in complexity at the start, or a large increase in awkwardness for a pro feature, the answer is obvious for me.
And then there's always the escape valve that's also linked up there at the top. If you want to self-host, if you want to take the bot you've worked on and add features the tool doesn't support - then you can, and you can start from where you were at with CBDQ (uh, once you get everything working reliably, which is a non-trivial feat of sys-adminning. Which is why CBDQ exists at all). Ultimately the aim of CBDQ is to make bot-making accessible for everyone - for people who just want to quickly tinker and will only make a single thing, for people who will stay with the tool and start to learn all it's quirks and corners, for people who will soon outgrow it and start out on their own path of making beautiful generative art and poetry.
Wed, May 27, 2015
Some Twitter bots
These are the bots I showed during my hypertalk at Screenshake festival in Antwerp:- @gamejobsbot
- @knocknockbot
- @dungeon_bot
- @tiny_star_field
- @tiny_astro_naut
- @tinyshootinstar
- @FFD8FFDB
- @rom_txt
- @MinecraftSigns
- imgshredder/status/564068350490595328
- @imgconvos
- @godtributes
- @suxting
- @wikisext
- @babel_librarian
- @fantasy_florist
- @poem_exe
- @everyword
- HarryGiles/lists/everyword-orgy
Tue, Feb 10, 2015
Twine Workshop results
Many moons ago, I ran a workshop at Screenshake called Tying Stories Together With Twine. The plan for the workshop was to explore various ways that narrative could be structured within a game/hypertext fiction/Twine, and how that interacts with the writing and form of a story. I think we succeeded in that goal! I didn't mention this to the participants, but this was my first time running a workshop, so it was as much a learning experience for me as it was for them. I am going to move "running a workshop" from "things I'm probably able to do" to "things I consider myself able to do".
There were some technical hitches at the start - the standard stuff about getting a legible projection and getting Wifi working in a conference venue - which delayed getting things going properly, and meant. I was surprised (possibly pleased?) at how many people hadn't come across Twine before the workshop. I gave a quick overview at the start of what Twine is, and basic concept of a nodemap and then people dived off and played through some of the example Twines I'd put up before. These were *waves copy-paste wand*
- Queers In Love At The End Of The World by Anna Anthropy
- A Kiss by Dan Waber
- Skulljhabit by Porpentine
- MASTABA SNOOPY by goddesses17
- Magical Makeover by S Woodson
- Small Child in Woods: You Will Select a Decision, No. 1 by Brendan Patrick Hennessy
Then we got the Twine editor set up on people's machines (sidenote : lots of people downloaded the offline Twine 2 editor, then were confused by it not being a executable file, but rather a web page. Then I went and told them to download the old 1.4.2 version, and that was fine) and I gave a super quick 5 minute rundown of editing Twine files by basically reading Anna Anthropy's tutorial out loud (and then linking them to it, obviously). I gave them a few possible writing prompts from a randomized list I'd prepared in the form of a Twine file earlier. And then they sat down and made Twine games! I circled round every so often, and answered some questions (largely "yeah, Twine is a bit unclear with feedback here, you're not fucking up" and teaching people who were interested how to use the <<replace>>...<<becomes>>something<<endreplace>> macro and syntax). I also made my own game! Then finally, we played through all the results on the projector.
People made some great stuff! There was stuff that was moving, funny, suspenseful, dreamy - people had a bit over an hour to make something with no previous experience (in a foreign language, too!), and there was obviously a lack of polish and some dead ends - but there was also the germs of some really interesting stuff. And really there were really diverse results, too.
But you don't just have to take my word for it - here are the resulting games!
- Annabelle
- Daily struggles in the life of a city pigeon by Luch
- DARE OR DEMAND by Doron
- Happiness
- Irritating Sound by Klara
- Pigeon by me
- Untitled by Sari Ancaer
- Silent game designer by Nemi Kurtis
- socks by Ester
- Some Like it Black by pixelb
- Witness
- You're stuck in a tower by Elies Indigne
(Participants : if you want me to take any of these down or change/add proper attribution or credit, then let me know at vtwentyone@gmail.com).
Some retrospective thoughts on the workshop:
- Ahead of time, I fretted over whether to teach Twine 1.4 or Twine 2. But it turns out this wasn't worth worrying about, because pretty much anything we did could have worked fine with either. In fact, one participant made a game with Twine 2 because she only had a tablet with her, and not a proper computer. Other than the pain of typing on a touchscreen, it worked fine.
- I wish I'd made a point of making people fill out their StoryAuthor fields, so I could give them proper credit straight off the bat
- Everyone was really quiet! It was really difficult to know if people were enjoying themselves or following along. This is apparently a pretty common experience, though.
- Apparently, the workshop has inspired Twine to be taught at a university by a non-games lecturer. That feels good.
Mon, Feb 9, 2015
Twine Workshop Resources
Hullo! This is a dump of links for people doing my workshop at Screenshake! If that is you, welcome. If not, then this may lack some context.
Here is where to download the Twine editor: http://twinery.org/ - you want the older version, 1.4.2 (in the post-it in the top right hand corner). Or one of these direct links : Windows or OS X
Here are some games to play:
- Queers In Love At The End Of The World by Anna Anthropy
- A Kiss by Dan Waber (note the little "The Map" link on the left hand side)
- Skulljhabit by Porpentine
- MASTABA SNOOPY by goddesses17
- Magical Makeover by S Woodson (I especially liked Em Short's post on this)
- Small Child in Woods: You Will Select a Decision, No. 1 by Brendan Patrick Hennessy
You can view the source of any of the above Twine files by :
- Opening the game in your browser
- Right clicking "Save Page As..."/"Save As..." and saving to somewhere on your local machine
- Opening Twine
- Creating a new story (File/New Story)
- Importing in the HTML file (File/Import/Compiled HTML File..., then find the html file you just saved
- And click "OK" when it asks you if you want to overwrite existing passages (such as "Start", "StoryAuthor" and "StoryTitle")
- And your screen should now fill up with little nodes and links connecting them! This process is not entirely reliable - I have found a couple of links have got mangled, and you lose the layout of nodes that the original author used (which can make the resulting nodemap difficult to untangle).
Here is a blogpost with come pretty diagrams: Heterogenous Tasks: Standard Patterns in Choice-Based Games
And here is a handy tutorial (by Anna Anthropy - she also made Queers In Love At The End Of The World, listed above): http://www.auntiepixelante.com/twine/
Sun, Feb 8, 2015
a game for walking home
materials required :
- a walk home and
- a stopwatch
as you leave,
push "start" on the stopwatch
and walk home
(don't look at the stopwatch)
just before you open your front door,
stop the stopwatch
make a note of the time
the next day,
as you leave,
push "start" on the stopwatch
and walk home
(don't look at the stopwatch)
just before you open your front door,
stop the stopwatch
if the time is the same as yesterday
(to within a second, say)
you have won
if not
make a note of the time
and play tomorrow
Fri, Jan 30, 2015
Monogamy, a game for lovers
Okay okay, so I've not played it, but apparently there is a couple's boardgame thing called Monogamy. It gives you stupid tasks to do which are supposed to spice up your sex life. It is apparently awful? I have learnt all these things secondhand, and after doing so, I thought about how I might redeem it. So here's a gamepoem that attempts to do that.MONOGAMY - a game for lovers
Required materials : Monogamy (the game), these rulesFirst, we need some characters. Everyone should think of a name, and then 1-2-3-say-it-out-loud. Try as hard as you can not to create any more of these characters beyond the name at this stage.
These characters have bought the game Monogamy, and have just sat down to play. Open the box yourself!
Begin playing Monogamy. Decide which character goes first. Describe what they do. How does it play out? Decide this collectively, interrupt freely, be interrupted with good grace, make a point of not matching characters to players.
Before playing the next turn, add a piece of backstory to your characters. Just a sentence, describing a thing that has happened in their lives to bring them to this point. Try to add the detail to a character you didn't name.
Now play the next turn. What happens? Do they enjoy it? Does it go right? (it doesn't seem like it's likely to, but you never know)
Now add more backstory. Try to add a detail to a character you didn't just add a detail to.
Keep going! Play more cards, add more backstory. Continue until Monogamy concludes, or at least your characters have.
Some advice for playing and general ethos:
- start slow. At the beginning of the game, your characters are likely to be nervous and awkward. Let them warm up as you warm up as storytellers.
- no-one owns a character. If you feel like you are more invested with one character than another, then feel free to say so out loud, and stop making any decisions about that character for a while.
- the meat of the emotional arc is in the interplay between the backstory and the current story. What secrets are they hiding? Are they revealed over the course of playing Monogamy? How does playing this game change their relationship?
- there are three general tones this game could take, all of which are valid:
- comedic. Monogamy sounds awful, and like it could be played by awful people. That's fine. If it's going that way, then just go for it. Feel free to turn this into a Tom Sharpe farce. This is totes valid.
- sexy. You are describing fictional people maybe doing it with each other while with someone you maybe do it with. You could get actually turned on. That's fine. Feel free to keep playing with fewer clothes on. Or get distracted entirely...
- emotional. You are talking about people uncovering emotional truths with their partners while in the company of a lover. This is fine. If, as they say after TV programmes, you are affected by an issue raised by this game, then decompression afterwards is the most important thing. When you are done, talk about your characters, talk about who they reminded you of, talk about what your hopes for them were. Care for each other.
Okay! That's my game. I wonder if Monogamy works the way I have assumed...
Wed, Jan 28, 2015
I love multicoloured slush
Here are some things I love about it:
- It has a flavour and a colour gradient!
- Depending on how you drink it, it becomes more or less dry -- and as you do so, it turns from a slush to a solid "sandy" substance, with this kind of weathering on the corners that's really great.
- It's a really warm day today, and it's made of ice.
- It has a straw with a spoon on the end!
- You can totally play with it, get bored, and then wait a bit and it melts and then it changes form again.
- It is totally made of sugar.
- There is nothing healthy about it, it is just purely to be had because you enjoy it.
- I got it from the bagel shop, and I am predisposed to like bagel shops.
- It makes me feel like a small child, but I am pretty sure I never had multicoloured slush as a child. But I would have been excited then, and I'm excited now.
- Some residual sense of exoticism from it being an American thing, but here in Britain. This is very weak nowadays, but you can still feel it under the layer of nostalgia and despair around Mr Wimpys.
- One of the flavours is clearly just "blue". Blue! I love blue flavoured stuff. I have no idea what that is.
- Also "red" and "yellow".
- Which are also all bright great colours.
- That form a gradient! Look at it!
Thu, Jul 24, 2014
A reading list for game developers
David O'Reilly's Basic Animation Aesthetics : Discover the secret to making your games not look, or sound, or feel like crap. I really think that this is the easiest way to make something beautiful.
Terry Gilliam teaches animation : This embodies the spirit of indie, for me. Here's the meat of it (but the rest it completely worth watching too) : "I think if you’re going to learn about animation, you’ve got to learn about cutout animation. The whole point of animation to me is to tell a story, make a joke, express an idea. The technique itself doesn’t really matter: whatever works is the thing to use. And that’s why I use cutout - it’s the quickest, easiest form of animation that I know"
Anna Anthropy on the first screen of Super Mario Bros (and the rest of the design tag on her blog) : Anna teaches (by example) the most important thing about level design : teaching the player (by example) how to play.
Jonathan Whiting runs a course on level design on Tigsource : And this is worth reading, too, on that. Where Anna breaks down a masterpiece into component parts, Jonathan builds up from the raw materials.
"Let's Play: the first room of Anomalous Materials in Half-Life 1" by Robert Yang : And here's the equivalent of Anna's piece, but for 3D. This has more of an emphasis on architecture than on teaching, which I think is broadly a difference between 2D and 3D games.
(Honorable mention to the developer commentary in 30 Flights Of Loving)
Michael Brough's blog : Just the whole blog. Not so much for particular insights, but more: this is what high-level design insight looks like. (This is the same point as most of these, to be honest. Robert Yang talking for 10 minutes isn't going to teach you 3D level design - but he can show you what that looks like, and then you can use your own wit to operate on that level yourself)
Robert Penner's Easing Equations : A good part of being a game designer is having a understanding for feel. I now know how long .3 of a second is. Familiarity with these easing equations is not necessary, but a very common part of that.
Juice it or lose it - a talk by Martin Jonasson & Petri Purho : Similarly, here's a walk through the full range of juice you can pump into a game. But I disagree with some of their rhetoric -- where they start is not necessarily worse than where the end up. It depends on the effect you want to convey.
Vehicles: Experiments in Synthetic Psychology by Valentino Braitenberg (cheeky pdf link) : A brilliant book. It's not about games, but it is about how simple rules can lead to engrossing entities that people will attribute emotion and intent to.
Nordic Larp by Jaakko Stenros and Markus Montola (direct pdf link) : So much variety here! And so much depth, too. I found this book an inspiration.
The Well Played Game by Bernie DeKoven : This is a book about communities, about why play is valuable, about competition, about our responisbilites when making or playing games.
The sentence “The experience starts when you first hear about it and only ends when you stop thinking and talking about it.” (Tassos Stevens, Coney) : Just that sentence, I think that sentence is really important.
The Manual (or, How To Have A Number One The Easy Way) by The KLF : A lot of people have a distate for marketing. I don't. I think this book might be why.
How To Explain Your Game To An Asshole by Tom Francis : I would also add that I think that having a game that sounds good under these conditions is one of the most important factors to success.
Kieron Gillen's How To Use And Abuse The Gaming Press And How The Gaming Press Wants To Use and Abuse You : Despite being advice that's approaching a decade old, it's still relevant and right.
This one is cheeky, but : my own previous post, Rules for making games covered a lot of this ground, and I think holds up well.)
Tue, Jul 15, 2014
Some good things that happened at GDC in 2014
-
A long, 4AM conversation about the nature of games, the trajectories of our careers and our current plans and state of mind, between @lauraehall, @minkette, @edclef, @nachimir (until he fell asleep) and me.
-
Discovering H & T had started seeing each other, and them both being the absolutely most adorable about it.
-
Discovering, as I bounded up the stairs to go program the config for Mega-A͈L͈P͈H͈A͈B͈E͈T͈ while doing the tech setup for That Party, that I both really enjoy, and am actually quite good at doing tech for our events.
-
People liking the things we did.
-
At Lost Levels, I walked past a friend sitting on the grass with a group of people I didn’t know, enjoying an animated conversation. Then another, doing the same. Then I walked past Davd Kanaga pulling a scary face at a baby. That was great.
-
Inventing “Boop”
-
Not worrying about hanging with the cool kids. Or spending the week refreshing Twitter, hoping to find out about a better place to be. But instead, spending the week hanging with people who I liked & respected, and who seem to like and respect me.
Tue, Apr 15, 2014
Twine tasting
So the first Twine Tasting evening is this evening. We are Playing Ultra Business Tycoon III! In preparation, I have prepared a handy reader linking to the game and some ancillary bits that may be of interest.Wed, Sep 18, 2013
.tws to .twee converter
If anyone finds this useful, I've made a small python script for converting Twine .tws files into Twee .tw files (without using the Twine GUI)
(You will need a working copy of Python)
This was made as an incidental part of writing our dialogue system for Mutazione. Exciting, huh? I will no doubt talk about all the intricacies of how we're doing that soon enough.
Tue, Aug 13, 2013
Oculus Rift Guillotine Simulator
Disunion - The guillotine simulator from André Berlemont on Vimeo.
This concept is super interesting to me, and goes down some routes that I want to explore with my Oculus Rift (when it finally arrives!)
- The head is in a fixed position, which makes sense, because the Oculus can't detect lateral motion. So if you make a game where only the head moves you'll have more immersion. Thus why mech Oculus Rift games make the most sense, and FPSs are a bit of an uneasy proposition (I conjecture, have not put my hands on one). I've been batting around a puzzle/horror game played entirely while bound to a post in a deserted warehouse for the same reasons.
- The immersion of having a different playing positon -- lying outstretched, rather than sat in a chair. This is stupid to set up with a screen, but makes more sense with the Oculus.
- The theatrical immersion of having your hands behind your back. Would be even better with coarse rope tying you up, a wooden block to rest your neck in
- And, similarly, the discomfort of twisting your neck to see what's going on! Your natural view is just the basket, but you wanna see what's happening. But it's awkward, which is true, and effective.
- The surprise of the neck chop! Amazing. And all the better for being unexpected. A smallest touch of physical presence, suddenly bringing you a level deeper into "immersion" than just seeing through someone else's eyes. And the tension of the build up to the guillotine fall makes it all the better.
- I love how Nifflas is always game for stuff.
All in all, I wish I could've been there! Alas, work!
Tue, May 7, 2013
object jam (early entry category)
Make games for objects like you make games for consoles. Make games to be played on the spoon, the chair, the door.
— Ian Snyder (@whatisian) April 6, 2013
@aliendovecote @seebeewhitman @radiatoryang @mcclure111 @smestorp @benthorizon LET'S DO A GAMES FOR OBJECTS TWITTER JAM. LET'S DO IT.
— Ian Snyder (@whatisian) May 4, 2013
I'm too lazy to wait for this jam to start, so I'm launching early. And no-one else is home, so I've not actually played my entry. But here it is:
a wall of books (a game for a wall of books)
make a pile of books stacked against a wall. use all the books. pile the books as sturdy as you can. if you have the patience and strength, everyone should contribute their own books. but books are heavy, so fuck that shit. use what you got.
everyone sits beside the wall of books, crosslegged. everyone picks a favorite book from the pile. everyone gets a bookmark and places it just inside the front cover of their book.
players take it in turns to describe a book. they pick another player, who has to has to withdraw books til they get the book being described. put the books back on the wall. if you gotta take extra books out to extract a book, take them out, then put them back on the pile. but you can't put any books on the floor that aren't already on the floor. if you get the wrong book: move your bookmark forward a page (ok ok, technically two pages). when you get the book being described, read a little of it aloud. and now someone else has a go.
when the pile falls on everyone, the game ends. the winner is the person with their bookmark closest to the front of their book.
now tidy up!
Sun, May 5, 2013
A Unity3D pattern I've not seen discussed
Here’s a design pattern I use a lot in Unity when sketching out or testing behaviours:
public bool bangFollow;
void Update () {
if (bangFollow)
{
bangFollow = false;
FollowSpline();
}
}
As I use it a bunch, I’m not sure how clear the intent here is to other people. The idea is that you want to test a bit of behaviour before you’ve necessarily got the hooks in place to call it at the right time (or you want to test a bit of behaviour in isolation). It’d be great to be able to just type into an interpreter “testCreature.FollowSpline();”, but we don’t have an interpreter handy (and if we did, we would have to get the reference to the GameObject first, when it’s right there in the Inspector…). So instead we make a boolean visible in the Inspector, and use it entirely for communicating to the script that it should run a function. And then to prevent it from happening more than the once, we set it false.
(Why “bang”? Because I’ve played around with pd, which has a similar concept of a button you can press to send a signal/invoke a function interactively)
[Edit] @jonbro prompted another thought: Why not just use GetKeyDown? The answer is: because this way you can have a whole army of the same behaviour active, and only trigger a single one of them.
I once got messy trying to write an editor script that used reflection and a custom attribute to achieve this in a more convoluted way, but it was a bit of a mess, and I didn’t know if anyone else felt the need for it.
The other thing I do is create variables in the Inspector that are purely used to show state to me while debugging – I should really come up with come kind of hungarian notation to mark these off. I guess “debugWhatever” would cover it?
Wed, Mar 20, 2013
Valve and externalized labour
Valve used to emply 12 people to look after (I'm not entirely clear) Steam, or submissions to Steam. There were far more submissions than they could manage. So they introduced Greenlight. They didn't employ more people, despite Steam obviously bringing in enough revenue to pay for them. They did this because they prioritize increasing their productivity-per-worker. Some of these causal links are stereotyped, or guessed -- I'm sure they also find hiring people a slow and painful process, I'm sure they also are concerned by their role as a single gatekeeper to the money hose.
Meanwhile, there's in increasing way of seeing Facebook and other sites as being built off user labour. The act of uploading photos, tagging, friending, liking pages all creates valuable data, and that's what the value of the companies is built off. Most large internet corporations are built off this principle -- Amazon escapes this a little, because they also sell things. To the point that there is a proposed French tax, that, rather smartly, would tax data collection. Because value is being created in France when French users use the Internet, but it's being taxed in tax havens. Like I said, smart! And radical.
As an potential maker of a game that will go on Steam, I can feel the effects here directly. The old system was not much work, if incredibly capricious. Send an email to the relevant people, beg friends for contacts, pray. Now you have a Greenlight page to manage, you have to harness your fans to vote for you, do press outreach work (which, sure you'd be doing anyway, but there's an additional load). You feel the extra labour, and you feel the impact of the labour you're asking fans to do on your behalf to vote for you. No-one likes to pester people. And my day is already getting sort of full of doing shit I don't get paid for on the Internet.
An important point here is -- the extra work that Greenlight has created is far larger than the extra work that 12 extra (twice the capacity!) full-time people would do. And it's not renumerated (unless you win access to the money hose for your game, of course). This is great for Valve, but a bit evil. Pretty much routine for this day and age, but still -- a bit evil.
The thing is, Valve give the impression of being a fairly moral, fairly not-evil company. (Sidenote: I am very curious as to what they do with all the money they/Gabe Newell makes. Does anyone know?). So I hope they're thinking along these lines, and find a way to funnel some of that value back to users in the next iteration of Steam. They're talking about curated storefronts, with commision for the people who run it them -- there's reasons to be hopeful.
Wed, Feb 6, 2013
A list of single joke games
This is an incomplete list -- email me at vtwentyone@gmail.com, or tweet at @v21 to suggest more or to argue that entries should be removed.
Original list:
- Songs of Travel by increpare
- You Have To Burn The Rope by Mazapan
- Envirobear 2000 by Justin Smith
- QWOP by Bennett Foddy
- YOU HAVE FORGOTTEN HOW TO USE A PEN by Wanderlands
- Surgeon Simulator 2013 by Tom Jackson, James Broadley, Jack Good, Luke Williams
- Let There Be Smite! by Pippin Barr
- ZORBA by Pippin Barr
- All's Well That Ends Well by Pippin Barr
- Let's Play: Ancient Greek Punihsment by Pippin Barr
- PONGS by Pippin Barr (errr... not all of PONGS. But some of PONGS)
- Hot Coffee by Pippin Barr
- Ludwig Von Beatdown by Pippin Barr (note: I think I'm being quite arbitrary with which Pippin Barr games I'm putting on this list. Here's the full list: make your mind up yourself)
- Steamshovel Harry by Allen Henderson
- Hell Tetris by banthar (and Randall Munroe)
- Linear RPG by Sophie Houlden
- Desert Bus from Penn & Teller's Smoke and Mirrors
- Cow Clicker by Ian Bogost
- Futilitris by Twinbeard (thanks @mcc)
- Tea time with Luap Sere - Make the World Right by CROS, KniteBlargh & Clic (thanks Ashley Gwinnell)
- The Illogical Journey of the Zambonis by Noyb (how the hell did I forget this?)
- Dark Room Sex Game by the Copenhagen Game Collective (this might only work when shown at conferences?)
- Pung by Squidlarkin (thanks Squidlarkin)
- Cod of Duty by Ryan Evans (thanks John Brindle)
- Squidlarkin again: You Lose Some Points, Incomprehensible Baking Hero, Queazytron, FormVaders.
- GT EffBee: Trampoelephant, Vector's Block Ball and Extreme Digital Tennis Friends
- So long, Oregon by Justin Smith (thanks Porpentine)
- Terra Tam by Leon Arnott (thanks Porpentine)
- Also Tiny Sorceress by Leon Arnott (and thanks again, Porpentine)
- Shitsnake by Draknek (thanks Sam Crisp)
- pOnd by peanutDre (thanks Mat Jones)
Sun, Feb 3, 2013
What's a game? (part one billion)
Taken from the Steam user forums.-- http://steamcommunity.com/app/219680/discussions/0/846944052747468952/Buyer Beware - This is not a game, there is no goal, no story, nothing
Just wanted to say, before you buy this please be advised, this is not a game, there is no goal, no story, no gameplay, nothing. You just walk on a randomly generated island loaded with 1999 sprites.
It's interesting for about 10 minutes, but after that you've seen mostly what the games has to offer and it just becomes boring because there's literally nothing to do in it.
It's an interesting little project that someone would do in 48 hours in a weekend game jam, but in no way worth 10$. The Steam store makes it look like something it isn't, that's why I wanted to warn people about it
-- http://steamcommunity.com/app/219680/discussions/0/846944052747871210/Quick critique.
Proteus is a pretentious game for hipsters, piggybacking on the success of other 'games' like Journey. This is not a game, it's just a program. It is not a fun program. People who want to believe they are intellectuals might describe this extra minimalist adventure as "compelling" and "deep" when more appropriate adjectives would be "lazy" and "boring". The creation and undeserving popularity of these shoddy products needs to stop. How this non-game weaseled its way into Steam is totally beyond me. Do not buy this. Do not support this kind of product. Talk with your wallet, and demand better.
-- http://steamcommunity.com/app/219680/discussions/0/846944052740660376/Is it really a "Game"?
So is this a "game" in the same way Dear Esther was a "game"? Is there any goal or is it purely exploration. Don't get me wrong, i don't mind "interactive entertainment" but i just think they'er a different thing then what would qualify as a "game" and by calling it a game in the description seems misguided to me, unless it actually is a game.
(Later comment in this thread: "I think semantics are important when money trade is involved. It's the same reason Dear Esther got so much flak, it called itself a game and people felt cheated by that fact alone.")
-- http://steamcommunity.com/app/219680/discussions/0/846944052744138923/[...] To me, this title is a good example of something I wish I would have thought of when I was in art school. A different way to use computers and games to engage an audience and share an experience. However, it's *not* a game. I feel like this has to be stressed. I don't feel like this is worth the $8.99/$9.99 they're asking for. There's not a lot of replay value unless you're among that small subset of people that just really get off on this art/music style and want to veg out. May be awesome if you're a stoner, too, I'm not sure. In my opinion, not for the average gamer, though...a lot of people on Steam are going to feel ripped at this price point. I'd feel better about it if it were in the $2.99 - $4.99 price range. [...]
My point here is : the question as to whether something is a game or not has more than academic consequences. It doesn't even matter if Proteus is a game or not. It doesn't even matter whether these people are just plain wrong, or philistines, or Internet commenters. There's a direction connection being repeatly drawn here between not-game and not being of monetary value. Which insane to me: adding a goal to something makes it worth more?
The main practical consequence of insisting on rigid boundaries is that people making game-like objects have a harder time selling them to gamers.
Thu, Jan 31, 2013
Rules for making games
- If you have some control over it, and it affects the player's experience, you should either design it, or think very hard about why you're not going to.
- Relatedly: "A play begins when you first hear about it, and ends when you stop thinking about it" -- Tassos Stevens
- Making a game is easy. Finishing a game is difficult. Selling a game is almost impossible.
- Tell people about your stuff - you owe it to the work.
- Which future of games is correct? All of them. No platform/genre/style/whatever ever really goes away, it just gets more niche.
- It can be useful to start with an interesting problem, then try to solve it as well as possible.
- Relatedly: It's important to know what problem you're trying to solve.
- Relatedly: Don't import conventions without examining them carefully.
- If you start by building an engine, you'll never make a game.
- Try the stupid/simple solution first.
- The easiest way to be beautiful is to be consistent.
- It doesn't matter if what you're making stops being a "game" halfway through. Or even if it never starts as one at all.
- Sometimes you need to slog through it. But you're basically useless at design when you're slogging. So take a break!
- What you make matters more than how well you make it / Your life is finite.
- Try to work in a way that's sustainable. Do you want to be doing this in ten years time?
- Don't talk all the excitement out of a project, save some of it for actually building the thing.
- Trying to find ways to break definitions is a good way to innovate.
- If you rip off unexpected things, people will call you original.
- It's never the player's fault.
- Be generous.
I liked writing this because I hate prescriptive rules about game making. Also because it's such an incredible act of hubris.
I'm posting it because I'm curious how well they'll stand up.
Sat, Jan 19, 2013
Font : Fiona
Download here
To edit, go to http://www.pentacom.jp/pentacom/bitfontmaker2/ and enter the text from this file: fiona_data.txt.
Sun, Jan 6, 2013
Tools For Making Games
I’ve been thinking about making tools for game creation recently.
Partly I like the challenge. Designing something that anyone can use, that’s hard. Designing something that can cope with creativity you’ve not anticipated, that’s hard. But also – also I like making engine tools, I like making code. I find them fun rabbitholes of tech to chase down, somehow more satisfying that all the other design and polish and making it work and making it accessible that’s needed far more for the games I make. Ha. Maybe that tendency is one this project shouldn’t indulge. So. I like the challenge.
So here are some things that have been inspiring.
Twine. I mean, obviously. Here’s how to make games in Twine! That’s all you need. There’s all these great games, made by people who haven’t made games before. It’s the posterchild for accessible tools.
It’s limiting. It’s designed for CYOA stories. That’s not all games, obviously. That’s not even all IF. I want to make that feel, that game-response, that’s a thing I like. I like the moving pictures. Blah! Text! I play videogames when I scrape myself away from reading things on the Internet.
OmniLudiCon – there’s this I just discovered. It lets you put the game elements together. I’ve been fucking around, trying to make a Bangai-O Spirits style puzzle room of death. It’s satisfying.
Why isn’t this enough? I want to be able to change the graphics. You can design what you want, but it’ll always look like OmniLudiCon. You can’t change the player character/s from the stock. Maybe that’s not so bad. There’s certainly lots of places to go.
Also, the games remain trapped inside the box. That’s a shame.
Blingee.com - you can make these stupid, multilayered GIFs. Anyone can do it.
Not a game, notagame, NotAGame. No, seriously, it’s not a game. it’s not even interactive. But it’s fun. It’s stupid. It’s ugly in the best of ways.
“There’s a lot of appeal to this kind of thing if you can just dig into doing it. Maybe someday someone will make a Social Networking Site that’s split between the regular features and some means for creating spontaneous experiences of this nature. When I used to post on forums a lot, it began to feel natural to talk in a mix of text and pictures and video. Given a simple enough toolset, I think some people could get into casually speaking videogame.” – J Chastain, from http://v21.tumblr.com/post/36661345104/impossible-mansion-the-lost-stories-of-porp-a-sleep
Inspiring, huh? I know exactly that feel, that hypertext melange. And interactive, too!? Oh my giddy aunt.
So one trap you can fall down is trying to make something powerful. Something that can do anything. A blank slate. That’s useless. Who needs that? It’ll be impossible to use. It’ll be for pros. Make something for users. Users find a way.
This is the thrust of Olia Lialina’s wonderful essay The Turing Complete User. Here’s a section:
“General Purpose Users can write an article in their e-mail client, layout their business card in Excel and shave in front of a web cam. They can also find a way to publish photos online without flickr, tweet without twitter, like without facebook, make a black frame around pictures without instagram, remove a black frame from an instagram picture and even wake up at 7:00 without a “wake up at 7:00” app.”
This is why (with a healthy dose of clever design, and generous spirit, and maaaaaaybe sometimes some Actual Programming) Twine isn’t just a CYOA tool.
Maybe this is the same thing as Ruby’s Convention Over Configuration mantra (disclaimer : not actually a Ruby user). The idea is that the defaults are sensible. So you don’t have to think about them unless you have to change them. And anything you have to think about to make the game is another obstacle between you and finishing your game. Which helps on this front : “I can work with Twine when I’m too tired to deal with anything else. You don’t have to wrestle with anything between the emotion and the page, your fragile thoughts survive.” (Porpentine) What you want is to only have to answer the questions you’ve asked yourself. If you’re making something polished, if you’re being professional, you’ve got to raise and answer a lot of questions. But you don’t have to be professional to make something for your friends.
The other half of this Turing Complete User concept is – the user is not there to make the game in their head. The software should not be perfectly transparent. They’re there to make a Twine game, to make a Blingee, to make a Klik & Play game. They’re there to use the software, they’re not there to achieve their aim with no interference from the software. Think of it as the user and the software, sitting side by side, working on the task together. If you cook with someone else, then you are a bad person if your only concern is the food you make. And yes, you don’t have to consider your software’s feelings, but it should consider yours, and you should consider it’s advice, if it has any to offer. I’ve the last few days been using ReSharper for the first time. It can be very bossy. It’s a good feeling.
So obviously another part of this is that coding is hard and scary. But you ultimately want to make things that are arbitrarily complex. With arbitrary rules. And I know enough theory to know that to write the specification for a arbitrarily complex set of rules, you’re going to need to be writing in something that’s Turing complete, and so basically – a programming language. You can maybe not have to type it, but it’s still a programming language. By definition it has to be. You can make it a welcoming and happy programming language, though, but enough energy has been spent trying to create one of those that I shall not make a dent on the problem by adding mine (thus do great problems never get solved). They still need to you to know what a variable is, what a loop is, how control flows through the software (shut up, Functional Programming). These things are not simple, and they’re not intuitive.
So how to resolve this? I don’t know. Twine, again, does it well. The simple things are just there. The harder things are hidden, and you have to code. But it’s code you copy and paste from friendly guides. We’re in this together, and the ecosystem is as important as the tool.
Ooooh, the ecosystem. Bennett Foddy has said (I can’t recall where, so will put words in his mouth) that QWOP doesn’t have leaderboards. And that that means that when people share their scores, they share them elsewhere. On YouTube, on IM, wherever. That applies here too. Blingee goes everywhere. Twine is just a HTML page. Partly it’s that the web is magical, and is the natural place for things to be shared. But also: “Twine isn’t owned by a company. It isn’t going to restrict part of its functionality behind overly specific social networking sites that not everyone has access to (ahem), start charging to modify the HTML (ahem), or dramatically change in any way. I like that Twine simply exists and doesn’t belong to anyone except everyone.” (Porpentine again). Again – the problem with Warioware DIY is that the games never leave the box. The problem with OmniLudiCon is that the game never leaves the box. So you YouTube your game instead. (NotAGame, notagame)
So that’s the ongoing thoughts I have rolling about about making a game tool. I should try more of what exists, as there’s lots I have not tried. Maybe I will make something some day.
Wed, Dec 5, 2012
Rolling A Joint
Tonight I played Pierrec’s game Sister’s Little Helper as a bedtime story. I wanted something calm to relax me before going to bed. I was tired, and knew it was time to sleep, but I’ve been staying up too late recently, so I wanted to waste a bit more time.
It fulfilled that role excellently – it’s a really charming little game. Every night, a young girl rolls herself a joint and tells herself a story before going to bed. My favorite story was all the ones about The Story That Can Only Be Told Once. It’s maybe not a game (not that I care), but a way to tell those stories, and more importantly, tell the story of the girl. It’s not about you, I guess I’m saying.
Here’s an interesting part to it – there’s a joint rolling simulation in the game. You’re rolling the joint that she smokes. Now, I occasionally smoke, and even more occasionally roll joints. So there’s a lot of familiar details – the details on the rizla packet, rolling up little roaches from card. But it’s also a confusing alien experience. It’s been many years since I’ve smoked hash – is that common in France? and I very rarely get fancy with multiple rizlas. And I remember my flatmate decrying rolling up with fag tobacco just the other night. So all these things feel like someone else’s rolling experience. Not mine, but hers. The French girl who should ring her parents, not the British guy avoiding sleep. Which feels completely right.
Tue, Oct 9, 2012
Some Depressing Thoughts On The App Store
One thing that’s useful to bear in mind is you’re developing for the iOS App Store is that Apple doesn’t care too much about making money from it. A very quick Google shows that the profit per iPhone is in the $300-350 range. Over a two year contract, you’d need to be spending over $10 a month to match that number. And that doesn’t account for Apple only taking a 30% cut – to match that, users would have to be spending over $30 a month. On average.
Which they pretty clearly don’t. Which means that the role of the App Store is far more in generating iPhone and iPad sales than it is in making money directly. The entire developer ecosystem is largely there to drive sales of the phone, not as a direct revenue stream. I’m sure you can think of your own examples of Apple making decisions that don’t directly benefit developers that this theory can help explain.
In fact, there’s a back of the envelope calculation that makes this even crazier. Again, using the first numbers I find: There are 160,000 developers for iOS. Assuming each one buys an iPhone to develop for ($300 profit) and a single year developer account costing $99, they’ve generated $64 million of profit for Apple before they’ve even opened XCode. With a mean revenue per app being $8,700 (of which Apple takes $2610), about 15% of Apple’s revenue from apps comes from people buying devices to develop for and buying developer accounts (and this doesn’t take into account people buying Macs to develop on).
Which is actually pretty depressing. Very few apps do make $8,700 (but those that do, often make far more). In fact, I would be surprised if most apps break $400. Which means, as over 80,000 people know only too well, most people who make apps for iOS pay Apple for the privilege, and make the App Store more enticing as a side-effect.
Sat, Oct 6, 2012
A Giant Wall Of Dice
Another game made at the recent Tigjam. Some footage of it is available here:
- Make a wall of dice. Stack them overlapping like bricks. Make the top layer a different colour.
- Each player gets yet another colour of dice. And a spoon.
- First round!
- Try to insert your dice into the wall. You're only allowed to touch the dice with your spoon, and you're only allowed to touch the spoon with a single finger.
- The round ends when all the top, differently coloured dice are touching the table.
- Rebuilding phase!
- Any dice touching the table with nothing on top (that is from the wall originally) are piled up on top of other dice. You can score points this way. Take it in turns to place a dice.
- Repeat first round!
Thu, Aug 9, 2012
Remembrance
A jam game involving cards or bits of paper for 3 or more players.
Write at least (3 x numbers of players) words describing a person onto the back of cards of bits of paper.
Shuffle them, and deal them out face down three to each player. Each player picks one, and discards the rest.
Now the group decides on a person to share stories of, and commemorate their life. This is a wake. Raise a toast to dear departed Jimmy!
You gain a point for every time you use the word on your card in conversation.
Players can guess each others words. If they guess correctly, that player can't score points any more. You can't guess twice in a row (ie if you make a guess, someone else has to make a guess before you can guess again)
The round ends when there's only one person whose word hasn't been guessed. The winner is the person with the most points.
If you play another round, the winner gets to add a card or two without anyone else seeing them.
The game is hard, but pretty funny. It's probably breakable, but that's okay.
We played with words like:
- lazy
- crafty
- witty
- charming
- sailor
- shadow
- filthy
- powerful
Sat, Aug 4, 2012
Panlids: Resurrection
So last Saturday I was at Rezzed. Amongst playing games at the show and going to the pub, I spent an hour making a card game, then was abruptly yanked on stage to show it to hundreds of people. Which was a bit terrifying, it turns out.
So here how the game is played:
There are three types of cards : attack, defence and surprise cards. Each player is dealt 2 Attack cards, 2 Defence cards and 1 Surprise card. Each player also has 10 tokens.
The attack cards can be a machete or a shotgun. The defence cards can be a bulletproof vest (to ward off shotgun blasts) or a pan lid (to defend against machetes). The surprise cards can be either nothing, or a Resurrection card (of which there is only one).
The aim of the game is for all the players who don't have a resurrection card to kill the one player who does.
To attack, you place down an attack card, with a number of tokens on it, and attack someone. That player can either defend by placing the right defence card down with the same number of tokens on it, or counter attack by placing down an attack card and placing the same number of tokens plus some extra on it. If they do this, the original attack now has to defend against the extra tokens worth of attack (by defending or counter attacking yet more). The defender then picks the next player to go (including themselves).
If you can't defend or counter-attack, you die, and the attacker takes all your tokens. If you defend successfully (and just added this rule, it was not in place on stage) then you get all the attack tokens plus your defence tokens.
If you're dead, and you have the resurrection card, you can suddenly declare yourself alive again at any time. You get 10 more tokens, and you're back int he game.
The game ends when no-one can move, or all by one player is dead. If the player with the resurrection card is alive then, they win, if they're not, everyone else wins.
To be played by more than 3 players.
I'm not sure whether the game works -- I think the economy is pretty much fucked, and stalemates (running out of attack cards) are pretty common. But I still love the idea of winning by springing back to life with a hidden card after it seems like you're dead. I also like games where the turns are decided by players, and not in a fixed order -- it suddenly adds this element of capriciousness and unfairness and negotiation to the most basic question of "Who's next?" (this is inspired by So Long Sucker, which I've been thinking about remaking recently). The game never stirred up the Werewolf style questioning of player's attributes and motives it feels it needs -- there was never enough negotiation taking place. I'm not sure how to encourage that directly, except making the necessity for it more obvious. And maybe slowing the game down some.
One reason i chose to do a jam game that was made out of bits of paper was that I spend about 10/15 minutes at the start coming up with the ideas and starting making it. From then on, I was pretty much constantly in this immensely pleasurable playtest scenario. You play the game, and you propose rule changes, constantly. Anyone can suggest a fix, and trying each one out is usually instant, and at worst takes as long as it takes to write the new cards, or count out the counters.
The downside is there's nothing to download for people who come after, and it's a huge pain to demo on stage.
Anyway! If you play the game, don't take the rules as set! Try to fix them, and tell me how you did it. I'd love to play your version.
Wed, Jul 11, 2012
The story of Silt
So a few weeks ago I made a game!
It's pretty good, if I say so myself.
If you're interested, here's the updates I made as it happened
Let's tell the story of it's creation first. Back when #7dfps was being discussed on Twitter, I had the idea. As I do when I get an idea for a game, I put it down on a Google Doc called "Terrible Game Ideas". Someday I should write a blog post about how great having such a list is. The idea sprang pretty much fully formed into my head back then. Let's see what I wrote, hey?
underwater FPS.
- bubbles rise constantly, unless you hold the "hold breath" button.
- go up/down too fast and you get the bends
- get near the surface, and you get machinegunned from the boats circling above.
- getting shot in the tank jets you away, makes you lose all your air
- air gauge - breathe heavier, have less time alive.
- harpoons. slow reload, little ammo. slow travelling
- stealth.
- multiplayer
- shit.
- little/no sound
- clouds of silt kicked up from the surface
Not all of that made it in, but that that didn't are still good ideas that would fit into the game.
So. I was excited as anything for 7DFPS to start. I deliberately marked it off on my calendar and didn't make plans all week. When the weekend rolled round, I got cracking as soon as the clock ticked past 1am.
The game unfortunately needed netcode written, as well as some custom modelling done. I had not done either of these before. So I was unsure what I would manage to get done. So I dug around and started off getting this Photon Bootcamp Demo. I took it, and I just started ripping bits out, left right and center. Until I was left with the very least that still did networking. And the terrain. FUN FACT: The plants in Silt are the same as the plants in the Bootcamp scene, just recoloured. Same positions, same everything. This approach paid off pretty well -- I feel like I can now deal with netcode from scratch, and I managed to make a game without ever falling too deep down a rabbit hole of tech issues. A basic scene with all this stuff setup would still be totally useful -- I know there's a whole bunch of useless state being synced across with this build.
So Saturday I got some stuff done, Sunday I spent a lot of time fucking about avoiding working on it, but I remember thinking I'd have something basically feature complete by the end of Tuesday. Which I more or less did. All this week , I've been staying up til like 2 or 3 am, which it turns out makes you incredibly tired if you're also waking up in the morning to go to work. I hate caffeine, so I was being powered by orange juice. Sugar rushes ahoy.
I think it was Sunday I first played it with someone else -- and even at that point a fun thing happened -- Alice tried to shoot me, missed, and from that I noticed she was coming at me, so I managed to shoot her. Simple, but neat, and nothing I had explicitly planned for. Which is ace!
Wednesday's first playtesting revealed a whole bunch of balance issues that make the game a different one to the one I wanted. Basically, as a result I slowed the whole thing right the fuck down -- halving movement speeds, doubling reload times on harpoons. So I fixed those up, and playested it with people from the net -- this time almost all the feedback I got was about howshonky the chat system (which I hadn't touched at all) was awful and required firing harpoons to send messages. Plus, people saying it was cool, which is always nice.
By Thursday I was basically too tired to work properly on it, so I coloured in the plants, fixed up a few bugs, and packaged it up and put it on the net.
Sun, Jul 1, 2012
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.Sun, Apr 22, 2012
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:
- 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".
Sun, Apr 1, 2012
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.Wed, Mar 14, 2012
I don't know where to look
Sat, Mar 10, 2012
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?"
Wed, Feb 29, 2012
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 3D: Unity3D.
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 draw: Ren'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 books: Twine
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!
Fri, Jan 20, 2012
Second-order design, and choice.
"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?"
Wed, Jan 11, 2012
The usefulness of proceedurality
Wed, Jan 11, 2012
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!
Fri, Dec 9, 2011
Mr Bubble Amidst GameCity
Wed, Nov 2, 2011
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.
Wed, Oct 26, 2011
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 FPS1024 * 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.
Wed, Oct 26, 2011
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.
Sun, Jul 17, 2011
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:
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!
Tue, Jun 21, 2011
Unity sometimes makes me a little bit sad.
Wed, May 18, 2011
Bioinformatics 23andme SNP Top Trumps Fantasy Game Design
23andMe to me : "Your DNA sample has arrived at the lab"
@v21 now this is interesting.. ready to produce some top-trump cards based off the stats?
Thu, Apr 28, 2011
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.Wed, Apr 27, 2011
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.
Fri, Apr 15, 2011
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.
Fri, Apr 8, 2011
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]
Thu, Feb 3, 2011
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.
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.
Thu, Jan 20, 2011
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.
Tue, Nov 16, 2010
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!
Tue, Nov 16, 2010
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.
Tue, Nov 9, 2010
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.
Sat, Nov 6, 2010
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.
Thu, Oct 28, 2010
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
}
}
}
while(port.isOpen){
lock(this){
try{
int data = port.ReadByte();
//do the same buncha stuff
}
catch(TimeoutException) {
continue;
}
}
}
Thu, Oct 21, 2010
My favourite famous programmer...
... if such a thing is a reasonable thing to have an opinion about...Thu, Oct 21, 2010
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.
Tue, Oct 19, 2010
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.
Fri, Oct 8, 2010