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() {
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) {

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

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

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

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

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

Loading…
Cancel
Save