UltraTerm: Real Terminal Emulator Plugin for Unreal Engine

UltraTerm is a real terminal emulator that runs natively inside of Unreal Engine, as well as a framework for developing text-based applications in C++ and Unreal’s Blueprint Visual Scripting system. UltraTerm is GPU accelerated, and is highly performant and resource efficient.

UltraTerm can be used by artists and developers to develop screen animations or truly interactive text-based user interfaces for use in film, games, or other software applications, and includes features such as:

TUI Framework: UltraTerm’s TUI (Text-based User Interface) application and widget framework is like a cross between ncurses and Unreal’s Slate/UMG widget system. It has been designed to facilitate the rapid development of elaborate interactive text-based user interfaces, both in Blueprint and C++, and features a dynamic layout system as well as a nested layer system with full alpha compositing.

Screen Effects: Access to a shader render chain allows users to inject and modify post-process effects (such as Materials that simulate a CRT screen) in real-time, and facilitates the easy development and implementation of additional effects using Unreal’s Material System.

Filter System: Filters are reusable text transformation components that can be added, removed, stacked, and modified on the fly. They modify the term cells of the ScreenObject they are attached to in some way, such as by changing the glyphs or colors, allowing for easy dynamic animation of text and colors at runtime.

UltraTerm can be run inside of a Slate or UMG widget and added directly to the viewport or nested inside of another widget, displayed on any mesh in a world using a Material, or run as an Editor Utility Widget to provide a full blown DEC VT100 terminal emulator right inside of Unreal Editor in order to run custom CLI editor tools or external console programs like Vim.

UltraTerm will eventually be released as a paid code plugin in the Unreal Marketplace, and currently there is also a free trial version planned (for personal use / indie devs).

This video is a highlight reel of various clips that were recorded over the past year of UltraTerm’s development. Development is ongoing and lot has changed over the past year, including a full rewrite of the base engine, so things like performance benchmarks are not set in stone.

Let’s do computer stuff together!

If you’d like to potentially take part in the closed alpha, or if you have any questions, feel free to drop by the Discord: https://discord.gg/XdSMcKQa5F

Frequent dev updates are posted to Twitter: https://twitter.com/UltraTerm
And less frequently to the blog: https://cybergem.net/blog/

CYBERGEM.NET

4 Likes

UltraTerm v1.0 alpha demo has been released! You can download it here.

Be sure to read the help text to learn how to launch apps and navigate! Some important key bindings and commands (see help for full list!):

PAGE UP / DOWN                    Scroll the terminal screen (you can also use the mouse wheel)
CTRL + ALT + UP / DOWN arrows     Increase / decrease the font size
CTRL + C                          Close the focused app
CTRL + ALT + D                    Open the debug and settings window (screen effects can be adjusted here)
CTRL + ALT + U                    Launch a new UltraShell in the focused terminal

help                              Displays the help text
list apps                         Lists all of the apps available
list commands                     Lists all of the commands available
list themes                       List the available themes
theme [theme name]                Switch the term theme
levelselect                       Open the level select app to switch to other levels (some have 3D terminals)

NOTE: You can run any program in your PATH by simply entering its name, just like any other terminal emulator. You can also launch another shell such as powershell or cmd.

What’s Next?

UltraTerm is under continuous development, with a lot more features and improvements planned. The next phase will be the Unreal plugin closed alpha phase. If you’d like to potentially try integrating the UltraTerm alpha plugin into your project, come say hello on Discord .

UltraTerm will eventually be released as a source available paid plugin on the Unreal Marketplace, and currently there are also plans to release a shareware version of the plugin for use in Unreal Editor only. A binary executable will always be freely available for use as a general purpose terminal emulator.

Dev updates are posted frequently on Twitter .

2 Likes

Hello,

I Will definitely be picking this terminal emulator up, how much is it planned to cost?

thanks!

Hello! Thanks for your interest in the project.

I haven’t decided on what the price will be yet, but I’m going to be offering the plugin at a nice discount to its final sale price once it’s in beta and until it’s available on the Unreal Marketplace. I’ll be announcing this sometime in the coming months on the Discord server and on Twitter.

1 Like

UltraTerm Updates!

UltraTerm v1.1.5a was just released, you can download the latest version here:
https://cybergem.net/ultraterm/releases/UltraTerm_Demo_Win64.zip

There have been a lot of improvements and features added since the first release (you can run the changelog command to see what’s changed). Some of the major changes:

  • Tabs: Press CTRL + ALT + T to open a new tab, and CTRL + ALT + BACKSPACE to close it (check help for more commands, like switching and moving tabs).

  • Terminal Workspace Addresses: Press CTRL + ALT + UP / DOWN / LEFT / RIGHT / PAGE UP/DOWN to open new terminal workspaces in a 3D addressing space (X, Y, Z). You can also switch between workspaces with the commands ota, and list all terminal workspace addresses with pta.

  • Background images and videos: Load an image or video from disk and display it in the terminal background with the openbg command, and adjust the terminal opacity with the SetTermOpacity command.

  • ANSICat: A new applet for rendering ANSI / Code Page 437 textmode art to the screen from files on disk.

  • Font Atlas rewrite: Fonts can now be loaded from disk at runtime with the lfont command, non-monospaced fonts can now also be loaded, any number of fonts can be loaded simultaneously, and each term cell can be assigned a different font face (FontName is now a term cell attribute, which means that Filters can modify glyph fonts before they’re written to the CellBuffer!).

UltraTerm is a real terminal emulator!

Quite a few people have mentioned to me that they did not realize at first that UltraTerm could be used as a real terminal emulator to run shells like powershell and bash, and console programs like ssh and Vim etc.

Yes, it’s true! If you download the demo you can try using it to run your favorite programs! You can even run UltraTerm in an Editor Utility Widget within Unreal Editor (with the plugin version), and run programs there too.

UltraTerm has a special ScreenObject class that parses ANSI escape codes and emulates the behavior of real video terminal emulators such as the DEC VT series. It is still a work in progress, but the goal is emulator feature parity with other terminal emulators such as xterm. In its current state, it is quite usable as a daily use terminal emulator, and in fact I’ve been using it for the past few weeks for developing UltraTerm in Vim.

I plan to keep developing UltraTerm as a standalone general purpose terminal emulator in addition to the Unreal plugin & TUI dev framework, as it’s a tool I’d like to use for my own work as well. That’s why I recently added the tabs and workspaces, so that I could have an unreasonable number of virtual terminal screens open at once ;D (I think it’s something like uint32_max^4 … LOL).

Feedback

If you have tried the demo I would love to hear your feedback! Whether it’s user experience feedback or ideas for features that could be used for developing games or apps in Unreal, just send it my way and I’ll take it into consideration.

Have a wonderful day! ^_^

1 Like

UltraTerm development continues apace! Hoping to start the open alpha this month!

A lot of work has been done in the past couple of weeks to improve the terminal emulator, particularly for rendering ANSI textmode art, including ANSImation (animation made by drawing textmode with a delay to the screen).

In the demo video above, a few different .ANS textmode files from the 1990s are being fetched via URL from www.16colo.rs and rendered to the screen by UltraTerm. Here’s how to load an ANSI textmode file in UltraTerm using Blueprint (this applet just loops through an array of URLs):

It’s been a while since I’ve posted an update here! (More regular updates are posted on Twitter and Discord)

UltraTerm Shareware Plugin for Unreal Engine is about to be released !!! You can try UltraTerm in Unreal Editor and in your projects as much as you like!

There will be a very short 50% off flash introductory sale some time after the shareware plugin is released, so be sure to follow on Twitter and come visit on Discord so you don't miss out!

ULTRATERM INTRO VIDEO: ULTRATERM INTRODUCTION █▓▒░ - YouTube

RUN REAL CONSOLE PROGRAMS: Here’s a video of UltraTerm running bash inside of Windows System for Linux inside of Unreal Engine!

Also attached is a diagram of UltraTerm’s base architecture. The multithreaded / GPU accelerated design allows for very high term screen frame rates with little impact on the game thread / FPS!

Very excited to release the shareware plugin so that everyone can play with it! You can design applets, user interfaces, and animations using Blueprint or C++, and run real console programs, in Unreal Editor as an Editor Utility Widget or in-game!

Dev updates: https://twitter.com/UltraTerm
Dev support: CYBERGEM ONLINE

1 Like