C++20 · SFML · CÓDIGO ABIERTO

Pequeñas piezas.
Posibilidades en movimiento.

Awesome Engine es un motor 2D organizado en escenas. Un contexto compartido reúne los sistemas que cada juego utiliza, desde la entrada hasta el último cuadro.

Explorar el código auditado ↗
Acerca del proyecto

Una base que
puedes entender.

Desarrollado por Carlos Cortina, Awesome Engine reúne lógica de juego en C++ y servicios reutilizables sobre SFML. Sus siete escenas incluidas muestran cómo conectar gráficos, entrada, sonido e interfaz en juegos completos y pequeños.

Su diseño favorece la composición: las escenas reciben un EngineContext y usan gestores con responsabilidades concretas. El código MIT permite estudiar, modificar y ampliar esa base.

El repositorio aún no publica una historia de creación ni objetivos formales. Aquí describimos su diseño observable y sus capacidades verificadas.

Arquitectura general

Un contexto.
Sistemas conectados.

Los gestores viven por valor en EngineContext. SceneFactory construye y posee las escenas mediante unique_ptr.

PUNTO DE ENTRADAmain() → EngineProcessEvent → Update → Render
CONTEXTO COMPARTIDO

EngineContext

RenderResourceAudioInputParticleTimeSceneGuiCursorSaveRandomScreenshotClipboard
CICLO DE VIDA

SceneFactory → Scene

Bounce · Clicker · MemoryCard · TicTacToe · MineSweeper · Runner · Tetris

StartUpdateRenderOnEventOnPauseOnCleanup
Vista conceptual del código implementado · Ver referencias y responsabilidades ↗

El viaje de un cuadro

01EscenaScene::Render()
02RenderTextureDibujo fuera de pantalla
03Bloom + MonitorPosprocesado GLSL
04VentanaGUI + cursor + display

La interfaz y el cursor se dibujan después del posprocesado de la escena. Glitch e inversión existen en el código, pero no están activos en la cadena auditada.

Stack del motor

Herramientas concretas.
Versiones explícitas.

Ver CMakeLists.txt ↗
C++20

Lenguaje del motor y de las escenas de juego.

Borrador del estándar
SFML3.1.0

Ventana, eventos, gráficos 2D, entradas y audio.

Consultar repositorio
TGUI1.13.0

Interfaz gráfica con el backend SFML_GRAPHICS.

Consultar repositorio
CMake3.28+

Configuración, compilación y descarga de dependencias con FetchContent.

Consultar repositorio
nlohmann/json3.12.0

Configuración y persistencia en archivos JSON.

Consultar repositorio
spdlog1.16.0

Registro de eventos y diagnóstico.

Consultar repositorio
magic_enum0.9.8

Utilidades de reflexión para enumeraciones de C++.

Consultar repositorio
GLSLShaders

Efectos de bloom, glitch, inversión de color y monitor.

Especificación
Alcance actual

También importa
conocer los límites.

La configuración de desarrollo encontrada es Windows con MinGW, Ninja y GDB. Linux y macOS no están verificados; hay diferencias de mayúsculas en rutas que requieren revisión.

El motor no incluye editor visual, ECS, motor físico general, scripting ni exportación web o móvil. Las colisiones y la física de los juegos son específicas de cada escena.

Una limitación conocida: el overlay solicita una escena “Menu” que no está registrada. La documentación detalla este caso y otros problemas comprobados.
Consultar limitaciones y soluciones →