Home
Softono
SadConsole

SadConsole

Open source MIT C#
1.4K
Stars
128
Forks
7
Issues
59
Watchers
1 week
Last Commit

About SadConsole

SadConsole is a cross-platform .NET terminal and ASCII game engine written in C. It simulates traditional console environments and enables developers to create ASCII-styled games for modern platforms using MonoGame or SFML host libraries. The engine is fundamentally tile-based, while its object model mirrors that of a classic console application. Key features include support for multiple consoles of any size, tile-based sprite sheet fonts with more than 256 characters, and a full GUI system with interactive controls like list boxes, buttons, and text fields. It offers importers for DOS ANSI files, TheDraw fonts, RexPaint, and Playscii, along with animated consoles, an instruction system for chaining commands, and a string encoding system for colors and effects during printing. SadConsole supports thousands of movable on-screen entities, image-to-text-block translation, and complete keyboard and mouse input. It targets .NET 8, .NET 9, and .NET 10. The framework is highly customizable, making it well-suited for

Platforms

Web Self-hosted Windows

Languages

C#

Links

SadConsole Logo

Chat on discord NuGet CI Tests

SadConsole is a C#-based .NET cross-platform terminal, ascii, console, game engine. It simulates these types of programs and with it you can make ascii-styled games for modern platforms. At its heart, SadConsole is really a giant tile-based game engine. However, its object model is conceptually similar to a traditional console app.

While SadConsole is a generic library that doesn't provide any rendering capabilities, "host" libraries are provided that add renderers to SadConsole. The two hosts provided by this library are for SadConsole.Host.MonoGame and SadConsole.Host.SFML. When adding a host library to your project, you don't need to reference the base SadConsole package. If you use MonoGame, you'll also need to add a rendering NuGet package, such as MonoGame.Framework.DesktopGL.

SadConsole currently targets .NET 8, .NET 9, and .NET 10

For the latest changes in this release, see the change log.

Features

Here are some of the features SadConsole supports:

  • Show any number of consoles of any size.
  • Uses graphical tile-based images to build out an ASCII-character font with support for more than 256 characters.
  • Fonts are simply sprite sheet tilesets tied to ascii codes, you can use full graphical tiles if you want.
  • Use more than one font file. However, each console is restricted to a single font.
  • Full GUI system for interactive controls such as list boxes, buttons, and text fields.
  • Importers for
  • Animated consoles and instruction system to chain commands together.
  • String encoding system for colors and effects while printing.
  • Entity support for drawing thousands of movable objects on the screen
  • Translating images to text-blocks.
  • Keyboard and mouse support.
  • Highly customizable framework.

String display and parsing

string pic

GUI library

GUI library pic

Scrolling

scrolling console