arcamini is a friendly, lightweight, and multi-language runtime for developing 2D console games.
- 🎓 Easy to learn: About 30 core functions for resource management, drawing, audio, and input.
- 📦 Easy to deploy: Download a precompiled single-file runtime, add your game logic and assets, and you're ready to go.
- 🚀 No artificial limitations: arcamini is not a fantasy console with outdated specs, but a modern framework for rapid console game development.
- 👐 Open source: MIT licensed.
arcamini supports game development in JavaScript, Python, and Lua, with up-to-date language standards and a unified API.
Supports both pixel sprites and scalable vector graphics (SVG) for crisp visuals on any display.
Primarily designed for Linux-based handheld consoles, with console-style input handling. Yet games run equally well on standard PCs and any modern webbrowser.
The browser runtime is a multi-language runtime implementing the same API as arcamini, backed by WebAssembly, WebGL and Web Audio. Point a web server at the directory, add your game scripts and assets, adjust the manifest.json scripts list, and any arcamini game runs unmodified in a browser, no local installation or plugin required.
- mini games - Falling Blocks (play live, JS), Box Breaker (play live, Python), Flappy Box (play live, Python), Snake (play live, Python) - each in just about 40-60 lines of code
- Render performance test
- BALLATTAX game - play live in JS, Python, or Lua
- Functional tests - run live in JS, Python, or Lua
The arcamini-IDE is a browser-based mini IDE for writing, running, and exporting arcamini games in JavaScript, Python, or Lua — no local install required, making it a low-friction way to try arcamini or teach it in an introductory course. Write a project from scratch or fork one of the examples above, run it live against the unmodified browser runtime, and export it as a self-contained game directory ready to deploy. Try it live.
All arcamini variants support the same core APIs. Additional features:
- arcaqjs: browser-like
console.log()/.warn()/.error()for output.
MIT License - see LICENSE.md for details.