GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - pythonarcade/ferrocade: Game library with rust backend

BranchesTags
Open more actions menu

Latest commit

 

History

68 Commits
68 Commits

Folders and files

NameName
Last commit message
Last commit date
.claude/skills
.claude/skills
 
 
.github/workflows
.github/workflows
 
 
.specify
.specify
 
 
assets
assets
 
 
benches
benches
 
 
crates
crates
 
 
docs
docs
 
 
examples
examples
 
 
python/ferrocade
python/ferrocade
 
 
specs
specs
 
 
spike
spike
 
 
tests
tests
 
 
tools
tools
 
 
web
web
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
CLAUDE.md
CLAUDE.md
 
 
Cargo.lock
Cargo.lock
 
 
Cargo.toml
Cargo.toml
 
 
README.md
README.md
 
 
pyproject.toml
pyproject.toml
 
 

Repository files navigation

Ferrocade

A 2D game engine with a Python API and a Rust core, rendering through wgpu. Planned platforms: Windows, macOS, and the web.

Early development. Phase 1 (a window and a centered sprite) works on Windows. See the engine spec for the design and roadmap.

Building from source

You need Rust (stable, with the MSVC toolchain on Windows), the Visual Studio C++ Build Tools, Python 3.13+, and uv.

uv venv; .venv\Scripts\Activate.ps1
uv pip install maturin pytest
maturin develop
python examples/01_centered_ship.py

The complete build and validation steps are in specs/001-centered-ship/quickstart.md.

Repository: https://github.com/pythonarcade/ferrocade

import ferrocade as fc


class Game(fc.Window):
    def __init__(self):
        super().__init__(800, 600, "Ferrocade", filter=fc.NEAREST)
        self.sprites = fc.SpriteList()
        self.sprites.append(fc.Sprite("assets/images/ship.png", center_x=400, center_y=300))

    def on_draw(self):
        self.clear()
        self.sprites.draw()


Game().run()

Repository layout

Path Contents
docs/spec/ Engine spec: the living design document and decision log
docs/design/ In-depth subsystem designs
docs/research/ Spikes, benchmark results, engine comparisons
docs/guides/ User-facing guides (later)
crates/ferrocade/ Rust engine core
crates/ferrocade-py/ PyO3 bindings
python/ferrocade/ Python package
examples/ One example per roadmap phase
assets/ Images, sounds, fonts
tests/ Python API tests
benches/ Performance scenes
web/ Browser (WASM/Pyodide) build
tools/ Developer scripts
CLAUDE.md Instructions for AI coding assistants

About

Game library with rust backend

Resources

Readme
Activity
Custom properties

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.