Terminal emulator control<br><br>I'm in process of rewriting my old terminal emulator control utilizing new Godot features like dynamic fonts and new plugin API. In my previous project terminal had fixed size, now it can be used like any other control inside container. It will automatically adjust number of rows and columns when you resize parent container or when you change font size. <br><br>Why?<br><br>Personally I want to write game about hacking similar to Dark Signs Online and this is one of three key components I need. But it might be useful for other things as well (ASCII Roguelike?)<br>I could use RichTextLabel but my control is more flexible in this case ( for example you can set background color or transparency of each character cell individually) <br><br>Todo<br>

<strike>rewrite rendering so it will redraw only changed parts of terminal (this will improve performance)<br></strike>

<strike>add mouse support</strike>

write tests?<br>

write some documentation

extend terminal and buffer API

create basic scrollback buffer demo<br>

create more examples (mouse, simple game etc)

Screenshot<br><br><img alt="jvv34Y0png" src="http://i.imgur.com/jvv34Y0.png" title="Image: http://i.imgur.com/jvv34Y0.png"><br><br>Where?<br><br>Github repo | Blog post | First implementation<br><br>Updates<br><br>v0.7 Huge optimization, still too slow IMHO<br>v0.6 Demo fixes and some optimization <br>v0.5 Lot of changes including simpler API and rendering background in editor<br>v0.2 All terminal methods from first version were implemented.<br>v0.3 Multiple fonts rendering<br><br>Feedback appreciated :smile: <br>

12 days later

This is really cool. I had to say it. It&#039;d also be useful for an ingame console of sorts? 125 reads as of this reply and not other replies! I&#039;m shocked. Such a cool idea.

15 days later

Thank you <img alt="" src="https://godotdevelopers.org/forum/resources/emoji/smile.png" height="20"> I suppose it's quite niche project. For in-game console you might want to look at Godot Console by Calinou. My project is "low-level" - you have control node and drawing API but you have to define behaviour yourself. <br>I just added multiple fonts rendering so its now possible to use arbitrary amount of fonts in one terminal. Next goals is to write some docs and more examples.