diff --git a/Arch/DatePrefix.cs b/Arch/DatePrefix.cs index a45fc40..3141f34 100644 --- a/Arch/DatePrefix.cs +++ b/Arch/DatePrefix.cs @@ -2,7 +2,7 @@ using System.IO; using System.Text; -namespace GameServer.Arch { +namespace BasicServer.Arch { public class DatePrefix : TextWriter { diff --git a/Arch/Packet.cs b/Arch/Packet.cs index 6544e0c..f34b90a 100644 --- a/Arch/Packet.cs +++ b/Arch/Packet.cs @@ -2,9 +2,9 @@ using System.Collections.Generic; using System.Numerics; using System.Text; -using GameServer.Management; +using BasicServer.Management; -namespace GameServer.Arch { +namespace BasicServer.Arch { public sealed class Packet : IDisposable { private List _buffer; diff --git a/Arch/ProtocolManager.cs b/Arch/ProtocolManager.cs index 8a0922a..fe3ccc4 100644 --- a/Arch/ProtocolManager.cs +++ b/Arch/ProtocolManager.cs @@ -2,9 +2,9 @@ using System.Collections.Generic; using System.Net; using System.Net.Sockets; -using GameServer.Management; +using BasicServer.Management; -namespace GameServer.Arch { +namespace BasicServer.Arch { public static class Listener { private static TcpListener _tcpListener; diff --git a/Arch/SendData.cs b/Arch/SendData.cs index 8bc67d7..3be7748 100644 --- a/Arch/SendData.cs +++ b/Arch/SendData.cs @@ -1,8 +1,8 @@ using System; using System.Linq; -using GameServer.Management; +using BasicServer.Management; -namespace GameServer.Arch { +namespace BasicServer.Arch { public static class SendData { public static void SendTcpData(int toClient, Packet packet) { packet.WriteLength(); diff --git a/Arch/ThreadManager.cs b/Arch/ThreadManager.cs index 7eb02b6..4933b7e 100644 --- a/Arch/ThreadManager.cs +++ b/Arch/ThreadManager.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; -using System.Linq; using System.Threading; -using GameServer.Management; +using BasicServer.Game; +using BasicServer.Management; -namespace GameServer.Arch { +namespace BasicServer.Arch { internal static class ThreadManager { private static readonly List ToExecuteOnMainThread = new(); @@ -46,6 +46,8 @@ namespace GameServer.Arch { public static void MainThread() { Console.WriteLine($"Main thread started. Running at {Constants.TicksPerSec} ticks per second."); var nextLoop = DateTime.Now; + + Server.Start(50, 26950); while (IsRunning) while (nextLoop < DateTime.Now) { @@ -59,8 +61,8 @@ namespace GameServer.Arch { } private static void Tick() { - foreach (var room in Server.Rooms.Values.Where(room => room.Game != null && room.Game.IsRunning)) { - room.Game.Update(); + foreach (var room in Server.Rooms.Values) { + room.Game?.Update(); } UpdateMain(); diff --git a/Game/GameHandle.cs b/Game/GameHandle.cs deleted file mode 100644 index 24234ff..0000000 --- a/Game/GameHandle.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Collections.Generic; -using GameServer.Arch; -using GameServer.Management; -using GameServer.PacketTypes; - -namespace GameServer.Game { - public static class GameHandle { - - public static void Action(int fromClient, Packet packet) { - - } - } -} diff --git a/Game/GameManager.cs b/Game/GameManager.cs index 6c25000..8a0ce0f 100644 --- a/Game/GameManager.cs +++ b/Game/GameManager.cs @@ -1,31 +1,25 @@ -using System.Collections.Generic; -using GameServer.Management; +using BasicServer.Management; -namespace GameServer.Game { +namespace BasicServer.Game { public class GameManager { - public bool IsRunning { get; set; } - private Room Room { get; } - private Dictionary Players { get; } = new(); + + private bool IsStarted { get; set; } public GameManager(Room room) { Room = room; - foreach (var client in room.Clients) { - Players.Add(client.Id, new Player(client.Id, client.Name)); - } } public void Start() { - foreach (var player in Players.Values) { - player.Start(); - } + IsStarted = true; } public void Update() { - foreach (var player in Players.Values) { - player.Update(); - } + if (!IsStarted) + return; + + } } diff --git a/Game/GameSend.cs b/Game/GameSend.cs deleted file mode 100644 index 5dbd577..0000000 --- a/Game/GameSend.cs +++ /dev/null @@ -1,14 +0,0 @@ -using GameServer.Arch; -using GameServer.Management; -using GameServer.PacketTypes; -using static GameServer.Arch.SendData; - -namespace GameServer.Game { - public static class GameSend { - - private static Packet CreatePacket(ServerGamePacket type) { - return new((int)PacketType.Game, (int)type); - } - - } -} diff --git a/Game/Player.cs b/Game/Player.cs index c6ee82b..dc2b8d8 100644 --- a/Game/Player.cs +++ b/Game/Player.cs @@ -1,4 +1,4 @@ -namespace GameServer.Game { +namespace BasicServer.Game { public class Player { public int Id { get; } diff --git a/Management/Client.cs b/Management/Client.cs index 0a2cccc..e482d14 100644 --- a/Management/Client.cs +++ b/Management/Client.cs @@ -1,8 +1,9 @@ using System; -using GameServer.Arch; -using GameServer.Game; +using BasicServer.Arch; +using BasicServer.Game; +using GameServer.Management; -namespace GameServer.Management { +namespace BasicServer.Management { public class Client { public readonly int Id; diff --git a/Management/Constants.cs b/Management/Constants.cs index 4e6132e..0a6a1ec 100644 --- a/Management/Constants.cs +++ b/Management/Constants.cs @@ -1,6 +1,6 @@ -namespace GameServer.Management { +namespace BasicServer.Management { public static class Constants { - public const int TicksPerSec = 32; + public const int TicksPerSec = 64; public const int MsPerTick = 1000 / TicksPerSec; public const int DataBufferSize = 4096; public const int CountdownSeconds = 2; diff --git a/Management/Room.cs b/Management/Room.cs index e1e0ea7..bfa2009 100644 --- a/Management/Room.cs +++ b/Management/Room.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; -using GameServer.Game; +using BasicServer.Game; -namespace GameServer.Management { +namespace BasicServer.Management { public class Room { public class ClientProperties { @@ -25,7 +25,6 @@ namespace GameServer.Management { public void StartGame() { Game = new GameManager(this); - Game.Start(); } public readonly Dictionary ClientPropertiesMap = new(); diff --git a/Management/RoomHandle.cs b/Management/RoomHandle.cs index 53753f3..0befb65 100644 --- a/Management/RoomHandle.cs +++ b/Management/RoomHandle.cs @@ -1,5 +1,7 @@ using System; -using GameServer.Arch; +using BasicServer; +using BasicServer.Arch; +using BasicServer.Management; namespace GameServer.Management { public static class RoomHandle { diff --git a/Management/RoomSend.cs b/Management/RoomSend.cs index c19a64c..dc757b8 100644 --- a/Management/RoomSend.cs +++ b/Management/RoomSend.cs @@ -1,11 +1,10 @@ using System; +using BasicServer.Arch; +using BasicServer.PacketTypes; +using static BasicServer.Arch.SendData; +using static BasicServer.PacketTypes.ServerRoomPacket; -using GameServer.Arch; -using GameServer.PacketTypes; -using static GameServer.Arch.SendData; -using static GameServer.PacketTypes.ServerRoomPacket; - -namespace GameServer.Management { +namespace BasicServer.Management { public static class RoomSend { private static Packet CreatePacket(ServerRoomPacket type) { return new((int)PacketType.Room, (int)type); diff --git a/Management/Server.cs b/Management/Server.cs index c9044f0..9562e29 100644 --- a/Management/Server.cs +++ b/Management/Server.cs @@ -1,10 +1,11 @@ using System; using System.Collections.Generic; -using GameServer.Arch; -using GameServer.Game; -using GameServer.PacketTypes; +using BasicServer.Arch; +using BasicServer.Management; +using BasicServer.PacketTypes; +using GameServer.Management; -namespace GameServer.Management { +namespace BasicServer { internal static class Server { public delegate void PacketHandler(int fromClient, Packet packet); @@ -47,9 +48,6 @@ namespace GameServer.Management { {(int)ClientRoomPacket.RReady, RoomHandle.RoomReady}, {(int)ClientRoomPacket.RColor, RoomHandle.RoomColor}, {(int)ClientRoomPacket.RStart, RoomHandle.RoomStart}, - }}, - {(int)PacketType.Game, new Dictionary { - {(int)ClientGamePacket.Action, GameHandle.Action} }} }; diff --git a/Management/ServerHandle.cs b/Management/ServerHandle.cs index b14e466..4c71d7e 100644 --- a/Management/ServerHandle.cs +++ b/Management/ServerHandle.cs @@ -1,7 +1,8 @@ using System; -using GameServer.Arch; +using BasicServer.Arch; +using BasicServer.Management; -namespace GameServer.Management { +namespace BasicServer { public static class ServerHandle { public static void WelcomeReceived(int fromClientId, Packet packet) { diff --git a/Management/ServerSend.cs b/Management/ServerSend.cs index ff5ec25..03084c5 100644 --- a/Management/ServerSend.cs +++ b/Management/ServerSend.cs @@ -1,7 +1,7 @@ -using GameServer.Arch; -using GameServer.PacketTypes; -using static GameServer.Arch.SendData; -using static GameServer.PacketTypes.ServerDefaultPacket; +using BasicServer.Arch; +using BasicServer.PacketTypes; +using static BasicServer.Arch.SendData; +using static BasicServer.PacketTypes.ServerDefaultPacket; namespace GameServer.Management { internal static class ServerSend { diff --git a/PacketTypes/ClientDefaultPacket.cs b/PacketTypes/ClientDefaultPacket.cs index 949a2fa..ce43d4c 100644 --- a/PacketTypes/ClientDefaultPacket.cs +++ b/PacketTypes/ClientDefaultPacket.cs @@ -1,4 +1,4 @@ -namespace GameServer.PacketTypes { +namespace BasicServer.PacketTypes { public enum ClientDefaultPacket { DWelcomeReceived = 1, } diff --git a/PacketTypes/ClientGamePacket.cs b/PacketTypes/ClientGamePacket.cs index c1497c4..8a0e547 100644 --- a/PacketTypes/ClientGamePacket.cs +++ b/PacketTypes/ClientGamePacket.cs @@ -1,5 +1,5 @@ -namespace GameServer.PacketTypes { +namespace BasicServer.PacketTypes { public enum ClientGamePacket { - Action, + } } diff --git a/PacketTypes/ClientRoomPacket.cs b/PacketTypes/ClientRoomPacket.cs index bbe74b6..bc841c6 100644 --- a/PacketTypes/ClientRoomPacket.cs +++ b/PacketTypes/ClientRoomPacket.cs @@ -1,4 +1,4 @@ -namespace GameServer.PacketTypes { +namespace BasicServer.PacketTypes { public enum ClientRoomPacket { RList = 1, RCreate, diff --git a/PacketTypes/PacketType.cs b/PacketTypes/PacketType.cs index dbec81a..91eb51d 100644 --- a/PacketTypes/PacketType.cs +++ b/PacketTypes/PacketType.cs @@ -1,4 +1,4 @@ -namespace GameServer.PacketTypes { +namespace BasicServer.PacketTypes { public enum PacketType { Default = 1, Room, diff --git a/PacketTypes/ServerDefaultPacket.cs b/PacketTypes/ServerDefaultPacket.cs index ac4b9db..e7757ab 100644 --- a/PacketTypes/ServerDefaultPacket.cs +++ b/PacketTypes/ServerDefaultPacket.cs @@ -1,4 +1,4 @@ -namespace GameServer.PacketTypes { +namespace BasicServer.PacketTypes { public enum ServerDefaultPacket { DWelcome = 1, } diff --git a/PacketTypes/ServerGamePacket.cs b/PacketTypes/ServerGamePacket.cs index 69da03b..5a07edd 100644 --- a/PacketTypes/ServerGamePacket.cs +++ b/PacketTypes/ServerGamePacket.cs @@ -1,4 +1,4 @@ -namespace GameServer.PacketTypes { +namespace BasicServer.PacketTypes { public enum ServerGamePacket { } diff --git a/PacketTypes/ServerRoomPacket.cs b/PacketTypes/ServerRoomPacket.cs index 9c073af..95cfd53 100644 --- a/PacketTypes/ServerRoomPacket.cs +++ b/PacketTypes/ServerRoomPacket.cs @@ -1,4 +1,4 @@ -namespace GameServer.PacketTypes { +namespace BasicServer.PacketTypes { public enum ServerRoomPacket { RList = 1, RCreated, diff --git a/Program.cs b/Program.cs index bb00c2b..636d0c8 100644 --- a/Program.cs +++ b/Program.cs @@ -1,19 +1,18 @@ using System; using System.Threading; -using GameServer.Arch; -using GameServer.Management; +using System.Threading.Tasks; +using BasicServer.Arch; -namespace GameServer { +namespace BasicServer { internal static class Program { private static void Main() { Console.Title = "Game Server"; Console.SetOut(new DatePrefix()); - - Server.Start(50, 26950); - - ThreadManager.IsRunning = true; + var mainThread = new Thread(ThreadManager.MainThread); mainThread.Start(); + + ThreadManager.IsRunning = true; } } }