Private
Public Access
1
0

Introduce core components for "Escape From Teacher" game: server, client, physics, asset system, and protocol definitions. Add Docker-Compose setup for Redis and NATS infrastructure.

This commit is contained in:
Sebastian Unterschütz
2026-01-01 15:21:18 +01:00
commit 3099ac42c0
9 changed files with 1384 additions and 0 deletions

32
pkg/stream/adapter.go Normal file
View File

@@ -0,0 +1,32 @@
package stream
import (
"log"
"github.com/nats-io/nats.go"
)
// Connect verbindet uns mit dem NATS Cluster (oder lokalem Docker Container)
func Connect(url string) (*nats.Conn, error) {
// Default auf localhost, wenn leer
if url == "" {
url = nats.DefaultURL
}
nc, err := nats.Connect(url)
if err != nil {
return nil, err
}
log.Printf("🔌 Verbunden mit NATS unter %s", url)
return nc, nil
}
// Helper Konstanten für unsere Topic-Struktur
const (
// Topic: game.<RoomID>.input -> Client sendet Tasten
SubjectGameInput = "game.%s.input"
// Topic: game.<RoomID>.state -> Server sendet Positionen
SubjectGameState = "game.%s.state"
)