Open 3D Engine (O3DE) Tutorials

Learn the features, tools, and processes of Open 3D Engine (O3DE) with the help of step-by-step, guided tutorials.

Looking to get started?

Do you have O3DE installed and you aren’t sure where to start? How about creating the classic “Pong”? Follow this first project tutorial series and learn the basics of O3DE in the process.

Create your first O3DE game: PongStart from a new O3DE project and build your first game: Pong! What’s “Pong”? Two paddles square off, in a ball-based battle to land the highest score. This tutorial series will introduce you to basic game UI development, scripting, and controls in O3DE.


Data Driven Root MotionLearn about data driven root motion and how to apply it to actors.

Artificial Intelligence

2D Navigation with Kythera AICreate an artificial intelligence (AI) agent that performs ground-based navigation and follows a visually scripted behavior tree. This tutorial uses the broad toolset that the Kythera AI Gem provides.


Customize Mesh Asset ProcessingUse Scene Settings to process mesh assets for O3DE.
Customize Actor Asset ProcessingUse Scene Settings to process actor assets for O3DE.
Process PhysX Collider AssetsUse Scene Settings to process PhysX collider assets for O3DE.

Entities and prefabs

Entity and Prefab BasicsLearn the basics of creating and modifying entities and prefabs.
Override a PrefabLearn how to make changes to a single prefab instance.
Spawn and Despawn a PrefabUse Script Canvas to create a script that spawns and despawns a prefab.


Create a LevelCreate a level for O3DE.
Create Terrain from ImagesLearn to create terrain using images.

Extend O3DE Editor

Extend O3DE Editor by creating a custom tool Gem. A tool is a dockable widget or dialog window that implements functionality in the Editor. You can create custom tools in C++ or Python.

Create a Custom Tool Gem in C++Extend the Editor by creating a custom tool Gem that’s written in C++. Learn how to use the CppToolGem template, and practice C++ development with Qt , the O3DE Tools UI API, and other O3DE APIs.
Create a Custom Tool Gem in PythonExtend the Editor by creating a custom tool Gem that’s written in Python. Learn how to use the PythonToolGem template, and practice Python development with Qt , the O3DE Tools UI API, and other O3DE APIs.

Input and movement

Learn how to use the keyboard, mouse, and other input devices to move entities.

Grid-based MovementLearn how to implement grid-based movement from input device events.


Your First Network ComponentCreate multiplayer components with C++ in this introduction to network components.


Create physics simulations in O3DE with NVIDIA’s PhysX system. The tutorials in this section demonstrate how to use PhysX to add dynamic physics simulations in your projects.

Create Wind ForcesSimulate a wind force with a PhysX Force Region and NVIDIA Cloth.


PostFX Shape Weight ModifierUse a PostFX Shape Weight Modifier component to modify exposure control in O3DE. This example demonstrates how to modify post-processing effects (PostFX) at runtime.

Remote Repositories

Your First Remote RepositoryLearn how to create an O3DE remote repository to share your projects, gems, and templates with the world.


Create a StandardPBR materialThis tutorial walks you through creating your first StandardPBR material using the Material Editor.
Material Types and ShadersA beginner-level tutorial introducing material types and shaders in Atom. Learn how to create a custom material type with a simple AZSL shader.
Vertex Deformation for Vegetation Bending TutorialUse the Atom Renderer to create a custom material type with custom vertex shaders for vegetation bending.