Giter Site home page Giter Site logo

claudiomattera / wasm4 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aduros/wasm4

0.0 1.0 0.0 2.18 MB

Build retro games using WebAssembly for a fantasy console.

Home Page: https://wasm4.org

License: ISC License

JavaScript 48.61% CSS 1.74% Shell 0.11% TypeScript 11.37% Makefile 1.16% C 17.51% Go 1.87% Rust 2.54% CMake 0.65% HTML 0.82% D 1.57% Nim 1.34% Odin 1.99% Zig 2.20% Lua 2.86% WebAssembly 1.69% SCSS 1.97%

wasm4's Introduction


WASM-4 Logo
WASM-4

Build retro games using WebAssembly for a fantasy console

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.

Development status: ⚡ Alpha

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++, Rust, Go, D, Nim, Odin, Zig.

  • Portable: WASM-4 is designed to run on any device that can execute WebAssembly, even outside of the web! We're planning a lightweight implementation written in C that will run even on a potato.

🚀 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.

wasm4's People

Contributors

aduros avatar christopher-kleine avatar fabervitale avatar maxgraey avatar exponenta avatar binji avatar tjpalmer avatar andre-la avatar claudiomattera avatar yardanico avatar ttulka avatar thedavesims avatar denialadams avatar joshgoebel avatar sporksmith avatar jaese avatar jimmycartrette avatar immjs avatar rohlem avatar pfgithub avatar apppppppple avatar ubunatic avatar freemasen avatar oliveisaword avatar mrrafael-dev avatar jakeledoux avatar exoticorn avatar greenfork avatar peterhellberg avatar sliv9 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.