mirror of
https://github.com/genxium/DelayNoMore
synced 2024-12-25 11:18:55 +00:00
Updated charts and refs in README.
This commit is contained in:
parent
d1f8a58154
commit
16fb23c376
@ -4,14 +4,14 @@ This project is a demo for a websocket-based rollback netcode inspired by [GGPO]
|
||||
|
||||
The following video is recorded over INTERNET using an input delay of 4 frames and it feels SMOOTH when playing! Please also checkout [this demo video](https://pan.baidu.com/s/1_DAEuE66s5Obf2GwtVul4Q?pwd=mfpq) to see how this demo carries out a full 60fps synchronization with the help of _batched input upsync/downsync_ for satisfying network I/O performance.
|
||||
|
||||
![gif_demo](./charts/internet_fireball_wallmoveset_spedup.gif)
|
||||
![gif_demo_1](./charts/internet_fireball_wallmoveset_spedup.gif)
|
||||
|
||||
![gif_demo](./charts/jump_sync_spedup.gif)
|
||||
![gif_demo_2](./charts/jump_sync_spedup.gif)
|
||||
|
||||
All gifs are sped up to ~1.5x for file size reduction, kindly note that animations are resumed from a partial progress!
|
||||
|
||||
# Notable Features
|
||||
- Backend dynamics toggle via [Room.BackendDynamicsEnabled](https://github.com/genxium/DelayNoMore/blob/v0.5.2/battle_srv/models/room.go#L813)
|
||||
- Backend dynamics toggle via [Room.BackendDynamicsEnabled](https://github.com/genxium/DelayNoMore/blob/v0.9.14/battle_srv/models/room.go#L786)
|
||||
- Recovery upon reconnection (only if backend dynamics is ON)
|
||||
- Automatically correction for "slow ticker", especially "active slow ticker" which is well-known to be a headache for input synchronization
|
||||
- Frame data logging toggle for both frontend & backend, useful for debugging out of sync entities when developing new features
|
||||
@ -20,8 +20,9 @@ _(how input delay roughly works)_
|
||||
|
||||
![input_delay_intro](./charts/InputDelayIntro.jpg)
|
||||
|
||||
_(how rollback-and-chase in this project roughly works)_
|
||||
_(how rollback-and-chase in this project roughly works, kindly note that by the current implementation, each frontend only maintains a `lastAllConfirmedInputFrameId` for all the other peers, because the backend only downsyncs all-confirmed inputFrames, see [markConfirmationIfApplicable](https://github.com/genxium/DelayNoMore/blob/v0.9.14/battle_srv/models/room.go#L1085) for more information -- if a serverless peer-to-peer communication is seriously needed here, consider porting [markConfirmationIfApplicable](https://github.com/genxium/DelayNoMore/blob/v0.9.14/battle_srv/models/room.go#L1085) into frontend for maintaining `lastAllConfirmedInputFrameId` under chaotic reception order of inputFrames from peers)_
|
||||
|
||||
![server_clients](./charts/ServerClients.jpg)
|
||||
![rollback_and_chase_intro](./charts/RollbackAndChase.jpg)
|
||||
|
||||
(By use of [GopherJs](https://github.com/gopherjs/gopherjs), the frontend codes for dynamics are now automatically generated)
|
||||
|
File diff suppressed because one or more lines are too long
BIN
charts/ServerClients.jpg
Normal file
BIN
charts/ServerClients.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 79 KiB |
Loading…
Reference in New Issue
Block a user