Inspiration

Learn how easy it is to work with real-time updates via websockets when using BLoC pattern in Flutter with a Dart server. After looking at the slide puzzle source code I thought it'd be interesting to try and make the game controlled by a server instead of local changes only.

What it does

Three rounds of slide puzzling with greater difficulty (3x3, 4x4, and 5x5) where only those with the most correct tile placements advance until the final 1 vs 1 round. The server is written in Dart and hosted via Cloud-Run while the client is built for web (hosted on firebase) and Android (distributed with firebase).

How we built it

Separated out the BLoC logic into a separate package which is then included in both the server and the client. The client runs a separate version of the same logic so that movements don't need to wait for server authority.

Using Firebase App Distribution to send builds of the mobile app, Firebase Hosting for the website and Google Cloud Run for the multiplayer game server written in Dart.

Challenges we ran into

Learning stateful widget animation which has to play well with the server logic. The largest challenge was that of time, still have too many missing features and bugs!

Accomplishments that we're proud of

Proud of the simple hosting of the dart server and how well it works as a dedicated game server. It is nice to have everything deployed in a way where the game could sustain high CCU with little effort (an afternoon to get setup!).

What we learned

Fell in love with the workings of Flutter and Dart especially to quickly get things going and in a spot where people can play.

What's next for Slide Island Royal

Would love to start again on the design, I love the gameplay of the increase in challenge but the look and feel has a ton of room for improvement.

Built With

+ 17 more
Share this project:

Updates