Streekstation - The Game

screenshot of streekstations - the game screenshot of streekstations - the game

 

Description:

Streekstation - The Game is a persuasive augmented reality board game. It was created over a course of six months by a multidisciplinary team of 8 people, consisting of 3 programmers, 3 artists, 1 game designer and 1 manager. The game was made for Innovatienetwerk, a dutch non-profit organisation that tries to come up with innovations for a.o. agriculture. The goal of the game was to get alderman and officials enthusiastic for the streekstation project by letting them play the game during a presentation.

The game is played by replacing bad tiles with good tiles. Each turn a consumer reaches the streekstation and asks for some locally produced products. If the players manage to get the right tiles on the board before the consumer reaches the station they will be rewarded with more good tiles to place on the board. If they don't have the requested product they have to place a bad tile on the board.
Once in a while a special customer will come to the streekstation with a complicated request like: "at least 5 good agriculture tiles and either a park or a hiking route". Completing that request would reward the players with two good tiles.
The goal of the game is to remove all bad tiles from the board and replace them with good tiles. The game is impossible to lose, but good players will win the game in less turns than bad players. Which allows for a highscore list.
Playing, and winning, the game clearly shows the benefits of the streekstation to the player. By building a streekstation consumers will go there and buy the local products. This will help improve the landscape and recreation in the area. This way we hoped to bring home the message of the game: "A streekstation is good for your area!".


Challenges:

As this was the first time for me working in a group of eight people and going through the complete design process of a game this project had some unique challenges.

The first was to design a persuasive game for the target audience that consisted of officials and alderman. This proved to be one of the most difficult phases of the project and all of us helped the game designers with brainstorming, prototyping and testing. It took us many iterations before we found a design that was appealing, easy to learn, quick to play and still fun.

Another challenge was how to work together as a team. The artists wanted to be able to easily test new models in the game so we decided to work in virTools, with which the artists were all familiar. Also the game designers wanted to be able to adjust and test the rules in an easy way, so we created an xml format in which the designers could define the rules. This way there was no need for a full recompile after each slight adjustment of the rules.

And finally there was the challenge of communicating with our customers and keeping them informed and satisfied.


Features:

  • Augmented reality.
  • All rules can be defined in XML.
  • Models change based on the neighbouring tiles.
  • Textual feedback and instructions based on the actions of the players.
  • All actions are done in the real world, so there's no need to touch the computer after starting the game.

Media:

Code Snippets:

In this project I mainly worked on the RuleParser class, which parsed the xml file and handled the rules that were defined in it. Here are some highlights from that class.

satisfiesRequest()
A private member function of the RuleParser that checks to see if the request of a customer is satisfied by the current gamestate. The requests can range from "I want lettuce" to complicated requests where a speficic combination of products/product categories is desired. This function supports the <and> and <or> tags in the xml and handles them correctly through recursion. Request for tiles being next to eachother can also be handled.

parseMessages()
A private member function that reads all messages that should be displayable on screen from the XML. It parses and stores the message and it's priority, duration and texture, or throws a MalformedXMLException in case the xml is invalid.

ruleParser.h
The complete header file of the RuleParser documented with Doxygen comments.


Downloads:

As the rights of the game lie with the hku I am unfortunately not able to offer the game for download.
You can download the manual here. (In Dutch)