-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.go
68 lines (52 loc) · 1.68 KB
/
server.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package main
import (
"github.com/awesomegroupidunno/game-server/encoder"
"github.com/awesomegroupidunno/game-server/game"
"github.com/awesomegroupidunno/game-server/network"
"github.com/awesomegroupidunno/game-server/processor"
"github.com/awesomegroupidunno/game-server/state"
"log"
"sync"
)
func main() {
/*
f, err := os.OpenFile("testlogfile", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
//f.Fatalf("error opening file: %v", err)
}
defer f.Close()
log.SetOutput(f)
log.Println("This is a test log entry")
*/
var waiter sync.WaitGroup
waiter.Add(1)
log.Println("Server starting up")
decoder := encoder.JsonEncoderDecoder{}
log.Println("Encoder created")
ackChannel := make(chan state.Ack, 100)
log.Println("Acking channel created")
stateChannel := make(chan state.StateResponse)
log.Println("State channel created")
physics := processor.DefaultPhysics()
log.Println("Default Physics created")
factory := processor.NewFactory(&physics)
log.Println("Command Processor Factory created")
current_state := physics.NewGameState()
gameManager := game.NewManager(current_state, stateChannel, &factory)
log.Println("Gamemanager created")
router := game.CommandRouter{Acks: ackChannel, GameManager: &gameManager}
log.Println("Router created")
receiver := network.UdpReceiver{PortNumber: ":10001",
MaxPacket: 8192,
EncoderDecoder: &decoder,
Router: router,
Acks: ackChannel,
Responses: stateChannel}
log.Println("Udp reciever created")
go gameManager.Start()
log.Println("Gamemanager started")
receiver.Run()
log.Println("Udp reciever running, press ctr+c to shutdown")
waiter.Wait()
log.Println("Shutting down")
}