diff --git a/Assets/AddressableAssetsData/Windows/addressables_content_state.bin b/Assets/AddressableAssetsData/Windows/addressables_content_state.bin index 3341729..515c8c4 100644 Binary files a/Assets/AddressableAssetsData/Windows/addressables_content_state.bin and b/Assets/AddressableAssetsData/Windows/addressables_content_state.bin differ diff --git a/Assets/RebootKit b/Assets/RebootKit index 1054061..a0a0f63 160000 --- a/Assets/RebootKit +++ b/Assets/RebootKit @@ -1 +1 @@ -Subproject commit 1054061d915b717aea7ddab7310ba72b7e0922f2 +Subproject commit a0a0f6303d84a0d5949dcc01fb4775a5f35a9ad9 diff --git a/Assets/jelycho/Code/ActorSpawner.cs b/Assets/jelycho/Code/ActorSpawner.cs index 72c0f3e..b3024c3 100644 --- a/Assets/jelycho/Code/ActorSpawner.cs +++ b/Assets/jelycho/Code/ActorSpawner.cs @@ -21,8 +21,10 @@ namespace RebootReality.jelycho { base.OnActorCommandServer(actorCommand); if (actorCommand.CommandID == (ushort) ActorSpawnerCommands.SpawnActor) { - (Vector3 spawnPoint, Quaternion spawnRotation) = GetSpawnPoint(); - RR.SpawnActor(m_ActorPrefabReference, spawnPoint, spawnRotation); + for (int i = 0; i < 200; ++i) { + (Vector3 spawnPoint, Quaternion spawnRotation) = GetSpawnPoint(); + RR.SpawnActor(m_ActorPrefabReference, spawnPoint, spawnRotation); + } } } diff --git a/Assets/jelycho/Code/Beacons/BaseManagerActor.cs b/Assets/jelycho/Code/Beacons/BaseManagerActor.cs index 9bdad5a..8076698 100644 --- a/Assets/jelycho/Code/Beacons/BaseManagerActor.cs +++ b/Assets/jelycho/Code/Beacons/BaseManagerActor.cs @@ -1,4 +1,5 @@ using RebootKit.Engine.Main; +using RebootKit.Engine.Network; using RebootKit.Engine.Simulation; using Unity.Netcode; using UnityEngine; @@ -6,10 +7,14 @@ using UnityEngine.AddressableAssets; namespace RebootReality.jelycho.Beacons { public class BaseManagerActorData : IActorData { - public void Serialize(FastBufferWriter writer) { + public void Serialize(NetworkBufferWriter writer) { } - public void Deserialize(FastBufferReader reader) { + public void Deserialize(NetworkBufferReader reader) { + } + + public int GetMaxBytes() { + return 0; } } @@ -21,12 +26,16 @@ namespace RebootReality.jelycho.Beacons { public struct SpawnBeaconCommandData : ISerializableEntity { public Vector3 Position; - public void Serialize(FastBufferWriter writer) { - writer.WriteValue(Position); + public void Serialize(NetworkBufferWriter writer) { + writer.Write(Position); } - public void Deserialize(FastBufferReader reader) { - reader.ReadValue(out Position); + public void Deserialize(NetworkBufferReader reader) { + reader.Read(out Position); + } + + public int GetMaxBytes() { + return 0; } } diff --git a/Assets/jelycho/Code/Enemies/ZombieActor.cs b/Assets/jelycho/Code/Enemies/ZombieActor.cs index 6f144fa..eb6f592 100644 --- a/Assets/jelycho/Code/Enemies/ZombieActor.cs +++ b/Assets/jelycho/Code/Enemies/ZombieActor.cs @@ -1,13 +1,17 @@ -using RebootKit.Engine.Simulation; -using Unity.Netcode; +using RebootKit.Engine.Network; +using RebootKit.Engine.Simulation; using UnityEngine; namespace RebootReality.jelycho.Enemies { public class ZombieActorData : IActorData { - public void Serialize(FastBufferWriter writer) { + public void Serialize(NetworkBufferWriter writer) { } - public void Deserialize(FastBufferReader reader) { + public void Deserialize(NetworkBufferReader reader) { + } + + public int GetMaxBytes() { + return 0; } } diff --git a/Assets/jelycho/Code/Items/ItemActor.cs b/Assets/jelycho/Code/Items/ItemActor.cs index 1c9f528..45b7f89 100644 --- a/Assets/jelycho/Code/Items/ItemActor.cs +++ b/Assets/jelycho/Code/Items/ItemActor.cs @@ -1,4 +1,5 @@ using HighlightPlus; +using RebootKit.Engine.Network; using RebootKit.Engine.Simulation; using Unity.Netcode; using UnityEngine; @@ -11,8 +12,12 @@ namespace RebootReality.jelycho.Items { class ItemActorData : IActorData { public ItemConfig Config; - public void Serialize(FastBufferWriter writer) { } - public void Deserialize(FastBufferReader reader) { } + public void Serialize(NetworkBufferWriter writer) { } + public void Deserialize(NetworkBufferReader reader) { } + + public int GetMaxBytes() { + return 0; + } } [field: SerializeField] public ItemConfig Config { get; private set; } diff --git a/Assets/jelycho/Code/Items/WorkbenchActor.cs b/Assets/jelycho/Code/Items/WorkbenchActor.cs index d21ee10..95f60f3 100644 --- a/Assets/jelycho/Code/Items/WorkbenchActor.cs +++ b/Assets/jelycho/Code/Items/WorkbenchActor.cs @@ -1,5 +1,6 @@ using System.Globalization; using RebootKit.Engine.Main; +using RebootKit.Engine.Network; using RebootKit.Engine.Simulation; using TMPro; using Unity.Netcode; @@ -11,12 +12,16 @@ namespace RebootReality.jelycho.Items { class WorkbenchActorData : IActorData { public int SelectedRecipeIndex; - public void Serialize(FastBufferWriter writer) { - writer.WriteValue(SelectedRecipeIndex); + public void Serialize(NetworkBufferWriter writer) { + writer.Write(SelectedRecipeIndex); } - public void Deserialize(FastBufferReader reader) { - reader.ReadValue(out SelectedRecipeIndex); + public void Deserialize(NetworkBufferReader reader) { + reader.Read(out SelectedRecipeIndex); + } + + public int GetMaxBytes() { + return sizeof(int); } } diff --git a/Assets/jelycho/Code/Player/PlayerActor.cs b/Assets/jelycho/Code/Player/PlayerActor.cs index b071912..4d1bade 100755 --- a/Assets/jelycho/Code/Player/PlayerActor.cs +++ b/Assets/jelycho/Code/Player/PlayerActor.cs @@ -2,6 +2,7 @@ using RebootKit.Engine.Extensions; using RebootKit.Engine.Foundation; using RebootKit.Engine.Main; +using RebootKit.Engine.Network; using RebootKit.Engine.Simulation; using RebootKit.Engine.Simulation.Sensors; using RebootReality.jelycho.Items; @@ -145,7 +146,7 @@ namespace RebootReality.jelycho.Player { m_SyncRemoteStateTimer -= deltaTime; if (m_SyncRemoteStateTimer <= 0.0f) { - m_SyncRemoteStateTimer = 1.0f / RR.TickRate.IndexValue; + m_SyncRemoteStateTimer = 1.0f / NetworkSystem.TickRate.IndexValue; RemotePlayerActorState remoteState = new RemotePlayerActorState { Position = transform.position, @@ -672,9 +673,13 @@ namespace RebootReality.jelycho.Player { } public class PlayerActorData : IActorData { - public void Serialize(FastBufferWriter writer) { } + public void Serialize(NetworkBufferWriter writer) { } - public void Deserialize(FastBufferReader reader) { } + public void Deserialize(NetworkBufferReader reader) { } + + public int GetMaxBytes() { + return 0; + } } public struct RemotePlayerActorState : IActorData { @@ -684,20 +689,27 @@ namespace RebootReality.jelycho.Player { public float LookYaw; public bool IsGrounded; - public void Serialize(FastBufferWriter writer) { - writer.WriteValue(Position); - writer.WriteValue(Velocity); - writer.WriteValue(LookPitch); - writer.WriteValue(LookYaw); - writer.WriteValue(IsGrounded); + public void Serialize(NetworkBufferWriter writer) { + writer.Write(Position); + writer.Write(Velocity); + writer.Write(LookPitch); + writer.Write(LookYaw); + writer.Write(IsGrounded); } - public void Deserialize(FastBufferReader reader) { - reader.ReadValue(out Position); - reader.ReadValue(out Velocity); - reader.ReadValue(out LookPitch); - reader.ReadValue(out LookYaw); - reader.ReadValue(out IsGrounded); + public void Deserialize(NetworkBufferReader reader) { + reader.Read(out Position); + reader.Read(out Velocity); + reader.Read(out LookPitch); + reader.Read(out LookYaw); + reader.Read(out IsGrounded); + } + + public int GetMaxBytes() { + return sizeof(float) * 3 + // Position; + sizeof(float) * 3 + // Velocity + sizeof(float) * 2 + // LookPitch, LookYaw + sizeof(bool); // IsGrounded } } @@ -714,12 +726,16 @@ namespace RebootReality.jelycho.Player { struct PlayerActorPickupItemCommand : IActorData { public ulong ItemActorID; - public void Serialize(FastBufferWriter writer) { - writer.WriteValue(ItemActorID); + public void Serialize(NetworkBufferWriter writer) { + writer.Write(ItemActorID); } - public void Deserialize(FastBufferReader reader) { - reader.ReadValue(out ItemActorID); + public void Deserialize(NetworkBufferReader reader) { + reader.Read(out ItemActorID); + } + + public int GetMaxBytes() { + return sizeof(ulong); // ItemActorID } } @@ -727,38 +743,50 @@ namespace RebootReality.jelycho.Player { public int InventorySlotIndex; public int Count; - public void Serialize(FastBufferWriter writer) { - writer.WriteValue(InventorySlotIndex); - writer.WriteValue(Count); + public void Serialize(NetworkBufferWriter writer) { + writer.Write(InventorySlotIndex); + writer.Write(Count); } - public void Deserialize(FastBufferReader reader) { - reader.ReadValue(out InventorySlotIndex); - reader.ReadValue(out Count); + public void Deserialize(NetworkBufferReader reader) { + reader.Read(out InventorySlotIndex); + reader.Read(out Count); + } + + public int GetMaxBytes() { + return sizeof(int) * 2; // InventorySlotIndex, Count } } struct PlayerActorEquipItemCommand : IActorData { public int InventorySlotIndex; - public void Serialize(FastBufferWriter writer) { - writer.WriteValue(InventorySlotIndex); + public void Serialize(NetworkBufferWriter writer) { + writer.Write(InventorySlotIndex); } - public void Deserialize(FastBufferReader reader) { - reader.ReadValue(out InventorySlotIndex); + public void Deserialize(NetworkBufferReader reader) { + reader.Read(out InventorySlotIndex); + } + + public int GetMaxBytes() { + return sizeof(int); // InventorySlotIndex } } struct PlayerActorSelectItemSlotCommand : IActorData { public int SlotIndex; - public void Serialize(FastBufferWriter writer) { - writer.WriteValue(SlotIndex); + public void Serialize(NetworkBufferWriter writer) { + writer.Write(SlotIndex); } - public void Deserialize(FastBufferReader reader) { - reader.ReadValue(out SlotIndex); + public void Deserialize(NetworkBufferReader reader) { + reader.Read(out SlotIndex); + } + + public int GetMaxBytes() { + return sizeof(int); // SlotIndex } } @@ -772,12 +800,16 @@ namespace RebootReality.jelycho.Player { struct PlayerActorPrimaryEquippedItemChangedEvent : IActorData { public ulong ItemActorID; - public void Serialize(FastBufferWriter writer) { - writer.WriteValue(ItemActorID); + public void Serialize(NetworkBufferWriter writer) { + writer.Write(ItemActorID); } - public void Deserialize(FastBufferReader reader) { - reader.ReadValue(out ItemActorID); + public void Deserialize(NetworkBufferReader reader) { + reader.Read(out ItemActorID); + } + + public int GetMaxBytes() { + return sizeof(ulong); // ItemActorID } } } \ No newline at end of file diff --git a/Assets/jelycho/Code/Player/PlayerController.cs b/Assets/jelycho/Code/Player/PlayerController.cs index 84fc759..ba526e5 100755 --- a/Assets/jelycho/Code/Player/PlayerController.cs +++ b/Assets/jelycho/Code/Player/PlayerController.cs @@ -2,6 +2,7 @@ using R3; using RebootKit.Engine.Foundation; using RebootKit.Engine.Main; +using RebootKit.Engine.Network; using RebootKit.Engine.Simulation; using RebootReality.jelycho.Player.HUD; using Unity.Mathematics; diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index a33cbe0..02e73c2 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -828,7 +828,7 @@ PlayerSettings: webGLCloseOnQuit: 0 webWasm2023: 0 scriptingDefineSymbols: - Standalone: RR_DEBUG + Standalone: RR_DEBUG;RR_STEAM additionalCompilerArguments: {} platformArchitecture: {} scriptingBackend: