2025-01-20 14:30:34 +01:00
2025-01-20 01:17:13 +01:00
2025-01-20 00:03:50 +01:00
2025-01-19 23:28:04 +01:00
2025-01-20 14:30:34 +01:00
2025-01-20 14:29:10 +01:00
2025-01-13 00:02:21 +01:00
2025-01-13 00:31:15 +01:00
mod
2025-01-19 23:22:09 +01:00
2025-01-18 23:23:03 +01:00
2025-01-20 01:17:13 +01:00
2025-01-19 21:23:47 +01:00
2025-01-19 22:50:50 +01:00

GoonScape

A multiplayer isometric game inspired by Oldschool RuneScape, built with Go and Raylib.

GoonScape Screenshot

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:

  1. Build the Docker image (only needed once):
sudo docker build -t goonscape-builder -f Dockerfile.build .
  1. 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
Description
No description provided
Readme 161 MiB
Languages
Go 97.3%
Makefile 1.5%
Shell 1.2%