Flick Flack at Cubed! 2024

A screenshot within Minecraft of the Flick Flack arena at Cubed! 2024. The arena has static platforms near the middle, red and green platforms behind them, and magenta platforms with piston walls at the backs.

Cubed! is an annual convention hosted on a Minecraft server, raising money for the charity SpecialEffect. Since 2020, we at RASA Studios have brought our show the Noxsquad Gameshow to the event’s schedule. For their 2024 event, we were asked if we would also be interested in bringing a minigame to the public Minecraft server that would be open for the main weekend and remain open for the next week, and after some discussions decided to do so with the minigame Flick Flack.

Flick Flack is a team-vs-team game taking place over a series of arenas. Each arena consists of a series of static platforms and colourful traps, which are activated by buttons placed in a row between the two teams. One team wins when all of the opposing players have fallen in to the water at the bottom of the arena.

We chose to bring this game as it is easy to understand what is happening as a spectator, its rules can be explained in a few short bullet points, and it was the final game of the previous year’s live episode of the Noxsquad Gameshow.

As the original Gameshow version of Flick Flack was designed and implemented by Profile photo for David David, he took the lead in terms of design, whereas I took the lead in terms of development. Additionally, we collaborated with Profile photo for Ben Ben, Cubed!’s lead developer, who integrated our game with their server’s systems. The game was developed as a server plugin written in Kotlin (as opposed to the original version, which used Minecraft’s vanilla commands and functions).

Some of the parts of the project that I found the most interesting were:

  • DSL for Arena Definitions
    We created a small Domain Specific Language using a series of type-safe builders which allowed arena configurations (including button locations, traps, and static elements) to be defined in an easy to read/write manner without needing much experience with programming. The DSL meant that we were able to confidently create new arenas with fewer than 24 hours until the game would be playable by the public.
  • Translations
    All text shown to players was defined in text files stored within the final jar, and we used a feature of the software running the Minecraft server, Paper, to send different text based on what language a player’s client told the server that they were using. As a predominantly English speaking team, we were only able to include language files for US and UK variants of English, though we were able to include, as an easter egg, a full translation to the language “Pirate Speak”.
  • Using Features Beyond Vanilla Minecraft
    Since we implemented the game using a plugin rather than Minecraft commands and functions, we were able to take advantage of features that would not normally be available to us. For example, we were able to automatically release new arenas on the second and third days of the event using kotlinx-datetime. Additionally, we were able to include some jokes during the game’s countdown that used external data (such as the amount of time until the Gameshow was scheduled to take place that weekend, or the number of wins stored for each team within Cubed!’s database).

Throughout the week that the Cubed! server was open, some statistics were collected about each game. Some highlights of this data set are:

Total Games Played 4,666
Unique Players 901
Percentage of Players who Played ≥ 6 Games ≈ 51%
Most Games Played by One Player 655
Most Players in One Game 30
Duration of Longest Game ≈ 3½ minutes

This project, while a slight departure from RASA’s usual working environment, was an absolute joy to be a part of. I found it very fun to work with Profile photo for David David, Profile photo for Stuart Stuart, and Profile photo for Grant Grant to implement their ideas for unique traps and arenas. I also really enjoyed working with Profile photo for Ben Ben to see our game integrated with their systems, and learning about some of the details of how the Cubed! server works from a developer’s perspective.

Written by Profile photo for James Cordon James Cordon | First published:
Link to this page: https://mrjamesco.uk/projects/nsgs_cubed_2024/