Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
cmdrk
Jun 10, 2013
i've been writing a game server for fun with a protocol largely modeled off of old MMOs. basically i keep a big table of opcodes to define different kinds of messages, and then I use protocol buffers to serialize/deserialize my data from my server (Erlang) to my client (Godot). this seems to be fairly efficient and work pretty well for the type of game that i'm building (multiplayer SimCity-esque game).

for my purposes im happy with this, but I was wondering what is the 'modern' way of approaching things? do people tend to just grab RPC frameworks off the shelf or do most AAA (MMO) titles do something entirely custom?

Adbot
ADBOT LOVES YOU

cmdrk
Jun 10, 2013

Hughlander posted:

How I've handled that is a deterministic engine that's running in client and server. Client sends a command to the server, server validates it and gives an output, client already simulated it as soon as the command went to the server and if the outputs are right everything goes on, if they're wrong, there's a weird desync (bug/hacker) and you re synchronize with server authoritative. Having client/server in different languages will obviously have problems there.

yeah i'm definitely trying to be careful with things that may differ significantly in language implementation. especially floating point numbers and how those get handled by the client and server. other things are fairly easy to predict and account for. ie in my essentially tile-based game, client sends its intent to perform an action on a tile, assumes it will be complete, server sends an authoritative yes or no back to the client. if the server disagrees, client fixes the local view appropriately.

that brings me to another question actually: if you had a networked, top-down 2D type of world with free movement (think 2D Zeldas or whatever), how would you ensure players aren't walking through walls etc? would your library running in the server need to load up the world geometry and do the whole simulation server-side? i guess it must?

cmdrk
Jun 10, 2013
I think in the late 90s, early 2000s especially there were some commercial soundpacks floating around that got reused over and over and over. I've heard the classic Everquest ding in so many radio, tv ads and other media.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply