GPU
Jumpjet is leveraging wgpu to deliver a familiar interface that closely resembles WebGPU.
a wasm runtime for game developers.
Build your next game, engine or library with Jumpjet.
For any platform. In any language.
Until now, in order to build games for multiple platforms, developers had to write platform-specific code or rely on an engine to provide that support. And while libraries like SDL and raylib exist, they don't solve the toolchain problem.
Jumpjet bridges the gap between high-level game development and low-level hardware access, allowing developers to write code once and deploy it across multiple platforms.
Beyond just enabling multi-platform support, Jumpjet provides a host of APIs and tools that make it easy to build games.
use wit_bindgen::generate;
use crate::exports::jumpjet::runtime::client::Guest;
use crate::jumpjet::runtime::debug::log;
generate!({
world: "game",
path: ".jumpjet/wit",
generate_all
});
export!(Game);
struct Game;
impl Guest for Game {
fn init() -> Result<(), String> {
log("init");
Ok(())
}
fn update(time: f64, delta_time: f64) {
log(&format!("update: {:?}", time));
}
fn render(time: f64, alpha: f64) {
log(&format!("render: {:?}", time));
}
}
import { log } from 'jumpjet:runtime/debug'
export const guest = {
init() {
log('init')
},
update(time, deltaTime) {
log(`update ${time}`)
},
render(time, deltaTime) {
log(`render ${time}`)
}
}
Jumpjet is leveraging wgpu to deliver a familiar interface that closely resembles WebGPU.
Simple audio apis that mimic WebAudio make it easy to build powerful audio systems.
Robust input management apis without the need for complex event handling.
High performance reliable & unreliable network transports on every platform.
Sandboxed & virtualized file system access makes it safe and easy to save and retrieve data.
A built-in test harness and debug apis help you ship with confidence.