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.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Go to file
Danilo Aimini bb8971a3ad
LYN-5288 | Clicking on a Prefab in the viewport should select the entire Prefab and not an individual Entity (#4462)
* Setup work for the ContainerEntity SystemComponent and Interface.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Introduce Container Entity Notification Bus

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Introduce a proxy model to control open/closed state of entity containers. Register prefab containers as entity containers. Profit.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Add open state to OnContainerEntityStatusChanged notification + improvements to comments.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Fix to notification trigger to include new arguments.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Fix issue where the Level container would not be expanded correctly. The Level container is now no longer a container entity (since we don't need to be able to close it).

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Revert the addition of an extra proxy layer (which was causing issues) and just move the container logic to the existing filter.
Fix bug in the dataChanged signal.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Fix column count in dataChanged signal to correctly update all column and fix visual glitches.
Limit container registration to the prefab WIP flag so that the changes can be submitted with an opt-in mechanism.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Add doubleclick behavior on Outliner items - enters focus mode when double clicking on prefab containers.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* override sourceModel() to store pointer to avoid dynamic casting at every filterAcceptsRow call.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Minor comment fixes and nits

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Move container selection logic to a helper function in the ContainerEntityInterface to simplify reusing it in the near future.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Support lazy initialization for tests (since we do not load a level, the lazy initialization in OnEntityStreamLoadSuccess does not trigger)

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
4 years ago
.github/ISSUE_TEMPLATE Merge pull request #3691 from aws-lumberyard-dev/nbftemplate 5 years ago
Assets Archive Component - Rewrite and additional work on Archive and Asset Bundler (#4332) 4 years ago
AutomatedTesting Hair - Adding the Hair Gem to the automated testing (#4498) 4 years ago
Code LYN-5288 | Clicking on a Prefab in the viewport should select the entire Prefab and not an individual Entity (#4462) 4 years ago
Gems Hair - Adding the Hair Gem to the automated testing (#4498) 4 years ago
Registry fixes some install paths issues in monolithic release (#4422) 4 years ago
Templates Added the "external_subdirectories" array object to the Project Templates (#4460) 4 years ago
Tools Archive Component - Rewrite and additional work on Archive and Asset Bundler (#4332) 4 years ago
cmake Swapped the order in which the engine.pak is searched (#4455) 4 years ago
python [Mac] Generate O3DE SDK app bundle that can be notarized and distributed (#4150) 4 years ago
scripts LYN-6882 release builds are executing code in asserts (#4305) 4 years ago
.clang-format Updates to kd-tree ray intersection - ATOM-15673 (#1026) 5 years ago
.editorconfig Initial commit 5 years ago
.gitattributes Merge branch 'main' into cpack_installer 5 years ago
.gitignore adding ignore rule in AP for install folder and making exclusion rule in gitignore to match the one of build 5 years ago
.lfsconfig Update .lfsconfig instructions 5 years ago
CMakeLists.txt [Mac] Generate O3DE SDK app bundle that can be notarized and distributed (#4150) 4 years ago
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 5 years ago
CONTRIBUTING.md Updated CONTRIBUTING.md 5 years ago
Doxyfile_ScriptBinds Initial commit 5 years ago
LICENSE.txt o3de development - update licenses (#1665) 5 years ago
LICENSE_APACHE2.TXT o3de development - update licenses (#1665) 5 years ago
LICENSE_MIT.TXT o3de development - update licenses (#1665) 5 years ago
README.md Clarify CMake GUI step 5 years ago
SerializeContextAnalysis.bat Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
SliceBuilderSettings.json Initial commit 5 years ago
aztest_bootstrap.json Initial commit 5 years ago
ctest_pytest.ini Add AWSI automation tests to a new test suite and pipe (#3913) 5 years ago
editor.cfg some replacements and fixes that were referring Sandbox/Editor 5 years ago
engine.json Initial stub terrain gem (#3368) 5 years ago
system_android_android.cfg Renamed osx_gl to mac and es3 to android for cache folders (#949) 5 years ago
system_ios_ios.cfg Initial commit 5 years ago
system_linux_pc.cfg Initial commit 5 years ago
system_mac_mac.cfg Renamed osx_gl to mac and es3 to android for cache folders (#949) 5 years ago
system_windows_pc.cfg Initial commit 5 years ago

README.md

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/.

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

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.

  1. Create a writable folder to cache downloadable third-party packages. You can also use this to store other redistributable SDKs.

  2. 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.
  3. 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_vs2019 -S C:\o3de -G "Visual Studio 16" -DLY_3RDPARTY_PATH=C:\o3de-packages
    

    Note: Do not use trailing slashes for the <3rdParty package path>.

  4. Alternatively, you can do this through the CMake GUI:

    1. Start cmake-gui.exe.
    2. Select the local path of the repo under "Where is the source code".
    3. Select a path where to build binaries under "Where to build the binaries".
    4. Click Add Entry and add a cache entry for the <3rdParty package path> folder you created, using the following values:
      1. Name: LY_3RDPARTY_PATH
      2. Type: STRING
      3. Value: <3rdParty package path>
    5. Click Configure.
    6. Wait for the key values to populate. Update or add any additional fields that are needed for your project.
    7. Click Generate.
  5. Register the engine with this command:

    scripts\o3de.bat register --this-engine
    
  6. 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

  1. 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>
    
  2. Configure a solution for your project.

    cmake -B <your project build path> -S <your new project source path> -G "Visual Studio 16" -DLY_3RDPARTY_PATH=<3rdParty cache path>
    

    Example:

    cmake -B C:\my-project\build\windows_vs2019 -S C:\my-project -G "Visual Studio 16" -DLY_3RDPARTY_PATH=C:\o3de-packages
    

    Note: Do not use trailing slashes for the <3rdParty cache path>.

  3. 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.

License

For terms please see the LICENSE*.TXT files at the root of this distribution.