.. _get-started-here:
Get Started Here
================
.. image:: images/treasure-map.svg
:width: 40%
:class: right-image
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 on Linux, sound support needs at least GLIB 2.29+.
For detailed instructions see :ref:`installation-instructions`.
Starting Tutorials
------------------
If you are already familiar with basic Python programming, follow the
:ref:`platformer_tutorial` or
`Real Python article `_.
If you are just learning how to program, see
the `Learn Arcade book `_.
Arcade Skill Tree
-----------------
.. image:: images/tree.svg
:width: 40%
:class: right-image
* Basic Drawing Commands -
See `How to Draw with Your Computer `_,
:ref:`drawing_primitives`
* ShapeElementLists - Batch together thousands
of drawing commands into one using a
`ShapeElementList `_. See examples in
:ref:`shape-element-lists`.
* Sprites - Almost everything in Arcade is done with sprites.
* `Basic Sprites and Collisions `_
* `Individually place sprites `_
* `Place sprites with a loop `_
* `Place sprites with a list `_
* Moving player sprites
* Mouse - :ref:`sprite_collect_coins`
* Keyboard - :ref:`sprite_move_keyboard`
* Keyboard, slightly more complex but handles multiple keypresses better:
:ref:`sprite_move_keyboard_better`
* Keyboard with acceleration, de-acceleration: :ref:`sprite_move_keyboard_accel`
* Keyboard, rotate and move forward/back like a space ship: :ref:`sprite_move_angle`
* Game Controller - :ref:`sprite_move_joystick`
* Game controller buttons - *Supported, but documentation needed.*
* Sprite collision detection
* Basic detection -
`Learn arcade book on collisions `_,
:ref:`sprite_collect_coins`
* Understanding collision detection and spatial hashing
* Sprite Hit boxes
* Changing - *Supported, but documentation needed.*
* Drawing - *Supported, but documentation needed.*
* Avoid placing items on walls - :ref:`sprite_no_coins_on_walls`
* Sprite drag-and-drop - *Supported, but documentation needed.*
* Drawing sprites in layers
* Sprite animation
* Change texture on sprite when hit - :ref:`sprite_change_coins`
* Moving non-player sprites
* Bouncing - :ref:`sprite_bouncing_coins`
* Moving towards player - :ref:`sprite_follow_simple`
* Moving towards player, but with a delay - :ref:`sprite_follow_simple_2`
* Space-invaders style - :ref:`slime_invaders`
* Can a sprite see the player? - :ref:`line_of_sight`
* A-star pathfinding - :ref:`astar_pathfinding`
* Shooting
* Player shoots straight up - :ref:`sprite_bullets`
* Enemy shoots every *x* frames - :ref:`sprite_bullets_periodic`
* Enemy randomly shoots *x* frames - :ref:`sprite_bullets_random`
* Player aims - :ref:`sprite_bullets_aimed`
* Enemy aims - :ref:`sprite_bullets_enemy_aims`
* Multi-hit - *Supported, but documentation needed.*
* Physics Engines
* SimplePhysicsEngine - Platformer tutorial :ref:`platformer_part_three`,
Learn Arcade Book `Simple Physics Engine `_,
Example :ref:`sprite_move_walls`
* PlatformerPhysicsEngine - From the platformer tutorial: :ref:`platformer_part_four`,
* :ref:`sprite_moving_platforms`
* Ladders - Platformer tutorial :ref:`platformer_part_ten`
* Using the physics engine on multiple sprites - *Supported, but documentation needed.*
* Pymunk top-down - *Supported, needs docs*
* Pymunk physics engine for a platformer - :ref:`pymunk_platformer_tutorial`
* Pymunk shooting - *Support under development.*
* View management
* Minimal example of using views - :ref:`view_screens_minimal`
* Using views to add a pause screen - :ref:`view_pause_screen`
* Using views to add an instruction and game over screen - :ref:`view_instructions_and_game_over`
* Window management
* Scrolling - :ref:`sprite_move_scrolling`
* Add full screen support - :ref:`full_screen_example`
* Allow user to resize the window - :ref:`resizable_window`
* Map Creation
* Programmatic creation
* `Individually place sprites `_
* `Place sprites with a loop `_
* `Place sprites with a list `_
* Procedural Generation
* :ref:`depth_first_maze`
* :ref:`recursive_maze`
* :ref:`procedural_caves_bsp`
* :ref:`procedural_caves_cellular`
* TMX map creation - Platformer tutorial: :ref:`platformer_part_eight`
* Layers - Platformer tutorial: :ref:`platformer_part_eight`
* Multiple Levels - :ref:`sprite_tiled_map_with_levels`
* Object Layer - *Supported, but documentation needed.*
* Hit-boxes - *Supported, but documentation needed.*
* Animated Tiles - *Supported, but documentation needed.*
* Sound - `Learn Arcade book sound chapter `_
* :ref:`background_music`
* Spatial sound :ref:`sound_demo`
* Particles - :ref:`particle_systems`
* GUI
* Buttons
* Text boxes
* OpenGL Frame buffers
* Lights - :ref:`light_demo`
* Wrap-around - *Supported, but documentation needed.*
* Mini-map - :ref:`mini_map_defender`
* Bloom/glow effect - :ref:`bloom_defender`
* Writing your own shader - *Supported, but documentation needed.*
* :ref:`Logging`