top | item 39925129

The Software Architecture of Palia

87 points| jaaron | 2 years ago |singularity6.com | reply

13 comments

order
[+] jaaron|2 years ago|reply
A survey of all the services, components, libraries and languages that went into building Palia: a cozy MMO.
[+] derelicta|2 years ago|reply
I did expect MMOs to have fairly complex architectures but damn. I have nothing to compare it against but it still makes me slightly dizzy.
[+] net_|2 years ago|reply
For 25-player lobbies and some persistent state, I can't help but feel it's over-engineered. Certainly many games (including popular mmos) have been made with much less. This seems like they were engineering defensively against the potential of massive success, which ends up slowing everything down at the point where you need to move most quickly (pre-launch game design iteration and testing).

I don't mean to be reductive though, clearly a lot of work has gone into this architecture and they know their problems better than I do. Props to the devs for seeing it through and getting the game launched!

[+] ukuina|2 years ago|reply
I appreciate when teams provide such a detailed write-up of their tech stacks. The callouts to bad choices and recovery (e.g., Nomad) is also refreshing to see.

Thank you for the share!

[+] mooreds|2 years ago|reply
The clear eyed assessment of rust as the language choice was good too.
[+] eliasson|2 years ago|reply
Thanks for sharing! I really enjoy reading these types of articles.

I was a bit surprised to see Perforce being used (I'm not a game developer), I have not come across it since the early 2000s. From what I recall it was very good dealing with merges.

[+] klohto|2 years ago|reply
Perforce and Plastic (now Unity, ugh) are used widely. They are AFAIK the only VCS that can handle large binaries, huge repos (XX TBs) and out of the box diffing on non-text files. Plus a nice client for non-technical folks (artists) to use.
[+] speps|2 years ago|reply
Perforce is the standard for the last 15 years at least in video games. Probably more, that's just based on my experience. Any game middleware has to support it, Unreal Engine even if public on GutHub uses Perforce for their development internally, the GitHub is a two-way mirror.
[+] namaljayathunga|1 year ago|reply
Thanks for sharing! It is really helpful to learn System Design.
[+] speps|2 years ago|reply
Where I used to work they patented the way the servers are kept busy so careful on what you end up implementing for that...

https://patents.google.com/patent/EP3563559B1/en

[+] BartjeD|2 years ago|reply
Any fool can register a patent though...

It's only during the actual enforcement of a patent that it's validity can be called into question. It isn't so unusual for a patent to be struck down in court. Patent offices have tendency to hand them out 'easily'.

[+] throwaway11460|2 years ago|reply
Freely available Minecraft server plugins were doing this in 2015.
[+] nc0|2 years ago|reply
This should be illegal, it's just moving data...