TASEmulators / TASEmulators/BizHawk

[F.Rq.] Netplay (multiplayer over a local network or possibly the Internet)

Open
#2,450 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

App: EmuHawk Open to design proposals only Request: Feature/Enhancement
Dominant language
C#
Stars
2.8k
Forks
468
PR merge metrics
No merged PRs in 30d

Description

There are many ways this could be done.
Here are my thoughts on one way:

** use Kaillera (but it probably needs improving)**

Kaillera server and client were recreated in https://github.com/God-Weapon.
But it's still needs in improvements:

  1. Reconnecting or connect to active session
  2. Send states client->server->clients
  3. Only buttons need be send by UDP, other commands and states must be sended by another port or TCP. It allows us to require lost packets from clients.(packets can be contains chat or commands in current state)
  4. Possibility to start netplay game on server with only 1 player

How it must works:
Player creates game on server(4), then other player will connect to him(1), server requires state from first(host) player and send to client(2),during lag a server just wait and requires lost packets(3), on desync a server requires state from host(2)

So it needs make new server code or upgrage current Kaillera servers, you can replace original client code with own will work with Kaillera(or/and upgraded) servers

see also #4018

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source files, tests, or entry points are named. Start by reviewing the existing Kaillera server/client work and related issue #4018, then define the networking design and acceptance criteria for reconnection, state transfer, packet handling, and single-player server sessions.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
game-dev, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.