playform icon indicating copy to clipboard operation
playform copied to clipboard

LAN multiplayer

Open bfops opened this issue 10 years ago • 10 comments

This is being done on the server branch.

  • [x] Client and server separation
    • [x] Client/server threads (452d77d2b3fe91a9081dde6dcc3bea1d7f81b7d5, c09d0091db3592898c78e64106a00dda380fc7dd)
    • [x] Client/server/common crates (01263feecb43048146b0747b38c048c5d663c892)
    • [x] Client/server executables (adb2d5ef3d6b3b1a4d8112e885d19d973190f6e4)
  • [x] Clients should request blocks from the server, rather than the server pushing them. (ca3ada57bb7ad5f9a04905d7d628d702515bfc3e, fff5e98590bf2f95f27e9ac67f21fcf5822007c9)
  • [x] Support multiple Clients (7cbad25c0d15a6933661522646a5b6c5571e8796).
    • [x] Clients should get their OwnerIds from the server (4f4e5d86846a74af3244bd81a8b2a01698ac8319).
  • [x] Give Players meshes (47e3a8953af94c549572218ce70a4d902a52ba3d).
  • [x] Support multiple Players (7a4e88ab8616d4a3ebc80518a7c5d1857eaf6789).
    • [x] Add players dynamically when clients connect (7a4e88ab8616d4a3ebc80518a7c5d1857eaf6789).
  • [x] Clients get unique IDs to annotate their messages (827ba8ba082ff068e8e39162f55fe490d90ccfc0).
  • [x] Networking (26ccf9b787fd4fdbfec47864cc9cbba4a2b31f6f, c9089a3e9e99c2d57b8c60161083640f017059fd)
  • [x] Make it fast/scalable again (8383f41bc5b622374f65c5c2fd953c10eef898f6, 1d3621df9161adf173f85b9306364381805ad387, 37d3a825439dc15ad9adc5add779c277db53ec2e, 3707b3e2402c24970a41283fffb4a7d319128480, 246bfa446aa2be125daa89865507d2005f19e019)
    • A lot of refactoring happened near the main level. We're not as smooth as before, but smoother than this branch has ever been. It still tanks at bigger render distances though.
    • Release builds are smooth for low render distances.
    • [x] Terrain message rate limiting in the client SurroundingsLoader (b6c5e4179e05a8708f66f2d663da660bd5834073).

bfops avatar Feb 08 '15 19:02 bfops

This sounds fun!! On Sun, Feb 8, 2015 at 2:06 PM Ben Foppa [email protected] wrote:

We need:

  • Client and server separation (started in #104 https://github.com/bfops/playform/issues/104)
  • Networking
  • Multiplayer

— Reply to this email directly or view it on GitHub https://github.com/bfops/playform/issues/114.

elijahandrews avatar Feb 08 '15 21:02 elijahandrews

I think a nice goal would be to make playform into something we actually like killing time with. Maybe a casual fighting game or something.

bfops avatar Feb 08 '15 22:02 bfops

Moved world updates into a new thread in 452d77d2b3fe91a9081dde6dcc3bea1d7f81b7d5 (https://github.com/bfops/playform/issues/104). This starts the client/server separation.

bfops avatar Feb 08 '15 22:02 bfops

might be worthy of a read, if you plan on doing your own networking model: tribes networking model pdf

viperscape avatar Feb 09 '15 19:02 viperscape

Looks interesting, thanks!

bfops avatar Feb 10 '15 20:02 bfops

Added a client thread, and renamed some world* things to server*. c09d0091db3592898c78e64106a00dda380fc7dd

bfops avatar Feb 10 '15 20:02 bfops

The server branch has most of the client/server split-up done. It's jittery though - we need to look at latency and reducing the amount of messages being transferred (because processing each one increases latency).

bfops avatar Feb 13 '15 01:02 bfops

The crates branch is keeping track of my progress on the client/server cratification.

bfops avatar Feb 13 '15 06:02 bfops

Release builds are slow for low render distances. Need to fix up the bottlenecks for higher render distances and then this can be called done!

bfops avatar Mar 12 '15 03:03 bfops

Merged 9e1d36ff206aa0dd8f02bdaea1bbaa8cd2185222.

bfops avatar Mar 15 '15 00:03 bfops