🐚+🦞 Ultra-portable Rust game engine suited for offline 2D games powered by WebAssembly

Overview

pagurus

pagurus Documentation Actions Status License

🐚 + 🦞 Ultra-portable Rust game engine suited for offline 2D games powered by WebAssembly.

Examples

Snake

Traditional snake game: examples/snake_game

You can play this game on itch.io.

How to build and run locally

Build the game:

$ cargo build --release -p snake_game --target wasm32-unknown-unknown
$ ls target/wasm32-unknown-unknown/release/snake_game.wasm

Run the game using SDL:

$ cargo run --release -p sdl_snake

Run the game on Windows:

$ cargo run --release -p windows_snake

// or, if you use WSL2 (Ubuntu)

$ sudo apt install gcc-mingw-w64-x86-64
$ rustup target add x86_64-pc-windows-gnu
$ cargo run --target=x86_64-pc-windows-gnu --release -p windows_snake

Run the game on a Web Browser:

$ cd pagurus_web/
$ npm install
$ npm run build
$ npm run example  // A HTTP server listening on 8888 port will start

$ open http://localhost:8888/examples/web_snake/

Projects that use Pagurus

You might also like...
A new, portable, regular expression language

rulex A new, portable, regular expression language Read the book to get started! Examples On the left are rulex expressions (rulexes for short), on th

A library for loading and executing PE (Portable Executable) from memory without ever touching the disk

memexec A library for loading and executing PE (Portable Executable) from memory without ever touching the disk This is my own version for specific pr

A new, portable, regular expression language

rulex A new, portable, regular expression language Read the book to get started! Examples On the left are rulex expressions (rulexes for short), on th

Ember is a minimalistic Rust library for creating 2D graphics, games, and interactive visualizations with ease and simplicity.
Ember is a minimalistic Rust library for creating 2D graphics, games, and interactive visualizations with ease and simplicity.

Ember Ember is a simple and fun 2D rendering library for Rust, allowing you to quickly create graphics and interactive applications with ease. It uses

A diff-based data management language to implement unlimited undo, auto-save for games, and cloud-apps which needs to retain every change.

Docchi is a diff-based data management language to implement unlimited undo, auto-save for games, and cloud-apps which needs to save very often. User'

Open-source compiler for the Papyrus scripting language of Bethesda games.

Open Papyrus Compiler This project is still WORK IN PROGRESS. If you have any feature requests, head over to the Issues tab and describe your needs. Y

Calculate a player's skill level using Elo, DWZ, Ingo, TrueSkill, Glicko and Glicko-2 algorithms known from their usage in chess and online games.

skillratings Skillratings allows you to calculate the player's skill instantly in 1v1 matches or after tournaments/rating periods with a list of resul

A library for 3D grid coordinates: for games

Positioning rustdocs A library for manipulating coordinates on a 3D grid. This will contain code that I'll often end up repeating in games. Currently,

📦 Distribute Roblox games as standalone executables -- No existing client necessary. 🚧
📦 Distribute Roblox games as standalone executables -- No existing client necessary. 🚧

📦 Packer Distribute Roblox games as standalone executables. 🚧 Packer is still being worked on. Among many other things, Windows is not currently sup

Comments
  • Add TUI runtime for debugging purpose

    Add TUI runtime for debugging purpose

    Example command:

    $ cargo run --release -p tui_runtime -- target/wasm32-unknown-unknown/release/snake_game.wasm -w 4 -h 3
    

    https://user-images.githubusercontent.com/181413/179503179-622346f6-350b-41b6-8684-9a7751f8dc25.mp4

    opened by sile 0
Releases(0.6.0)
  • 0.6.0(Dec 24, 2022)

  • 0.5.0(Dec 19, 2022)

    core

    • [CHANGE] Use orfail crate for error handling

    game_std

    • [UPDATE] Support to load grayscale PNG files
    • [CHANGE] Change feature name from ogg to audio

    windows_system

    • [UPDATE] Use the icon for exe file as the window icon
    • [UPDATE] Expose Window struct
    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(Oct 22, 2022)

    core

    • [UPDATE] Add PixelFormat::Bgr24 for Windows
    • [CHANGE] Remove PixelFormat::{Rgb16Be,Rgb16Le}
    • [FIX] Fix video frame data size calculation bug

    game_std

    • [UPDATE] Add wasm and ogg features
    • [FIX] Fix a bug discarding loaded state data
    • [FIX] Fix zero division bug during alpha blending where both src and dst alphas are zero

    android_system

    • [UPDATE] Update dependencies
    • [CHANGE] Use R8G8B8 as the pixel format instead of R5G6B5

    web

    • [UPDATE] Update dev dependencies

    windows_system

    • Initial release
    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Sep 12, 2022)

    What's Changed

    • Add Game::query() and Game::command() interface by @sile in https://github.com/sile/pagurus/pull/2
    • Misc improvements

    Full Changelog: https://github.com/sile/pagurus/compare/0.2.0...0.3.0

    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(Aug 7, 2022)

    What's Changed

    • Add TUI runtime for debugging purpose by @sile in https://github.com/sile/pagurus/pull/1
    • Add System::video_frame_spec() interface to reduce memory copies during System::video_draw() call
    • Misc updates and bug fixes

    Full Changelog: https://github.com/sile/pagurus/compare/0.1.0...0.2.0

    Source code(tar.gz)
    Source code(zip)
  • 0.1.0(Jul 14, 2022)

Owner
Takeru Ohta
Takeru Ohta
AI-powered game engine for dynamic, personalized experiences in evolving worlds. Ethical, accessible, inclusive.

ARCADIA: Advanced and Responsive Computational Architecture for Dynamic Interactive Ai: A Whitepaper By Reuven Cohen (rUv) Introduction Imagine a futu

rUv 10 Apr 18, 2023
cpa is a cli tool for ultra fast setup of Rust & Python projects

CPA: Create-Python-App cpa is a cli tool for ultra fast setup of new Python & Rust projects. It automates the creation of config files like style & li

Yuki Sawa 56 Dec 3, 2023
An ultra-fast CLI app that fixes JSON files in large codebase or folders

minosse An ultra fast CLI app that fixes json files in large codebase or folders USAGE: minosse [OPTIONS] <input-dir> FLAGS: -h, --help Prints

Antonino Bertulla 5 Oct 17, 2022
qsv: Ultra-fast CSV data-wrangling toolkit

qsv is a command line program for indexing, slicing, analyzing, splitting, enriching, validating & joining CSV files. Commands are simple, fast & composable

Joel Natividad 398 Jan 3, 2023
High-performance Javascript color gradient library powered by Rust + WebAssembly

colorgrad-js High-performance Javascript color gradient library powered by Rust + WebAssembly. No dependencies. Faster than d3-scale, chroma-js, culor

Nor Khasyatillah 168 Apr 25, 2023
TMM is a Linux native game modding tool. it allows to install and depoly mods for Linux native and wine games.

Tux Mod Manager TMM is a Linux native mod manager made with the Tauri toolkit. It can install, load, remove and deploy mods for both Linux native and

Mathiew May 119 Dec 27, 2022
A small program which makes a rofi game launcher menu possible by creating .desktop entries for games

rofi-games A small program which makes a `rofi` game launcher menu possible by creating `.desktop` entries for games Installation Manual Clone repo: g

Rolv Apneseth 20 May 4, 2023
Create tasks and save notes offline from your terminal

Create tasks and save notes offline from your terminal

null 9 Dec 18, 2022
Attempt to summarize text from `stdin`, using a large language model (locally and offline), to `stdout`

summarize-cli Attempt to summarize text from stdin, using a large language model (locally and offline), to stdout. cargo build --release target/releas

null 4 Aug 23, 2023
An egui app for prompting a local offline LLM.

An egui app for prompting a local offline LLM. Description coze is a small egui application for prompting a local offline LLM using the Huggingface ca

null 23 Mar 9, 2024