I'm new here but in the middle of making my console. Generally speaking you have to choose your host system, i.e. language, libraries for graphics, audio, etc. And you have to decide what is your console language/interpreter/simulator you want to give for creators. All interacions with PC (like drawing on canvas, playing sound, read input, write to output) you have to code on your host. Host should be able to evaluate console code and gather results/interactions. Eg. calling `spr(...)` in your console should call host function you write. The same for executing init, draw loop, etc.
Examples:
- C/C++ as host with Lua as console lang is great combo, because Lua is designed to interoperate with C and has it's own VM to separate from host (pico8, tic80, neko8).
- Lua with Love as host + Lua for console is great as well (liko12).
- C with processor simulator + ASM (zenith80).
- My choice is Clojure as host + MAL subset (make-a-lisp) as console.
- For JVM (Java) you can probably choose groovy, python, ruby as console language.
The most important thing is sandboxing console language, ie separate from host functions. You don't want to allow anyone to access PC directly.