master
Benjamin Kraft 4 years ago
parent 38fad8c94e
commit 0ca94df85c
  1. 2
      Arch/ThreadManager.cs
  2. 21
      Game/GameManager.cs
  3. 2
      Management/Constants.cs
  4. 3
      Management/Server.cs
  5. 3
      Management/ServerHandle.cs
  6. 9
      Program.cs

@ -46,8 +46,6 @@ namespace GameServer.Arch {
public static void MainThread() { public static void MainThread() {
Console.WriteLine($"Main thread started. Running at {Constants.TicksPerSec} ticks per second."); Console.WriteLine($"Main thread started. Running at {Constants.TicksPerSec} ticks per second.");
var nextLoop = DateTime.Now; var nextLoop = DateTime.Now;
Server.Start(50, 26950);
while (IsRunning) while (IsRunning)
while (nextLoop < DateTime.Now) { while (nextLoop < DateTime.Now) {

@ -1,25 +1,32 @@
using GameServer.Management; using System.Collections.Generic;
using GameServer.Management;
namespace GameServer.Game { namespace GameServer.Game {
public class GameManager { public class GameManager {
private Room Room { get; } private Room Room { get; }
private bool IsStarted { get; set; } private Dictionary<int, Player> Players { get; } = new();
public GameManager(Room room) { public GameManager(Room room) {
Room = room; Room = room;
foreach (var client in room.Clients) {
Players.Add(client.Id, new Player(client.Id, client.Name));
}
Start();
} }
public void Start() { public void Start() {
IsStarted = true; foreach (var player in Players.Values) {
player.Start();
}
} }
public void Update() { public void Update() {
if (!IsStarted) foreach (var player in Players.Values) {
return; player.Update();
}
} }
} }

@ -1,6 +1,6 @@
namespace GameServer.Management { namespace GameServer.Management {
public static class Constants { public static class Constants {
public const int TicksPerSec = 64; public const int TicksPerSec = 32;
public const int MsPerTick = 1000 / TicksPerSec; public const int MsPerTick = 1000 / TicksPerSec;
public const int DataBufferSize = 4096; public const int DataBufferSize = 4096;
public const int CountdownSeconds = 2; public const int CountdownSeconds = 2;

@ -1,10 +1,9 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using GameServer.Arch; using GameServer.Arch;
using GameServer.Management;
using GameServer.PacketTypes; using GameServer.PacketTypes;
namespace GameServer { namespace GameServer.Management {
internal static class Server { internal static class Server {
public delegate void PacketHandler(int fromClient, Packet packet); public delegate void PacketHandler(int fromClient, Packet packet);

@ -1,8 +1,7 @@
using System; using System;
using GameServer.Arch; using GameServer.Arch;
using GameServer.Management;
namespace GameServer { namespace GameServer.Management {
public static class ServerHandle { public static class ServerHandle {
public static void WelcomeReceived(int fromClientId, Packet packet) { public static void WelcomeReceived(int fromClientId, Packet packet) {

@ -2,17 +2,20 @@
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using GameServer.Arch; using GameServer.Arch;
using GameServer.Management;
namespace GameServer { namespace GameServer {
internal static class Program { internal static class Program {
private static void Main() { private static void Main() {
Console.Title = "Game Server"; Console.Title = "Game Server";
Console.SetOut(new DatePrefix()); Console.SetOut(new DatePrefix());
ThreadManager.IsRunning = true;
Server.Start(50, 26950);
var mainThread = new Thread(ThreadManager.MainThread); var mainThread = new Thread(ThreadManager.MainThread);
mainThread.Start(); mainThread.Start();
ThreadManager.IsRunning = true;
} }
} }
} }

Loading…
Cancel
Save