Uxn is a complete application ecosystem, intended for the development of small tools and games, in the form of a virtual machine programmable in a dedicated assembly language (uxntal) and having only 32 instructions, on the principle of a machine forth, of which it keeps the postfix syntax, the stack and the capacity to produce a solution from simple and basic components.
Uxn can be seen as a processor, and the rest of the peripherals (audio, screen, keyboard, mouse) are managed by an ideal machine named Varvara, the two systems cohabiting perfectly.
The software written for Uxn is portable and intended for computers with few resources, in the spirit of permacomputing. Indeed, only a C compiler is needed to run the CPU core (in console). For access to peripherals, there are developments and ports to various platforms, including SDL2, which allows it to run on many OS (Linux, Mac OS, Windows, Haiku …). Moreover there are specific versions, for example Game Boy Advance, Nintendo DS, Playdate, DOS, Raspberry Pi Pico, Libretro, Web…
Don’t expect to recreate 3D games with this system, because the specifications are quite frugal, with 64 kB of RAM in particular. It is a bit like some imaginary consoles (like TIC-80).
Uxn won’t use the native Haiku toolkit, but it can use the SDL interface so it runs flawlessly on Haiku. It’s a great “hobby” language even if it can go beyond this.
The main developer of Uxn is Devine Lu Linvega, from the couple Hundred Rabbits. Rekka Bellum illustrates the site and the tools developed for Uxn, and thus contributes greatly to the imagination around this ecosystem.
Among the available tools developed for Uxn, we can find :
- ‘calc’, a graphical calculator and focused on the hexadecimal.
- left’, a text editor (not utf-8 unfortunately, so it is not adapted to the French prose).
- nasu’, a sprite editor.
- noodle’, a pixel-art drawing tool.
- donsol’, a card game in the form of roguelike.
- orca’, an incredible midi sequencer, where the notes are entered in a grid in the form of ascii code.
- turye’, a font editor (in pixel, it is not the equivalent of fontforge either).
- ‘dexe’, a hexadecimal editor.
- ‘piano’, a small synth to be used with orca for example.
- ‘turquoise’, a graphic programming language close to the “turtle” of the logo.
- ‘nebu’, a spreadsheet / .csv editor in 6,2 kb!
You have to keep in mind that the generated binaries are extremely compact, for example the orca sequencer is only 11 kb in the Unx version. Its console version (for terminal), written in classic C, takes a little more than 100 kB, while the version for Electron, which has almost the same functionalities, weighs more than 400 MB!
In conclusion, Uxn is an original tool, developed by enthusiasts and designed with the aim of breaking out of the modern development paradigms.
- 100R — uxn Main Uxn website
- XXIIVV — varvara Presentation of Varvara
- XXIIVV — uxntal Uxntal programming language (assembly)
- GitHub - hundredrabbits/awesome-uxn: Awesome things from the community Everything about Uxn
- compudanzas — uxn tutorial A tutorial in the form of lessons over 7 days
If you wish to compile Uxn on Haiku, you’ll have to add this in console, before launching ./build.sh, otherwise it won’t compile: