All Projects → aduros → wasm4

aduros / wasm4

Licence: ISC license
Build retro games using WebAssembly for a fantasy console.

Programming Languages

typescript
32286 projects
c
50402 projects - #5 most used programming language
javascript
184084 projects - #8 most used programming language
lua
6591 projects
rust
11053 projects
Zig
133 projects

Projects that are alternatives of or similar to wasm4

Tic 80
TIC-80 is a fantasy computer for making, playing and sharing tiny games.
Stars: ✭ 3,176 (+346.69%)
Mutual labels:  fantasy-console, fantasy-computer
bitty
Bitty Engine - An itty bitty 2D game engine, with built-in editors, programmable in Lua.
Stars: ✭ 86 (-87.9%)
Mutual labels:  fantasy-console, fantasy-computer
rogue.js
JavaScript porting of original Rogue source code using Emscripten
Stars: ✭ 33 (-95.36%)
Mutual labels:  emscripten, retrogaming
Pixelvision8
Pixel Vision 8's core philosophy is to teach retro game development with streamlined workflows. PV8 is also a platform that standardizes 8-bit fantasy console limitations built on top of the open-source C# game engine based on MonoGame.
Stars: ✭ 773 (+8.72%)
Mutual labels:  retrogaming, 2d-game-engine
SN-50
⚠️ Still Under Development ⚠️ SN-50 is a free and open source fantasy computer for building, playing and sharing resources-limited games.
Stars: ✭ 22 (-96.91%)
Mutual labels:  fantasy-console
assemblyscript-regex
A regex engine for AssemblyScript
Stars: ✭ 81 (-88.61%)
Mutual labels:  assemblyscript
examples
A collection of AssemblyScript examples.
Stars: ✭ 233 (-67.23%)
Mutual labels:  assemblyscript
webgl
http://gam0022.net/webgl/
Stars: ✭ 43 (-93.95%)
Mutual labels:  emscripten
feup-8
TIC-80 fork enabling server-side unit testing to help kids learn how to code, by developing games!
Stars: ✭ 27 (-96.2%)
Mutual labels:  fantasy-console
binocle-unity
Binocle is a simple 2D code-based framework for Unity
Stars: ✭ 23 (-96.77%)
Mutual labels:  2d-game-engine
wasm-raytracer
a performance comparison of a simple raytracer in JavaScript, asm.js, WebAssembly, and GLSL
Stars: ✭ 158 (-77.78%)
Mutual labels:  emscripten
bergamot-translator
Cross platform C++ library focusing on optimized machine translation on the consumer-grade device.
Stars: ✭ 181 (-74.54%)
Mutual labels:  emscripten
web-ifc
Reading and writing IFC files with Javascript, at native speeds.
Stars: ✭ 314 (-55.84%)
Mutual labels:  emscripten
OpenAmiga600RamExpansion
Open Hardware 1 MB Chip RAM Expansion for the Commodore Amiga 600 Computer
Stars: ✭ 48 (-93.25%)
Mutual labels:  retrogaming
Blood-Voxel-Pack
Additional voxel models for Blood video game. Compatible with BuildGDX, NBlood, and Fresh Supply.
Stars: ✭ 42 (-94.09%)
Mutual labels:  retrogaming
Nero-Game-Engine
Advanced SFML Game Engine, Designed to be Simple and Intuitive
Stars: ✭ 50 (-92.97%)
Mutual labels:  2d-game-engine
wrenjs
The Wren Programming Language, in the browser
Stars: ✭ 28 (-96.06%)
Mutual labels:  emscripten
easegress-assemblyscript-sdk
AssemblyScript SDK for Easegress
Stars: ✭ 15 (-97.89%)
Mutual labels:  assemblyscript
neo-geo-dev-book
a book on developing for the Neo Geo
Stars: ✭ 27 (-96.2%)
Mutual labels:  retrogaming
Header-Only-GL-Helpers
A collection of header files that can ease OpenGL programming
Stars: ✭ 25 (-96.48%)
Mutual labels:  emscripten


WASM-4 Logo
WASM-4

Build retro games using WebAssembly for a fantasy console

WebsiteShowcaseDocsDiscussions

About

WASM-4 is a low-level fantasy game console for building small games with WebAssembly. Game cartridges (ROMs) are small, self-contained .wasm files that can be built with any programming language that compiles to WebAssembly.

Key Features

  • No Glue Code: If you've ever tried to write even a simple "Hello World" with WebAssembly before, you'll know it usually involves writing a bunch of JS and HTML glue. WASM-4 removes all of that, games interface directly with the system through a small API.

  • Minimalist: Fantasy consoles force developers to work with limited resources. This makes them simple to learn, and easier to focus on finishing your game.

  • Language Agnostic: Use any programming language, as long as it can compile to WebAssembly. Out of the box we currently support: AssemblyScript, C/C++, D, Go, Nelua, Nim, Odin, Rust, WAT, and Zig.

  • Portable: WASM-4 is designed to run on any device that can execute WebAssembly, even outside of the web! It includes a lightweight runtime written in C that runs even low-powered microcontrollers and obsolete hardware.

  • Netplay: Instant online multiplayer, featuring rollback netcode. All games that support local multiplayer automatically support netplay. WASM-4 handles syncing controller inputs over the Internet.

🚀 60 Second Quickstart

# Install the w4 command
npm install -g wasm4

# Create a project
w4 new --assemblyscript hello-world

# Setup toolchain
cd hello-world
npm install

# Build and run your game!
npm run build
w4 run build/cart.wasm

For more info and guides, check the full documentation.

🎮 Hardware Specs

  • Display: 160x160 pixels, 4 customizable colors, updated at 60 Hz.
  • Memory: 64 KB linear RAM, memory-mapped I/O, save states.
  • Cartridge Size Limit: 64 KB.
  • Input: Keyboard, mouse, touchscreen, up to 4 gamepads.
  • Audio: 2 pulse wave channels, 1 triangle wave channel, 1 noise channel.
  • Disk Storage: 1024 bytes.

🙏 Contributing

Contributions are welcome! Here are just a few ways to help:

  • Build a game or experiment, we'll feature it on wasm4.org!
  • Improve our documentation or write a tutorial.
  • Submit a bug report or feature request on Github.
  • Answer questions on the discussions forum.
  • Implement support for a new tool or language.
  • Give the project a star on Github for visibility.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].