Registry / http-networking / arcade

arcade

JSON →
library3.3.3pypiunverified

Arcade is an easy-to-learn Python library for creating 2D video games, designed for both beginning programmers and those seeking a straightforward framework. It is built on top of the Pyglet multimedia library and OpenGL for modern graphics and sound. The library is actively maintained and frequently updated, with recent major versions introducing significant API changes and performance enhancements.

pip install arcade
INSTALL
IMPORT
SIG · ARCADE
A
arcade
http-networkingenv3.3.3
Install
5.4s avg
Import
Disk
144MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v4.0.0.dev5 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.920 runs
installs and imports cleanly · install 0.0s · import 0.000s · 145.1MB
glibc
py 3.103.920 runs
installs and imports cleanly · install 5.4s · import 0.000s · 146MB
144MB installed
● package 144MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

arcade
import arcade
Window
import arcade class MyGame(arcade.Window): ...
from arcade import Window class MyGame(Window): ...
While 'from arcade import Window' works, the idiomatic and often safer way for Arcade classes is to use 'arcade.Window' to avoid name collisions and maintain clarity, especially for beginners.

This quickstart code initializes an Arcade window with a specified size and title, sets a background color, and then draws a red filled circle in the `on_draw` method. The `arcade.run()` call starts the game loop.

import arcade SCREEN_WIDTH = 800 SCREEN_HEIGHT = 600 SCREEN_TITLE = "My Arcade Game" class MyGame(arcade.Window): def __init__(self): super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE) arcade.set_background_color(arcade.color.AMAZON) def on_draw(self): self.clear() arcade.draw_circle_filled(100, 100, 50, arcade.color.RED) def main(): game = MyGame() arcade.run() if __name__ == "__main__": main()
Debug
Known issues
breakingArcade 3.x introduced significant breaking changes compared to 2.x, especially in GUI, Sprite, and drawing APIs. Key changes include removal of `Sprite.draw()`, `Sprite.on_update()` (now unified `update`), and `Sprite.set_position()`. The `arcade.draw` module was restructured into submodules.
fix
Consult the official migration guide for 3.x if upgrading from 2.x. Update code to use new `Sprite` methods (e.g., `update()` for logic), new drawing primitives (e.g., `arcade.gui` for UI components), and revised camera logic.
affects: 3.0.0 and later
gotchaArcade requires OpenGL 3.3+ support, which means it will not run on environments like Raspberry Pi or Wayland without specific (and often complex) workarounds or hardware acceleration.
fix
Ensure your system's graphics drivers and hardware meet OpenGL 3.3+ requirements. For Linux, X11 is generally recommended over Wayland for best compatibility.
affects: All versions
gotchaDirect interaction with OpenGL objects (e.g., creating textures or buffers) from non-main threads can lead to errors, as OpenGL is not thread-safe. Python's garbage collector can sometimes trigger OpenGL object releases from other threads.
fix
Avoid manipulating OpenGL-related objects (like `arcade.gl.Texture`, `arcade.gl.Buffer`) from background threads. If using threads, ensure any OpenGL object creation/destruction happens on the main thread, or manage OpenGL garbage collection explicitly using `gc_mode='context_gc'` when creating `arcade.Window` and calling `ctx.gc()` manually.
affects: All versions
deprecatedThe `arcade.quick_run` function was removed as it had no useful purpose and encouraged less structured code.
fix
Replace calls to `arcade.quick_run()` with the standard `arcade.run()` function within an `arcade.Window` class structure, as shown in the quickstart example.
affects: 2.6.13 and later
Errors
Common errors & fixes
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools"
This error occurs on Windows when `pip install arcade` attempts to compile a dependency (like `pymunk`) from source, and the necessary C++ build tools are missing.
fix
Install 'Desktop development with C++' workload from Visual Studio Installer (Community edition is free), or specifically install 'Microsoft C++ Build Tools' from `https://visualstudio.microsoft.com/visual-cpp-build-tools/`.
AttributeError: module 'arcade' has no attribute 'Scene'
Users attempting to directly import `Scene` or other core classes that are meant to be inherited from `arcade.Window` or `arcade.View` (or were part of internal restructuring).
fix
Ensure you are using the correct object-oriented pattern, typically by subclassing `arcade.Window` or `arcade.View` for game states. If you're looking for a Scene *manager*, it's often built around `arcade.View` transitions.
bash: arcade: command not found
The `arcade` command (used to get environment info or run examples) or Python interpreter cannot find the installed `arcade` package. This often happens if a virtual environment is not activated or `arcade` was not installed successfully in the current environment.
fix
Activate your Python virtual environment (if using one). Re-run `pip install arcade` to ensure the library is correctly installed. Verify installation by running `python -c "import arcade; print(arcade.__version__)"`.
Window not created yet. Call `arcade.open_window()` or subclass `arcade.Window` before using this function.
An Arcade drawing or OpenGL-dependent function was called before an `arcade.Window` was created and made current. Many Arcade operations require an active OpenGL context.
fix
Ensure `arcade.open_window()` is called or an `arcade.Window` subclass is instantiated and `arcade.run()` is invoked before attempting drawing or other context-dependent operations. In object-oriented setup, ensure drawing/setup code runs within `__init__`, `setup()`, or `on_draw()` methods of your `arcade.Window` subclass.
Upgrade
Version history
3.3.3latest on PyPI · released Oct 9, 2025
Audit
Dependencies
pygletrequiredCore windowing and multimedia backend, including OpenGL bindings.
PillowrequiredUsed for image loading, manipulation, and texture processing.
pymunkrequiredOptional dependency for 2D physics engine integration.
Agent activity
51 hits · last 30 days
node
44
OpenAI (training)
1
Resources
arcade — pip install arcade · libregistry