Small, runnable examples showing how to integrate Wavedash across different engines and stacks.
example-babylonjs: Babylon.js pong demo that initializes the SDK, updates loading progress, releases deferred events when ready, and then starts gameplay.example-bevy: Bevy pong demo that initializes the SDK from Rust, updates loading progress, and then starts gameplay.example-c: Pure C and WebAssembly pong demo that initializes the SDK from C, updates loading progress, releases deferred events when ready, and then starts gameplay.example-cpp: C++ and WebAssembly pong demo that initializes the SDK from C++, updates loading progress, releases deferred events when ready, and then starts gameplay.example-csharp: C# and WebAssembly pong demo that initializes the SDK from C# via NativeAOT, updates loading progress, releases deferred events when ready, and then starts gameplay.example-defold: Defold pong demo that initializes the SDK, updates loading progress, and then starts gameplay.example-ebiten: Ebiten pong demo compiled to WebAssembly, initializes the SDK from Go throughsyscall/js, and then starts gameplay.example-excalibur: Excalibur.js pong demo that loads the engine from a CDN via ESM — no build step — uses an AI opponent, and initializes the SDK from a module entry.example-flame: Flame pong demo compiled to WebAssembly via Flutter, initializes the SDK from Dart throughdart:js_interop, and then starts gameplay.example-littlejs: LittleJS pong demo that loads the engine from a CDN, uses an AI opponent, and initializes the SDK insidegameInit.example-gamemaker: GameMaker HTML5 pong demo that initializes the SDK through a JavaScript extension, updates loading progress during startup, releases deferred events when the first playable state is ready, and then starts gameplay.example-go: Go and WebAssembly pong demo that owns the full browser stack viasyscall/js, initializes the SDK, updates loading progress, and then starts gameplay.example-godot: Godot 4 pong demo with local and online multiplayer modes — initializes the SDK from GDScript, browses and joins lobbies, and uses Wavedash P2P to sync paddle positions (channel 0, unreliable) and score events (channel 1, reliable), exported to HTML5.example-cocos: Cocos Creator 3 pong demo whosePongcomponent moves paddle and ball Nodes each frame, initializes the SDK from TypeScript, and then starts gameplay.example-construct: Construct 3 folder-project pong demo that initializes the SDK from Construct scripts, updates loading progress during startup, releases deferred events when the first playable state is ready, and then starts gameplay.example-gbstudio: GB Studio 4 Game Boy game exported to HTML5 via the built-in binjgb emulator, with the Wavedash SDK init injected into the exported shell.example-gdevelop: GDevelop 5 pong demo authored ingame.jsonwith a single JavaScript event driving input, physics, scoring, and a ShapePainter renderer, initializes the SDK on the first frame, and then starts gameplay.example-haxe: Haxe pong demo compiled to JavaScript viahaxe build.hxml, renders with Canvas 2D, initializes the SDK throughjs.Syntax.code, and then starts gameplay.example-heaps: Heaps.io pong demo compiled to JavaScript via Haxe, renders through Heaps's scene graph with a translucent scoreboard, and initializes the SDK throughjs.Syntax.code.example-lua: Lua pong demo that runs in the browser via wasmoon — no build step, loaded straight from a CDN, renders with Canvas 2D, initializes the SDK, and then starts gameplay.example-python: Python pong demo that runs in the browser via Pyodide (CPython in WebAssembly) — no build step, loaded straight from a CDN, renders with Canvas 2D, initializes the SDK from Python through thejsmodule, and then starts gameplay.example-swift: Swift pong demo compiled to WebAssembly via the official Swift SDK for WebAssembly, uses JavaScriptKit to drive Canvas 2D and call the SDK, and then starts gameplay.example-jsdos: DOS executable bundled as.jsdosand uploaded to Wavedash with the[jsdos]section inwavedash.toml; the platform automatically wraps it in the js-dos emulator and handles SDK initialization.example-js: Pure JavaScript and Canvas 2D pong demo that initializes the SDK, updates loading progress, and then starts gameplay with no external game engine.example-kaplay: Kaplay pong demo with local and online multiplayer modes — loads Kaplay from a CDN (no build step), initializes the SDK from JavaScript, browses and joins lobbies, and uses Wavedash P2P to sync paddle positions (channel 0, unreliable) and score events (channel 1, reliable).example-kni: KNI BlazorGL (MonoGame-compatible) pong demo built with nkast's KNI engine, compiled to WebAssembly via Blazor, initializes the SDK and updates loading progress from C# via JS interop, then starts gameplay.example-love2d: LOVE2D pong demo that packages a.lovefile for the standalonelove.jsplayer, initializes the SDK, updates loading progress, releases deferred events when the first playable frame is rendered, and then starts gameplay.example-melonjs: melonJS pong demo loaded via ESM from unpkg — no build step — uses a tracking-AI opponent, renders a scoreboard in each half, and initializes the SDK from a module entry.example-phaser: Phaser 3 pong demo that initializes the SDK, updates loading progress, releases deferred events when ready, and then starts gameplay.example-pixi: PixiJS pong demo that initializes the SDK, updates loading progress, and then starts gameplay.example-playcanvas: PlayCanvas 3D pong demo that initializes the SDK, updates loading progress, and then starts gameplay.example-raylib: raylib pong demo compiled to WebAssembly via Emscripten, initializes the SDK from C usingEM_JSwrappers, and then starts gameplay.example-renpy: Ren'Py web-export visual novel that initializes the SDK, updates loading progress during startup, releases deferred events when the first playable scene is ready, and then enters the story.example-rpgmaker: RPG Maker MZ default-template project with a smallWavedashplugin that hooks intoScene_Bootto initialize the SDK, exported to HTML5.example-ruffle: Flash SWF demo uploaded to Wavedash with the[ruffle]section inwavedash.toml; the platform automatically wraps it in the Ruffle emulator and handles SDK initialization.example-rust: Rust and WebAssembly pong demo that initializes the SDK from Rust, updates loading progress, releases deferred events when ready, and then starts gameplay.example-solar2d: Solar2D pong demo exported to HTML5, initializes the SDK through a custom HTML template set inbuild.settings, and then starts gameplay.example-threejs: Three.js pong demo with local and online multiplayer modes — initializes the SDK from JavaScript, browses and joins lobbies, and uses Wavedash P2P to sync paddle positions (channel 0, unreliable) and score events (channel 1, reliable).example-threejs-cloud: Three.js + cannon-es physics sandbox that exercises the userfs and UGC APIs end-to-end — click to drop primitives (auto-stacked via downward raycast), shift+click to remove. Save / Load / Delete useuploadRemoteFile/downloadRemoteFile/deleteRemoteFilefor the player's own cloud save, pluslistRemoteDirectoryto surface its size/timestamp. Publish / Update published / Unpublish usecreateUGCItem/updateUGCItem/deleteUGCItemto share scenes as public UGC. Import pulls another player's scene viadownloadUGCItem+readLocalFileinto a scratch path so the local save is untouched.example-ts: Pure TypeScript and Canvas 2D pong demo that initializes the SDK, updates loading progress, and then starts gameplay with no external game engine.example-unity: Unity P2P pong demo that uses Netcode for GameObjects with the Wavedash transport, exported to WebGL.example-zig: Zig and WebAssembly pong demo that initializes the SDK from Zig, updates loading progress, releases deferred events when ready, and then starts gameplay.