How to Build an Online Multiplayer Game with Scala 3, ScalaJS, and Kafka
Attendees will develop a streaming and scalable system from scratch. The workshop will cover the modeling and development of a streaming application using Scala 3 and technologies like fs2, Kafka, and ScalaJS.
Attendees will build a multiplayer web game with ScalaJS, capable of reacting to real-time Kafka events.
The objectives for those attending this workshop should be:
- Gain experience in managing data streams
- Learn basic concepts of event-sourcing
- Deepen knowledge about functional domain modeling with the tools that Scala 3 offers
- Learn the basics of using asynchronous message systems.
- Understand how ScalaJS works and how to integrate 3rd party JS libraries.
- Build end-to-end reactive systems through hands-on experience.
- Have fun!
Xebia Functional is providing this workshop, which means that at least 2 XF representatives will support the attendees with the following:
- Introduction talk
- Requirements document to build the system
- Continuing support to answer questions and solve potential blocks.
- Day 1 recap talk
- Demos and examples
This is an intermediate-level course. Participants should have a basic knowledge of Scala 3 syntax, some notion of messaging systems, basic knowledge of docker, and SBT experience.
- Project presentation and requirements
- Infrastructure provisioning
- Server Project:
- Functional Domain Modeling
- Streaming framework and Kafka consumers/producers
- Server lobby business logic
- Day 1 conclusion
- Client Project:
- ScalaJS setup: JS framework for DOM manipulation and UX
- WebSocket setup
- Async communication with the server
- Game business logic
- UI improvements