Open3D Engine gem providing interaction with external simulation model without ROS, via system Inter Process Communication (IPC): video output to external model/application and motion input from external application. Work is in progress yet, see TODO & current progress (dev branch).
-
Create game project in O3DE Project manager on choose existing one.
-
Open project menu and select
Configure Gems... -
Open top right menu, choose
Add Existing Gemand find this gem repository folder. Then save changes.
-
Build project.
-
If build successful,
Openproject in O3DE Editor. -
To use
ReceiveMotionParamsComponent6.1. Choose entity you want to move.
6.2. Add
ReceiveMotionParamsComponentinAdd Componentdialog:
6.3. Build and launch
examples/minimal_app, choose IPC method (yet onlyUDP) in combobox, press start.6.4. Launch
Play Gamein O3DE Editor.(Project, entities, level, assets are not included in this repo, used copter 3D model, terrain made by tutorial1 and tutorial2)
-
To use
TranslatePictureComponentIn progress yetTODO when ready
-
To make development more automated, I recommend VS Code with Microsoft C++ Estension Pack.
-
To generate IntelliSense hints when using O3DE classes, add path to O3DE SDK to extension paths in
.vscode\c_cpp_properties.jsonc_cpp_properties.json code sample
{ "configurations": [ { ... "includePath": [ ..., "<path>/<to>/<your>/O3DE/23.10.3/Code/**" // added this in VS C++ Extension to scan O3DE headers and generate IntelliSense hints ], } ], }or do the same in VS Code C++ Extension dialog:
-
To build project with gems and components directly from IDE, create
.vscode/tasks.jsonfile, add two tasks based on lines from your O3DE Project Editor Cmake log and make them run inVisual Studio Developer Command Prompt, like in example below:tasks.json code sample
{ "version": "2.0.0", "windows": { "options": { "shell": { // run all tasks below in Visual Studio Developer Command Prompt !!! "executable": "cmd.exe", "args": [ "/C", "\"C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/Tools/VsDevCmd.bat\"", "&&" ] } } }, "tasks": [ { // Cmake configure task "type": "shell", "label": "O3DE Project configure", "command": "cmake", "detail": "CMake configure task, copy of O3DE Project manager command", "options": { "cwd": "<!!! your/path/to/o3de_project>/YourProjectName" }, "args": [ // made from original command line, shown in O3DE Project Manager Cmake Log "-B", "<!!! your/path/to/o3de_project>/YourProjectName/build/windows", "-S", "<!!! your/path/to/o3de_project>/YourProjectName", "-DLY_3RDPARTY_PATH=<!!! copy_from_your_cmake_log>" ] }, { // Cmake build task, depends on configure "type": "shell", "label": "O3DE Project build", "command": "cmake", "detail": "CMake build task, copy of O3DE Project manager command", "options": { "cwd": "<!!! your/path/to/o3de_project>/YourProjectName" }, "args": [ // made from original command line, shown in O3DE Project Manager Cmake Log "--build", "<!!! your/path/to/o3de_project>/YourProjectName/build/windows", "--config", "profile", "--target", "YourProjectName.GameLauncher", "YourProjectName.ServerLauncher", "YourProjectName.UnifiedLauncher", "Editor" ], "dependsOn": "O3DE Project configure" }, ] }
- Open 3D Engine (O3DE) Tutorials and Examples. - URL: https://www.docs.o3de.org/docs/learning-guide.
- Open 3D Engine and Atom API Reference. - URL: https://www.docs.o3de.org/docs/api.
- Open 3D Engine (O3DE) User Guide. Components. - URL: https://www.docs.o3de.org/docs/user-guide/components.
- Open 3D Engine (O3DE) User Guide. Gems in Open 3D Engine. - URL: https://www.docs.o3de.org/docs/user-guide/gems.
- Your First Network Component. - URL: https://docs.o3de.org/docs/learning-guide/tutorials/multiplayer/first-multiplayer-component, https://github.com/SelfishOlex/O3DEBookCode2111.
- Olex Lozitskiy. Game Programming with O3DE. - URL: https://o3debook.com.
API documentation yet is very poor and formal. For this reason it's often required to look into the source code:
- O3DE. - URL: https://github.com/o3de/o3de/tree/development.
-
ReceiveMotionParamscomponent + example external app, UDP. -
ReceiveMotionParamscomponent + example external app, shared memory. -
TranslatePicturecomponent: render viewport + display in external example app via UDP. -
TranslatePicturecomponent: render viewport + display in external example app via shared memory. - Add Editor GUI options to components.
- 80% Documentation
- Release: reliability, usability, optimization.


