Tag Archives: groworld

Bumper Crop

Bumper crop is an android game I’ve just started working on with Dr Misha Myers as part of the Play to Grow project: “exploring and testing the use of computer games as a method of storytelling and learning to engage urban users in complexities of rural development, agricultural practices and issues facing farmers in India.”

Screenshot_2014-05-31-12-13-04

(Warning – contains machine translated Hindi!)

I’m currently working out the details with artist Saswat Mahapatra and Misha, who have been part of the team developing this game based on fieldwork in India working with farmers from different regions. They began by developing a board game, which allowed them to flexibly prototype ideas with lots of people without needing to worry about software related matters. This resulted in a great finished product, super art direction and loads of assets ready to use. I very much like this approach to games design.

From my perspective the project relates very closely to groworld games, germination x, as well as the more recent farm crap app. I’m attempting to capture the essence of the board game and restrict the necessary simplifications to a minimum. The main challenge now that the basics are working is providing an approximation of bartering and resource management between players that board games are so good at, into a simple interface – also with the provision of AI players.

Source code & Play store (very alpha at the moment!)

Borrowed Scenery 1.0 – joining imaginary and physical spaces

FoAM is building a story for Electrified III: The Responsive City in Ghent in September. It’s called Borrowed Scenery 1.0 and follows on from our previous Borrowed Scenery 0.1 in the same city in 2009. The story will be built out of parts arising and inspired from the groworld project – human plant interfaces, but with a focus on physical narratives and alternate realities based in the city.

One of my tasks is to take two of our existing projects, Germination X and Boskoi and bring them together – absorbing the physical space of a city into an online game, as well as using a mobile foraging application as a way to propagate pieces of the overall story. This is a good chance to prototype some ideas for combining imaginary online spaces with physical spaces, online players from all over the world and people foraging in the streets of Ghent.

I’m starting with the game, and a working sketch using Maja’s visual references for inspiration – some of the ideas here include:

  1. Representing plants found by Boskoi foragers as characters – the bubble plants with feet are the plants from our world in the game’s reality.
  2. Using the map of the city as terrain – which becomes deformed by the activity of players.
  3. Mixing different styles, organic and digital elements – but focusing on sculptural and 3D objects (rather than Germination X’s mainly 2D look).
  4. Use of many more minor and major characters (e.g. the chicken in the lower left).
  5. Use of Lingua Ignota – the “unknown language” of Saint Hildegard of Bingen, who’s viriditas or ‘greenness’ is an important element of this story (the pope is also making her the 35th “Doctor of the Church” on the 7th October, while the festival is happening).

Further ingredients will include the music of Stevie Wishart, plenty of patabotany and a good dose of tarot.

Germination X: Player characters

After another code sprint on Germination X, I’ve added player characters (avatars) to the game. Based on the falmouth focus group feedback this seemed one of the major things missing that players felt would improve the game.

The character design came from the Mandrake plant, which has been cropping up in groworld projects for some time – as a magical plant known to resemble human forms as it grows.

This change also allowed a much needed clean up and decluttering of the user interface for the game – as navigation now happens by moving your mandrake around by clicking on things. Your location is persistent, so when you log in you go back to the same place. All existing players in the game have been given mandrakes scattered around the world.

As the mandrakes represented a new type of entity in the world, able to move around, and linked to players – this was quite a lot of work, particularly in terms of updating the existing database. I had a lot of trouble doing this manually with MongoDB’s save command in the script interface. This seemed to be creating duplicate records (and creating very hard to track down bugs) that took a long time to find. The better approach seems to be to upgrade the database automatically in the game code, by checking a stored version number – and mapping over entries like this:

;; map over each player in the db
(db-map!
 (fn [player]
   (println "upgrading" (:name player) "to include tile and avatar")     
   ;; get a random tile in the world
   (let [tile (first (db-get-random-one :tiles {}))]
     (db-update! ;; update it, adding an avatar
      :tiles tile
      (merge tile {:entities
                   (cons (make-avatar
                          (:id player)
                          (:name player)
                          (make-vec2      ;; random position
                           (rand-int 5)   ;; in the tile
                           (rand-int 5))
                          (:layer player) ;; show the player's score on the avatar
                          (count (:flowered-plants player)))
                         (:entities tile))}))
     ;; add the tile location to the player
     ;; so we can find the avatar again
     (merge player {:tile (:pos tile)})))
 :players)

This also means that the latest code will work with snapshots I’ve taken of the game world regardless of how old they are. This turns out to be really important – I can try some changes and rewind the whole world back to the same starting point, as well as testing code locally on a copy of the current public world version.