"Slay the Spire"-like roguelite fully in console.
Go to file
2023-12-16 22:10:00 +01:00
.github chore: updated build pipeline 2023-12-11 18:27:49 +01:00
assets feat: meet the merchant after stage_0 2023-12-14 20:27:04 +01:00
audio Unified settings handling. 2023-05-19 00:30:25 +02:00
cmd feat: test args for both versions 2023-12-14 20:21:43 +01:00
docs Prototype game design document. 2023-11-14 09:55:32 +01:00
game fix: wrong function bound 2023-12-14 20:21:27 +01:00
gen Added documentation. 2023-05-10 20:12:14 +02:00
git Embed version info for about page. 2023-05-19 16:29:53 +02:00
image feat: image caching 2023-12-16 22:09:20 +01:00
lua Added documentation. 2023-05-10 20:12:14 +02:00
misc Bash scripts to retrieve some lua information. 2023-04-20 09:46:22 +02:00
mods/example_mod Allow loadable images in mods. 2023-05-09 13:14:58 +02:00
settings Added more comments. 2023-05-19 01:09:39 +02:00
ui feat: experimental animation viewer 2023-12-16 22:10:00 +01:00
util Added more comments. 2023-05-19 01:09:39 +02:00
.gitignore feat: image caching 2023-12-16 22:09:20 +01:00
.golangci.yml Added debug graph view of the current state. 2023-04-23 13:12:48 +02:00
.lua-format Lua formatting. 2023-05-01 21:22:44 +02:00
build.sh feat: universal build script using pkgx 2023-12-14 16:38:17 +01:00
Dockerfile Added Dockerfile. 2023-05-10 17:45:38 +02:00
format-lua.sh Lua format. 2023-05-16 10:45:31 +02:00
go.mod chore: update bubbletea and remove mouse fix 2023-12-14 15:52:16 +01:00
go.sum chore: update bubbletea and remove mouse fix 2023-12-14 15:52:16 +01:00
LICENSE Create LICENSE 2023-04-10 13:44:20 +02:00
README.md docs: update README 2023-12-14 16:46:47 +01:00
update-docs.sh Lua formatting. 2023-05-01 21:22:44 +02:00

Discord Go Report Card GitHub release (latest by date)

Welcome to a world 500 years in the future, ravaged by climate change and nuclear wars. The remaining humans have become few and far between, replaced by mutated and plant-based creatures. In this gonzo-fantasy setting, you find yourself awakening from cryo sleep in an underground facility, long forgotten and alone. With all other cryosleep capsules broken, it's up to you to navigate this strange and dangerous world and uncover the secrets that led to your isolation...

End of Eden...

  • Is a "Slay the Spire"-like, roguelite deck-builder game running fully in console
  • Collect Artifacts that give you new cards or various passive effects
  • Clash with strange beings and try to survive as long as possible

Screenshots

Screenshot Screenshot

GL Version Screenshots

The following screenshots are from the _gl version of the game. The _gl version is the same game but running in a dedicated window. Additionally, a crt shader is activated to give the game a more retro look.

Screenshot Screenshot Screenshot

Status

The game is still in early development. There are still a lot of content missing and the game is not balanced at all. It mostly contians test content at the moment. If you want to help out, feel free to open a issue or pull request or even better join the discord.

🎮 How to play

The game can be played in two ways. You can download the _term or _gl version. You can see which type you download from the file name (end_of_eden_term vs end_of_eden_gl). The _term version is the base game and runs in your terminal. The _gl version is the same game but running in a dedicated window, so no console magic is needed just a plain old game window. If you are not familiar with the terminal, you can try out the _gl version. It also comes with a optional crt shader to give the game a more retro look. Check out the Settings section for more information.

📁 Download

🐳 Docker

If you are a advanced user you can also run the game through docker.

Docker Guide

Pull Image

docker pull ghcr.io/bigjk/end_of_eden:master

Base Game

You can run the base game through docker, but audio is not supported. You also have to specify the terminal capabilities via environment flags. The following example uses the xterm-256color terminal and enables true color support.

docker run --name end_of_eden -e TERM=xterm-256color -e COLORTERM=truecolor -it ghcr.io/bigjk/end_of_eden:master /app/end_of_eden --audio=false

Possible options for the TERM environment variable are:

  • xterm-256color
  • xterm
  • screen-256color
  • screen
  • vt100 and more...

COLORTERM defines if the terminal supports true color. If you are using a modern terminal its probably safe to set this to truecolor. Other options are 24bit, 16mil and 8bit.

SSH Server

docker run --name end_of_eden -p 8275:8273 -it ghcr.io/bigjk/end_of_eden:master /app/end_of_eden_ssh

Settings

Both versions have separate settings files. The settings files are located in the same directory as the game executable. The settings files are automatically created on the first game start. You can modify the settings in the settings file or in game via the settings menu.

_term Version

  • The settings file is called settings_term.toml
  • The settings can be modified in game via the settings menu
Available settings in settings.toml
# Audio volume
#
volume = 1.0

# Mods that should be loaded (can be edited in game)
#
mods = [ "example_mod", "other_mod" ]

_gl Version

  • The settings file is called settings_gl.toml
  • The settings can be modified in game via the settings menu
Available settings in settings_win.toml
# Audio volume
#
volume = 1.0

# Mods that should be loaded (can be edited in game)
#
mods = [ "example_mod", "other_mod" ]

# Enable or disable audio
#
audio = true

# Enable or disable the crt shader
#
crt = true

# DPI scaling
#
dpi = 1

# Font to be used for normal, italic and bold text.
# The font needs to be relative to ./assets/fonts.
# Using a nerd font is recommended: https://www.nerdfonts.com/font-downloads
#
font_normal = 'BigBlueTermPlusNerdFont-Regular.ttf'
font_italic = 'BigBlueTermPlusNerdFont-Regular.ttf'
font_bold = 'BigBlueTermPlusNerdFont-Regular.ttf'

# Font size
#
font_size = 12

# Max fps
#
fps = 30

# Window size
#
height = 800
width = 1100

Console

A modern console is required to support all the features like full mouse control. Just start the end_of_eden(.exe) executable in your terminal.

Tested Terminals

Terminal OS Status Note
terminal windows recommended on windows
cmd windows ⚠️ no mouse motion support, mouse clicks and everything else works
iterm2 osx

Lua & Modding

Lua is used to define artifacts, cards, enemies and everything else that is dynamic in the game. This makes End of Eden easily extendable. If you want to create mods or learn more about lua:

Building

Automatic

You can use the ./build.sh script to build all the binaries. The script will create a bin folder and put all the binaries and assets in there. If go is not installed on your system, the script will prompt to automatically fetch and run go via pkgx. pkgx is a tool to run go binaries without installing go on your system and will be installed automatically if needed.

Manual

  • You need golang >= 1.20 installed
  • Build binary:
    • go build -o end_of_eden ./cmd/game/ (terminal version)
    • go build -o end_of_eden ./cmd/game_win/ (gl version)
  • Now a end_of_eden(.exe) binary should be available in your current directory
  • To run without building binaries use run instead of build (e.g. go run ./cmd/game/)
  • Important: The games working directory needs to be where the ./assets folder is available!

Versioning

The game uses versioning similar to Semantic Versioning to define the version number. This is also in accordance with the Go Modules versioning scheme.

vMajor.Minor.Patch

  • Major: Major version represents a major milestone in the games development. A major version of 0 represents the early development phase of the game, where nothing is set in stone yet and everything can change.
  • Minor: Minor version represents a new feature or a significant change.
  • Path: Smaller changes, bug fixes and improvements.

Credits

License

  • Code: licensed under MIT
  • Assets: See README.md in corresponding folder