Open 3D Engine Programming Guide

The engine core encompasses the source code, systems, and modules that underlie Open 3D Engine (O3DE) and its tools. All of these tools—O3DE Editor, Asset Processor, Script Canvas, and so on—work together to build an interactive 3D experience that uses modern rendering techniques and gameplay logic. Using these tools, you can take your design from an empty scene to a fully polished project that you can deploy and share. In this section, you’ll gain a deeper understanding of each part of the engine core and learn how you can expand O3DE’s toolkit.

O3DE C++ Coding Standards If you’re programming features to contibute to o3de repository , follow the coding standards used throughout O3DE’s C++ codebase.


  • C++17
  • Python 3

The O3DE source code is written in C++, with several supporting tools written in Python. We recommend that you have fundamental knowledge of either C++ or Python programming to extend O3DE.

Start here

Start by learning about the shared systems in the engine core by reading Overview of the O3DE SDK . In this topic, you’ll learn how to navigate the O3DE directory structure and become familiar with the core modules in the O3DE SDK. The core modules are the entry points to all of the functionality in O3DE.

Learning paths

Depending on the part of the engine that you want to develop, there are different learning tracks that you can follow. While each learning path may be unique to your case, the following topics can help get you started on some common development tasks:

Develop a component

Develop a Gem

Develop Atom Renderer features

Copyright © 2022 Open 3D Engine Contributors

Documentation Distributed under CC BY 4.0.
For our trademark, privacy and antitrust policies, code of conduct, and terms of use, please click the applicable link below or see

The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Policy page.