Get Started Here#
Installation#
Arcade can be installed like any other Python Package. Arcade needs support for OpenGL 3.3+. 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 as a quick way to get up and running. 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 - Move By Mouse
Keyboard - 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 By Turning
Game Controller - Game Controller
Game controller buttons - Supported, but documentation needed.
Sprite collision detection
Basic detection - Learn arcade book on collisions, Move By 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.