/hypergodot

A Godot plugin and example project to load assets from the Hypercore Protocol

Primary LanguageGDScriptMIT LicenseMIT

HyperGodot

A Godot plugin and example project for loading assets from the hypercore-protocol.

WIP: This is a work an progress and may have breaking changes. Feel free to follow for progress, though.

How It Works:

  • Puts all the hypercore-protocol handling into an HTTP gateway
  • Bundles platform-specific binaries for the gateway
  • Subclasses HTTPRequest to auto-spawn gateway and translate hyper:// requests to http://127.0.0.1:4973/hyper/
  • Call request() as you normally would, but with hyper:// URLs

TODOs:

  • Reuse HyperGateway instance between HyperRequest objects
  • Example for saving data to hyper
  • Make FTP server that can be mounted as a network drive
  • Listen for changes (EventSource)
  • Listen for download progress (EventSource)
  • Listen for / Publish extension messages (EventSource)
  • Examples for all the methods exposed by the gateway.
    • GET/PUT text files
    • Watch for changes
    • Basic chat app
  • Load latest hyper-gateway dynamically on boot
  • Basic Multiplayer demo using extension messages
    • Refactor chat system to be more general purpose (not just texts)
    • Basic demo moving blobs around on a map
    • Place usernames in a hyperdrive's json file along with an image for your blob
    • Create custom maps from an image and a JSON file
    • Auto-discover which maps are active
  • Enable code to work in Godot Web in Agregore
  • Enable code to work in Godot Web in regular browsers
  • Update to latest hypercore protocol stuff
  • Add multi-writer for hyperdrives
  • Load gltf scene from hyper
  • Load VRM avatar from hyper (social multiplayer) VRM stuff
  • Folder sync (From hyper:// to fs, from fs to hyper://)

Supported APIs:

// TODO