
HyperEZ
Lenguaje de programación para videojuegos independientes · LPO Engine
Creado por Adrián Cueva Caravaca
Instalación
Requiere Node.js 18 o superior.
./install.sh # Linux / macOS
./install.ps1 # Windows (PowerShell)
Esto instala los comandos hyperez y hz.
Uso en terminal
hyperez juego.hz # ejecutar
hyperez check juego.hz # comprobar errores sin ejecutar
hyperez build juego.hz -o juego.js # JavaScript autónomo: node juego.js
hyperez run juego.hz --frames 60 --time
Ciclo de vida (si defines estas funciones, se llaman en este orden):
main → onCreate → onAwake → onEnable → onStart → [onFixedUpdate, onUpdate, onLateUpdate] × frames → onDisable → onDestroy → onApplicationQuit
Rendimiento
HyperEZ se compila a JavaScript y lo ejecuta el motor V8 (JIT), sin intérprete intermedio:
for i in a..b y repeat n → bucles nativos. Clases → clases ES.
- Campos y métodos accesibles sin
this. se resuelven en compilación.
- Salida con buffer:
print de cientos de miles de líneas sin ralentizar.
- Compilación típica de un archivo: ~5 ms.
examples/benchmark.hz (fib(32), bucle de 50 M, 20 M pasos de partículas, 200 000 líneas impresas) tarda ≈ 0,3 s.
Errores claros
error: No se puede reasignar la constante «A»
--> juego.hz:2:1
2 | A = 2
| ^
Los errores en ejecución apuntan a la línea de tu .hz, y los mensajes de JavaScript se traducen al español.
Lenguaje (resumen)
import HyperAudio as Audio
const MAX: number = 100 // const · let (una asignación) · var
enum Estado { Menu, Jugando = 5 }
interface Danio { function recibir(n: number): void }
class Actor implements Danio {
public var vida: number = MAX
constructor(nombre: text) { }
function recibir(n: number): void { vida = max(0, vida - n) } // vida = this.vida
}
event Muerte(actor: Actor)
on Muerte as e { print(e.actor) }
emit Muerte(new Actor("A"))
for i in 0..10 { } // rango: fin EXCLUIDO (0..9)
foreach x in lista { }
repeat 3 { }
if a and not b { } else if c { } else { }
try { } catch error { } finally { }
async function f(): Promise<number> { return await g() }
Funciones integradas: print println write assert max min abs clamp lerp sqrt pow floor ceil round random len range typeof str toNumber toText.
Módulos del motor (HyperPhysics, HyperAudio…): en terminal son stubs que ignoran las llamadas y avisan una vez. La integración real llega con LPO Engine.
Todavía no soportado (el compilador lo indica con un error claro): switch/case, match, yield, lambda.
Estructura
bin/ comando hyperez
src/ lexer · parser · compiler · runtime · cli
examples/ demo.hz · hola.hz · benchmark.hz
tests/ npm test
editor/vscode/ extensión de VS Code (+ hyperez-language-0.2.0.vsix)
assets/ logotipo
© 2026 Adrián Cueva Caravaca. Todos los derechos reservados. Ver LICENSE.