Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
The Software Architecture of Palia (singularity6.com)
87 points by jaaron on April 4, 2024 | hide | past | favorite | 13 comments


A survey of all the services, components, libraries and languages that went into building Palia: a cozy MMO.


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.


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!


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!


The clear eyed assessment of rust as the language choice was good too.


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.


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.


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.


Thanks for sharing! It is really helpful to learn System Design.


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


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'.


Freely available Minecraft server plugins were doing this in 2015.


This should be illegal, it's just moving data...




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: