If you're writing some kind of full-screen game, you should probably use the scene module instead of ui. scene works based on a render loop (i. e. a draw method is called 60 times per second) and has features like layers (with animation and image support) and touch events. The ui module is intended for native iOS GUIs, with elements like buttons, lists, sliders, text fields, web content, etc. It is possible to use scene graphics inside a UI using the scene.SceneView, but I'd suggest starting with a pure scene-based program unless you absolutely need somthing like text input.

What exactly would you call a "classic Star Trek game"? Do you mean a text-based adventure with graphical elements, or a graphical-only point-and-click game, or something else?

if you want the sort of persistent heads up display, it would be possible to implement each region of the ui as either text, or even something like a table view. those commands could be implemented as buttons, etc. the ui designer might help to lay out the general format.

if you want to stick to text, you can add a bit of old school flair by using some ascii(Unicode) art.

strange... this prints fine on pc and in pythonista, but Safari doesn't format fixed font spaces correctly... but anyway, you have the whole Unicode to use to represent various things on the map for example, including emoji, though if I recall you will need to use the Unicode character for the emoji, rather than the emoji kb. 🚀✨🌞🌍

at the top of the file, you can use Unicode characters inside Unicode string literals. Without the encoding line Python throws a SyntaxError, because UTF-8 multibyte characters are not ASCII.

If you're working in the interactive console, things are a little different. Input characters are always encoded as UTF-8, even inside Unicode literals. For example, the literal u"ä" incorrectly becomes u"\xc3\xa4". The correct value would be u"\xe4". This means that to use Unicode characters in the console, you need to either use escapes or manually decode the UTF-8 bytes: "ä".decode() correctly becomes u"\xe4".