Archive for category Crazy Ideas
“What are adventure games?”, you might ask. When confronted with this question I usually reply they are interactive movies, where you need to solve puzzles in order for the plot to progress. As you interact with objects and characters within the game, the backstory is revealed. The first few minutes of Resonance provide a good first impression of what a point ‘n click adventure game has to offer: captivating cutscenes, followed by seemingly trivial interactions with the game environment, which regardless reveal a rich underlying story.
Adventure games have gone somewhat out of fashion over the years, making way for more fast-paced action-packed video games, like first-person shooters. However, a few—mainly independent—developers have kept the genre alive, and true gems (like Resonance) are still released sporadically. They generally adhere to the core game mechanics (as well as witty dialogues) introduced by the classics, and often still prefer old school pixel artwork over modern graphics.
One overlooked feature of adventure games is they are inherently suitable to be played by multiple players; not true multiplayer, but for the lack of a better word, lets call them potential ‘audience games’. At countless occasions I have invited friends over to kick back in the couch, open a beer, and gaze at a projection or screen as somebody point ‘n clicks his way through the game’s narrative. Similar to watching a movie, but different in that shouting throughout (to point out what to click next) is not only appreciated, but in fact encouraged. There is something suspiciously entertaining about listening to people’s concoctions on what item to combine with the “rubber chicken with a pulley in the middle” in order to finally put it to good use; usually followed by a short silence and a subsequent “Why on earth would you want to do that?”. I dubbed such evenings (and late nights) ‘Adventure Game Nights’, and wanted to report on what works and what does not. In addition, I see opportunities for making adventure games true multiplayer experiences.
After years of hosting such events for uninitiated and seasoned players alike (I once even played a game over Skype), some things became apparent:
- It is best to pick games with a strong narrative, rather than a shallow story line. In other words, games like Resonance, The Inner World, Still Life, and The Blackwell Legacy appeal to a wider audience than true classics like Monkey Island. Games on the far end of this spectrum, interactive dramas like The Walking Dead, are the perfect gateway drug for people to get hooked on the genre, but unfortunately lack the complexity which make adventure games stand out.
- Spoken dialogues are essential! It is near impossible to stay focused as a group when everyone needs to read on-screen text at their own leisure and pace.
- If you cherish your night rest, start early, and pick a game which doesn’t last too long (aim for a maximum of seven hours). Short episodic adventure games offer a solution, although they generally aren’t as captivating (the Blackwell series being the exception). Ideally, in case you have a core group of point ‘n click addicts, you can decide on a longer game and play it over several evenings.
- Pixel hunting (scrutinous scanning of the screen to find anything clickable) is exacerbated when playing in group; you’ll hear people shouting “Can you click on the red thingy in the bottom corner?”, at times followed by “We already clicked that!”. A quick primer on how to tell whether something is clickable or not in advance is recommended.
The takeaway message for game designers and developers is there might be a broader audience for point ‘n click adventure games than they traditionally anticipate. Rather than solely tailoring adventure games to single player experiences, there is an opportunity to design adventure games with group experiences in mind. Besides changing the overall format so it can be consumed in one sitting (similar to movies), it would be worthwhile experimenting with features which account for multiple players wanting to interact with the game environment simultaneously. To this end designers could leverage the fact that players each carry a powerful computer in their pockets (smartphones) allowing for rich interactions. Some obvious candidates: maintain a history of interactions and dialogues, ‘vote to skip’, suggested puzzle resolutions including a point system, …
The possibilities are endless … A multiplayer point ‘n click game is long overdue!
Cutting right to the chase: Would it be possible to create software, entirely developed and moderated by an open community?
Call it democratic software development, or open source on steroids if you will. While discussing this the default answer I usually get is “it can’t be done”, which is why I gladly filed this post under the newly created category “Crazy Ideas”. Nevertheless, I find it a valuable exercise to discuss any nutcase ideas, in order to evaluate how far-fetched they actually are.
A person with a new idea is a crank until the idea succeeds. – Mark Twain
So what would such a system look like? What would be some of the requirements?
And when I say easy, I mean it. You shouldn’t have to download the repository first. You shouldn’t have to set up a development environment. It should run as a web service on the cloud (more buzzwords coming up!). A user account and an internet connection is all you need to get going.
Motivate people to participate.
Ever heard of gamification? “Gamification is the use of game design techniques and mechanics to solve problems and engage audiences.” If you are a software developer, chances are you ended up on Stack Overflow at some point. It’s a Q&A site for programmers which is quickly becoming one of the main resources for help for professional programmers. Stack Overflow incorporates many aspects of gamification, and it’s mere existence shows the power of it. A significant amount of developers is prepared to share and learn in this fun environment. Quality content is pushed to the top via a voting system, while erroneous posts are addressed by the community.
Divide work in small enough tasks.
The key to dividing work across many people is to divide it in such a way that any person only has to implement one small aspect of it at a time. Traditional software development where somebody develops a feature from a to z won’t work. One programming paradigm which at first sight seems extremely suitable for this is functional programming. A person could implement functions, and define new functions on which he relies. Combining this with aspects from test driven development where the caller has to comment and write tests for the desired function would result in automated testing.
Without worrying about the specifics too much (it’s just a nutcase idea after all) consider what the possibilities would be. In Luis von Ahn’s great TED talk the CAPTCHA inventor discusses how he re-purposed CAPTCHA in order to digitize books. Around 2,5 million books a year can be digitized through this massive-scale collaborative effort. Their next project indicates this doesn’t have to be limited to really mundane tasks. They are now working on translating the web!
Moderation guided by conventions.
Conventions are important in a group effort. Unfortunately, when discussing programming conventions people most often discuss naming and formatting conventions, while there are plenty of other important conventions to agree on. This will most likely be the topic of one of my future posts. Conventions should be as unambiguous as possible in order to know where to expect a certain piece of code, or where to place it. Conventions like these could be agreed upon through a democratic process, which seems to be working pretty well for Stack Overflow through its meta site. This allows for community moderation following the guidelines established by the community.
Couple all the separate work together into one entity.
Going from a set of loosely coupled functions to a working library would result in plenty of extra challenges, but also opportunities. Since nobody wants an all encompassing library just to use part of its functionality, the system should allow you to extract just the functionality you are interested in.
Beyond the idea
Well, … I went a bit further and attempted to start a small proof of concept. I figured the Stack Exchange platform on which Stack Overflow runs already encompasses much of the desired functionality, and creating a small scale library on it would be possible. The idea was to create an extension method library for C#, which exists primarily out of a set of functions. Requesting new Stack Exchange sites is possible through Area 51. Not unexpectedly, my idea got shot down since it doesn’t fit the intended Q&A format. Oh well, … one can only try.
At the UIST 2014 conference, Thomas D. LaToza presented “Microtask Programming: Building Software with a Crowd”, a system encompassing many of these ideas and actually evaluating them, resulting in usable code. The paper is available on ACM.