Get Started Here#
Installation#
Arcade can be installed like any other Python Package. Arcade needs support for OpenGL 3.3+. It does not run on Raspberry Pi or Wayland. If you are familiar with Python package management you can just “pip install” Arcade. For more detailed instructions see Installation Instructions.
Getting Help#
If you get stuck, you can always ask for help! See the page on How to Get Help for more information.
Starting Tutorials#
If you are already familiar with basic Python programming, follow the Simple Platformer or Real Python article. If you are just learning how to program, see the Learn Arcade book.
Arcade Skill Tree#
Basic Drawing Commands - See How to Draw with Your Computer, Drawing Primitives
ShapeElementLists - Batch together thousands of drawing commands into one using a
arcade.ShapeElementList
. See examples in Faster Drawing with ShapeElementLists.
Sprites - Almost everything in Arcade is done with the
arcade.Sprite
class.Moving player sprites
Mouse - Collect Coins - Mouse
Keyboard - Sprite Move By Keyboard
Keyboard, slightly more complex but handles multiple key presses better: Better Move By Keyboard
Keyboard with acceleration, de-acceleration: Acceleration and Friction
Keyboard, rotate and move forward/back like a space ship: Move Sprites By Angle
Game Controller - Game Controller/Joystick
Game controller buttons - Supported, but documentation needed.
Sprite collision detection
Basic detection - Learn arcade book on collisions, Collect Coins - Mouse
Understanding collision detection and spatial hashing: Collision detection performance
Sprite Hit boxes
Detail amount -
arcade.Sprite
Changing -
arcade.Sprite.hit_box
Drawing -
arcade.Sprite.draw_hit_box
Avoid placing items on walls - Randomly Place Coins, But Away From Walls And Other Coins
Sprite drag-and-drop - See the Solitaire Tutorial.
Drawing sprites in layers
Sprite animation
Change texture on sprite when hit - Change coins
Moving non-player sprites
Bouncing - Sprite Bouncing Coins
Moving towards player - Sprites That Follow The Player
Moving towards player, but with a delay - Sprites That Follow The Player 2
Space-invaders style - Slime Invaders
Can a sprite see the player? - Line of Sight
A-star pathfinding - A-Star Path Finding
Shooting
Player shoots straight up - Shoot Bullets Upwards
Enemy shoots every x frames - Have Enemies Periodically Shoot
Enemy randomly shoots x frames - Have Enemies Randomly Shoot
Player aims - Aim and Shoot Bullets
Enemy aims - Have Enemies Aim at Player
Physics Engines
SimplePhysicsEngine - Platformer tutorial Step 3 - Scene Object, Learn Arcade Book Simple Physics Engine, Example Move with Walls
PlatformerPhysicsEngine - From the platformer tutorial: Step 4 - Add User Control,
Ladders - Platformer tutorial Step 10 - Multiple Levels and Other Layers
Using the physics engine on multiple sprites - Supported, but documentation needed.
Pymunk top-down - Supported, needs docs
Pymunk physics engine for a platformer - Pymunk Platformer
View management
Minimal example of using views - Minimal Views Example
Using views to add a pause screen - Using Views for a Pause Screen
Using views to add an instruction and game over screen - Using Views for Instruction and Game Over Screens
Window management
Scrolling - Move with a Scrolling Screen - Centered
Add full screen support - Full Screen Example
Allow user to resize the window - Resizable Window
Map Creation
Programmatic creation
Procedural Generation
TMX map creation - Platformer tutorial: Step 8 - Display The Score
Layers - Platformer tutorial: Step 8 - Display The Score
Multiple Levels - Work with levels and a tiled map
Object Layer - Supported, but documentation needed.
Hit-boxes - Supported, but documentation needed.
Animated Tiles - Supported, but documentation needed.
Sound - Learn Arcade book sound chapter
Spatial sound Sound Demo
Particles - Particle Systems
GUI
Concepts - GUI Concepts
Examples - GUI Concepts
OpenGL
Read more about using OpenGL in Arcade with OpenGL Notes.
Lights - Lighting Demo
Writing shaders using “ShaderToy”
Learn how to ray-cast shadows in the Ray-casting Shadows.
Make your screen look like an 80s monitor in CRT Filter.
Study the Asteroids Example Code.
Rendering onto a sprite to create a mini-map - Mini-Map
Bloom/glow effect - Bloom-Effect Defender
Learn to do a compute shader in Compute Shader Tutorial.