Skip to content

Functional Design

Bas de Reus edited this page May 31, 2024 · 11 revisions

The idea

The idea is to have a mobile game while exploring Amsterdam-Oost. You will do this in the digital world and in real life. You have a digital photo book with missing photos. These are the points of interest, such as the Ringdijk, Hoge Weg or the Linneaushof. These will also be found digitally via the indicated route followed by geo-location.

When you are at a point of interest you can click on a 3D model and take a photo of the interest point. This photo will then be saved in a photo book. Once you have taken a photo of the interest point, you can get more information about the area and/or the building in the photo album. Additionally, there are also small 3D models available that provide information without the option to take a photo.

Concept images

What we made

We developed a location-based augmented reality mobile game for Android, focusing on exploring the Watergraafsmeer area in Amsterdam-Oost. This serious game combines learning and exploration. As players navigate the area, they use the digital photo book to identify points of interest and take photos to complete their collection. Each captured photo unlocks detailed information about the corresponding site, enriching the player's understanding of the area. Without these photos, the information remains inaccessible, encouraging thorough exploration and interaction with the environment.

We decided to omit the smaller 3D models that solely provide information, that is mentiond in the idea at the end. This change enhances the experience, as the engaging and informative route through Watergraafsmeer offers ample opportunities for discovery and learning without the need for additional elements.

Here is a gameplay video of the game/application.

Game loop

graph TD
    Start[Start Game] -->|Initialize| Init[Initialize Game State]
    Init --> MainLoop
    MainLoop -->|The route has been walked and completed| End[End Game, with confetti]
    MainLoop[Game Loop] -->|Check Input| GetPlayerLocation{Get player location}
    GetPlayerLocation--> ProcessInput[Process Location]
    ProcessInput --> UpdateState[Update Game State]
    UpdateState --> Decision{Close by a point of interest?}
    Decision -->|Yes| YesPath[Take a photo if it.]
    YesPath --> |Check photo in photobook|Photobook[Photobook]
    Photobook --> MainLoop
    Decision -->|No| MainLoop