Gorched is terminal based game written in Go inspired by "The Mother of all games" Scorched Earth

Overview

Gorched

Run on Repl.it gorched

Gorched is terminal based game written in Go inspired by "The Mother of all games" Scorched Earth.

showcase

How the game looks like depends on your terminal !

Features

  • rendered in terminal
  • ASCII graphics (actually few unicode symbols were used)
  • procedurally generated world
  • terrain destruction
  • turn based multiplayer

Try online

You can try Gorched online on gorched.zladovan.repl.run.

Performance in online terminal can be worse than in real terminal !

Installation

General

Download archive for your platform from releases page and unpack it to some directory on your file system.

Linux

If you are using snap just run:

sudo snap install gorched

MacOS

If you are using homebrew just run:

brew install zladovan/tap/gorched

Windows

If you are using scoop run:

scoop bucket add zladovan https://github.com/zladovan/scoop-bucket
scoop install gorched

How to start

Just type gorched in terminal or run unpacked binary named gorched respectively gorched.exe.

How to play

Gorched currently has only one mode where two players are playing locally against each other. The goal is to find out correct angle and power to hit the enemy tank. Gameplay is turn based and each player has one attempt per turn. When some player hits the enemy he gains score and game continues in next round with different terrain.

Controls

  • change angle of cannon
  • SPACE start loading (1st hit) and shoot (2nd hit)
  • Ctrl+C exit game
  • Ctrl+R restart current round
  • Ctrl+N start next round
  • S show score
  • A show player's attributes
  • H show help

When running from browser use just R / N instead of Ctrl+R / Ctrl+N

How to run from source code

Alternatively you can run Gorched from source code.

git clone https://github.com/zladovan/gorched.git
cd gorched
go run cmd/main.go

You need to have git and golang installed locally

Troubleshooting

When you see the question marks

When there are question marks instead some parts of the tank sprite it's probably because your terminal does not support unicode characters. Start game with --ascii-only flag and different sprite based only on ACSII characters will be used.

When you see weird colors

The exact colors used in the game depends on your terminal support and settings. So they can be a lot different as the colors in the showcase. When they are too weird or you see some big white areas start game with --low-color flag to use only basic 8 colors. Graphics would look simpler but it should be better.

Credits

Gorched is using termloop as game engine.

Procedural generation is based on OpenSimplex noise implemented in Go by opensimplex-go.

You might also like...
A simple javascript website that takes user input, queries a Go based backend which then creates ascii art and sends it back to the frontend

A simple javascript website that takes user input, queries a Go based backend which then creates ascii art and sends it back to the frontend. Finally the site displays the ascii art and offers the option to download as multiple file types.

Simple ANSi to PNG converter written in pure Go

AnsiGo Description AnsiGo is a simple ANSi to PNG converter written in pure Go. It converts files containing ANSi sequences (.ANS) into PNG images. Fo

Super fast static photo and video gallery generator (written in Go and HTML/CSS/native JS)

fastgallery Fast static photo and video gallery generator Super fast (written in Go and C, concurrent, uses fastest image/video libraries, 4-8 times f

Storage and image processing server written in Go
Storage and image processing server written in Go

Mort An S3-compatible image processing server written in Go. Still in active development. Features HTTP server Resize, Rotate, SmartCrop Convert (JPEG

An image resizing server written in Go
An image resizing server written in Go

picfit picfit is a reusable Go server to manipulate images (resize, thumbnail, etc.). It will act as a proxy on your storage engine and will be served

A path tracer written in Go.
A path tracer written in Go.

pt: a golang path tracer This is a CPU-only, unidirectional path tracing engine written in Go. It has lots of features and a simple API. Features Supp

Pixelizer is an efficient image pixelizer written in go

Pixelizer is an image pixelizer written in go. It allows very simple and intuitive CLI pixelization. Installation To install Pixelizer, you

GameBoy Color emulator written in golang.
GameBoy Color emulator written in golang.

🌏 Worldwide 日本語のドキュメントはこちら GameBoyColor emulator written in golang. This emulator can play almost all ROMs work without problems and has many feature

Dendrite is a second-generation Matrix homeserver written in Go!

Dendrite Dendrite is a second-generation Matrix homeserver written in Go. It intends to provide an efficient, reliable and scalable alternative to Syn

Comments
  • Why don't use a debian/rpm package?

    Why don't use a debian/rpm package?

    $ sudo apt install gorched
    [sudo] password for user: ************************************************* (very long)
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    E: Unable to locate package gorched
    

    Currently,no package named "gorched" So is it possible to build a deb/rpm package?

    opened by sysdl132 2
Releases(v1.6)
Owner
Ján Čabala
Ján Čabala
A phoenix Chain client based on the go-ethereum fork,the new PoS consensus engine is based on the VRF algorithm.

Phoenix Official Golang implementation of the Phoenix protocol. !!!The current version is for testing and developing purposes only!!! Building the sou

null 9 Aug 18, 2022
A simple API written in Go that creates badges in SVG format, based on the requested route.

A simple API written in Go that creates badges in SVG format, based on the requested route. Those graphics can be used to style README.md files, or to add tags to webpages.

Toby 3 Jul 2, 2021
a tool to output images as RGB ANSI graphics on the terminal

imgcat Tool to output images in the terminal. Built with bubbletea install homebrew brew install trashhalo/homebrew-brews/imgcat prebuilt packages Pr

Stephen Solka 463 Sep 18, 2022
Geocache is an in-memory cache that is suitable for geolocation based applications.

geocache geocache is an in-memory cache that is suitable for geolocation based applications. It uses geolocation as a key for storing items. You can s

Melih Mucuk 138 May 28, 2022
This is old and unmaintained code, ignore it. starfish is a simple, SDL based, 2D graphics and user input library for Go. If you intend to work on it, please fork from the 'devel' branch, not 'master'. Current release: 0.12.0

What is starfish? What starfish is: starfish is a simple 2D graphics and user input library for Go built on SDL. What starfish is not: While it is bui

Gary Talent 12 Jun 4, 2019
A Grid based 2D Graphics library

gridder Built on top of Go Graphics github.com/fogleman/gg with the idea to simplify visualizing Grids using 2D Graphics. Dependencies gg github.com/f

Raed Shomali 54 Jul 3, 2022
Canvas is a Go drawing library based on OpenGL or using software rendering that is very similar to the HTML5 canvas API

Go canvas Canvas is a pure Go library that provides drawing functionality as similar as possible to the HTML5 canvas API. It has nothing to do with HT

Thomas Friedel 433 Sep 21, 2022
A Go skia binding based on skia C library through cgo

go-skia is a Go skia binding based on skia C library through cgo. Note: the project is still in early stage, and it only supports Linux-amd64 now. The

Go101 19 Sep 14, 2022
Boundary enables identity-based access management for dynamic infrastructure.

Boundary Please note: We take Boundary's security and our users' trust very seriously. If you believe you have found a security issue in Boundary, ple

HashiCorp 3.4k Sep 21, 2022
Build apps for pixel-based displays.

Pixlet Pixlet is an app runtime and UX toolkit for highly-constrained displays. We use Pixlet to develop applets for Tidbyt, which has a 64x32 RGB LED

Tidbyt 490 Sep 26, 2022