Is there a way to use piston with wasm?

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/rust_gamedev

Our great sponsors
  • SonarLint - Clean code begins in your IDE with SonarLint
  • Scout APM - Less time debugging, more time building
  • SaaSHub - Software Alternatives and Reviews
  • RG3D

    3D and 2D game engine written in Rust [Moved to: https://github.com/FyroxEngine/Fyrox]

    rg3d has recently added web support.

  • bevy_webgl2

    WebGL2 renderer plugin for Bevy game engine

    There was a rust game jam in September 2021 and some games are playable in the browser. In that game jam the most used game engine was the bevy game engine. But most of the games made in bevy were not made playable in the browser, the ones that were playable in the browser used a third-party bevy plugin called bevy_webgl2. However now bevy has been updated to version 0.6 that has new built in WASM support, so there seems to be no need for bevy_webgl2. Targeting WASM with bevy might mean that not all features of the engine are available, so you need to limit the game’s features used to the ones that are compatible with WASM.

  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

  • howler.js

    Javascript audio library for the modern web.

    Gate framework and Howler.js were used to make the game "Adventures of Pascal Penguin" which is playable here.

  • miniquad

    Cross platform rendering in Rust

    In that same rust game jam the second most used engine was macroquad, which was used by 3 games, two of which are playable in the browser. Macroquad is a cross-platform game library inspired by raylib. Macroquad is built on top of miniquad. I think macroquad is a bit more approachable than bevy since macroquad doesn't impose an ECS and tries to be minimal with its features so they are available in all of the platforms it targets.

  • bevy

    A refreshingly simple data-driven game engine built in Rust

    There was a rust game jam in September 2021 and some games are playable in the browser. In that game jam the most used game engine was the bevy game engine. But most of the games made in bevy were not made playable in the browser, the ones that were playable in the browser used a third-party bevy plugin called bevy_webgl2. However now bevy has been updated to version 0.6 that has new built in WASM support, so there seems to be no need for bevy_webgl2. Targeting WASM with bevy might mean that not all features of the engine are available, so you need to limit the game’s features used to the ones that are compatible with WASM.

  • Oxygengine

    Rust implementation of Oxygen Core HTML5 game engine

    Oxygen engine / Oxygengine that targets HTML5 and WASM.

  • emerald

    A 2D rust game engine focused on portability.

    Emerald engine that aims to be cross platform and can target WASM. Emerald is built over miniquad which is what macroquad is built over.

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • good-web-game

    An alternative ggez implementation on top of miniquad.

    Good Web Game engine that is an implementation of a web compatible subset of the ggez game engine constructed on top of miniquad.

  • gate

    A specialized 2D game library

    Gate framework and Howler.js were used to make the game "Adventures of Pascal Penguin" which is playable here.

  • pixels

    A tiny hardware-accelerated pixel frame buffer. 🦀

    Pixels is not a full game engine, but it is a hardware-accelerated pixel frame buffer and since version 0.8.0 onwards support for web was added. This is the web example.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts