Yggdrasil: The Tree of Life (Yggdrasil: ToL) is a real-time strategy which focuses on promotion of one of the most important United Nations’ Millennium Development Goals – Environmental sustainability. The main goal of this project is to promote the principles of sustainable development and inform the player about serious environmental threats – for example reduction of biodiversity, reduction of land area covered by forest, usage of ozone-depleting substances and problems related to high concentrations of carbon dioxide in the Earth’s atmosphere. During the gameplay, up to three players build a sustainable ecosystem and learn how different parts of the ecosystem influence each other.
The game is strongly focused on real-life communication among the players. The players must intensively communicate throughout the whole game since their decisions have influence on other players and parts of virtual ecosystem. Unlike traditional games, where players usually communicate only through the network connection and do not physically meet, our project brings coworkers, classmates or any other group, closer together be encouraging cooperation and exchange of knowledge on a very close and personal level.
All information about the ecosystem is presented to the players in a unique and innovative way – through Augmented Reality (AR). AR is one of the game’s core principles. AR is a view of a real-world environment whose elements are augmented by computer-generated graphics, sound or video. By combining aspects of real and virtual world that never sleeps, players build a strong relationship to the game. The virtual world even reacts on events that happen in real world, e.g. weather changes (rain, snow, sunny…) or day and night changes.
The whole ecosystem, represented by a tree on a small planet, is projected on a special-designed fiduciary marker in real world so the players must communicate and cooperate not even on a game level but also in the real physical world. To support this concept even more, we have intentionally limited network-based communication options like chat, when players are near in the real world.
The game takes place on a small planet with a tall tree – Yggdrasil. Yggdrasil is an immense tree that is central in Norse cosmology. It was said to be the world tree around which the nine worlds existed. In our game, it is the home for three tribes. Each of the tribes lives on a different part of the tree – roots, tree trunk and treetop and uses its resources to survive. In the beginning of the game, the tribes ignore each other; they do not share any resources or knowledge and do not make any attempts to communicate. This is a metaphor for people not caring about the environment around them. Soon, each tribe discovers that a meteor threatens the tree (a metaphor for environmental pollution) and they must act quickly – collaboratively develop advanced green technologies, recycle resources, develop a global trading system, share knowledge and communicate in order to survive.
Every tribe has its own strengths and weaknesses (e.g., mining and research effectiveness, food production), a distinct look, and has an access to a unique resource which can be found and harvested/mined only on their part of the tree. The tribe members live on Rings – solid ring shaped platforms built on roots, branches and around the tree trunk. The Rings provide the tribe with storage capacities for gathered resources, buildings for tribe members, buildings for processing of resources and mining structures. A very important aspect of each game is the research of new buildings, upgrades for existing buildings and various Ring enhancements. Through research, more efficient green technologies can be discovered and special upgrades can be unlocked after donation of unique resources from each tribe.
The player does not control individual tribe members directly; instead he controls each tribe by managing the Rings – setting production inputs and outputs, distributing tribe members among tasks, setting research goals and trading. Each player is also responsible for protection of the part of tree his tribe lives on.
The tree can be damaged by excessive mining, relying on non-green technologies responsible for pollution and by random events which occur in later stages of the game (e.g., attack of insects, reduction of beneficial bacteria in soil which causes low fertility of the soil, mining accidents) and require immediate attention. If any tree part’s health status becomes critical, the tree is unable to further support life and the game ends for all players. An average game lasts for about three weeks; depending on decisions the players make during the game, it can take a slightly shorter time. The game ends when the players eliminate the threat represented by the asteroid or when the tree dies.
Besides the main campaign, Yggdrasil contains also several minigames with educational aspects – Trash Master teaches players basic principles of waste recycling, Pipe Mania shows player importance of irrigation and protection of water sources, environmental quiz teaches players about negative impacts of human activity on the environment.
Successful completion of a minigame provides bonuses for player’s tribe – for example Pipe Mania temporarily boosts water harvesting, completion of Trash Master’s level temporarily decreases production of carbon dioxide on one platform. These minigames are also available directly from main menu, which is useful is player does not have internet connection at the moment or has a very limited time available.
A vast majority of contemporary real-time strategy game simulations rely on client–side (peer-to-peer) simulations in which all client machines run the entire game simulation and just hide information from the respective players. While this approach saves bandwidth in case the command frequency is small, it is prone to client software hacks which spoil the game experience. We have designed and implemented a hack–safe server–side simulation. What does hack-free mean? Due to our game architecture design, even tampered mobile clients cannot cheat and negatively influence the gameplay experience for other players.
Yggdrasil: ToL utilizes the client-server network architecture. Azure-based server side consists of Azure Compute roles for communication with clients and game state management and Azure Storage services for data storage. In order to obtain the game state from the server, send commands and manage their accounts, the clients connect to Web roles – REST-ful Windows Communication Foundation services with a public interface. The communication is based on sending JSON messages secured by HMAC – Hash-based Message Authentication Code over the HTTP connection.
This approach allows for easy communication across heterogeneous environments with various connection restrictions and policies. The game state of each active game is updated by Worker roles in fixed time steps and results are stored in Azure SQL relational databases and Azure Blobs. Worker roles and Web roles communicate indirectly through short messages stored in Azure Queues.
The Yggdrasil: ToL cloud-based game server maintains the entire world state and sends only necessary information to players which connect from remote clients. Client hacks that are common in client–side simulations are therefore impossible. The additional bandwidth requirement is mitigated by compressed incremental updates. In each cycle the server sends the state of the world to each client as they perceive it and the client responds by sending a list of actions for the objects it has control of.