Comment by gafferongames
5 hours ago
While not a direct competitor to protobufs, if you are working in the video game space where struct versioning is not needed, there is an alternative language called "schema" that supports C, C++, C#, Golang, Rust and JavaScript.
Of all names, they pick schema? That's like calling a programming language "language."
My favorite programming language is called "A Programming Language".
Reminds me of xkcd tattoo that says in Chinese, "It's what my tattoo says."
> video game space where struct versioning is not needed
Save files? Looser than exact version multiplayer?
Multiplayer games typically deploy both client and server at the same time, and refuse to connect a client if it doesn't speak the exact same protocol as the server.
Thus all the versioning overhead of protobufs is not needed for this wire protocol.
(Yes, games still use versioning everywhere else where it makes sense: save games, asset data, config etc...)
Good luck deploying a client to the mobile app stores together with your backend :pain:
But then again, those barely count as games, I guess.
4 replies →
Checked the contributor list, please disclose that you're a primary contributor.