Skip to content

notnullgames/raycart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

104 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a webassembly host-implementation for raylib. Essentially, all raylib functions are exposed to your wasm.

My main testing target is C code that looks like normal raylib, and is compiled with wasi-sdk, but you should be able to use the same host with wasm made in nelua, assemblyscript, walt, go, or any other language that compiles to wasm. All assets are available in the WASI filesystem, and should work like normal.

The "web" in webassembly is a misnomer here. It's not just for the web (but will run there) it's a sandboxed runtime abstraction, for all kinds of places. No recompile is needed, and it will run on many things (browser, native on desktop computer, barebones pi, esp32, etc.)

cart

A "cart" is just a wasm file, or a zip file with main.wasm and any assets it needs.

API differences

  • Lifecycle exports are split up like this:
    • _start - this is a WASI thing, it calls main() in C. Setup the basic screen here.
    • CartPreload - This is called before assets are loaded, and you can use it to show a progress-bar or something
    • CartInit - assets are loaded in filesystem, so you can load images and stuff here
    • CartUpdate - called every frame (about 60FPS on mac web)
  • All variable-argument functions (Tracelog, etc) should do their text-formatting cart-side. Tracelog just logs plain string with a type-tag, for example, but in practice it works the same because the C header (for was-sdk) does the formatting. Other wasm languages should do this too

thanks

  • obviously, raylib is awesome, and the community is really helpful
  • zozlib.js has some great ideas about non-emscripten raylib stuff. I didn't use this directly, but I like their style, and it provides a nice browser-native implementation of the same raylib functions.

About

Multi platform/language engine for running carts made with API similar to raylib

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages