Przeglądaj źródła

Setup repository content

puvvadar 4 lat temu
rodzic
commit
a9c9a11fc4
100 zmienionych plików z 2133 dodań i 0 usunięć
  1. 25 0
      AssetProcessorGamePlatformConfig.setreg
  2. 46 0
      CMakeLists.txt
  3. 18 0
      Config/AtomImageBuilder/Test_Linear_to_Auto.preset
  4. 18 0
      Config/AtomImageBuilder/Test_Linear_to_Linear.preset
  5. 18 0
      Config/AtomImageBuilder/Test_Linear_to_sRGB.preset
  6. 18 0
      Config/AtomImageBuilder/Test_sRGB_to_Auto.preset
  7. 18 0
      Config/AtomImageBuilder/Test_sRGB_to_Linear.preset
  8. 18 0
      Config/AtomImageBuilder/Test_sRGB_to_sRGB.preset
  9. 11 0
      Config/shader_global_build_options.json
  10. 56 0
      EngineFinder.cmake
  11. 12 0
      Gem/CMakeLists.txt
  12. 114 0
      Gem/Code/CMakeLists.txt
  13. 13 0
      Gem/Code/Platform/Android/multiplayersample_android_files.cmake
  14. 13 0
      Gem/Code/Platform/Linux/multiplayersample_linux_files.cmake
  15. 14 0
      Gem/Code/Platform/Mac/multiplayersample_mac_files.cmake
  16. 13 0
      Gem/Code/Platform/Windows/multiplayersample_windows_files.cmake
  17. 15 0
      Gem/Code/Platform/Windows/runtime_dependencies.cmake
  18. 18 0
      Gem/Code/Platform/Windows/tool_dependencies.cmake
  19. 14 0
      Gem/Code/Platform/iOS/multiplayer_ios_files.cmake
  20. 9 0
      Gem/Code/Source/AutoGen/MultiplayerSample.AutoPackets.xml
  21. 51 0
      Gem/Code/Source/MultiplayerSampleModule.cpp
  22. 125 0
      Gem/Code/Source/MultiplayerSampleSystemComponent.cpp
  23. 70 0
      Gem/Code/Source/MultiplayerSampleSystemComponent.h
  24. 18 0
      Gem/Code/multiplayersample_autogen_files.cmake
  25. 16 0
      Gem/Code/multiplayersample_files.cmake
  26. 14 0
      Gem/Code/multiplayersample_shared_files.cmake
  27. 53 0
      Gem/Code/runtime_dependencies.cmake
  28. 65 0
      Gem/Code/tool_dependencies.cmake
  29. 3 0
      Gem/Resources/CryEngineLogoLauncher.bmp
  30. 3 0
      Gem/Resources/GameSDK.ico
  31. 116 0
      Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/Contents.json
  32. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPadAppIcon152x152.png
  33. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPadAppIcon76x76.png
  34. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPadProAppIcon167x167.png
  35. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPadSettingsIcon29x29.png
  36. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPadSettingsIcon58x58.png
  37. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPadSpotlightIcon40x40.png
  38. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPadSpotlightIcon80x80.png
  39. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPhoneAppIcon120x120.png
  40. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPhoneAppIcon180x180.png
  41. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPhoneSettingsIcon58x58.png
  42. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPhoneSettingsIcon87x87.png
  43. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPhoneSpotlightIcon120x120.png
  44. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPhoneSpotlightIcon80x80.png
  45. 6 0
      Gem/Resources/IOSLauncher/Images.xcassets/Contents.json
  46. 169 0
      Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/Contents.json
  47. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage1024x768.png
  48. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage1536x2048.png
  49. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage2048x1536.png
  50. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage768x1024.png
  51. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage640x1136.png
  52. 3 0
      Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage640x960.png
  53. 45 0
      Gem/Resources/IOSLauncher/Info.plist
  54. 68 0
      Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/Contents.json
  55. 3 0
      Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_128 _2x.png
  56. 3 0
      Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_128.png
  57. 3 0
      Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_16.png
  58. 3 0
      Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_16_2x.png
  59. 3 0
      Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_256 _2x.png
  60. 3 0
      Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_256.png
  61. 3 0
      Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_32.png
  62. 3 0
      Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_32_2x.png
  63. 3 0
      Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_512.png
  64. 3 0
      Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_512_2x.png
  65. 6 0
      Gem/Resources/MacLauncher/Images.xcassets/Contents.json
  66. 24 0
      Gem/Resources/MacLauncher/Info.plist
  67. 10 0
      Gem/gem.json
  68. 3 0
      Gem/preview.png
  69. 56 0
      Levels/SampleBase/SampleBase.prefab
  70. 12 0
      Levels/SampleBase/tags.txt
  71. 128 0
      LightingPresets/greenwich_park_02.lightingconfig.json
  72. 3 0
      LightingPresets/greenwich_park_02_4k_iblskyboxcm.exr
  73. 3 0
      Materials/Default/AM_UV_v1_1K_source.png
  74. 3 0
      Materials/Default/UVchart_1_basecolor.png
  75. 3 0
      Materials/Default/UVchart_2_basecolor.png
  76. 3 0
      Materials/Default/UVchart_3_basecolor.png
  77. 4 0
      Materials/DefaultPBR.material
  78. 11 0
      Materials/DefaultPBRTransparent.material
  79. 54 0
      Materials/UVs.azsl
  80. 3 0
      Materials/UVs.material
  81. 7 0
      Materials/UVs.materialtype
  82. 25 0
      Materials/UVs.shader
  83. 32 0
      Materials/basic_grey.material
  84. 39 0
      Materials/decal/airship_nose_number_decal.material
  85. 3 0
      Materials/decal/airship_nose_number_decal.tif
  86. 39 0
      Materials/decal/airship_symbol_decal.material
  87. 3 0
      Materials/decal/airship_symbol_decal.tif
  88. 39 0
      Materials/decal/airship_tail_01_decal.material
  89. 3 0
      Materials/decal/airship_tail_01_decal.tif
  90. 39 0
      Materials/decal/airship_tail_02_decal.material
  91. 3 0
      Materials/decal/airship_tail_02_decal.tif
  92. 39 0
      Materials/decal/am_mud_decal.material
  93. 3 0
      Materials/decal/am_mud_decal.tif
  94. 39 0
      Materials/decal/am_road_dust_decal.material
  95. 3 0
      Materials/decal/am_road_dust_decal.tif
  96. 39 0
      Materials/decal/brushstoke_01_decal.material
  97. 3 0
      Materials/decal/brushstoke_01_decal.tif
  98. 39 0
      Materials/decal/scorch_01_decal.material
  99. 3 0
      Materials/decal/scorch_01_decal.tif
  100. 17 0
      Registry/assets_scan_folders.setreg

+ 25 - 0
AssetProcessorGamePlatformConfig.setreg

@@ -0,0 +1,25 @@
+{
+    "Amazon": {
+        "AssetProcessor": {
+            "Settings": {
+                "RC cgf": {
+                    "ignore": true
+                },
+                "RC fbx": {
+                    "ignore": true
+                },
+                "ScanFolder MultiplayerSampleData": {
+                    "watch": "@ENGINEROOT@/Gems/Atom/TestData",
+                    "recursive": 1,
+                    "order": 1000
+                },
+                "Exclude Work In Progress Folders": {
+                    "pattern": ".*\\\\/WIP\\\\/.*"
+                },
+                "Exclude art source Folders": {
+                    "pattern": ".*\\\\/.source\\\\/.*"
+                }
+            }
+        }
+    }
+}

+ 46 - 0
CMakeLists.txt

@@ -0,0 +1,46 @@
+#
+# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+# its licensors.
+#
+# For complete copyright and license terms please see the LICENSE at the root of this
+# distribution (the "License"). All use of this software is governed by the License,
+# or, if provided, by the license below or the license accompanying this file. Do not
+# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#
+
+#! Adds the --project-path argument to the VS IDE debugger command arguments
+function(add_vs_debugger_arguments)
+    # Inject the project root into the --project-path argument into the Visual Studio Debugger arguments by defaults
+    list(APPEND app_targets MultiplayerSample.GameLauncher MultiplayerSample.ServerLauncher)
+    list(APPEND app_targets AssetBuilder AssetProcessor AssetProcessorBatch Editor)
+    foreach(app_target IN LISTS app_targets)
+        if (TARGET ${app_target})
+            set_property(TARGET ${app_target} APPEND PROPERTY VS_DEBUGGER_COMMAND_ARGUMENTS "--project-path=\"${CMAKE_CURRENT_LIST_DIR}\"")
+        endif()
+    endforeach()
+endfunction()
+
+if(NOT PROJECT_NAME)
+    cmake_minimum_required(VERSION 3.19)
+    project(MultiplayerSample
+        LANGUAGES C CXX
+        VERSION 1.0.0.0
+    )
+    include(EngineFinder.cmake OPTIONAL)
+    find_package(o3de REQUIRED)
+    o3de_initialize()
+    add_vs_debugger_arguments()
+else()
+    # Add the project_name to global LY_PROJECTS_TARGET_NAME property
+    file(READ "${CMAKE_CURRENT_LIST_DIR}/project.json" project_json)
+
+    string(JSON project_target_name ERROR_VARIABLE json_error GET ${project_json} "project_name")
+    if(json_error)
+        message(FATAL_ERROR "Unable to read key 'project_name' from 'project.json'")
+    endif()
+
+    set_property(GLOBAL APPEND PROPERTY LY_PROJECTS_TARGET_NAME ${project_target_name})
+
+    add_subdirectory(Gem)
+endif()

+ 18 - 0
Config/AtomImageBuilder/Test_Linear_to_Auto.preset

@@ -0,0 +1,18 @@
+{
+    "Type": "JsonSerialization",
+    "Version": 1,
+    "ClassName": "MultiplatformPresetSettings",
+    "ClassData": {
+        "DefaultPreset": {
+            "UUID": "{9E5BBFB4-BDDA-4759-AB74-D047EE25A35D}",
+            "Name": "Test_Linear_to_Auto",
+            "SourceColor": "Linear",
+            "DestColor": "Auto",
+            "FileMasks": [
+                "_linear-to-auto"
+            ],
+            "PixelFormat": "R8G8B8X8",
+            "DiscardAlpha": true
+        }
+    }
+}

+ 18 - 0
Config/AtomImageBuilder/Test_Linear_to_Linear.preset

@@ -0,0 +1,18 @@
+{
+    "Type": "JsonSerialization",
+    "Version": 1,
+    "ClassName": "MultiplatformPresetSettings",
+    "ClassData": {
+        "DefaultPreset": {
+            "UUID": "{31199710-5B61-4A30-99F0-18DF724EC308}",
+            "Name": "Test_Linear_to_Linear",
+            "SourceColor": "Linear",
+            "DestColor": "Linear",
+            "FileMasks": [
+                "_linear-to-linear"
+            ],
+            "PixelFormat": "R8G8B8X8",
+            "DiscardAlpha": true
+        }
+    }
+}

+ 18 - 0
Config/AtomImageBuilder/Test_Linear_to_sRGB.preset

@@ -0,0 +1,18 @@
+{
+    "Type": "JsonSerialization",
+    "Version": 1,
+    "ClassName": "MultiplatformPresetSettings",
+    "ClassData": {
+        "DefaultPreset": {
+            "UUID": "{F0E6BE7F-376E-4F1B-9244-70E01C1CABD6}",
+            "Name": "Test_Linear_to_sRGB",
+            "SourceColor": "Linear",
+            "DestColor": "sRGB",
+            "FileMasks": [
+                "_linear-to-srgb"
+            ],
+            "PixelFormat": "R8G8B8X8",
+            "DiscardAlpha": true
+        }
+    }
+}

+ 18 - 0
Config/AtomImageBuilder/Test_sRGB_to_Auto.preset

@@ -0,0 +1,18 @@
+{
+    "Type": "JsonSerialization",
+    "Version": 1,
+    "ClassName": "MultiplatformPresetSettings",
+    "ClassData": {
+        "DefaultPreset": {
+            "UUID": "{EE397A40-4430-437F-B0EF-9EC8B6E35176}",
+            "Name": "Test_sRGB_to_Auto",
+            "SourceColor": "sRGB",
+            "DestColor": "Auto",
+            "FileMasks": [
+                "_srgb-to-auto"
+            ],
+            "PixelFormat": "R8G8B8X8",
+            "DiscardAlpha": true
+        }
+    }
+}

+ 18 - 0
Config/AtomImageBuilder/Test_sRGB_to_Linear.preset

@@ -0,0 +1,18 @@
+{
+    "Type": "JsonSerialization",
+    "Version": 1,
+    "ClassName": "MultiplatformPresetSettings",
+    "ClassData": {
+        "DefaultPreset": {
+            "UUID": "{2865D7A5-B75D-4D9C-9591-47BD2FF93377}",
+            "Name": "Test_sRGB_to_Linear",
+            "SourceColor": "sRGB",
+            "DestColor": "Linear",
+            "FileMasks": [
+                "_srgb-to-linear"
+            ],
+            "PixelFormat": "R8G8B8X8",
+            "DiscardAlpha": true
+        }
+    }
+}

+ 18 - 0
Config/AtomImageBuilder/Test_sRGB_to_sRGB.preset

@@ -0,0 +1,18 @@
+{
+    "Type": "JsonSerialization",
+    "Version": 1,
+    "ClassName": "MultiplatformPresetSettings",
+    "ClassData": {
+        "DefaultPreset": {
+            "UUID": "{9FBA54D5-EF6F-4728-AF92-B0176B8308C5}",
+            "Name": "Test_sRGB_to_sRGB",
+            "SourceColor": "sRGB",
+            "DestColor": "sRGB",
+            "FileMasks": [
+                "_srgb-to-srgb"
+            ],
+            "PixelFormat": "R8G8B8X8",
+            "DiscardAlpha": true
+        }
+    }
+}

+ 11 - 0
Config/shader_global_build_options.json

@@ -0,0 +1,11 @@
+{
+    "Type": "JsonSerialization",
+    "Version": 1,
+    "ClassName": "GlobalBuildOptions",
+    "ClassData": {
+        "ShaderCompilerArguments" : {
+            "DefaultMatrixOrder" : "Row",
+            "AzslcAdditionalFreeArguments" : "--strip-unused-srgs"
+        }
+    }
+}

+ 56 - 0
EngineFinder.cmake

@@ -0,0 +1,56 @@
+# {BEGIN_LICENSE}
+#
+# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+# its licensors.
+#
+# For complete copyright and license terms please see the LICENSE at the root of this
+# distribution (the "License"). All use of this software is governed by the License,
+# or, if provided, by the license below or the license accompanying this file. Do not
+# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#
+# {END_LICENSE}
+
+# This file is copied during engine registration. Edits to this file will be lost next
+# time a registration happens.
+include_guard()
+
+# Read the engine name from the project_json file
+file(READ ${CMAKE_CURRENT_LIST_DIR}/project.json project_json)
+string(JSON LY_ENGINE_NAME_TO_USE ERROR_VARIABLE json_error GET ${project_json} engine)
+if(json_error)
+    message(FATAL_ERROR "Unable to read key 'engine' from 'project.json', error: ${json_error}")
+endif()
+
+# Read the list of paths from ~.o3de/o3de_manifest.json
+file(TO_CMAKE_PATH "$ENV{USERPROFILE}" home_directory) # Windows
+if((NOT home_directory) OR (NOT EXISTS ${home_directory}))
+    file(TO_CMAKE_PATH "$ENV{HOME}" home_directory)# Unix
+endif()
+
+if (NOT home_directory)
+    message(FATAL_ERROR "Cannot find user home directory, the o3de manifest cannot be found")
+endif()
+# Set manifest path to path in the user home directory
+set(manifest_path ${home_directory}/.o3de/o3de_manifest.json)
+
+if(EXISTS ${manifest_path})
+    file(READ ${manifest_path} manifest_json)
+    string(JSON engines_count ERROR_VARIABLE json_error LENGTH ${manifest_json} engines)
+    if(json_error)
+        message(FATAL_ERROR "Unable to read key 'engines' from '${manifest_path}', error: ${json_error}")
+    endif()
+    math(EXPR engines_count "${engines_count}-1")
+    foreach(engine_path_index RANGE ${engines_count})
+        string(JSON engine_path ERROR_VARIABLE json_error GET ${manifest_json} engines ${engine_path_index})
+        if(${json_error})
+            message(FATAL_ERROR "Unable to read engines[${engine_path_index}] '${manifest_path}', error: ${json_error}")
+        endif()
+        list(APPEND CMAKE_MODULE_PATH "${engine_path}/cmake")
+    endforeach()
+endif()
+
+
+
+
+

+ 12 - 0
Gem/CMakeLists.txt

@@ -0,0 +1,12 @@
+#
+# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+# its licensors.
+#
+# For complete copyright and license terms please see the LICENSE at the root of this
+# distribution (the "License"). All use of this software is governed by the License,
+# or, if provided, by the license below or the license accompanying this file. Do not
+# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#
+
+add_subdirectory(Code)

+ 114 - 0
Gem/Code/CMakeLists.txt

@@ -0,0 +1,114 @@
+#
+# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+# its licensors.
+#
+# For complete copyright and license terms please see the LICENSE at the root of this
+# distribution (the "License"). All use of this software is governed by the License,
+# or, if provided, by the license below or the license accompanying this file. Do not
+# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#
+
+ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
+
+ly_add_target(
+    NAME MultiplayerSample.Static STATIC
+    NAMESPACE Gem
+    FILES_CMAKE
+        multiplayersample_files.cmake
+        multiplayersample_autogen_files.cmake
+        ${pal_dir}/multiplayersample_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
+    INCLUDE_DIRECTORIES
+        PRIVATE
+            Source
+            AZ::AzNetworking
+            .
+        PUBLIC
+            Include
+    BUILD_DEPENDENCIES
+        PUBLIC
+            AZ::AzGameFramework
+            AZ::AzNetworking
+        PRIVATE
+            Gem::LmbrCentral.Static
+    AUTOGEN_RULES
+        *.AutoPackets.xml,AutoPackets_Header.jinja,$path/$fileprefix.AutoPackets.h
+        *.AutoPackets.xml,AutoPackets_Inline.jinja,$path/$fileprefix.AutoPackets.inl
+        *.AutoPackets.xml,AutoPackets_Source.jinja,$path/$fileprefix.AutoPackets.cpp
+        *.AutoPackets.xml,AutoPacketDispatcher_Header.jinja,$path/$fileprefix.AutoPacketDispatcher.h
+        *.AutoPackets.xml,AutoPacketDispatcher_Inline.jinja,$path/$fileprefix.AutoPacketDispatcher.inl
+)
+
+ly_add_target(
+    NAME MultiplayerSample ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
+    NAMESPACE Gem
+    OUTPUT_NAME Gem.MultiplayerSample.8d7f210742af4b8c8813d593f4c46cf2.v0.1.0
+    FILES_CMAKE
+        multiplayersample_shared_files.cmake
+        ../../multiplayersample_asset_files.cmake
+    INCLUDE_DIRECTORIES
+        PRIVATE
+            Source
+            .
+    BUILD_DEPENDENCIES
+        PRIVATE
+	    Gem::Atom_AtomBridge.Static
+            Gem::MultiplayerSample.Static
+            Gem::LmbrCentral.Static
+)
+
+################################################################################
+# Gem dependencies
+################################################################################
+ly_add_project_dependencies(
+    PROJECT_NAME
+        MultiplayerSample
+    TARGETS 
+        MultiplayerSample.GameLauncher
+    DEPENDENCIES_FILES 
+        runtime_dependencies.cmake
+        ${pal_dir}/runtime_dependencies.cmake
+)
+
+if(PAL_TRAIT_BUILD_HOST_TOOLS)
+    ly_add_project_dependencies(
+        PROJECT_NAME
+            MultiplayerSample
+        TARGETS
+            AssetBuilder
+            AssetProcessor
+            AssetProcessorBatch
+            Editor
+        DEPENDENCIES_FILES
+            tool_dependencies.cmake
+            ${pal_dir}/tool_dependencies.cmake
+    )
+endif()
+
+if(PAL_TRAIT_BUILD_SERVER_SUPPORTED)
+    ly_add_target(
+        NAME MultiplayerSample.Server ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
+        NAMESPACE Gem
+        OUTPUT_NAME Gem.MultiplayerSample.Server.8d7f210742af4b8c8813d593f4c46cf2.v0.1.0
+        FILES_CMAKE
+            multiplayersample_shared_files.cmake
+        INCLUDE_DIRECTORIES
+            PRIVATE
+                Source
+                .
+        BUILD_DEPENDENCIES
+            PRIVATE
+                Gem::MultiplayerSample.Static
+    )
+
+    ly_add_project_dependencies(
+        PROJECT_NAME
+            MultiplayerSample
+        TARGETS
+            MultiplayerSample.ServerLauncher
+        DEPENDENCIES_FILES
+            runtime_dependencies.cmake
+    )
+    set_property(GLOBAL APPEND PROPERTY LY_LAUNCHER_SERVER_PROJECTS MultiplayerSample)
+
+endif()

+ 13 - 0
Gem/Code/Platform/Android/multiplayersample_android_files.cmake

@@ -0,0 +1,13 @@
+#
+# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+# its licensors.
+#
+# For complete copyright and license terms please see the LICENSE at the root of this
+# distribution (the "License"). All use of this software is governed by the License,
+# or, if provided, by the license below or the license accompanying this file. Do not
+# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#
+
+set(FILES
+)

+ 13 - 0
Gem/Code/Platform/Linux/multiplayersample_linux_files.cmake

@@ -0,0 +1,13 @@
+#
+# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+# its licensors.
+#
+# For complete copyright and license terms please see the LICENSE at the root of this
+# distribution (the "License"). All use of this software is governed by the License,
+# or, if provided, by the license below or the license accompanying this file. Do not
+# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#
+
+set(FILES
+)

+ 14 - 0
Gem/Code/Platform/Mac/multiplayersample_mac_files.cmake

@@ -0,0 +1,14 @@
+#
+# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+# its licensors.
+#
+# For complete copyright and license terms please see the LICENSE at the root of this
+# distribution (the "License"). All use of this software is governed by the License,
+# or, if provided, by the license below or the license accompanying this file. Do not
+# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#
+
+set(FILES
+    ../../../Resources/MacLauncher/Info.plist
+)

+ 13 - 0
Gem/Code/Platform/Windows/multiplayersample_windows_files.cmake

@@ -0,0 +1,13 @@
+#
+# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+# its licensors.
+#
+# For complete copyright and license terms please see the LICENSE at the root of this
+# distribution (the "License"). All use of this software is governed by the License,
+# or, if provided, by the license below or the license accompanying this file. Do not
+# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#
+
+set(FILES
+)

+ 15 - 0
Gem/Code/Platform/Windows/runtime_dependencies.cmake

@@ -0,0 +1,15 @@
+#
+# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+# its licensors.
+#
+# For complete copyright and license terms please see the LICENSE at the root of this
+# distribution (the "License"). All use of this software is governed by the License,
+# or, if provided, by the license below or the license accompanying this file. Do not
+# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#
+
+set(GEM_DEPENDENCIES
+    Gem::Atom_RHI_Vulkan.Private
+    Gem::Atom_RHI_DX12.Private
+)

+ 18 - 0
Gem/Code/Platform/Windows/tool_dependencies.cmake

@@ -0,0 +1,18 @@
+#
+# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+# its licensors.
+#
+# For complete copyright and license terms please see the LICENSE at the root of this
+# distribution (the "License"). All use of this software is governed by the License,
+# or, if provided, by the license below or the license accompanying this file. Do not
+# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#
+
+# Extracted from Editor.xml
+set(GEM_DEPENDENCIES
+    Gem::Atom_RHI_Vulkan.Private
+    Gem::Atom_RHI_Vulkan.Builders
+    Gem::Atom_RHI_DX12.Private
+    Gem::Atom_RHI_DX12.Builders
+)

+ 14 - 0
Gem/Code/Platform/iOS/multiplayer_ios_files.cmake

@@ -0,0 +1,14 @@
+#
+# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+# its licensors.
+#
+# For complete copyright and license terms please see the LICENSE at the root of this
+# distribution (the "License"). All use of this software is governed by the License,
+# or, if provided, by the license below or the license accompanying this file. Do not
+# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#
+
+set(FILES
+    ../../../Resources/IOSLauncher/Info.plist
+)

+ 9 - 0
Gem/Code/Source/AutoGen/MultiplayerSample.AutoPackets.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<PacketGroup Name="MultiplayerSamplePackets" PacketStart="CorePackets::PacketType::MAX">
+    <Include File="AzNetworking/AutoGen/CorePackets.AutoPackets.h" />
+    
+    <Packet Name="Sample" Desc="Stub packet">
+        <Member Type="uint16_t" Name="sample" Init="0" />
+    </Packet>
+</PacketGroup>

+ 51 - 0
Gem/Code/Source/MultiplayerSampleModule.cpp

@@ -0,0 +1,51 @@
+/*
+ * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+ * its licensors.
+ *
+ * For complete copyright and license terms please see the LICENSE at the root of this
+ * distribution (the "License"). All use of this software is governed by the License,
+ * or, if provided, by the license below or the license accompanying this file. Do not
+ * remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *
+ */
+
+#include <AzCore/Memory/SystemAllocator.h>
+#include <AzCore/Module/Module.h>
+
+#include "MultiplayerSampleSystemComponent.h"
+
+namespace MultiplayerSample
+{
+    class MultiplayerSampleModule
+        : public AZ::Module
+    {
+    public:
+        AZ_RTTI(MultiplayerSampleModule, "{9323FFB1-54AB-4665-889B-166CA2418C7C}", AZ::Module);
+        AZ_CLASS_ALLOCATOR(MultiplayerSampleModule, AZ::SystemAllocator, 0);
+
+        MultiplayerSampleModule()
+            : AZ::Module()
+        {
+            // Push results of [MyComponent]::CreateDescriptor() into m_descriptors here.
+            m_descriptors.insert(m_descriptors.end(), {
+                MultiplayerSampleSystemComponent::CreateDescriptor(),
+            });
+        }
+
+        /**
+         * Add required SystemComponents to the SystemEntity.
+         */
+        AZ::ComponentTypeList GetRequiredSystemComponents() const override
+        {
+            return AZ::ComponentTypeList{
+                azrtti_typeid<MultiplayerSampleSystemComponent>(),
+            };
+        }
+    };
+}
+
+// DO NOT MODIFY THIS LINE UNLESS YOU RENAME THE GEM
+// The first parameter should be GemName_GemIdLower
+// The second should be the fully qualified name of the class above
+AZ_DECLARE_MODULE_CLASS(Gem_MultiplayerSample, MultiplayerSample::MultiplayerSampleModule)

+ 125 - 0
Gem/Code/Source/MultiplayerSampleSystemComponent.cpp

@@ -0,0 +1,125 @@
+/*
+ * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+ * its licensors.
+ *
+ * For complete copyright and license terms please see the LICENSE at the root of this
+ * distribution (the "License"). All use of this software is governed by the License,
+ * or, if provided, by the license below or the license accompanying this file. Do not
+ * remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *
+ */
+
+#include <AzCore/Serialization/SerializeContext.h>
+#include <AzCore/Serialization/EditContext.h>
+#include <AzCore/Serialization/EditContextConstants.inl>
+
+#include <AzNetworking/Framework/INetworking.h>
+
+#include "MultiplayerSampleSystemComponent.h"
+
+
+namespace MultiplayerSample
+{
+    using namespace AzNetworking;
+
+    static const AZStd::string_view s_networkInterfaceName("MultiplayerSampleInterface");
+
+    void MultiplayerSampleSystemComponent::Reflect(AZ::ReflectContext* context)
+    {
+        if (AZ::SerializeContext* serialize = azrtti_cast<AZ::SerializeContext*>(context))
+        {
+            serialize->Class<MultiplayerSampleSystemComponent, AZ::Component>()
+                ->Version(0)
+                ;
+
+            if (AZ::EditContext* ec = serialize->GetEditContext())
+            {
+                ec->Class<MultiplayerSampleSystemComponent>("MultiplayerSample", "[Description of functionality provided by this System Component]")
+                    ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
+                        ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("System"))
+                        ->Attribute(AZ::Edit::Attributes::AutoExpand, true)
+                    ;
+            }
+        }
+    }
+
+    void MultiplayerSampleSystemComponent::GetProvidedServices(AZ::ComponentDescriptor::DependencyArrayType& provided)
+    {
+        provided.push_back(AZ_CRC_CE("MultiplayerSampleService"));
+    }
+
+    void MultiplayerSampleSystemComponent::GetIncompatibleServices(AZ::ComponentDescriptor::DependencyArrayType& incompatible)
+    {
+        incompatible.push_back(AZ_CRC_CE("MultiplayerSampleService"));
+    }
+
+    void MultiplayerSampleSystemComponent::GetRequiredServices(AZ::ComponentDescriptor::DependencyArrayType& required)
+    {
+        required.push_back(AZ_CRC_CE("NetworkingService"));
+        required.push_back(AZ_CRC_CE("MultiplayerService"));
+    }
+
+    void MultiplayerSampleSystemComponent::GetDependentServices(AZ::ComponentDescriptor::DependencyArrayType& dependent)
+    {
+        AZ_UNUSED(dependent);
+    }
+
+    void MultiplayerSampleSystemComponent::Init()
+    {
+        ;
+    }
+
+    void MultiplayerSampleSystemComponent::Activate()
+    {
+        AZ::TickBus::Handler::BusConnect();
+    }
+
+    void MultiplayerSampleSystemComponent::Deactivate()
+    {
+        AZ::TickBus::Handler::BusDisconnect();
+    }
+
+    void MultiplayerSampleSystemComponent::OnTick([[maybe_unused]] float deltaTime, [[maybe_unused]] AZ::ScriptTimePoint time)
+    {
+        ;
+    }
+
+    int MultiplayerSampleSystemComponent::GetTickOrder()
+    {
+        // Tick immediately after the multiplayer system component
+        return AZ::TICK_PLACEMENT + 2;
+    }
+
+    bool MultiplayerSampleSystemComponent::HandleRequest([[maybe_unused]] IConnection* connection,
+        [[maybe_unused]] const IPacketHeader& packetHeader, [[maybe_unused]] const MultiplayerSamplePackets::Sample& packet)
+    {
+        return true;
+    }
+
+    ConnectResult MultiplayerSampleSystemComponent::ValidateConnect([[maybe_unused]] const IpAddress& remoteAddress,
+        [[maybe_unused]] const IPacketHeader& packetHeader, [[maybe_unused]] ISerializer& serializer)
+    {
+        return ConnectResult::Accepted;
+    }
+
+    void MultiplayerSampleSystemComponent::OnConnect([[maybe_unused]] IConnection* connection)
+    {
+        ;
+    }
+
+    bool MultiplayerSampleSystemComponent::OnPacketReceived([[maybe_unused]] IConnection* connection, [[maybe_unused]] const IPacketHeader& packetHeader, [[maybe_unused]] ISerializer& serializer)
+    {
+        return true;
+    }
+
+    void MultiplayerSampleSystemComponent::OnPacketLost([[maybe_unused]] IConnection* connection, [[maybe_unused]] PacketId packetId)
+    {
+        ;
+    }
+
+    void MultiplayerSampleSystemComponent::OnDisconnect(IConnection* connection, [[maybe_unused]] DisconnectReason reason, [[maybe_unused]] AzNetworking::TerminationEndpoint endpoint)
+    {
+        AZLOG_INFO("Disconnected from remote address: %s", connection->GetRemoteAddress().GetString().c_str());
+    }
+}

+ 70 - 0
Gem/Code/Source/MultiplayerSampleSystemComponent.h

@@ -0,0 +1,70 @@
+/*
+ * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+ * its licensors.
+ *
+ * For complete copyright and license terms please see the LICENSE at the root of this
+ * distribution (the "License"). All use of this software is governed by the License,
+ * or, if provided, by the license below or the license accompanying this file. Do not
+ * remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *
+ */
+#pragma once
+
+#include <AzCore/Component/Component.h>
+#include <AzCore/Component/TickBus.h>
+
+#include <AzNetworking/ConnectionLayer/IConnectionListener.h>
+
+#include "Source/AutoGen/MultiplayerSample.AutoPacketDispatcher.h"
+
+namespace AzNetworking
+{
+    class INetworkInterface;
+}
+
+namespace MultiplayerSample
+{
+    class MultiplayerSampleSystemComponent
+        : public AZ::Component
+        , public AZ::TickBus::Handler
+        , public AzNetworking::IConnectionListener
+    {
+    public:
+        AZ_COMPONENT(MultiplayerSampleSystemComponent, "{7BF68D79-E870-44B5-853A-BA68FF4F0B90}");
+
+        static void Reflect(AZ::ReflectContext* context);
+
+        static void GetProvidedServices(AZ::ComponentDescriptor::DependencyArrayType& provided);
+        static void GetIncompatibleServices(AZ::ComponentDescriptor::DependencyArrayType& incompatible);
+        static void GetRequiredServices(AZ::ComponentDescriptor::DependencyArrayType& required);
+        static void GetDependentServices(AZ::ComponentDescriptor::DependencyArrayType& dependent);
+
+        bool HandleRequest(AzNetworking::IConnection* connection, const AzNetworking::IPacketHeader& packetHeader, const MultiplayerSamplePackets::Sample& packet);
+
+    protected:
+        ////////////////////////////////////////////////////////////////////////
+        // AZ::Component interface implementation
+        void Init() override;
+        void Activate() override;
+        void Deactivate() override;
+        ////////////////////////////////////////////////////////////////////////
+    
+        // AZ::TickBus::Handler overrides
+        void OnTick(float deltaTime, AZ::ScriptTimePoint time) override;
+        int GetTickOrder() override;
+        ////////////////////////////////////////////////////////////////////////
+
+        ////////////////////////////////////////////////////////////////////////
+        // IConnectionListener interface
+        AzNetworking::ConnectResult ValidateConnect(const AzNetworking::IpAddress& remoteAddress, const AzNetworking::IPacketHeader& packetHeader, AzNetworking::ISerializer& serializer) override;
+        void OnConnect(AzNetworking::IConnection* connection) override;
+        bool OnPacketReceived(AzNetworking::IConnection* connection, const AzNetworking::IPacketHeader& packetHeader, AzNetworking::ISerializer& serializer) override;
+        void OnPacketLost(AzNetworking::IConnection* connection, AzNetworking::PacketId packetId) override;
+        void OnDisconnect(AzNetworking::IConnection* connection, AzNetworking::DisconnectReason reason, AzNetworking::TerminationEndpoint endpoint) override;
+        ////////////////////////////////////////////////////////////////////////
+
+    private:
+        AzNetworking::INetworkInterface* m_networkInterface = nullptr;
+    };
+}

+ 18 - 0
Gem/Code/multiplayersample_autogen_files.cmake

@@ -0,0 +1,18 @@
+#
+# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+# its licensors.
+#
+# For complete copyright and license terms please see the LICENSE at the root of this
+# distribution (the "License"). All use of this software is governed by the License,
+# or, if provided, by the license below or the license accompanying this file. Do not
+# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#
+
+set(FILES
+    ${LY_ROOT_FOLDER}/Code/Framework/AzNetworking/AzNetworking/AutoGen/AutoPackets_Header.jinja
+    ${LY_ROOT_FOLDER}/Code/Framework/AzNetworking/AzNetworking/AutoGen/AutoPackets_Inline.jinja
+    ${LY_ROOT_FOLDER}/Code/Framework/AzNetworking/AzNetworking/AutoGen/AutoPackets_Source.jinja
+    ${LY_ROOT_FOLDER}/Code/Framework/AzNetworking/AzNetworking/AutoGen/AutoPacketDispatcher_Header.jinja
+    ${LY_ROOT_FOLDER}/Code/Framework/AzNetworking/AzNetworking/AutoGen/AutoPacketDispatcher_Inline.jinja
+)

+ 16 - 0
Gem/Code/multiplayersample_files.cmake

@@ -0,0 +1,16 @@
+#
+# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+# its licensors.
+#
+# For complete copyright and license terms please see the LICENSE at the root of this
+# distribution (the "License"). All use of this software is governed by the License,
+# or, if provided, by the license below or the license accompanying this file. Do not
+# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#
+
+set(FILES
+    Source/MultiplayerSampleSystemComponent.cpp
+    Source/MultiplayerSampleSystemComponent.h
+    Source/AutoGen/MultiplayerSample.AutoPackets.xml
+)

+ 14 - 0
Gem/Code/multiplayersample_shared_files.cmake

@@ -0,0 +1,14 @@
+#
+# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+# its licensors.
+#
+# For complete copyright and license terms please see the LICENSE at the root of this
+# distribution (the "License"). All use of this software is governed by the License,
+# or, if provided, by the license below or the license accompanying this file. Do not
+# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#
+
+set(FILES
+    Source/MultiplayerSampleModule.cpp
+)

+ 53 - 0
Gem/Code/runtime_dependencies.cmake

@@ -0,0 +1,53 @@
+#
+# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+# its licensors.
+#
+# For complete copyright and license terms please see the LICENSE at the root of this
+# distribution (the "License"). All use of this software is governed by the License,
+# or, if provided, by the license below or the license accompanying this file. Do not
+# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#
+
+set(GEM_DEPENDENCIES
+    Gem::EMotionFX
+    Gem::GameState
+    Gem::ScriptCanvasPhysics
+    Gem::ScriptEvents
+    Gem::Maestro
+    Gem::ExpressionEvaluation
+    Gem::PhysX
+    Gem::PhysXDebug
+    Gem::TextureAtlas
+    Gem::SurfaceData
+    Gem::DebugDraw
+    Gem::AudioSystem
+    Gem::ScriptCanvas
+    Gem::GraphCanvas
+    Gem::GradientSignal
+    Gem::Presence
+    Gem::LocalUser
+    Gem::ImGui
+    Gem::FastNoise
+    Gem::SaveData
+    Gem::Vegetation
+    Gem::LmbrCentral
+    Gem::LyShine
+    Gem::Camera
+    Gem::CameraFramework
+    Gem::LmbrCentral
+    Gem::Atom_RHI.Private
+    Gem::Atom_RPI.Private
+    Gem::Atom_Feature_Common
+    Gem::Atom_Bootstrap
+    Gem::Atom_Component_DebugCamera
+    Gem::AtomImGuiTools
+    Gem::AtomLyIntegration_CommonFeatures
+    Gem::EMotionFX_Atom
+    Gem::ImguiAtom
+    Gem::Atom_AtomBridge
+    Gem::AtomFont
+    Gem::Atom_RHI_Null.Private
+    Gem::MultiplayerSample
+    Gem::Multiplayer
+)

+ 65 - 0
Gem/Code/tool_dependencies.cmake

@@ -0,0 +1,65 @@
+#
+# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+# its licensors.
+#
+# For complete copyright and license terms please see the LICENSE at the root of this
+# distribution (the "License"). All use of this software is governed by the License,
+# or, if provided, by the license below or the license accompanying this file. Do not
+# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#
+
+# Extracted from Editor.xml
+set(GEM_DEPENDENCIES
+    Gem::EMotionFX.Editor
+    Gem::GraphModel.Editor
+    Gem::LandscapeCanvas.Editor
+    Gem::GameState
+    Gem::ScriptCanvasPhysics
+    Gem::ScriptEvents.Editor
+    Gem::ScriptCanvasTesting.Editor
+    Gem::Maestro.Editor
+    Gem::ExpressionEvaluation
+    Gem::PhysX.Editor
+    Gem::PhysXDebug.Editor
+    Gem::TextureAtlas
+    Gem::SurfaceData.Editor
+    Gem::DebugDraw.Editor
+    Gem::AudioSystem.Editor
+    Gem::SceneProcessing.Editor
+    Gem::ScriptCanvas.Editor
+    Gem::GraphCanvas.Editor
+    Gem::GradientSignal.Editor
+    Gem::Presence
+    Gem::LocalUser
+    Gem::ImGui.Editor
+    Gem::EditorPythonBindings.Editor
+    Gem::FastNoise.Editor
+    Gem::LyShine.Editor
+    Gem::SaveData
+    Gem::Vegetation.Editor
+    Gem::Camera.Editor
+    Gem::CameraFramework
+    Gem::LmbrCentral.Editor
+    Gem::Atom_RHI.Private
+    Gem::Atom_RPI.Builders
+    Gem::Atom_RPI.Editor
+    Gem::Atom_Feature_Common.Builders
+    Gem::Atom_Feature_Common.Editor
+    Gem::Atom_Bootstrap
+    Gem::Atom_Asset_Shader.Builders
+    Gem::Atom_Component_DebugCamera
+    Gem::AtomImGuiTools
+    Gem::AtomLyIntegration_CommonFeatures.Editor
+    Gem::EMotionFX_Atom.Editor
+    Gem::ImageProcessingAtom.Editor
+    Gem::Atom_AtomBridge.Editor
+    Gem::ImguiAtom
+    Gem::AtomFont
+    Gem::AtomToolsFramework.Editor
+    Gem::GradientSignal.Editor
+    Gem::Multiplayer.Editor
+    Gem::PrefabBuilder
+    Gem::Multiplayer.Tools
+    Gem::MultiplayerSample
+)

+ 3 - 0
Gem/Resources/CryEngineLogoLauncher.bmp

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cf6d56fe4c367d39bd78500dd34332fcad57ad41241768b52781dbdb60ddd972
+size 347568

+ 3 - 0
Gem/Resources/GameSDK.ico

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:61efd8df621780af995fc1250918df5e00364ff00f849bef67702cd4b0a152e1
+size 65537

+ 116 - 0
Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/Contents.json

@@ -0,0 +1,116 @@
+{
+  "images" : [
+    {
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "iPhoneNotificationIcon40x40.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "iPhoneNotificationIcon60x60.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "iPhoneSettingsIcon58x58.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "iPhoneSettingsIcon87x87.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "iPhoneSpotlightIcon80x80.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "iPhoneSpotlightIcon120x120.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "iPhoneAppIcon120x120.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "iPhoneAppIcon180x180.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "iPadNotificationIcon20x20.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "iPadNotificationIcon40x40.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "iPadSettingsIcon29x29.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "iPadSettingsIcon58x58.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "iPadSpotlightIcon40x40.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "iPadSpotlightIcon80x80.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "iPadAppIcon76x76.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "iPadAppIcon152x152.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "83.5x83.5",
+      "idiom" : "ipad",
+      "filename" : "iPadProAppIcon167x167.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "1024x1024",
+      "idiom" : "ios-marketing",
+      "filename" : "iOSAppStoreIcon1024x1024.png",
+      "scale" : "1x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPadAppIcon152x152.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e4901093fa6190bf37291b0fb6de23fba1be8ebbd742775a8565a4106722fbb6
+size 31942

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPadAppIcon76x76.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e4ae97c4f44910121a61686862c8342ce598db4cdf9d46b29e96d3cb9e43bd06
+size 22158

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPadProAppIcon167x167.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:061e2d0ce8dc852dd298c80f2aed5fee8ea4b87511c00662aa2d00922c0ba3c2
+size 30162

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPadSettingsIcon29x29.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0fb4b4b77620d99dae7473b7bd8affe14630419835bd5719167ed200e657fa4f
+size 17504

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPadSettingsIcon58x58.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8aa9b1194f3244025578225a6a87cbc2dd12c70955ff615c8af640ea7f1334f1
+size 19619

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPadSpotlightIcon40x40.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0c25ffb1af8160b3202977de8c32aaa235e22c643ffd8004e4546c96868ef3b9
+size 18317

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPadSpotlightIcon80x80.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2db961b8f922a552d8ad374fdb56029efd4049a6cde10399b3d961242c82ce53
+size 22571

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPhoneAppIcon120x120.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f39d897a57d4da0a70ede7c91339660b28e9d8c57b3e7d749807b13baa4b85f3
+size 28559

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPhoneAppIcon180x180.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:263b75d58328499eef1f8fa2e64c30706f546badcc0c4464a043b231da93cd0d
+size 34969

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPhoneSettingsIcon58x58.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:33522ad8a8e826b22dd9ad214f56e63e24bf55c00bd8c845925d848b855dfb48
+size 19619

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPhoneSettingsIcon87x87.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f405c9f3d908d038aea26049e533b0d10955adfac370c7b3b80209997ea706d0
+size 24407

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPhoneSpotlightIcon120x120.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d110f6e151799a2327bcdf5ef94d6fc82b114783a8cc973a8915896679ba4a80
+size 28559

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/iPhoneSpotlightIcon80x80.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:db8f00568fad4e49b05249aaa7a48c9fbf85c8b7a78489c83dc9b8161778bcef
+size 22571

+ 6 - 0
Gem/Resources/IOSLauncher/Images.xcassets/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 169 - 0
Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/Contents.json

@@ -0,0 +1,169 @@
+{
+  "images" : [
+    {
+      "extent" : "full-screen",
+      "idiom" : "iphone",
+      "subtype" : "2436h",
+      "filename" : "iPhoneLaunchImage1125x2436.png",
+      "minimum-system-version" : "11.0",
+      "orientation" : "portrait",
+      "scale" : "3x"
+    },
+    {
+      "extent" : "full-screen",
+      "idiom" : "iphone",
+      "subtype" : "2436h",
+      "filename" : "iPhoneLaunchImage2436x1125.png",
+      "minimum-system-version" : "11.0",
+      "orientation" : "landscape",
+      "scale" : "3x"
+    },
+    {
+      "extent" : "full-screen",
+      "idiom" : "iphone",
+      "subtype" : "736h",
+      "filename" : "iPhoneLaunchImage1242x2208.png",
+      "minimum-system-version" : "8.0",
+      "orientation" : "portrait",
+      "scale" : "3x"
+    },
+    {
+      "extent" : "full-screen",
+      "idiom" : "iphone",
+      "subtype" : "736h",
+      "filename" : "iPhoneLaunchImage2208x1242.png",
+      "minimum-system-version" : "8.0",
+      "orientation" : "landscape",
+      "scale" : "3x"
+    },
+    {
+      "extent" : "full-screen",
+      "idiom" : "iphone",
+      "subtype" : "667h",
+      "filename" : "iPhoneLaunchImage750x1334.png",
+      "minimum-system-version" : "8.0",
+      "orientation" : "portrait",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "filename" : "iPhoneLaunchImage640x960.png",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "extent" : "full-screen",
+      "idiom" : "iphone",
+      "subtype" : "retina4",
+      "filename" : "iPhoneLaunchImage640x1136.png",
+      "minimum-system-version" : "7.0",
+      "orientation" : "portrait",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "filename" : "iPadLaunchImage768x1024.png",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "filename" : "iPadLaunchImage1024x768.png",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "filename" : "iPadLaunchImage1536x2048.png",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "filename" : "iPadLaunchImage2048x1536.png",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "extent" : "full-screen",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "extent" : "full-screen",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "extent" : "full-screen",
+      "subtype" : "retina4",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "extent" : "to-status-bar",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "extent" : "full-screen",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "extent" : "to-status-bar",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "extent" : "full-screen",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "extent" : "to-status-bar",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "extent" : "full-screen",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "extent" : "to-status-bar",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "extent" : "full-screen",
+      "scale" : "2x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage1024x768.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:31afa7ed44c5d9844c8d6ce08beccac482c3f43590869a3d190d06e2df377ccc
+size 137472

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage1536x2048.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0aac8ef9899442820bec0df8bf6434a46cc787d57c5d6d38a04727b8dc310048
+size 338281

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage2048x1536.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c07495891f15b138ba09f142777b0f43217bf8be05cbb74ba938319f3425980c
+size 321125

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage768x1024.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d6bf6acb92421a453a36fc143ab6cefda14d631ea5e6dbf95c6e252a445fcbac
+size 144797

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage640x1136.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e9ad650fda925b1c076a67d1ef70315fe4f14db888c9fd36ee4eba1d18c1e7d1
+size 166749

+ 3 - 0
Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage640x960.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:16f6e9d7bd15fc528d934c252213de8792812e708b1810191c5f1767f7165852
+size 142331

+ 45 - 0
Gem/Resources/IOSLauncher/Info.plist

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleDisplayName</key>
+	<string>MultiplayerSample</string>
+	<key>CFBundleExecutable</key>
+	<string>MultiplayerSample.GameLauncher</string>
+	<key>CFBundleIdentifier</key>
+	<string>com.amazon.o3de.MultiplayerSample</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>MultiplayerSample</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>UIRequiredDeviceCapabilities</key>
+	<array>
+		<string>arm64</string>
+		<string>metal</string>
+	</array>
+	<key>UIRequiresFullScreen</key>
+	<true/>
+	<key>UIStatusBarHidden</key>
+	<true/>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+	</array>
+</dict>
+</plist>

+ 68 - 0
Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/Contents.json

@@ -0,0 +1,68 @@
+{
+  "images" : [
+    {
+      "size" : "16x16",
+      "idiom" : "mac",
+      "filename" : "icon_16.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "16x16",
+      "idiom" : "mac",
+      "filename" : "icon_16_2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "32x32",
+      "idiom" : "mac",
+      "filename" : "icon_32.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "32x32",
+      "idiom" : "mac",
+      "filename" : "icon_32_2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "128x128",
+      "idiom" : "mac",
+      "filename" : "icon_128.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "128x128",
+      "idiom" : "mac",
+      "filename" : "icon_128 _2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "256x256",
+      "idiom" : "mac",
+      "filename" : "icon_256.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "256x256",
+      "idiom" : "mac",
+      "filename" : "icon_256 _2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "512x512",
+      "idiom" : "mac",
+      "filename" : "icon_512.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "512x512",
+      "idiom" : "mac",
+      "filename" : "icon_512_2x.png",
+      "scale" : "2x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 3 - 0
Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_128 _2x.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e38257b6917cdf5d73e90e6009f10c8736d62b20c4e785085305075c7e6320e2
+size 32037

+ 3 - 0
Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_128.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9f41a37d2347a617e93bd97adaf6d4c161c471ca3ef7e04b98c65ddda52396dc
+size 27833

+ 3 - 0
Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_16.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b07984494059bf827bc485cbea06d12e0283811face1a18799495f9ba7ae8af1
+size 20779

+ 3 - 0
Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_16_2x.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e645142d284de40aafb7a4a858f3df92b6a5ba9b03fa5f1a2d3cb25211597926
+size 21857

+ 3 - 0
Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_256 _2x.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:07631f41b8dea80713d2463f81a713a9a93798975b6fb50afbeeb13d26c57fa2
+size 48899

+ 3 - 0
Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_256.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e38257b6917cdf5d73e90e6009f10c8736d62b20c4e785085305075c7e6320e2
+size 32037

+ 3 - 0
Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_32.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e645142d284de40aafb7a4a858f3df92b6a5ba9b03fa5f1a2d3cb25211597926
+size 21857

+ 3 - 0
Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_32_2x.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ad83faf98b49f4e37112baedeae726f4f8d71bcdd1961d9cdad31f043f8ca666
+size 24003

+ 3 - 0
Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_512.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:68529a6c11d5ffa7ecd9d5bbb11ceea28e6852bd45946b525af09602c9a1e1bf
+size 48899

+ 3 - 0
Gem/Resources/MacLauncher/Images.xcassets/CMakeTestbedAppIcon.appiconset/icon_512_2x.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8a70003840b418848b2ce6c18ed7cbbfcd6fcf76598a6601dca8b98d9b6c1a2f
+size 114706

+ 6 - 0
Gem/Resources/MacLauncher/Images.xcassets/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 24 - 0
Gem/Resources/MacLauncher/Info.plist

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<false/>
+	<key>CFBundleDisplayName</key>
+	<string>MultiplayerSample</string>
+	<key>CFBundleExecutable</key>
+	<string>MultiplayerSample.GameLauncher</string>
+	<key>CFBundleIdentifier</key>
+	<string>com.amazon.MultiplayerSample</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.5</string>
+	<key>CFBundleSignature</key>
+	<string>LMBR</string>
+	<key>CFBundleVersion</key>
+	<string>1.5</string>
+	<key>LSApplicationCategoryType</key>
+	<string>public.app-category.puzzle-games</string>
+</dict>
+</plist>

+ 10 - 0
Gem/gem.json

@@ -0,0 +1,10 @@
+{
+    "GemFormatVersion": 4,
+    "Uuid": "8d7f210742af4b8c8813d593f4c46cf2",
+    "Name": "MultiplayerSample",
+    "DisplayName": "MultiplayerSample",
+    "Summary": "MultiplayerSample Project Gem..",
+    "Tags": ["Game"],
+    "IconPath": "preview.png",
+    "IsGameGem": true
+}

+ 3 - 0
Gem/preview.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6d6204c6730e5675791765ca194e9b1cbec282208e280507de830afc2805e5fa
+size 41127

+ 56 - 0
Levels/SampleBase/SampleBase.prefab

@@ -0,0 +1,56 @@
+{
+    "Source": "Levels/SampleBase/SampleBase.prefab",
+    "ContainerEntity": {
+        "Id": "Entity_[356758116574]",
+        "Name": "Level",
+        "Components": {
+            "Component_[11018767466550552329]": {
+                "$type": "EditorVisibilityComponent",
+                "Id": 11018767466550552329
+            },
+            "Component_[11051623022504095148]": {
+                "$type": "EditorOnlyEntityComponent",
+                "Id": 11051623022504095148
+            },
+            "Component_[12471136275375599108]": {
+                "$type": "EditorPrefabComponent",
+                "Id": 12471136275375599108
+            },
+            "Component_[12759979290397858955]": {
+                "$type": "EditorDisabledCompositionComponent",
+                "Id": 12759979290397858955
+            },
+            "Component_[13524277649697810352]": {
+                "$type": "EditorEntityIconComponent",
+                "Id": 13524277649697810352
+            },
+            "Component_[13533444088377782884]": {
+                "$type": "EditorPendingCompositionComponent",
+                "Id": 13533444088377782884
+            },
+            "Component_[14619812868403384733]": {
+                "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                "Id": 14619812868403384733,
+                "Parent Entity": "",
+                "Cached World Transform Parent": ""
+            },
+            "Component_[3902259769182016681]": {
+                "$type": "EditorLockComponent",
+                "Id": 3902259769182016681
+            },
+            "Component_[5457951959748258208]": {
+                "$type": "EditorInspectorComponent",
+                "Id": 5457951959748258208
+            },
+            "Component_[7447529568620179076]": {
+                "$type": "SelectionComponent",
+                "Id": 7447529568620179076
+            },
+            "Component_[8247764638131379605]": {
+                "$type": "EditorEntitySortComponent",
+                "Id": 8247764638131379605
+            }
+        },
+        "IsDependencyReady": true
+    }
+}

+ 12 - 0
Levels/SampleBase/tags.txt

@@ -0,0 +1,12 @@
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0

+ 128 - 0
LightingPresets/greenwich_park_02.lightingconfig.json

@@ -0,0 +1,128 @@
+{
+    "configurations": [
+        {
+            "displayName": "Greenwich Park 02",
+            "skyboxImageAsset": {
+                "assetId": {
+                    "guid": "{3B78EA69-7CF0-56A7-A49A-110B88412666}",
+                    "subId": 1000
+                },
+                "assetHint": "lightingpresets/greenwich_park_02_4k_iblskyboxcm.exr.streamingimage"
+            },
+            "iblSpecularImageAsset": {
+                "assetId": {
+                    "guid": "{3B78EA69-7CF0-56A7-A49A-110B88412666}",
+                    "subId": 2000
+                },
+                "assetHint": "lightingpresets/greenwich_park_02_4k_iblskyboxcm_iblspecular.exr.streamingimage"
+            },
+            "iblDiffuseImageAsset": {
+                "assetId": {
+                    "guid": "{3B78EA69-7CF0-56A7-A49A-110B88412666}",
+                    "subId": 3000
+                },
+                "assetHint": "lightingpresets/greenwich_park_02_4k_iblskyboxcm_ibldiffuse.exr.streamingimage"
+            },
+            "iblExposure": 0.0,
+            "skyboxExposure": 0.0,
+            "exposure": {
+                "compensateValue": 0.0,
+                "exposureControlType": 0,
+                "lightAdaptationSensitivity": 0.949999988079071,
+                "lightAdaptationScale": 0.8500000238418579,
+                "lightAdaptationSpeedLimit": 8.0,
+                "darkAdaptationSensitivity": 0.949999988079071,
+                "darkAdaptationScale": 0.8500000238418579,
+                "darkAdaptationSpeedLimit": 8.0,
+                "lightDarkExposureBorder": 0.0,
+                "autoExposureMin": -10.0,
+                "autoExposureMax": 10.0,
+                "eyeAdaptationDelayTime": 0.5
+            },
+            "lights": [
+                {
+                    "direction": [
+                        -1.0,
+                        -0.75,
+                        -0.5
+                    ],
+                    "color": [
+                        1.0,
+                        1.0,
+                        1.0,
+                        1.0
+                    ],
+                    "intensity": 1.0,
+                    "shadowCascadeCount": 4,
+                    "shadowRatioLogarithmUniform": 1.0,
+                    "shadowFarClipDistance": 20.0,
+                    "shadowmapSize": "Size2048",
+                    "enableShadowDebugColoring": false
+                }
+            ],
+            "shadowCatcherOpacity": 0.20000000298023225
+        },
+        {
+            "displayName": "Greenwich Park 02 (Alt)",
+            "skyboxImageAsset": {
+                "assetId": {
+                    "guid": "{3B78EA69-7CF0-56A7-A49A-110B88412666}",
+                    "subId": 3000
+                },
+                "assetHint": "lightingpresets/greenwich_park_02_4k_iblskyboxcm_ibldiffuse.exr.streamingimage"
+            },
+            "iblSpecularImageAsset": {
+                "assetId": {
+                    "guid": "{3B78EA69-7CF0-56A7-A49A-110B88412666}",
+                    "subId": 2000
+                },
+                "assetHint": "lightingpresets/greenwich_park_02_4k_iblskyboxcm_iblspecular.exr.streamingimage"
+            },
+            "iblDiffuseImageAsset": {
+                "assetId": {
+                    "guid": "{3B78EA69-7CF0-56A7-A49A-110B88412666}",
+                    "subId": 3000
+                },
+                "assetHint": "lightingpresets/greenwich_park_02_4k_iblskyboxcm_ibldiffuse.exr.streamingimage"
+            },
+            "iblExposure": 0.0,
+            "skyboxExposure": 0.0,
+            "exposure": {
+                "compensateValue": 0.0,
+                "exposureControlType": 0,
+                "lightAdaptationSensitivity": 0.949999988079071,
+                "lightAdaptationScale": 0.8500000238418579,
+                "lightAdaptationSpeedLimit": 8.0,
+                "darkAdaptationSensitivity": 0.949999988079071,
+                "darkAdaptationScale": 0.8500000238418579,
+                "darkAdaptationSpeedLimit": 8.0,
+                "lightDarkExposureBorder": 0.0,
+                "autoExposureMin": -10.0,
+                "autoExposureMax": 10.0,
+                "eyeAdaptationDelayTime": 0.5
+            },
+            "lights": [
+                {
+                    "direction": [
+                        -1.0,
+                        -0.75,
+                        -0.5
+                    ],
+                    "color": [
+                        1.0,
+                        1.0,
+                        1.0,
+                        1.0
+                    ],
+                    "intensity": 1.0,
+                    "shadowCascadeCount": 4,
+                    "shadowRatioLogarithmUniform": 1.0,
+                    "shadowFarClipDistance": 20.0,
+                    "shadowmapSize": "Size2048",
+                    "enableShadowDebugColoring": false
+                }
+            ],
+            "shadowCatcherOpacity": 0.10000000149011612
+        }
+    ]
+}

+ 3 - 0
LightingPresets/greenwich_park_02_4k_iblskyboxcm.exr

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:374120e275616e82eb6577f4b17d776239fc6a75eaee40b5aada16edb26883ad
+size 27230921

+ 3 - 0
Materials/Default/AM_UV_v1_1K_source.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:055c672e895ec64f850f33f424da0b9a451e5b95e0e57fa39974e1c027c02246
+size 437729

+ 3 - 0
Materials/Default/UVchart_1_basecolor.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:41aafc78cb4437b8fd3444d9bef9ba39cd506a883d16079d1b51abe20df5b361
+size 1087961

+ 3 - 0
Materials/Default/UVchart_2_basecolor.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d05cf631590adb3890bd4940ed1c7fb6f482cd4fafa63ae20103230bf7614226
+size 1154699

+ 3 - 0
Materials/Default/UVchart_3_basecolor.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0da5b5c55a737a902e6330c8897af38a088de018af3da9b4de11be5680c1bc0d
+size 513767

+ 4 - 0
Materials/DefaultPBR.material

@@ -0,0 +1,4 @@
+{
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "parentMaterial": "Materials/Presets/PBR/default_grid.material"
+}

+ 11 - 0
Materials/DefaultPBRTransparent.material

@@ -0,0 +1,11 @@
+{
+    "description": "",
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "parentMaterial": "Materials/Presets/PBR/default_grid.material",
+    "propertyLayoutVersion": 3,
+    "properties": {
+        "opacity": {
+            "mode": "Blended"
+        }
+    }
+}

+ 54 - 0
Materials/UVs.azsl

@@ -0,0 +1,54 @@
+
+/*
+* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+* its licensors.
+*
+* For complete copyright and license terms please see the LICENSE at the root of this
+* distribution (the "License"). All use of this software is governed by the License,
+* or, if provided, by the license below or the license accompanying this file. Do not
+* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*
+*/
+
+#include <viewsrg.srgi>
+#include <Atom/RPI/ShaderResourceGroups/DefaultObjectSrg.azsli>
+#include <Atom/RPI/ShaderResourceGroups/DefaultDrawSrg.azsli>
+#include <Atom/Features/PBR/ForwardPassSrg.azsli>
+
+struct VertexInput
+{
+    float3 m_position : POSITION;
+    float2 m_uv : UV0;
+};
+
+struct VertexOutput
+{
+    float4 m_position : SV_Position;
+    float2 m_uv : UV0;
+};
+
+VertexOutput MainVS(VertexInput input)
+{
+    VertexOutput output;
+    float3 worldPosition = mul(ObjectSrg::GetWorldMatrix(), float4(input.m_position, 1)).xyz;
+    output.m_position = mul(ViewSrg::m_viewProjectionMatrix, float4(worldPosition, 1.0));
+
+    output.m_uv = input.m_uv;
+        
+    return output;
+}
+
+struct PixelOutput
+{
+    float4 m_color : SV_Target0;
+};
+
+PixelOutput MainPS(VertexOutput input)
+{
+    PixelOutput output;
+
+    output.m_color = float4(input.m_uv, 0, 1);
+
+    return output;
+}

+ 3 - 0
Materials/UVs.material

@@ -0,0 +1,3 @@
+{
+    "materialType": "Materials/UVs.materialtype"
+}

+ 7 - 0
Materials/UVs.materialtype

@@ -0,0 +1,7 @@
+{
+    "shaders": [
+        {
+            "file": "UVs.shader"
+        }
+    ]
+}

+ 25 - 0
Materials/UVs.shader

@@ -0,0 +1,25 @@
+{
+    "Source" : "UVs.azsl",
+
+    "DepthStencilState" : { 
+        "Depth" : { "Enable" : true, "CompareFunc" : "GreaterEqual" }
+    },
+    
+    // Using auxgeom draw list to avoid tonemapping
+    "DrawList": "auxgeom",
+
+    "ProgramSettings":
+    {
+      "EntryPoints":
+      [
+        {
+          "name": "MainVS",
+          "type": "Vertex"
+        },
+        {
+          "name": "MainPS",
+          "type": "Fragment"
+        }
+      ]
+    }
+}

+ 32 - 0
Materials/basic_grey.material

@@ -0,0 +1,32 @@
+{
+    "materialType": "Materials/Types/StandardPBR.materialtype",
+    "propertyLayoutVersion": 1,
+    "properties": {
+        "baseColor": {
+            "color": [ 0.18, 0.18, 0.18 ],
+            "factor": 1.0,
+            "useTexture": false,
+            "textureMap": ""
+        },
+        "metallic": {
+            "factor": 0.0,
+            "useTexture": false,
+            "textureMap": ""
+        },
+        "roughness": {
+            "factor": 1.0,
+            "useTexture": false,
+            "textureMap": ""
+        },
+        "specularF0": {
+            "factor": 0.5,
+            "useTexture": false,
+            "textureMap": ""
+        },
+        "normal": {
+            "factor": 1.0,
+            "useTexture": false,
+            "textureMap": ""
+        }
+    }
+}

+ 39 - 0
Materials/decal/airship_nose_number_decal.material

@@ -0,0 +1,39 @@
+{
+    "description": "",
+    "materialType": "Materials\\Types\\StandardPBR.materialtype",
+    "parentMaterial": "",
+    "propertyLayoutVersion": 3,
+    "properties": {
+        "baseColor": {
+            "textureMap": "Materials/decal/airship_nose_number_decal.tif"
+        },
+        "general": {
+            "applySpecularAA": false
+        },
+        "metallic": {
+            "useTexture": false
+        },
+        "normal": {
+            "useTexture": false
+        },
+        "opacity": {
+            "alphaSource": "Split",
+            "doubleSided": true,
+            "factor": 0.6899999976158142,
+            "mode": "Cutout",
+            "textureMap": "Materials/decal/airship_nose_number_decal.tif"
+        },
+        "roughness": {
+            "useTexture": false
+        },
+        "specularF0": {
+            "useTexture": false
+        },
+        "uv": {
+            "center": [
+                0.0,
+                1.0
+            ]
+        }
+    }
+}

+ 3 - 0
Materials/decal/airship_nose_number_decal.tif

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:730d14d65898ac62676289867a3753f22768ed1568a4d56879a55e8098d8e54f
+size 528726

+ 39 - 0
Materials/decal/airship_symbol_decal.material

@@ -0,0 +1,39 @@
+{
+    "description": "",
+    "materialType": "Materials\\Types\\StandardPBR.materialtype",
+    "parentMaterial": "",
+    "propertyLayoutVersion": 3,
+    "properties": {
+        "baseColor": {
+            "textureMap": "Materials/decal/airship_symbol_decal.tif"
+        },
+        "general": {
+            "applySpecularAA": false
+        },
+        "metallic": {
+            "useTexture": false
+        },
+        "normal": {
+            "useTexture": false
+        },
+        "opacity": {
+            "alphaSource": "Split",
+            "doubleSided": true,
+            "factor": 0.6899999976158142,
+            "mode": "Cutout",
+            "textureMap": "Materials/decal/airship_symbol_decal.tif"
+        },
+        "roughness": {
+            "useTexture": false
+        },
+        "specularF0": {
+            "useTexture": false
+        },
+        "uv": {
+            "center": [
+                0.0,
+                1.0
+            ]
+        }
+    }
+}

+ 3 - 0
Materials/decal/airship_symbol_decal.tif

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2252ba28e19432d99e58fa03b672f855e1f520805eda71764e076fe349e1915a
+size 4205906

+ 39 - 0
Materials/decal/airship_tail_01_decal.material

@@ -0,0 +1,39 @@
+{
+    "description": "",
+    "materialType": "Materials\\Types\\StandardPBR.materialtype",
+    "parentMaterial": "",
+    "propertyLayoutVersion": 3,
+    "properties": {
+        "baseColor": {
+            "textureMap": "Materials/decal/airship_tail_01_decal.tif"
+        },
+        "general": {
+            "applySpecularAA": false
+        },
+        "metallic": {
+            "useTexture": false
+        },
+        "normal": {
+            "useTexture": false
+        },
+        "opacity": {
+            "alphaSource": "Split",
+            "doubleSided": true,
+            "factor": 0.6899999976158142,
+            "mode": "Cutout",
+            "textureMap": "Materials/decal/airship_tail_01_decal.tif"
+        },
+        "roughness": {
+            "useTexture": false
+        },
+        "specularF0": {
+            "useTexture": false
+        },
+        "uv": {
+            "center": [
+                0.0,
+                1.0
+            ]
+        }
+    }
+}

+ 3 - 0
Materials/decal/airship_tail_01_decal.tif

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e2d87182f7d991a7459e53bf8eb7be16335b5427badafcac75127f1dde656134
+size 2108728

+ 39 - 0
Materials/decal/airship_tail_02_decal.material

@@ -0,0 +1,39 @@
+{
+    "description": "",
+    "materialType": "Materials\\Types\\StandardPBR.materialtype",
+    "parentMaterial": "",
+    "propertyLayoutVersion": 3,
+    "properties": {
+        "baseColor": {
+            "textureMap": "Materials/decal/airship_tail_02_decal.tif"
+        },
+        "general": {
+            "applySpecularAA": false
+        },
+        "metallic": {
+            "useTexture": false
+        },
+        "normal": {
+            "useTexture": false
+        },
+        "opacity": {
+            "alphaSource": "Split",
+            "doubleSided": true,
+            "factor": 0.6899999976158142,
+            "mode": "Cutout",
+            "textureMap": "Materials/decal/airship_tail_02_decal.tif"
+        },
+        "roughness": {
+            "useTexture": false
+        },
+        "specularF0": {
+            "useTexture": false
+        },
+        "uv": {
+            "center": [
+                0.0,
+                1.0
+            ]
+        }
+    }
+}

+ 3 - 0
Materials/decal/airship_tail_02_decal.tif

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:353f470e4ce8500af4a8927b96431267526d894fb9a62d9060990c26a83c6ae7
+size 2108728

+ 39 - 0
Materials/decal/am_mud_decal.material

@@ -0,0 +1,39 @@
+{
+    "description": "",
+    "materialType": "Materials\\Types\\StandardPBR.materialtype",
+    "parentMaterial": "",
+    "propertyLayoutVersion": 3,
+    "properties": {
+        "baseColor": {
+            "textureMap": "Materials/decal/am_mud_decal.tif"
+        },
+        "general": {
+            "applySpecularAA": false
+        },
+        "metallic": {
+            "useTexture": false
+        },
+        "normal": {
+            "useTexture": false
+        },
+        "opacity": {
+            "alphaSource": "Split",
+            "doubleSided": true,
+            "factor": 0.6899999976158142,
+            "mode": "Cutout",
+            "textureMap": "Materials/decal/am_mud_decal.tif"
+        },
+        "roughness": {
+            "useTexture": false
+        },
+        "specularF0": {
+            "useTexture": false
+        },
+        "uv": {
+            "center": [
+                0.0,
+                1.0
+            ]
+        }
+    }
+}

+ 3 - 0
Materials/decal/am_mud_decal.tif

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a723e43c94f0028161f440b41c70fef7235014be588a4dc3e493e20cb119ce03
+size 16797002

+ 39 - 0
Materials/decal/am_road_dust_decal.material

@@ -0,0 +1,39 @@
+{
+    "description": "",
+    "materialType": "Materials\\Types\\StandardPBR.materialtype",
+    "parentMaterial": "",
+    "propertyLayoutVersion": 3,
+    "properties": {
+        "baseColor": {
+            "textureMap": "Materials/decal/am_road_dust_decal.tif"
+        },
+        "general": {
+            "applySpecularAA": false
+        },
+        "metallic": {
+            "useTexture": false
+        },
+        "normal": {
+            "useTexture": false
+        },
+        "opacity": {
+            "alphaSource": "Split",
+            "doubleSided": true,
+            "factor": 0.6899999976158142,
+            "mode": "Cutout",
+            "textureMap": "Materials/decal/am_road_dust_decal.tif"
+        },
+        "roughness": {
+            "useTexture": false
+        },
+        "specularF0": {
+            "useTexture": false
+        },
+        "uv": {
+            "center": [
+                0.0,
+                1.0
+            ]
+        }
+    }
+}

+ 3 - 0
Materials/decal/am_road_dust_decal.tif

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:39b27265603a94f72750a0544a41e7f23c2f163804eee8191750fbf599df3cf9
+size 33574242

+ 39 - 0
Materials/decal/brushstoke_01_decal.material

@@ -0,0 +1,39 @@
+{
+    "description": "",
+    "materialType": "Materials\\Types\\StandardPBR.materialtype",
+    "parentMaterial": "",
+    "propertyLayoutVersion": 3,
+    "properties": {
+        "baseColor": {
+            "textureMap": "Materials/decal/brushstoke_01_decal.tif"
+        },
+        "general": {
+            "applySpecularAA": false
+        },
+        "metallic": {
+            "useTexture": false
+        },
+        "normal": {
+            "useTexture": false
+        },
+        "opacity": {
+            "alphaSource": "Split",
+            "doubleSided": true,
+            "factor": 0.6899999976158142,
+            "mode": "Cutout",
+            "textureMap": "Materials/decal/brushstoke_01_decal.tif"
+        },
+        "roughness": {
+            "useTexture": false
+        },
+        "specularF0": {
+            "useTexture": false
+        },
+        "uv": {
+            "center": [
+                0.0,
+                1.0
+            ]
+        }
+    }
+}

+ 3 - 0
Materials/decal/brushstoke_01_decal.tif

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4e13fbeda291af395039d4cb45f0eb74e480b444b475b8c77a60bed1205198b7
+size 2101480

+ 39 - 0
Materials/decal/scorch_01_decal.material

@@ -0,0 +1,39 @@
+{
+    "description": "",
+    "materialType": "Materials\\Types\\StandardPBR.materialtype",
+    "parentMaterial": "",
+    "propertyLayoutVersion": 3,
+    "properties": {
+        "baseColor": {
+            "textureMap": "Materials/decal/scorch_01_decal.tif"
+        },
+        "general": {
+            "applySpecularAA": false
+        },
+        "metallic": {
+            "useTexture": false
+        },
+        "normal": {
+            "useTexture": false
+        },
+        "opacity": {
+            "alphaSource": "Split",
+            "doubleSided": true,
+            "factor": 0.6899999976158142,
+            "mode": "Cutout",
+            "textureMap": "Materials/decal/scorch_01_decal.tif"
+        },
+        "roughness": {
+            "useTexture": false
+        },
+        "specularF0": {
+            "useTexture": false
+        },
+        "uv": {
+            "center": [
+                0.0,
+                1.0
+            ]
+        }
+    }
+}

+ 3 - 0
Materials/decal/scorch_01_decal.tif

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:889072da11d2034a0d37ec6ae81b551a61b62d6d602965b0b919a999c56d67e2
+size 16793812

+ 17 - 0
Registry/assets_scan_folders.setreg

@@ -0,0 +1,17 @@
+{
+    "Amazon":
+    {
+        "Gems":
+        {
+            "MultiplayerSample.Assets":
+            {
+                "SourcePaths":
+                [
+                    "Gems/Atom/Tools/MaterialEditor",
+                    "Gems/PhysicsEntities",
+                    "Gems/UiBasics"
+                ]
+            }
+        }
+    }
+}

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików