A statically-typed permacomputing-oriented language for the purpose of creating 1st generation style 3D games and graphical user interfaces that work on constrained systems, microcontrollers, retro consoles, and the web using emscripten.
				https://undar-lang.org/
			
			
		| 
				
					
						 | 
			||
|---|---|---|
| docs | ||
| src | ||
| test | ||
| .gitignore | ||
| LICENSE | ||
| README.org | ||
		
			
				
				README.org
			
		
		
			
			
		
	
	Reality Engine
Overview
- ZRE is a lightweight, portable programming language for permacomputing, game preservation, and indie game development.
 - Built in C89 for cross-platform compatibility (desktop, microcontrollers, and web via Emscripten).
 - Designed for simplicity, performance, and creative exploration.
 - It is inspired by uxn, Dusk OS, Dis VM, Lox, Lua, Lisp, C, and Zig.
 
Key Features
Core Philosophy
- Simple, portable, lightweight
 - Targets permacomputing, game world preservation, rapid prototyping, and indie games.
 - No macros or object hierarchies—prioritizes clarity and explicit behavior.
 - C/Zig like syntax. Lisp/Lua like development workflow.
 
Engine & Tooling
- 
Integrated 2D/3D rendering system:
- Immediate-mode canvas-based 3D rendering with low-poly 5th-6th gen console aesthetics.
 - 2D overlays styled after ImGui.
 - SDL2 backend for input, audio, and cross-platform compatibility.
 
 - 
Tree-walk interpreter:
- Compile bytecode to files for performance.
 - REPL with hot-code reloading for rapid iteration.
 
 - Emacs major mode included; Vim, VSCode, and Lite XL support planned.
 
Language Design
- Strongly typed but with a friendly 'let' syntax.
 realtype (f32).intfor integer numbers (i32).natfor unsigned integer numbers (u32).bytearrays for interop (u8, i64, etc.).strStrings with interpolation,split,replace,trim, etc.- 
Error handling:
- try-catch
 - Null coalescing (
??) and null checks (?.). 
 - Fortran style array operations.
 - Lightweight coroutines with event-loop-driven multitasking.
 - FFI via C-defined "system calls" (examples provided in VM).
 
Modularity & Ecosystem
- Fortran-like arrays.
 - Standard library: math, networking, 3D rendering, minimal GUI.
 usekeyword for modular code organization via file-based namespaces.
Technical Details
VM Architecture
- register based bytecode interpreter written in C89.
 - Portable to new systems, microcontrollers, and web via Emscripten.
 
Memory Management
- Frame scoped arena allocators
 
Rendering & I/O
- SDL2-based abstraction for input, audio, and rendering.
 - Immediate-mode 3D canvas with 2D overlay support.
 
Planned Projects
- 
Code Editor with Terminal Emulator
- Built-in development tooling.
 
 - 
3D Chat Room
- Multiplayer cube avatars navigating a shared low-poly world.
 
 
Community & Collaboration
- Website: https://alfrescocavern.com/">https://alfrescocavern.com/
 - License: MIT
 - Chat: Not yet
 
Roadmap
- MVP: Core VM, REPL, and SDL2 integration.
 - 3D rendering pipeline + ImGui-style GUI.
 - Standard library and FFI examples.
 - Emacs/Vim tooling + website launch.
 - Fixed point for numbers for microcontrollers/retro computers without fpu
 - Custom renderer without SDL for portability
 
Motivation
ZRE bridges retro-inspired creativity with modern portability for:
- Game jams (rapid prototyping + 3D engine).
 - Indie games (5th/6th-gen aesthetics).
 - Permacomputing (low-resource, sustainable code).
 - Education (simple VM/language design).