top | item 36531833

(no title)

pserwylo | 2 years ago

I write and maintain a GPLv3 multiplayer game for Android to satisfy a creative itch. While writing the game, sustainability of the server component is top of my mind. I'd hate for the game to stop working for others down the line because I lose interest or am otherwise no longer able to tend to it.

For those interested, I've documented the process I adopted to try to increase the bus factor beyond one [0]. I want people who download the game and open it to be able to find a public server instantly from the main menu, even if I am unable to maintain the main server myself. This is done via the game requesting a manifest containing public servers from a GitHub repo, which accepts PRs from those willing to maintain their own servers. Although I am the only one able to accept those PRs right now, it would be silly not to be liberal in onboarding others who show an interest in maintaining the list. That way the game lives on beyond just me.

I also make sure to offer local multiplayer, and in other games I've built I which don't need realtime multiplayer, I try to offer "Play against others by sending an SMS invite" or other novel approaches that don't even need a server.

It is a fun space to work on and try to come up with novel solutions to ensure games continue working into the future.

[0] - https://peter.serwylo.com/2021/07/03/sustainable-server-infr...

discuss

order

doctorpangloss|2 years ago

It's tough. In my experience in the games industry, a big reason source wasn't released historically was not antagonism towards the players or belief in the underlying IP. It was fear: someone in "China" would start running your game for "their" audience, and make a bundle there while you rot, totally unknown to you.

I'm not sure how often that actually happened. The only games with parallel universe East Asian audiences belonged to #1 genres like MOBAs. While there was a belief that you could be making the next MOBA, hardly anyone was making realtime multiplayer games at all, so it was extremely unlikely.

It was a misplaced reaction to Ketchapp, the real antagonist. They would rapidly clone and blitz-market games. Indie mobile developers spent a year or more discovering and refining an original, fun mechanic, only to see this well capitalized actor seize their audience by giving the mechanic away for free. From 2014 to 2018, in my opinion, indie mobile developers transitioned to more atmospheric fare, and iOS and Android nowadays are a marketing-and-sizing tool for your inevitable Nintendo Switch audience.

Which brings us back to: what is there exactly to protect? Ketchapp didn't need the source code to clone those games. Nobody needs the source. If you make a PC game and have an audience, it will show up in Steam charts, you can't really keep that secret. And if you don't have an audience, you have seriously nothing to worry about. Since every game usually starts at zero, why protect the source?

My card game Spellsource has been open source for a long time (https://github.com/hiddenswitch/Spellsource) and my colleague and I are in the process of rebooting it. This game is community authored, players write the cards, so it makes mechanical sense to be open source. On the flip side, for the narrative & atmospheric single player experiences indie developers are authoring, it is hard to define what they have to gain.

Kinrany|2 years ago

You could also make public servers do peer-to-peer discovery! Then if your server ever goes down, it would be enough for a single host to post the address of their server in the issues

wheybags|2 years ago

I've had the idea for a while now to use torrent trackers as a server masterlist. Torrent trackers are already basically a way for computers to insert their IP into a list, so if you make up some fake torrent "announce hash" (I think that's the right name), then hardcode a few of the most popular open trackers, you can use the "peer list" from the tracker as a list of servers. Just haven't had a use case for it (yet).

JohnFen|2 years ago

I love your approach! In the early days, this was how most games with an online component worked. Here's hoping it comes into wider fashion again.

In the meantime, keep on rocking it!