2.6 KiB
2.6 KiB
ENET Gaming Backend
A multiplayer game server written in C# using ENet for networking. Designed to support mutiple of my LÖVE2D game experiments at once.
Architecture
┌─────────────────────────────────────────────────────────────┐
│ LÖVE2D Game Clients │
│ (Fennel/Lua with Love2D Framework) │
└────────────────────────────────┬────────────────────────────┘
│ (UDP via ENet)
│
┌────────────┴────────────┐
│ ENet-CSharp Server │
│ (Multiplayer Backend) │
└────────────┬────────────┘
│
┌────────────┴────────────┐
│ Game State Manager │
│ Session Storage │
│ Player Coordination │
└────────────────────────┘
Technology Stack
- Language: C# (.NET)
- Networking: ENet-CSharp - reliable UDP multiplayer protocol
- Deployment: Docker + Nomad
- Port:
7777(UDP, configurable)
Quick Start
Prerequisites
- .NET 8.0 or later
- ENet-CSharp (vendored or via NuGet)
- Docker (for containerization)
Local Development
cd backend
dotnet build
dotnet run
The server will start and listen on 127.0.0.1:7777 by default.
Testing Connection
With a LÖVE2D client configured to connect to localhost:7777:
love ../two_player_cleaning_game
Configuration
Server behavior is controlled via environment variables:
ENET_HOST=0.0.0.0 # Bind address
ENET_PORT=7777 # UDP port
Resources
Next Steps
- Set up C# project structure
- Integrate ENet-CSharp dependency
- Implement basic server startup
- Define message protocol
- Create player session management
- Build Docker image
- Test Nomad deployment
- Implement game state synchronization