2025-01-13 15:13:17 +01:00
|
|
|
# GoonScape
|
|
|
|
|
2025-01-13 14:26:56 +00:00
|
|
|
A multiplayer isometric game inspired by Oldschool RuneScape, built with Go and Raylib.
|
2025-01-13 15:13:17 +01:00
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
## 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
|
2025-01-18 20:18:45 +00:00
|
|
|
- **Escape**: Cancel chat/Close game (it does both of these at the same time so gg)
|
2025-01-13 15:13:17 +01:00
|
|
|
- **Arrow Keys**: Rotate camera
|
|
|
|
- **Mouse Wheel**: Zoom in/out
|
|
|
|
|
|
|
|
## Configuration
|
|
|
|
|
2025-01-18 20:41:02 +01:00
|
|
|
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
|
2025-01-13 15:13:17 +01:00
|
|
|
```
|
|
|
|
|
2025-01-18 20:41:02 +01:00
|
|
|
Note: The `-local` flag is a shorthand for `-addr localhost:6969` and cannot be used together with `-addr`.
|
|
|
|
|
2025-01-13 15:13:17 +01:00
|
|
|
## 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
|
|
|
|
```
|