A pure Go game engine for building terminal-based games with a simple render loop, built on top of Termbox.
Termloop is a pure Go game engine for building terminal-based games and interactive applications. It provides a simple render loop, built-in entity types, and essential game development features like collision detection and input handling, making it straightforward to create games that run directly in the terminal.
Go developers interested in creating terminal-based games, interactive command-line applications, or learning game development in a constrained environment without graphical libraries.
Developers choose Termloop for its simplicity and focus on terminal game development, offering built-in features like collision detection and asset loading from ASCII art or JSON, all while leveraging Go's portability for easy cross-compilation and deployment.
Terminal-based game engine for Go, built on top of Termbox
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Pure Go implementation allows simple installation via `go get` and cross-compilation to multiple platforms, ensuring games run anywhere with a terminal.
Offers essential features like collision detection, keyboard/mouse input, and render timers out of the box, reducing boilerplate code for game logic.
Includes pre-built entities such as rectangles, text, and framerate counters, plus asset loading from ASCII art, images, and JSON for quick iteration.
The README showcases numerous games built with Termloop, providing real-world inspiration and code samples for developers.
Admits to being under active development with potential breaking changes, which can disrupt ongoing projects and require frequent updates.
Confined to terminal character rendering; pixel mode doubles height but disables text, making detailed graphics or animations impossible.
Audio playback in the extras package requires external libraries like PortAudio and libsndfile, adding setup complexity and reducing portability.
The README notes that full documentation is pending on the Wiki, which can hinder learning and troubleshooting for new users.