Skip to content

knightfox75/ngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

130 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo de N'gine

Website Latest Release License: MIT

English Version Available Here


N’gine es un motor de código abierto para el desarrollo de juegos 2D, programado en C++ e inspirado en las técnicas de las consolas clásicas. Está especialmente diseñado para crear juegos con estética pixel art, utilizando fondos de tiles, sprite-sheets y una gestión de recursos eficiente.

Con más de 10 años de desarrollo, se encuentra en una fase estable, con el foco puesto en la mejora de rendimiento y la incorporación de nuevas funcionalidades.

✨ Características Principales

🖱️ Métodos de Entrada
  • Teclado
  • Ratón
  • Gamepads (estándar X-Input)
🎨 Gráficos
  • Texturas de hasta 8192×8192 píxeles
  • Fondos basados en tiles de gran tamaño
  • Sprites con y sin animación
  • Cámara virtual 2D
  • Capas de texto y lienzo para primitivas
  • Modos de mezcla, máscaras y hasta 8 viewports simultáneos
  • Capacidad para mover, rotar y escalar todos los elementos gráficos
🎬 Vídeo
  • Soporte para reproducción de archivos en formato OGV (Theora)
  • Hasta 4 streams de vídeo simultáneos con sincronización de audio y vídeo
  • Control total de reproducción: Iniciar, pausar, detener y modo bucle (loop)
  • Transformación completa del render de vídeo: Posición, rotación y escalado
  • Efectos visuales aplicables al stream: Transparencia (Alpha), tintado RGB y modos de mezcla
🔊 Sonido
  • Hasta 4 streams de música/diálogos simultáneos (formato OGG)
  • Hasta 64 efectos de sonido simultáneos (formato WAV recomendado)
  • Mezclador de 6 canales con control de volumen, paneo, pitch y loop
💥 Colisiones
  • Detección por cajas (bounding box) con múltiples colisionadores por sprite
  • Detección a nivel de píxel
  • Raycasting desde un punto a un sprite
  • Mapas de colisión de hasta 255 colores
📁 Sistema de Archivos
  • Carga de recursos desde el sistema de archivos local
  • Creación de archivos de empaquetado de recursos con opción de cifrado
  • Funciones de carga y grabación de archivos en formato binario o texto
  • Gestión de hasta 127 repositorios de recursos definidos en un fichero de texto plano

🚀 ¿Para Quién es N'gine?

N'gine está destinado a cualquier persona con nociones de programación orientada a objetos que quiera desarrollar su propio videojuego 2D. Nació como una herramienta a medida para proyectos personales y como base para los proyectos de los estudiantes de primer curso en el centro donde imparto docencia como profesor de diseño y programación de videojuegos.

💻 Plataformas Soportadas

Actualmente, el motor funciona y permite exportar para:

  • Windows
  • Linux (probado en Linux Mint / Ubuntu)
  • Raspberry Pi OS
  • Anbernic RG35XX (usando imágenes de Docker proporcionadas)
  • Evercade*

* La exportación a Evercade requiere de la licencia oficial de desarrollador por parte de Blaze Entertainment Ltd.

📸 Capturas de Pantalla

The Lost Mines ADV Game Demo Idunn's Grace
Screenshot 1 Screenshot 2 Screenshot 3

🛠️ Manual de Instalación del SDK

N'gine utiliza un flujo de trabajo moderno basado en Visual Studio Code y CMake.

📂 Estructura del paquete de distribución

El paquete incluye el código fuente, librerías compiladas para Windows, scripts de automatización para Linux y soporte para contenedores Docker.

ngn.x.x.x-stable
 ├── Demo                  - Demos compiladas de todos los ejemplos (Win/Linux/RPi)
 ├── Docs                  - Documentación y manuales
 ├── Examples              - Código fuente y assets cubriendo todas las funciones
 ├── LibBuild              - Scripts y código para compilar/instalar el SDK
 │    ├── BuildNgineSDK    - Windows Build Scripts (.bat)
 │    ├── Dockers          - Imágenes Docker para compilación cruzada (RG35XX, RPi4)
 │    └── InstallNgineSDK  - Scripts de instalación Linux/RPi (.sh)
 ├── LibRelease            - Binarios de la librería N'gine listos para usar
 ├── Ngine_SDK             - El SDK N'gine para Windows listo para usar
 ├── Source                - Código fuente del núcleo de N'gine
 ├── Templates             - Plantillas de Proyectos (CMake, Docker)
 └── Tools                 - Herramientas de conversión (Sprites, Tilemaps, FileSystem)

🌍 Prerrequisitos Globales

  1. Visual Studio Code: Descargar aquí.
  2. Extensiones: Instalar C/C++ y CMake Tools desde el Marketplace.

🪟 Configuración para Windows

  1. Instalar CMake (añadir al PATH).
  2. Instalar MSYS2 y ejecutar en su terminal: pacman -S mingw-w64-x86_64-toolchain
  3. Añadir la ruta bin de MinGW64 al Path de Windows.
  4. Crear la variable de entorno de sistema NGINE_SDK_PATH apuntando a tu carpeta Ngine_SDK.

🐧 Configuración para Linux / Raspberry Pi

El SDK facilita la gestión de dependencias (SDL2, SFML, etc.) mediante scripts:

  1. Navega a LibBuild/InstallNgineSDK/.
  2. Ejecuta:
    chmod +x install_ngine_sdk.sh
    ./install_ngine_sdk.sh

📥 Descargar

Puedes obtener el código fuente, la documentación y los binarios desde la página de Releases de GitHub.

📜 Licencia

N'gine se distribuye bajo la Licencia MIT. Puedes usarlo, modificarlo y distribuirlo libremente (proyectos comerciales incluidos) siempre que mantengas la atribución correspondiente.

📧 Contacto

Para dudas, sugerencias o soporte: contact@nightfoxandco.com.