Germination X: striving for simplicity

2012.02.03

In late December the Mobile Life Centre in Stockholm ran the first focus test for Germination X, and last week I met up with them to get the feedback in detail. Even for a small study of 5 players, this was very detailed - but the broad conclusions were that the underlying 'ecological model' of permaculture is being communicated very effectively via the game - the players got the idea of this quickly through playing, without it being explicitly communicated in a didactic manner.

On the downside, the role of the spirits were not clear to players at all - confusion from the quantity of messages, players constantly logging out to see what was going on from the public message timeline, and both the characters emotional state and connections between them and the permaculture plant layers were completely lost in the noise. Added to this, with the short duration of the study (1.5 hours) the pick power restriction was a massive problem, leaving players with nothing to do for long periods of time.

With more focus studies planned I've updated the game to deal with some of these issues as best I can:

Pick power is now recharged much faster. To balance this out, and add to the challenge of foraging for seeds and fruit they now regrow much slower and are harder to find in the world.

The way spirit messages are dealt with is now completely overhauled. All messages they send are viewable by all players all the time. They are displayed as speech bubbles by the spirits, making it clearer that they are responsible for them. They are now filtered out of players timeline messages to avoid problems with spamming too many messages.

There are also a bunch of updates to improve responsiveness of the world and make reactions to player's activity faster to experience. Plant no longer gain health from nearby plants which are ill, which means reactions to new plants happen faster. The season length is shorter again (10 minutes for a full year cycle). Some optimisation of the mongodb code dealing with message dispatching means I've been able to double the refresh rate of the game (number of world tiles updated per second) while also reducing overall server CPU usage.

Categories : games   groworld   lirec

Betablocker DS code patterns (part 1)

2012.01.27

Some useful Betablocker DS code patterns as used in common live coding situations.

Firstly, when carrying out a sound check before a live performance it's important to keep some kinds of sound engineers happy generating as many different sounds as you can so they can fiddle around with stuff - of course remember to turn everything up to 8 when asked to make the loudest sound you can in order to leave some overhead to blow the PA.

This is a betablocker program which will play all the sounds in a sound bank at all frequencies. Add more concurrent threads to make it more interesting. Values interpreted as pointers are visualised as arrows:


(the instruction set description can be found here)

In betablocker the beat is always locked to the instruction cycle rate, so fast changing sounds are a matter of optimisation. One of the most common ways around this (and a good way to start things off in a gig) is to use one fast loop program for playing sounds while another slower program modifies the first by overwriting bits of it.

More to follow in this series. See also evolved betablocker genetic programs.

Categories : howto   livecoding   visual programming

MapReducing plants and players

2012.01.08

I haven't been doing much work on Germination X lately, but we are now up to 101 players, and 766 plants alive at time of writing. Of the 101 players 60 of them are on the first "level" of planting ground cover plants, 24 are at level 2 planting shrubs and 4 have made it to tree planting. 13 have completed the tree planting level and are free to plant what they like.

The mongodb database the game now uses allows you to connect via a console and pull out some statistics using bits of JavaScript with a feature called mapReduce - an idea based on the lisp functions map and reduce (or fold in Scheme) and made popular by Google with it's search algorithm.

Each tile in the world contains a list of entities (each plants is an entity), so we can "map" over the tiles, creating a new list of plant counts. Then we "reduce" over the counts with another function to find the total. This approach allows the database to do the operations in parallel, and control the amount of memory required - which would be necessary if we had a fair few more players :)

db.tiles.mapReduce(
    // map fn 
    function() {
        emit("total",{count:this.entities.length});
    },
    // reduce fn
    function(key, values) {
        var result={count:0};
        values.forEach(function(v) {
            result.count+=v.count;
        });
        return result;
    },
    // tell it to spit out the result in the console
    {out: {inline:1}}
)

This more complex example tells us the distribution of players by how far they have got:

db.players.mapReduce(
    // map fn
    function() {
        if (this.layer==0) emit("ground cover",{count:1});
        if (this.layer==1) emit("shrub",{count:1});
        if (this.layer==2) emit("tree",{count:1});
        if (this.layer==3) emit("complete",{count:1});
    },
    // reduce fn
    function(key, values) {
        var result={count:0};
        values.forEach(function(v) {
            result.count+=v.count;
        });
        return result;},
    {out: {inline:1}}
)
Categories : groworld   lirec

Serious/educational games interview with Kara Frame

2011.12.16

An interview with Kara Frame, who is studying Educational Technology at San Francisco State University.

Please tell us who you are, your role in designing games and why you became interested in “serious games”?

My background is in computer graphics programming for the games and film industries, but for the last 3 years I've been working for FoAM, an interdisciplinary research group who encourage me to work in a more generalist manner - working with people from different backgrounds and learning skills in wildly different areas.

I've also been heavily involved with software art and artistic projects that use games in different ways for quite a long time. For me, "art games" and "serious games" are both taking advantage of the way games allow players to take on different perspectives as they play - this makes them very powerful in terms of exploring ideas.

How does your approach to gaming make it unique from other similar games out there?

Germination X is designed to take its raw materials from the mass of online farming games, but builds around a world inspired by alternative agricultural methods (permaculture) to see how this changes the game experience.

We are also making use of a research AI system called FAtiMA, developed by the Lirec project which supports Germination X. FAtiMA models social relationships and emotions - we are exploring how using this kind of model effects player's understanding of their relationships (with the AI characters, plants and each other) in a social game. Permaculture is mainly concerned with the relationships between plants, so it's exciting to bring this all together.

What do you hope participants will come away learning or experiencing from your game?

I mainly want to inspire curiosity, when a game such as this represents a certain issue, I'd like players to come to their own conclusions - to explore it with them as equals rather than having some hidden "correct answer". So the main thing is curiosity, which requires a certain depth, some mysteriousness. The best thing is when players tell me what is going on, because this means the game has allowed them to think creatively and openly.

What have been the challenges, obstacles at creating this game of your vision?

The thing I worry most about is consistency - that the world and the themes represented make sense, nothing breaks the player's suspended disbelief. This is always the big issue, and in this game this has caused the most discussion and debate with people I've worked with.

What kinds of interactive assessment methods are you taking to making the goal of your games are likely to be reached?

With the help of the Mobile Life Centre (part of the Swedish Institute of Computer Science) we are setting up a series of focus group testing sessions which will give us feedback on the nature of the relationships in the game. Group discussions while playing, and responses to more leading questions at the end will be recorded.

Also, the game has been online and public since it's first running version, and player's actions are logged in a minimal way which allows me to immediately see the results of changes I make. This has been quite a huge discovery for me - the form of immediate feedback this makes possible. This open testing, in conjunction with it's open source development, has meant I've been able to get quite a bit of feedback from brave early adopter players.

We have yet to enable this in Germination X, but in a previous game (Naked on Pluto) we have AI agents who ask players questions relating to the theme of the game (in that case privacy in social networks) which then get automatically posted to a blog external to the game. I think building in feedback this way, whether it's about the issues or the game itself, is really important.

What do you see as the advantages/disadvantages of games in educational use?

I think games have vast educational potential - simply because from my perspective, most of what I consider learning happens via playing. I can only understand something properly if I can pick it up, shake it, take it to pieces and rebuild it in some way (whether that's cars, Finnish language or linear algebra).

The problem is that this approach to learning doesn't seem to fit very well with existing educational ideas. There seems a sense of the potential, but perhaps a lack of understanding of how to achieve this. I guess one problem is that people who do "get it" are perhaps put off by education, and so are not in the right place.

Where do you see the potential of digital games as a force for individual/community change in the future?

There is something about entering a game world that allows you to take on the perspectives of people you might not normally agree with, and understand the conclusions they reach. This was most clearly demonstrated by a workshop by Selena Savic at the Make Art chmod +x festival on a game prototype that examined the differences between the business strategies of super markets and local stall markets. The workshop was carried out on a bunch of mainly left leaning open source artists, all whom when playing the supermarket side took on all the monopolistic strategies they could with wild abandon! So I hope the potential of these kind of approaches might add to a shift in politics and decision making (on personal or community levels) away from restricted partisan modes of thought.

What advice would you give a novice game builder who is considering using or designing games to use in participatory agents of change?

If computers and programming are not a natural medium for you then start with drawing, models, bits of lego, make a board game, act it out with your body. It should be possible to get basically all the decisions made this way before touching a computer. Document everything, blog about it, get as much outside input as possible.

I see a lot of educational or serious games fail because they attempt to take an existing game and "bolt it on" to an issue - this rarely works. You have to take the game design seriously, and struggle with it to fit the theme or issue you are interested in. Everything in the game has to represent the theme consistently somehow.

Categories : games   lirec   random thoughts

Naked on Pluto: Starting work on a “live world” projection

2011.12.11

Following on from the VIDA win, we need to work hard on Naked on Pluto's gallery installation presence. Although we now have the news website style front page, we need to take the game externalisation to another level, and one of the things required is a realtime projection of the game world. This represents the unfiltered behind-the-scenes view of the game as seen by the bots as they attempt to keep track of what is going on. Technically we decided to do this work using HTML5 canvas, in keeping with the web based themes of the game it needs to work on a browser, which has the added bonus of making gallery setup quite simple.

My first approach was to write a scheme bricks representation for Javascript objects, and see how bits of the game looked if rendered in this way.

This is part of the ArrivalLobby, and all the internal information is present with no explanations, which is great, but it results in very large images. The next thing was to try filtering the objects to remove most of this information:

function node_filter()
{
    this.filter=function(obj)
    {
        return {objects:obj.objects.map(function(object) {
            return object.name;
        })};
    }
}

This code provides a single method for filtering locations in the game - it simply returns an object consisting of a list of names of things found at that location. These filters can be easily changed over time, to include different information or process it in different ways. Rendered with the same code as before, this makes the location diagrams much smaller:

Add a few more locations, put them together in a circular formation (the projection will be onto the floor space in the gallery), add some bezier curves to indicate paths between locations and it looks like this:

There is also some relatively complex jiggery-pokery to detect when bots have moved from one location to another and animate them. The moving bots display more detail including what they are wearing and who has 'liked' them. In this image you can see the AdverBot004 moving to the HelpDesk, and the HyperClock and GreenwichClock on the upper right as they move from the Palace Garden.

Categories : naked on pluto   rendering

GX: Intelligent butterflies etc

2011.12.09

Over the last couple of weeks Germination X has managed to attract 70 players picking and planting in a permaculture world, with plants now covering 92 5x5 tiles - watch out Zynga :) This week has seen some more additions, firstly giving gifts to spirits has a large effect on their emotions positive and negative, and while it needs a bit more work - the wording of messages is modified according to the spirit's emotional state at the time they send them.

The other big change is a new activity for when you are out of picking power which can give you more information about the other player's plants - the butterflies can be drag-dropped over plants to find out who planted them.

Having this kind of information available makes some open ended meta games possible, such as a group of players getting together to take over part of the world. The role of the spiders remains mysterious, but I'm trying to figure it out...

Categories : games   groworld   lirec

Gameplay balancing and emotional turmoil

2011.12.02

Balancing is where you tweak games to get the right level of difficulty - doing this on a single player game is hard enough, but on a live game with active players its quite tricky. Germination X is currently too easy, which results in plants happily growing packed closely together (blocking subsequent players from planting) so I made some slight changes, which had the effect of causing an environmental collapse which lasted several hours, completely sending the plant spirits into depths of simulated emotional turmoil.

I've also noticed that players are not tending to send each other gifts, which is probably for many reasons - the most obvious being that they don't know it's possible. Part of a fix for this is to add some general help when players start - this seems a common practice with social games.

Categories : games   groworld   lirec

A week in Stockholm

2011.11.28

The Mobile Life Centre in Stockholm is an interdisciplinary lab that does serious research on unserious activities and comprises computer scientists, interaction designers, sociologists, psychologists and game designers. They are also part of SICS, and are partners with FoAM on the Lirec project. Last week I was lucky enough to work with them for 5 days focused on Germination X.

The main objective was to start designing a user study to discover people's feelings about their relationships in the game. We started off with a talk and a workshop, inviting the other researchers to help us decide the best ways of doing this - using interviews, online questionnaires, in game surveys or raw data from the game.

The skills you need to design something like this (in order to get the best chance at finding answers to questions you are interested in), of course requires a totally different way of thinking compared to actually designing a game in the first place - it was very inspiring to be part of the process, and see first hand their work on other parts of the Lirec project, such as the ActDresses concept for end user programming of robots.

It was also great to meet the group at the Mobile Life Centre who are working on pervasive gaming who had lots of ideas and directions for the study, as well as for the game itself.

Categories : games   lirec   workshop

Germination X: Game design in pieces

2011.11.20

The current focus for Germination X is encouraging collaboration between players, with the subjects of pemaculture and companion planting deeply interwoven into the gameplay. It's important to avoid the normal problems with "educational games" where the subject matter is bolted onto some existing game. This is rarely a successful strategy.

Firstly players now are grouped into different roles based on the permaculture layers represented in the game:

As players progress they get a chance to take on different roles as they can only pick fruit from plants from the layer they belong to. This means that even experienced players require the help of new players to provide nutrients for their plants.

Another big decision was to separate the "social elements" of the design from the things you need in order to progress through the game. Part of the idea is to remove situations like this:

I forget which game the screenshot was originally from (I think a city building facebook game), but it had absolutely no connection with the themes of the game. Relationships seem generally to be treated like resources in most of these games - the main motivation being to increase virality. I'd like to leave things a little more open to interpretation (partly so we can explore further possibilities a little more).

There are quite a few things classified as "social activity" in the game, but none of them are a direct requirement to progress, no meanings are "hardwired" with rewards or punishments - e.g. the meaning of passing different fruits to other players, or the ability to plant detrimental as well as beneficial plants. The idea is to create a situation where collaboration is important but not formulaic - the game provides a basic need for people to help each other, a couple of ways to do it and some ways for them to initially connect with each other - mainly though the plant spirits:

Categories : games   groworld   lirec

Naked on Pluto installation plans

2011.11.17

Some secret plans for a possible future Naked on Pluto art installation.

Categories : naked on pluto