Looping Engine v1.1
El motor de ejecución e interpretación de alto rendimiento desarrollado por Coki Studios para experiencias de juego fluidas en 2D y 3D Cuántico.
Arquitectura 3.0A
Looping Engine v1.1 introduce una tubería de renderizado optimizada con aceleración por hardware, sub-stepping físico de alta precisión y síntesis de audio nativa sin dependencias externas.
Física Sub-stepped
Simulación gravitacional e inercial robusta con detección de colisiones AABB precisa.
Audio Sintetizado
Generación de efectos de sonido en tiempo real mediante Web Audio API con osciladores múltiples.
Quantum 3D
Perspectiva tridimensional con cámara de brazo elástico y proyección de profundidad vectorial.
Modo Plataformas 2D
Diseñado para velocidad y precisión milimétrica. Soporta doble salto, dashing direccional, plataformas móviles con transferencia de inercia y orbes de impulso aéreo.
// Ejemplo de escenario 2D en Looping
scene.set(name: "Cyber Horizon", weather: "stars", bg: "#06090f")
player.spawn(at: (100, 280), color: "#38bdf8")
entity.platform(at: (300, 340), size: (220, 24), type: "moving", speed: 90)
entity.orb(at: (520, 240), power: 580, color: "#f59e0b")
Modo Quantum 3D, Modelos .OBJ, C# & loopize++
Proyección tridimensional inmersiva con carga nativa de modelos Wavefront .obj, Scripting C# (cs! y MonoBehaviour), raycasting Möller–Trumbore por triángulo y la librería híbrida loopize++ (ECS, oleadas, cámara spring-arm con sacudida, combos, tweens y misiones).
// Escena 3D con .OBJ, C# MonoBehaviour y loopize++
use "loopize++"
use "csharp"
scene3d.world(name: "Orbit Sector 7", size: (220, 100, 220), sky: "nebula_void")
spawn3d.obj("Starfighter01", obj: "assets/models/starfighter.obj", at: (0, 2.2, 6), scale: 1.5, color: "#38bdf8", cs: "StarfighterPilot")
val spawned = lz_wave_rush(1, "valkyrie", 3, 90, "valkyrie_drone.obj")
lz_hit_combo(250, 0.35)
lz_report()
Wavefront .OBJ & C# MonoBehaviour Interop
El motor nativo (75/75 pruebas C++17) y el runtime web cargan mallas .obj con obj3d.load / spawn3d.obj, normalización de escala, subdivisión, raycasting por triángulo y puente C# integrado (cs! { ... }, LoopingBridge.Get/Set, Scene3D, csharp.export).
cs! {
public class OrbitalBossAI : MonoBehaviour {
public float Shield = 180.0f;
public void Start() => LoopingBridge.Set("cs_pilot_ready", true);
public void Update(float dt) {
Scene3D.Rotate("TitanFlagship", 0.0f, dt * 32.0f, 0.0f);
Shield = Mathf.Clamp(Shield + dt * 4.0f, 0.0f, 200.0f);
}
}
}
Librería Oficial loopize++
Adiciones de juego híbridas (Loop + C++17 + C# SDK + Web Components): ECS Registry (loopize.ecs_spawn), Wave Director (lz_wave_rush), Spring-Arm Camera Shake, FSM, Tweening, Sistema de Combo x8 e Inventario/Misiones XP (lz_mission, lz_report).
Web Loopize Kit (@cokistudios/web-loopize-kit)
SDK de cero dependencias para ejecutar escenas 3D, mallas .obj y scripts C# directamente en el navegador mediante Web Components nativos.
<script type="module" src="/web-loopize-kit.js"></script>
<loopize-obj-viewer model="starfighter" color="#38bdf8" autorotate="true"></loopize-obj-viewer>
<loopize-stage preset="orbital_arena" title="Orbit Sector 7"></loopize-stage>
Abrir Web Loopize Kit Studio ➔
Síntesis de Audio Web
El sistema de audio integrado genera efectos cristalinos sin cargar archivos externos de audio. Utiliza envolventes exponenciales y buffers de ruido blanco para saltos, dashes, impactos y recolección de coleccionables.
jump: Barrido de frecuencia sinusoidal ascendente.double_jump: Triángulo con textura de ruido sintético.dash: Sierra doble con decaimiento rápido.coin: Acorde armónico de alta frecuencia (B5 - E6).
Colisiones y Partículas
Las colisiones AABB resuelven la profundidad y la velocidad en cada subpaso para evitar traspasos de geometría. El sistema de partículas emite ráfagas con gravedad configurable, decaimiento de opacidad y escala dinámica.
REPL & Pipeline Funcional
El entorno interactivo permite evaluar código en tiempo real con soporte para tuberías funcionales (|>), expresiones de coincidencia (match) y plantillas de interpolación avanzadas.
val score := 95
val tier := score >= 90 ? "SS" : "A"
print($"Rango Actual: {tier} ({score} pts)")
Referencia de Directivas
Consulta la lista completa de directivas soportadas por el intérprete en el manual de desarrollo de Coki Studios.
Ver Manual Técnico Completo ➔