Files
a301_game_server/Makefile
2026-02-26 17:52:48 +09:00

61 lines
1.5 KiB
Makefile

PROTOC := C:/Users/SSAFY/AppData/Local/Microsoft/WinGet/Packages/Google.Protobuf_Microsoft.Winget.Source_8wekyb3d8bbwe/bin/protoc.exe
GOPATH_BIN := $(shell go env GOPATH)/bin
.PHONY: build run proto proto-unity proto-all clean test testclient
# Build the server binary.
build:
go build -o bin/server.exe ./cmd/server
# Run the server.
run:
go run ./cmd/server -config config/config.yaml
# Generate Go server code from protobuf.
proto:
PATH="$(GOPATH_BIN):$(PATH)" $(PROTOC) \
--go_out=proto/gen/pb \
--go_opt=paths=source_relative \
--proto_path=proto \
proto/messages.proto
# Generate C# Unity client code from protobuf.
proto-unity:
$(PROTOC) \
--csharp_out=./unity/Assets/Scripts/Proto \
--proto_path=./proto \
proto/messages.proto
# Generate both Go and C# at once.
proto-all: proto proto-unity
# Clean build artifacts.
clean:
rm -rf bin/
# Run tests.
test:
go test ./... -v -race
# Run with AOI disabled for comparison.
run-no-aoi:
AOI_ENABLED=false go run ./cmd/server -config config/config.yaml
# Run the WebSocket test client (server must be running).
testclient:
go run ./cmd/testclient
# Run test client with specific scenario (auth|move|combat|metrics|all).
testclient-auth:
go run ./cmd/testclient -scenario auth
testclient-combat:
go run ./cmd/testclient -scenario combat
testclient-metrics:
go run ./cmd/testclient -scenario metrics
# Load test: 10 clients for 15 seconds.
loadtest:
go run ./cmd/testclient -clients 10 -duration 15s