One-Two-Three Quarkus

This is a fun version of the ‘freeze or die’ game, where each phone represented a player on screen. By shaking your phone, you can advance your player towards the finish line… provided you don’t ‘die’ along the way!

It is dedicated to explaining how Quarkus simplifies the process of creating such an interactive and scalable game. The extensions involved are:

Slides

Use quarkus-reveal to run the slide-deck (located in deck.md:

quarkus-reveal

Dev Mode

One tab:

cd dashboard;
quarkus dev

Another tab:

cd runnner;
quarkus dev

Open dashboard on http://localhost:8079/ Open multiple runners on http://localhost:8080/

Deploy to OpenShift

Create a Kafka Cluster, then (after logging with oc and selecting the project):

Deploy Dashboard (only one pod max):

cd dashboard
quarkus build -Dquarkus.kubernetes.deploy=true --clean

Get dashboard route:

oc get route one-two-three-quarkus-dashboard -o jsonpath='https://{.spec.host}/api/game'

Deploy Runners (scale to N):

cd ../runners
quarkus build -Dquarkus.kubernetes.deploy=true --clean -Dfrontend.api.game=DASHBOARD_API_GAME_URL