Skip to content

Commit

Permalink
Update Riptide to v1.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
tom-weiland committed Jan 27, 2022
1 parent ed2e687 commit 9252901
Show file tree
Hide file tree
Showing 14 changed files with 44 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
using Steamworks;
using UnityEngine;

namespace RiptideNetworking.Demos.SteamTransport.PlayerHosted
namespace RiptideDemos.SteamTransport.PlayerHosted
{
public class LobbyManager : MonoBehaviour
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@
// Copyright (c) 2021 Tom Weiland
// For additional information please see the included LICENSE.md file or view it on GitHub: https://github.com/tom-weiland/RiptideSteamTransport/blob/main/LICENSE.md

using RiptideNetworking;
using RiptideNetworking.Transports.SteamTransport;
using RiptideNetworking.Utils;
using System;
using UnityEngine;

namespace RiptideNetworking.Demos.SteamTransport.PlayerHosted
namespace RiptideDemos.SteamTransport.PlayerHosted
{
public enum ServerToClientId : ushort
{
Expand Down Expand Up @@ -88,8 +89,7 @@ private void FixedUpdate()
if (Server.IsRunning)
Server.Tick();

if (Client.IsConnected)
Client.Tick();
Client.Tick();
}

private void OnApplicationQuit()
Expand Down Expand Up @@ -135,7 +135,7 @@ private void ServerPlayerLeft(object sender, ClientDisconnectedEventArgs e)

private void DidConnect(object sender, EventArgs e)
{
Message message = Message.Create(MessageSendMode.reliable, (ushort)ClientToServerId.playerName);
Message message = Message.Create(MessageSendMode.reliable, ClientToServerId.playerName);
message.Add(Steamworks.SteamFriends.GetPersonaName());
Client.Send(message);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

using UnityEngine;

namespace RiptideNetworking.Demos.SteamTransport.PlayerHosted
namespace RiptideDemos.SteamTransport.PlayerHosted
{
public class CameraController : MonoBehaviour
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@
// Copyright (c) 2021 Tom Weiland
// For additional information please see the included LICENSE.md file or view it on GitHub: https://github.com/tom-weiland/RiptideSteamTransport/blob/main/LICENSE.md

using RiptideNetworking;
using System.Collections.Generic;
using UnityEngine;

namespace RiptideNetworking.Demos.SteamTransport.PlayerHosted
namespace RiptideDemos.SteamTransport.PlayerHosted
{
public class ClientPlayer : MonoBehaviour
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
// Copyright (c) 2021 Tom Weiland
// For additional information please see the included LICENSE.md file or view it on GitHub: https://github.com/tom-weiland/RiptideSteamTransport/blob/main/LICENSE.md

using RiptideNetworking;
using UnityEngine;

namespace RiptideNetworking.Demos.SteamTransport.PlayerHosted
namespace RiptideDemos.SteamTransport.PlayerHosted
{
public class PlayerInput : MonoBehaviour
{
Expand Down Expand Up @@ -48,7 +49,7 @@ private void FixedUpdate()
#region Messages
private void SendInput()
{
Message message = Message.Create(MessageSendMode.unreliable, (ushort)ClientToServerId.playerInput);
Message message = Message.Create(MessageSendMode.unreliable, ClientToServerId.playerInput);
message.Add(inputs, false);
message.Add(camTransform.forward);
NetworkManager.Singleton.Client.Send(message);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
// Copyright (c) 2021 Tom Weiland
// For additional information please see the included LICENSE.md file or view it on GitHub: https://github.com/tom-weiland/RiptideSteamTransport/blob/main/LICENSE.md

using RiptideNetworking;
using UnityEngine;

namespace RiptideNetworking.Demos.SteamTransport.PlayerHosted
namespace RiptideDemos.SteamTransport.PlayerHosted
{
[RequireComponent(typeof(CharacterController))]
public class PlayerMovement : MonoBehaviour
Expand Down Expand Up @@ -77,7 +78,7 @@ private void Move(Vector2 inputDirection)
#region Messages
private void SendMovement()
{
Message message = Message.Create(MessageSendMode.unreliable, (ushort)ServerToClientId.playerMovement);
Message message = Message.Create(MessageSendMode.unreliable, ServerToClientId.playerMovement);
message.Add(player.Id);
message.Add(transform.position);
message.Add(transform.forward);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using UnityEngine;
using UnityEngine.UI;

namespace RiptideNetworking.Demos.SteamTransport.PlayerHosted
namespace RiptideDemos.SteamTransport.PlayerHosted
{
internal class PlayerUIManager : MonoBehaviour
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@
// Copyright (c) 2021 Tom Weiland
// For additional information please see the included LICENSE.md file or view it on GitHub: https://github.com/tom-weiland/RiptideSteamTransport/blob/main/LICENSE.md

using RiptideNetworking;
using System.Collections.Generic;
using UnityEngine;

namespace RiptideNetworking.Demos.SteamTransport.PlayerHosted
namespace RiptideDemos.SteamTransport.PlayerHosted
{
[RequireComponent(typeof(PlayerMovement))]
public class ServerPlayer : MonoBehaviour
Expand Down Expand Up @@ -51,12 +52,12 @@ public static void Spawn(ushort id, string username)
/// <param name="toClient">The client to send the message to.</param>
public void SendSpawn(ushort toClient)
{
NetworkManager.Singleton.Server.Send(GetSpawnData(Message.Create(MessageSendMode.reliable, (ushort)ServerToClientId.spawnPlayer)), toClient);
NetworkManager.Singleton.Server.Send(GetSpawnData(Message.Create(MessageSendMode.reliable, ServerToClientId.spawnPlayer)), toClient);
}
/// <summary>Sends a player's info to all clients.</summary>
private void SendSpawn()
{
NetworkManager.Singleton.Server.SendToAll(GetSpawnData(Message.Create(MessageSendMode.reliable, (ushort)ServerToClientId.spawnPlayer)));
NetworkManager.Singleton.Server.SendToAll(GetSpawnData(Message.Create(MessageSendMode.reliable, ServerToClientId.spawnPlayer)));
}

private Message GetSpawnData(Message message)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
using UnityEngine;
using UnityEngine.UI;

namespace RiptideNetworking.Demos.SteamTransport.PlayerHosted
namespace RiptideDemos.SteamTransport.PlayerHosted
{
public class UIManager : MonoBehaviour
{
Expand Down
7 changes: 5 additions & 2 deletions Assets/RiptideSteamTransport/Transport/SteamClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,11 @@ public void ChangeLocalServer(SteamServer newLocalServer)

/// <inheritdoc/>
/// <remarks>Expects the host address to consist of a Steam ID (<see cref="ulong"/>).</remarks>
public void Connect(string hostAddress)
public void Connect(string hostAddress, Message message)
{
if (message != null)
RiptideLogger.Log(LogType.error, $"The Steam transport does not support including custom data in connection attempts! Use the {nameof(Client.Connected)} event to send a message instead."); // TODO: maybe revisit this?

try
{
#if UNITY_SERVER
Expand Down Expand Up @@ -283,7 +286,7 @@ private void HandleWelcome(Message message)
/// <summary>Sends a welcome (received) message.</summary>
private void SendWelcomeReceived()
{
Message message = Message.Create(HeaderType.welcome);
Message message = MessageExtensionsTransports.Create(HeaderType.welcome);
message.Add(Id);

Send(message);
Expand Down
10 changes: 6 additions & 4 deletions Assets/RiptideSteamTransport/Transport/SteamCommon.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ protected SteamCommon(string logName)

protected EResult SteamSend(Message message, HSteamNetConnection connection)
{
byte[] data = new byte[message.WrittenLength]; // TODO: do something about this allocation?
byte[] data = new byte[message.WrittenLength]; // TODO: is this allocation even necessary?
Array.Copy(message.Bytes, data, data.Length);

GCHandle pinnedArray = GCHandle.Alloc(data, GCHandleType.Pinned);
Expand All @@ -44,17 +44,19 @@ protected Message SteamProcessMessage(IntPtr ptrs, out HeaderType messageHeader)
{
SteamNetworkingMessage_t data = Marshal.PtrToStructure<SteamNetworkingMessage_t>(ptrs);

Message message = Message.Create();
Message message = MessageExtensionsTransports.CreateRaw();
if (data.m_cbSize > message.Bytes.Length)
{
RiptideLogger.Log(LogType.warning, LogName, $"Can't fully handle {data.m_cbSize} bytes because it exceeds the maximum of {message.Bytes.Length}, message will contain incomplete data!");
Marshal.Copy(data.m_pData, message.Bytes, 0, message.Bytes.Length);
messageHeader = message.PrepareForUse((ushort)message.Bytes.Length);
messageHeader = (HeaderType)message.Bytes[0];
message.PrepareForUse(messageHeader, (ushort)message.Bytes.Length);
}
else
{
Marshal.Copy(data.m_pData, message.Bytes, 0, data.m_cbSize);
messageHeader = message.PrepareForUse((ushort)data.m_cbSize);
messageHeader = (HeaderType)message.Bytes[0];
message.PrepareForUse(messageHeader, (ushort)message.Bytes.Length);
}

SteamNetworkingMessage_t.Release(ptrs);
Expand Down
2 changes: 1 addition & 1 deletion Assets/RiptideSteamTransport/Transport/SteamConnection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ internal void Disconnect()
/// <summary>Sends a welcome message.</summary>
internal void SendWelcome()
{
Message message = Message.Create(HeaderType.welcome);
Message message = MessageExtensionsTransports.Create(HeaderType.welcome);
message.Add(Id);

server.Send(message, this);
Expand Down
14 changes: 11 additions & 3 deletions Assets/RiptideSteamTransport/Transport/SteamServer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ public class SteamServer : SteamCommon, IServer
/// <inheritdoc/>
public IConnectionInfo[] Clients => clients.Values.ToArray();
/// <inheritdoc/>
public bool AllowAutoMessageRelay { get; set; } = false;

/// <summary>Currently connected clients, accessible by their endpoints or numeric ID.</summary>
private DoubleKeyDictionary<ushort, CSteamID, SteamConnection> clients;
Expand Down Expand Up @@ -117,7 +118,7 @@ internal void NewClientConnected(CSteamID steamId, HSteamNetConnection connectio
ushort id = GetAvailableClientId();
SteamConnection steamConnection = new SteamConnection(this, steamId, id, connection);
clients.Add(id, steamId, steamConnection);
OnClientConnected(steamConnection.SteamId, new ServerClientConnectedEventArgs(steamConnection));
OnClientConnected(steamConnection.SteamId, new ServerClientConnectedEventArgs(steamConnection, null));
}

/// <inheritdoc/>
Expand Down Expand Up @@ -145,6 +146,13 @@ private void HandleMessages()
case HeaderType.reliable:
OnMessageReceived(new ServerMessageReceivedEventArgs(client.Id, message.GetUShort(), message));
break;
case HeaderType.unreliableAutoRelay:
case HeaderType.reliableAutoRelay:
if (AllowAutoMessageRelay)
SendToAll(message, client.Id, false);
else
OnMessageReceived(new ServerMessageReceivedEventArgs(client.Id, message.GetUShort(), message));
break;

case HeaderType.welcome:
client.HandleWelcomeReceived(message);
Expand Down Expand Up @@ -278,7 +286,7 @@ private void SendClientConnected(CSteamID clientSteamId, ushort id)
if (clients.Count <= 1)
return; // We don't send this to the newly connected client anyways, so don't even bother creating a message if he is the only one connected

Message message = Message.Create(HeaderType.clientConnected);
Message message = MessageExtensionsTransports.Create(HeaderType.clientConnected);
message.Add(id);

foreach (SteamConnection client in clients.Values)
Expand All @@ -294,7 +302,7 @@ private void SendClientConnected(CSteamID clientSteamId, ushort id)
/// <param name="id">The numeric ID of the client that disconnected.</param>
private void SendClientDisconnected(ushort id)
{
Message message = Message.Create(HeaderType.clientDisconnected);
Message message = MessageExtensionsTransports.Create(HeaderType.clientDisconnected);
message.Add(id);

foreach (SteamConnection client in clients.Values)
Expand Down
2 changes: 1 addition & 1 deletion Packages/packages-lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@
"depth": 0,
"source": "git",
"dependencies": {},
"hash": "efee715b74e5200ab7343747cbc7e7336c6c8174"
"hash": "b063398f96faa068534d3e1ea7591ae9a6f0080d"
},
"com.unity.modules.ai": {
"version": "1.0.0",
Expand Down

0 comments on commit 9252901

Please sign in to comment.