An extensible, user-friendly tile engine and text GUI library for building roguelikes and terminal-style applications.
Zircon is an extensible, multiplatform tile engine and text GUI library for building roguelikes, terminal-based applications, and ASCII/character-based games. It provides a grid-based drawing system, GUI components, input handling, and animations to simplify development of interactive, text-driven experiences.
Game developers creating roguelikes, ASCII art games, or terminal-style applications, as well as developers needing a text-based GUI library for Java or Kotlin projects.
Zircon offers a comprehensive, user-friendly API with built-in tilesets, GUI components, and cross-platform support, reducing the boilerplate needed for tile-based rendering and interaction compared to lower-level alternatives.
Zircon is an extensible and user-friendly, multiplatform tile engine.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports tile drawing with modifiers like blink and glow, plus shape drawing for rectangles and lines, as detailed in the Drawing and Shape sections of the README.
Offers a range of text GUI components like buttons and sliders with focus handling and event listeners, simplifying interactive UI development for roguelikes and terminal apps.
Runs on JVM with Swing or LibGDX backends, and supports both Java and Kotlin, making it versatile for desktop applications across different environments.
Includes support for various tilesets (CP437, True Type, graphical) and file formats like .zap for animations and .xp for REXPaint imports, reducing external dependency needs.
The roadmap admits missing features such as floating components, drag'n drop, and custom layout support, which can limit advanced GUI development and require workarounds.
Tile-based rendering may struggle with very large grids or high-frequency updates, potentially affecting real-time game performance compared to more optimized engines.
Requires managing multiple dependencies (core and backend modules) and understanding builders and factories, which can be initially daunting despite the documentation.