# 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
- **Arrow Keys**: Rotate camera
- **Mouse Wheel**: Zoom in/out

## Configuration

Server connection settings can be modified in `types/types.go`:
```go
const (
    ServerAddr = "boner.be:6969"  // Change this to connect to a different server or localhost if you want to run the server locally for development
)
```

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