Zooshi
An open source project by FPL.
 All Pages
Zooshi

Zooshi

Zooshi is a game in which players travel on a raft down an endless river and toss sushi into the mouths of well-dressed animal patrons. It is written in cross-platform C++.

Motivation

Zooshi demonstrates a quick and fun game that primarily targets Google Cardboard using native C++ APIs. The game shows how to use several open source technology components developed at Google.

Breadboard, an event system that allows game components to communicate with each other, without being tightly coupled.
CORGI, a simple, yet flexible, entity-component system that decouples the systems within the game.
FlatBuffers, a fast serialization system is used to store the game's data. The game configuration data is stored in JSON files which are converted to FlatBuffer binary files using the flatc compiler.
FlatUI, an immediate-mode GUI designed specifically with games in mind. The game uses FlatUI to generate all of the menus in the game.
fplbase, is as a thin renderer and asset management library used by the game.
Google Play Games Services is used to share scores and reward players with achievements.

MathFu, a geometry math library optimized for ARM and x86 processors. The game uses MathFu data types for two and three dimensional vectors, and for the 4x4 matrices used by the fplbase rendering system, and also by the Motive animation system.

Motive, a memory efficient and performant animation library. The game uses Motive for all of the animation.

Pindrop, a simple audio engine designed with games in mind. It handles all the audio of the game.
Scene Lab, an in-game world editor. This allows you to freeze the gameplay of the game and enter into an edit mode that allows you to move in-game objects, change object properties, etc.
WebP, an image compression technology, is used to compress textures which reduces the size of the final game package and ultimately reduces download time.

In addition, fplutil is used to build, deploy, and run the game, build and archive the game, and profile the game's CPU performance.

Functionality

Zooshi is a cross-platform, open-source game that supports:

  • Bluetooth controllers
  • Touch controls
  • Google Play Games Services sign-in and leaderboards
  • Android devices

Supported Platforms

Zooshi has been tested on the following platforms:

We use SDL as our cross platform layer. The game is written entirely in C++, with the exception of one Java file used only on Android builds. The game can be compiled using Linux, OS X or Windows.

Download

Zooshi can be downloaded from:

Important: Zooshi uses submodules to reference other components it depends upon, so download the source from GitHub using:

git clone --recursive https://github.com/google/zooshi.git

Feedback and Reporting Bugs