A dev/ops engineer builds a game
..and a session server
..and a cloudformation stack1š Let’s connect! š
In brief:
- Online play now exists, but games go out of sync.
- Will is now open source
- I’ll work on WASM support in Amethyst for 6 weeks, then likely have a break from this project.
Overview
You can now play online.. ..kind of š!
The new version can be downloaded on itch.io.
A rough attempt at online play is available for up to 16 players in the same session. However, there is no synchronization between devices, so in this version they can be out of sync when receiving packets at different times.
The original plans for additional content were replaced with online play.
Online Play
Players can play with each other through the Network Game mode. One player chooses to host the session, and other players may join the session using the 4 letter code that the host receives.
ā ļø Warning: No synchronization is done between game clients, so games can go out of sync very quickly. For lower latency, you may wish to set up your own session server.
Session Server
Control input into the game is first sent to the server, then broadcasted to everyone in the same session. Each game client may receive the control input messages at different times, and the game doesn’t yet know to wait for everyone to be ready before continuing.
The game session server is in North Virginia – eastern US. If you live far from there, it will take longer to send your control input to the server, as well as receive it back.
You can check the latency of the connection using the ping
command:
$ ping 52.22.144.29
PING 52.22.144.29 (52.22.144.29) 56(84) bytes of data.
64 bytes from 52.22.144.29: icmp_seq=1 ttl=30 time=282 ms
64 bytes from 52.22.144.29: icmp_seq=2 ttl=30 time=308 ms
^C
--- 52.22.144.29 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 282.400/295.140/307.880/12.740 ms
Hint: Smaller round trip time (RTT) is better, ideally less than 50 ms.
ā¹ļø Instructions on running your own session server will be posted at a later date.
Open Sourcing
This has been on my mind for a while, but I wanted a number of things done before opening it up:
- Development guide to be written.
- Contribution guidelines to be written.
- Cross OS hosted CI with vulkan support (or, remove vulkan requirement from tests).
- Figure out how to earn money.
I haven’t really done any of that, but remaining time for this project is short, so might as well š¦.
There are two repositories to play with:
autexousious
: Code for Will and the session server.will_assets
: Default assets that are being shipped.
Feel free to open issues in the autexousious
repository if you have a question.
What’s Next
In the next cycle, I’ll attempt to get the game to run in the browser as a Web Assembly application, then it may be time to put this dream aside š.
If you would like to support me, you could:
- Write code
- Create content
- Become a Patron
- Sponsor myself on Github
Peace āļø
- I did not actually write a cloud formation stack; I manually created a server in the web console. [return]