Soup is a lightweight 3D engine written in Go with Ebiten. It lets you build simple first person 3D worlds, reminiscent of classic 90s shooters like “Wolfenstein” and “Doom.”
In the program, the map is represented as a 2D array of integers. In this array, a 1 & 2 represents a walls, while a 0 represents a walkable area. For example, a simple map could be:
W– Move forwardS– Move backwardA– Rotate leftD– Rotate right
Clone the repository:
git clone https://github.com/thijsrijkers/soup.git
cd soup
go mod tidyThan launch the program by executing:
go run ./main.go- Go 1.21+
- Ebiten v2 (
github.com/hajimehoshi/ebiten/v2) - Operating System:
- Linux / Windows / macOS
- Linux / WSL additional dependencies (for X11 / OpenGL support):
sudo apt update
sudo apt install -y \
libx11-dev \
libxrandr-dev \
libxinerama-dev \
libxcursor-dev \
libxi-dev \
libxxf86vm-dev \
libgl1-mesa-dev \
libglu1-mesa-dev