Reviewed-on: #3
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
- Raylib dependencies (see raylib-go)
Installation
- Clone the repository:
git clone https://gitea.boner.be/bdnugget/goonscape.git
cd goonscape
- Install dependencies:
go mod tidy
- Build and run:
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:
# 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:
protoc --go_out=. goonserver/actions/actions.proto
Description
Languages
Go
97.3%
Makefile
1.5%
Shell
1.2%