3.0 KiB
GoonScape
A multiplayer isometric game inspired by Oldschool RuneScape, built with Go and Raylib.
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
- GCC (for CGO/SQLite support)
- OpenGL development libraries
- Raylib dependencies (see raylib-go)
Installation
Pre-built Binaries
The easiest way to get started is to download the latest release from:
https://gitea.boner.be/bdnugget/goonscape/releases
Choose the appropriate zip file for your platform:
- Windows:
goonscape-windows-amd64-v1.1.0.zip
- Linux:
goonscape-linux-amd64-v1.1.0.zip
Extract the zip and run the executable.
Quick Start
For development:
# Run directly (recommended for development)
go run main.go
# Run with local server
go run main.go -local
Server Setup
The server requires CGO for SQLite support:
# Enable CGO
go env -w CGO_ENABLED=1
# Clone and build server
git clone https://gitea.boner.be/bdnugget/goonserver.git
cd goonserver
go build
Client Installation
Then install or build:
# Install the client
go install gitea.boner.be/bdnugget/goonscape@latest
Or build from source:
git clone https://gitea.boner.be/bdnugget/goonscape.git
cd goonscape
go build
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:
# 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
.
Building Release Binaries
The project uses Docker to create consistent builds across platforms. To build release binaries:
- Build the Docker image (only needed once):
sudo docker build -t goonscape-builder -f Dockerfile.build .
- Create release builds:
sudo docker run -v $(pwd):/build goonscape-builder
This will create zip files in the build
directory for:
- Windows (64-bit):
goonscape-windows-amd64-v1.0.0.zip
- Linux (64-bit):
goonscape-linux-amd64-v1.0.0.zip
Each zip contains the binary and all required assets.
Development
The project uses Protocol Buffers for network communication. If you modify the .proto
files, regenerate the Go code with:
protoc --go_out=. goonserver/actions/actions.proto