o3de
Open 3D Engine (O3DE) is an Apache 2.0-licensed multi-platform 3D engine that enables developers and content creators to build AAA games, cinema-quality 3D worlds, and high-fidelity simulations without any fees or commercial obligations.
Top Related Projects
Quick Overview
O3DE (Open 3D Engine) is an open-source, multi-platform 3D engine developed by the Linux Foundation with support from Amazon Web Services and other partners. It provides a modular and extensible framework for creating games, simulations, and other 3D applications with advanced graphics, physics, and networking capabilities.
Pros
- Open-source and royalty-free, allowing for full customization and community-driven development
- Powerful rendering capabilities, including physically-based rendering and advanced lighting techniques
- Modular architecture that enables easy extension and customization of engine components
- Cross-platform support for Windows, Linux, and macOS, with mobile and console support in development
Cons
- Relatively new project, still in active development with potential stability issues
- Steeper learning curve compared to some other game engines due to its complexity and extensive feature set
- Limited documentation and learning resources compared to more established engines
- Smaller community and ecosystem compared to popular alternatives like Unity or Unreal Engine
Getting Started
To get started with O3DE:
- Visit the official website: https://o3de.org/
- Download and install the O3DE installer for your operating system
- Run the installer and follow the on-screen instructions
- Launch the O3DE Project Manager to create a new project or open an existing one
- Explore the documentation and tutorials available on the official website to learn about the engine's features and workflows
Note: As O3DE is a complex game engine and not a code library, specific code examples are not provided. The engine uses a combination of C++ and Lua for scripting, along with visual tools for asset creation and scene composition.
Competitor Comparisons
Godot Engine – Multi-platform 2D and 3D game engine
Pros of Godot
- Lightweight and efficient, with a smaller codebase and faster compilation times
- More mature project with a larger community and ecosystem
- Easier learning curve, especially for beginners and indie developers
Cons of Godot
- Less suitable for large-scale, AAA-quality projects
- Limited built-in support for advanced graphics features and high-end rendering
Code Comparison
Godot (GDScript):
extends Sprite
func _ready():
position = Vector2(100, 100)
scale = Vector2(2, 2)
O3DE (Lua):
function OnActivate(self)
local transform = TransformBus.Event.GetWorldTM(self.entityId)
transform:SetTranslation(Vector3(100.0, 100.0, 0.0))
transform:SetScale(Vector3(2.0, 2.0, 1.0))
TransformBus.Event.SetWorldTM(self.entityId, transform)
end
Godot's code is more concise and easier to read, while O3DE's code offers more granular control over entity transformations.
Cocos2d-x is a suite of open-source, cross-platform, game-development tools utilized by millions of developers across the globe. Its core has evolved to serve as the foundation for Cocos Creator 1.x & 2.x.
Pros of cocos2d-x
- Lightweight and efficient, suitable for mobile game development
- Extensive documentation and large community support
- Cross-platform compatibility with a single codebase
Cons of cocos2d-x
- Limited 3D capabilities compared to O3DE
- Less advanced graphics features and visual fidelity
- Smaller ecosystem of tools and plugins
Code Comparison
O3DE (C++):
#include <AzCore/Component/Entity.h>
#include <AzCore/Component/ComponentApplication.h>
void CreateEntity()
{
AZ::Entity* entity = aznew AZ::Entity();
entity->CreateComponent<MyCustomComponent>();
}
cocos2d-x (C++):
#include "cocos2d.h"
USING_NS_CC;
void CreateSprite()
{
auto sprite = Sprite::create("mysprite.png");
this->addChild(sprite);
}
Both engines use C++, but O3DE's entity-component system offers more flexibility for complex game architectures, while cocos2d-x provides simpler sprite-based game development.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
O3DE (Open 3D Engine)
O3DE (Open 3D Engine) is an open-source, real-time, multi-platform 3D engine that enables developers and content creators to build AAA games, cinema-quality 3D worlds, and high-fidelity simulations without any fees or commercial obligations.
Contribute
For information about contributing to Open 3D Engine, visit https://o3de.org/docs/contributing/.
Roadmap
For information about upcoming work and features, please visit https://o3de.org/roadmap. Progress against the roadmap is tracked here.
Download and Install
This repository uses Git LFS for storing large binary files.
Verify you have Git LFS installed by running the following command to print the version number.
git lfs --version
If Git LFS is not installed, download and run the installer from: https://git-lfs.github.com/.
Install Git LFS hooks
git lfs install
Clone the repository
git clone https://github.com/o3de/o3de.git
Building the Engine
Build requirements and redistributables
For the latest details and system requirements, refer to System Requirements in the documentation.
Windows
- Visual Studio 2019 16.9.2 minimum (All editions supported, including Community):Â https://visualstudio.microsoft.com/downloads/
- Check System Requirements for other supported versions.
- Install the following workloads:
- Game Development with C++
- MSVC v142 - VS 2019 C++ x64/x86
- C++ 2019 redistributable update
- CMake 3.22.0 minimum:Â https://cmake.org/download/#latest (Release Candidate versions are not supported)
Optional
- Wwise audio SDK
- For the latest version requirements and setup instructions, refer to the Wwise Audio Engine Gem reference in the documentation.
Quick start engine setup
To set up a project-centric source engine, complete the following steps. For other build options, refer to Setting up O3DE from GitHub in the documentation.
-
Create a writable folder to cache downloadable third-party packages. You can also use this to store other redistributable SDKs.
-
Install the following redistributables:
- Visual Studio and VC++ redistributable can be installed to any location.
- CMake can be installed to any location, as long as it's available in the system path.
-
Configure the engine source into a solution using this command line, replacing
<your build path>
,<your source path>
, and<3rdParty package path>
with the paths you've created:cmake -B <your build path> -S <your source path> -G "Visual Studio 16" -DLY_3RDPARTY_PATH=<3rdParty package path>
Example:
cmake -B C:\o3de\build\windows -S C:\o3de -G "Visual Studio 16" -DLY_3RDPARTY_PATH=C:\o3de-packages
Note: Do not use trailing slashes for the <3rdParty package path>.
-
Alternatively, you can do this through the CMake GUI:
- Start
cmake-gui.exe
. - Select the local path of the repo under "Where is the source code".
- Select a path where to build binaries under "Where to build the binaries".
- Click Add Entry and add a cache entry for the <3rdParty package path> folder you created, using the following values:
- Name: LY_3RDPARTY_PATH
- Type: STRING
- Value:
<3rdParty package path>
- Click Configure.
- Wait for the key values to populate. Update or add any additional fields that are needed for your project.
- Click Generate.
- Start
-
Register the engine with this command:
scripts\o3de.bat register --this-engine
-
The configuration of the solution is complete. You are now ready to create a project and build the engine.
For more details on the steps above, refer to Setting up O3DE from GitHub in the documentation.
Setting up new projects and building the engine
-
From the O3DE repo folder, set up a new project using the
o3de create-project
command.scripts\o3de.bat create-project --project-path <your new project path>
-
Configure a solution for your project.
cmake -B <your project build path> -S <your new project source path> -G "Visual Studio 16"
Example:
cmake -B C:\my-project\build\windows -S C:\my-project -G "Visual Studio 16"
Note: Do not use trailing slashes for the <3rdParty cache path>.
-
Build the project, Asset Processor, and Editor to binaries by running this command inside your project:
cmake --build <your project build path> --target <New Project Name>.GameLauncher Editor --config profile -- /m
Note: Your project name used in the build target is the same as the directory name of your project.
This will compile after some time and binaries will be available in the project build path you've specified, under bin/profile
.
For a complete tutorial on project configuration, see Creating Projects Using the Command Line Interface in the documentation.
Code Contributors
This project exists thanks to all the people who contribute. [Contribute].
License
For terms please see the LICENSE*.TXT files at the root of this distribution.
Top Related Projects
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot