Code Monkey home page Code Monkey logo

netfox's Introduction

netfox

A set of addons for responsive online games with the Godot engine.

Features

  • โฒ๏ธ Consistent timing across multiple machines
  • ๐Ÿ–ฅ๏ธ Supports client-server architecture
  • ๐Ÿงˆ Smooth motion with easy-to-use interpolation
  • ๐Ÿ’จ Lag compensation with Client-side Prediction and Server-side Reconciliation
  • ๐Ÿ›œ Bullet-proof connectivity with noray integration

Overview

The package consists of multiple addons, each with different features:

  • netfox
    • The core package, implements timing, rollback and other multiplayer features
    • Start here
  • netfox.noray
    • Implements noray integration to establish connection between players
    • Useful for online games
  • netfox.extras
    • Provides high-level, game-specific, convenience features built on top of netfox, like base classes for input management or weapons
    • Check for reusable components for your game
  • netfox.internals
    • Shared utilities for the other addons
    • Included as dependency, no need to install separately

Install

Releases

Find the latest netfox under Releases

Each release contains the addons, and a build of Forest Brawl for Windows and Linux. Each addon has its dependencies packed with it - e.g. "netfox.extras.vx.y.z.zip" also contains both netfox and netfox.internals.

Note: For releases before v1.1.1, a separate ".with-deps.zip" version contains the addon and its dependencies, while the regular zips contain only the addon itself.

Asset Library

Search for the addon name in Godot's AssetLib or download from the site:

Source

Download the source and copy the addons of your choice to your Godot project.

Enable the addons

After adding netfox to your project, make sure to enable the addons in your project settings. Otherwise, Godot will present you with errors about undeclared identifiers.

Usage

See the docs.

Prototyping

To try your game online with noray, a free to use instance is hosted at tomfol.io:8890, the same instance used by Forest Brawl.

You can use this noray instance to quickly test your games online, but is not recommended for shipping games. The instance has configured limits, and no uptime guarantees are made.

Examples

Comparison sample

To provide a short intro on how to get started with netfox, and how it fares compared to built-in multiplayer tools, a simple demo was implemented as a single-player game, which was ported to multiplayer using both a naive approach and netfox.

Example game

To provide examples of netfox usage in an actual game, Forest Brawl was created and included specifically for this purpose.

It's a party game where an arbitrary amount of players compete by trying to knock eachother off of the map.

License

netfox is under the MIT license.

Note that the repository contains assets made by other people as well. For these cases, the relevant licenses can be found in the assets' directories.

Issues

In case of any issues, comments, or questions, please feel free to open an issue!

Contribution

Contributions are welcome! Please feel free to fork the repository and open a PR. Ideally, your PR implements a single thing, optionally refers to an existing issue, and follows the GDScript style guide.

Please note that depending on the feature/fix you implement, the PR may need to undergo changes, or in some cases, get rejected if it doesn't fit netfox's intended feature set or vision.

If you feel like it, grant the netfox author(s) write permission to your fork, so we can update the PR if needed.

If you're not sure if the PR would fit netfox or not, open an issue first, mentioning that you'd be willing to contribute a PR.

Author(s) at the time of writing:

  • @elementbound

netfox's People

Contributors

elementbound avatar zibetnu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.