RaceRoom is a well known racing simulator used in variety of competitions.
This repo has been created as a proof of concept for purchasing on-demand time-based multiplayer dedicated servers which could be used for online multiplayer sessions.
Currently, it supports (is hard coded to) a single type of RaceRoom dedicated server hosted on aws but can easily be extended to handle all kinds of games / servers.
The whole solution is built using Encore and showcases the following:
- How to server server-side static content
- Encore services communicating via async and sync interfaces
- Usage of Encore Transactional Outbox for reliable message publishing
- How sqlboiler can be used with Encore.
- How one can combine Encore, sqlboiler and outbox pattern in atomic vay using tx go package
- Time windowed message deduplication using Encore cache (without using at least once delivery guarantee)
- Using Encore Cron Jobs in combination with pubsub for async job scheduling
- Using external services with Encore (eg. smtp, cloud providers, payment providers)
The project is still in test mode (sandbox payments) since it is in active development,
but for the purposes of hackathon - real aws
server instances are provisioned after
successful payments! - This will stay on for the duration of the hackathon.
Click here to access the shop.