wasm-snake VS Web49

Compare wasm-snake vs Web49 and see what are their differences.

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
wasm-snake Web49
2 3
7 325
- 1.5%
7.7 5.0
2 months ago about 1 year ago
WebAssembly WebAssembly
- MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

wasm-snake

Posts with mentions or reviews of wasm-snake. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-04.
  • Classic Snake in Direct WebAssembly Text
    2 projects | news.ycombinator.com | 4 Mar 2024
    All of the game graphics, state and logic are written in WebAssembly Text. The host environment (Javascript) is responsible for:

    Game tick loop

    User input

    Providing characters "0123456789GAMEOVER" byte data on game startup

    Blitting the pixel buffer to the display with WebGL2

    The game uses 3 virtual pages of memory (64kb each) for a total of 192kb. Within those exist the pixel buffer contents, the characters data and snake positions. For more detailed breakdown you can check src/snake.wat.

    The memory is shared between WASM and JS. On each game tick, the pixel buffer region of the memory is transferred to a WebGL2 texture, uploaded to the GPU and blitted to the screen.

    For more info you can refer to the repo - https://github.com/gnikoloff/wasm-snake

Web49

Posts with mentions or reviews of Web49. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-09.
  • Show HN: I wrote a WebAssembly Interpreter and Toolkit in C
    1 project | /r/hypeurls | 9 Jan 2023
    6 projects | news.ycombinator.com | 9 Jan 2023
    > I developed a unique way to write interpreters based on threaded code jumps and basic block versioning when I made MiniVM (https://github.com/FastVM/minivm). It was both larger and more dynamic than WebAssembly.

    I'd be very interested to read more about this. It looks like you are using "one big function" with computed goto (https://github.com/FastVM/Web49/blob/main/src/interp/interp....). My experience working on this problem led me to the same conclusion as Mike Pall, which is that compilers do not do well with this pattern (particularly when it comes to register allocation): http://lua-users.org/lists/lua-l/2011-02/msg00742.html

    I'm curious how you worked around the problem of poor register allocation in the compiler. I've come to the conclusion that tail calls are the best solution to this problem: https://blog.reverberate.org/2021/04/21/musttail-efficient-i...

What are some alternatives?

When comparing wasm-snake and Web49 you can also consider the following projects:

wasm3 - 🚀 A fast WebAssembly interpreter and the most universal WASM runtime

wizard-engine - Research WebAssembly Engine

owi - WebAssembly Swissknife

assemblyscript - A TypeScript-like language for WebAssembly.

waforth - Small but complete dynamic Forth Interpreter/Compiler for and in WebAssembly

serenity - The Serenity Operating System 🐞

minivm - A VM That is Dynamic and Fast