soundmud / soundrts

A real-time strategy audio game
http://jlpo.free.fr/soundrts
Other
44 stars 32 forks source link

A server should be compatible with several mods and client versions #12

Open soundmud opened 10 years ago

soundmud commented 10 years ago

When a new version of SoundRTS is released, servers have to be updated. Moreover, each mod requires its own server. This can discourage users to host a standalone server.

Of course sometimes a server is really incompatible with previous clients, but this is not always the case. Maybe a compatibility version, maybe just a server version number, a simple integer, would be incremented when the new version changes the compatibility of the server.

In the case of mods, the server should only make sure that the clients have the same resources. Providing the resources to the clients would still not be necessary. Providing resources can be network intensive and might even cause legal problems. The idea here would be to accept different client signatures and isolate the clients in compatible subsets. Or, in a more open variant, allow the clients to know exactly which mod and map is about to be used, and decide if they still want to play.

soundmud commented 10 years ago

In the meantime I'll update the 1.2 alpha 9 installer with new installers and the same version name as long as the changes are compatible.

soundmud commented 8 years ago

With the recent commits, a server accepts a client with any mods configuration. This is good enough for 1.2-a10.

The next improvements should be:

sanslash332 commented 8 years ago

Hey, I suggest that when a player invites other to a match, in the invitation says the required mods besides the selected map.

And, sinze you are editing the server, if is possible, add the option to create public games, that anyone can join it without need a invitation from the creator.

Respecting the second feature of the server… Are you saying that the server will be compatible with alternative soundrts client if anyone develop one?

And… Are you thinking to translate the server to a compiled language instead python? Only for better performance.

:p that’s its all xd

Thanks github for let me answer from the email :V

From: soundmud [mailto:notifications@github.com] Sent: domingo, 8 de mayo de 2016 12:46 To: soundmud/soundrts soundrts@noreply.github.com Subject: Re: [soundmud/soundrts] A server should be compatible with several mods and client versions (#12)

With the recent commits, a server accepts a client with any mods configuration. This is good enough for 1.2-a10.

The next improvements should be:

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/soundmud/soundrts/issues/12#issuecomment-217727785 https://github.com/notifications/beacon/AA-aG2FSxPIwIgR1EkBS1UJvC1lJJfAGks5p_gUkgaJpZM4CVpHJ.gif

soundmud commented 8 years ago

Respecting the second feature of the server… Are you saying that the server will be compatible with alternative soundrts client if anyone develop one?

This is already the case, in a way, but note that the clients must do most of the job, including the full simulation of the game world, and this simulation must be exactly the same on each computer.

And… Are you thinking to translate the server to a compiled language instead python? Only for better performance.

The server does almost nothing, so it will stay in Python. The clients are doing a lot, so I will profile them again and improve some parts by fixing algorithmic "errors" or by translating them in Cython (a compiled way to have something close to C). Pypy, the Just In Time compiler, doesn't seem to be compatible with pygame and has (a priori) smaller improvements (3x 4x).

soundmud commented 6 years ago

This issue is probably solved by commit 90fac951aac3d7e206ba2b48326cca18a4d7871a Maybe the version have to be the same. I'll check later.

soundmud commented 6 years ago

The issue is actually partially solved. Here is the message again, to check later:

With the recent commits, a server accepts a client with any mods configuration. This is good enough for 1.2-a10.

The next improvements should be:

  • on an invitation, a client should try to select automatically the required mods, as long as they are available locally
  • a server should accept any client with a compatible server protocol, and should isolate clients with different versions from each other