Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/empyreanx/godot-snapshot-interpolation-demo
A simple networked physics demo for the Godot engine using snapshot interpolation and UDP
https://github.com/empyreanx/godot-snapshot-interpolation-demo
Last synced: 6 days ago
JSON representation
A simple networked physics demo for the Godot engine using snapshot interpolation and UDP
- Host: GitHub
- URL: https://github.com/empyreanx/godot-snapshot-interpolation-demo
- Owner: empyreanx
- License: mit
- Created: 2015-05-27T13:28:10.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-06-12T14:24:49.000Z (over 9 years ago)
- Last Synced: 2024-08-02T06:16:09.369Z (3 months ago)
- Language: GDScript
- Homepage:
- Size: 262 KB
- Stars: 65
- Watchers: 5
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-godot - UDP Snapshot interpolation - Lets you connect to a server and view networked physics. (Demos / 3D)
README
# Snapshot Interplation Demo
**Note:** Snapshot interpolation is no longer my favoured approach for networked physics using Godot. Please see the [state synchronization demo](https://github.com/jrimclean/godot-state-sync-demo) for a much better approach.
## Introduction
The purpose of this demo is to demonstrate essential techniques required to make real-time multiplayer games using the [Godot Engine](http://www.godotengine.org).
The server runs a simple physical simulation involving three boxes. Users can drag the boxes around on either the client or the server. The server simulates less than ideal network conditions by sending only a limited number of packets per second.
The client uses an interpolated buffer to ensure animation remains smooth even in the face of bad network conditions.
To start a dedicated server with the headless version of Godot type, "godotserver -server" in the project directory.
To see where I got the ideas behind the interpolation, visit [Gaffer on Games](http://gafferongames.com/).
It looks like I might be able to do delta compression after all thanks to some changes being made by Juan.
I did more reading about client-side prediction and lag compensation, and I've concluded that both techniques are inappropriate for this demo.
## Features
* Input handling on both client and server
* Adjustable network frame rate to simulate less than ideal network conditions
* Cubic Hermite interpolation for positions
* Spherical linear interpolation for rotations## License
Copyright (c) 2015 James McLean
Licensed under the MIT license.