Olle Logdahl, 24 November 2018
ConsoleGameEngine is a C# library that wraps around the System.Console
class, adding enhanced functionality for displaying graphics. Implements a new ConsoleGame abstract, a custom buffer, custom color palette, fullscreen capabilites, input handling and more.
- Download Lastest Build
- Clone git repo and build yourself
git clone https://github.com/ollelogdahl/ConsoleGameEngine.git
After installing you'll have to:
- Import
ConsoleGameEngine.dll
to project. - Reference the namespace
using ConsoleGameEngine;
I created this Library to make graphics more available for beginners and hobbyists alike. The first programs you create are usually made in the console, but when users want to migrate to actual graphics there is a steep learning curve. My ambition with this library is to depricate the need for psuedo-graphics in the console, usually done by moving the cursor, writing a short string and clearing the actual screen. Not only is that solution unintuitive in the long run, but also highly inefficient.
- retro-styled games and applications intended to run in Console Windows
- easy-to-use graphics library for basic graphics in games and applications
Creating heavy 3D graphics running in 4K
Does the last apply to you? Then sorry, this is not the library you are looking for.
Library contains two main classes, ConsoleEngine
and ConsoleGame
- Custom screen buffer, allows clearing and blitting to console window
- Console colors with full rgb capabilities
- Custom & premade Palettes, used for changing console window palette
- Accessing and setting pixels individually
- Functions to draw basic shapes and primitives (Triangles, Rectangles, Lines etc.)
- Writing characters to screen using plain-text and FIGlet fonts
- Multiple game loops, including fixed framerate and deltatime settings
- Point and Vector class, for int and float positions
- Setting console window settings, changing window size and running console borderless
- Input handling
Is used to draw to the screen, replacement for the System.Console
class (kind of)
using ConsoleGameEngine;
...
Engine = new ConsoleEngine(windowWidth, windowHeight, fontWidth, fontHeight);
Engine.SetPixel(new Point(8, 8), ConsoleCharacter.Full, 15);
Keeps an instance of the ConsoleEngine
and implements game loops.
Note Not neccessary, you could use the ConsoleEngine as is
using ConsoleGameEngine;
...
new AppName.Construct(windowWidth, windowHeight, fontWidth, fontHeight, FramerateMode.Unlimited);
class AppName : ConsoleGame {
public override void Create() {
}
public override void Update() {
}
public override void Render() {
}
}
- Color palette limited to 16 colors in a single session (this is an internal limitation, see MDSN)
- Only ONE reference to a
ConsoleEngine
is allowed per session - Press Delete Key to close application if running in borderless
- Repository
- For reporting errors, visit Issue Tracker!
- Related Projects / Special Thanks:
- pinvoke.net for windows api documentation
- olcConsoleGameEngine (c++) by Javidx9
- ColorfulConsole (C#) by Tom Akita
This project, and all code it contains, is licensed under The Unlicense and can be read here.