goonscape/README.md
2025-01-18 20:18:45 +00:00

72 lines
1.6 KiB
Markdown

# 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
```