# GoonScape A multiplayer isometric game inspired by Oldschool RuneScape, built with Go and Raylib. ![GoonScape Screenshot](resources/screenshot.png) ## Features - 3D isometric world with height-mapped terrain - Multiplayer support with client-server architecture - Pathfinding and click-to-move navigation - Global chat system with floating messages - Multiple character models - Background music ## Prerequisites - Go 1.23 or higher - Raylib dependencies (see [raylib-go](https://github.com/gen2brain/raylib-go#requirements)) ## Installation 1. Clone the repository: ```bash git clone https://gitea.boner.be/bdnugget/goonscape.git cd goonscape ``` 2. Install dependencies: ```bash go mod tidy ``` 3. Build and run: ```bash go run main.go ``` ## Controls - **Mouse Click**: Move to location - **T**: Open chat - **Enter**: Send chat message - **Escape**: Cancel chat/Close game (it does both of these at the same time so gg) - **Arrow Keys**: Rotate camera - **Mouse Wheel**: Zoom in/out ## Configuration Server connection can be configured using command-line flags: ```bash # Connect to default server (boner.be:6969) go run main.go # Connect to local server go run main.go -local # Connect to specific server go run main.go -addr somehost # Uses somehost:6969 go run main.go -addr somehost:6970 # Uses somehost:6970 ``` Note: The `-local` flag is a shorthand for `-addr localhost:6969` and cannot be used together with `-addr`. ## Development The project uses Protocol Buffers for network communication. If you modify the `.proto` files, regenerate the Go code with: ```bash protoc --go_out=. goonserver/actions/actions.proto ```