Skip to content

knightfox75/ngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

128 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
🔊 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 5 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
  • Gestión de hasta 127 repositorios de recursos definidos en un fichero de texto

🚀 ¿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.

💻 Plataformas Soportadas

Actualmente, el motor funciona y se compila en:

  • Windows
  • Linux (probado en Linux Mint)
  • Raspberry Pi OS
  • Anbernic RG35XX (usando una imagen de Docker)

📸 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 ha evolucionado. El SDK ha migrado a un flujo de trabajo moderno usando Visual Studio Code y CMake. A continuación, se detalla la configuración para Windows, Linux y Raspberry Pi.

Nota: La carpeta raíz de tu distribución suele llamarse ngn.X.X.X-stable.

📂 Estructura del paquete de distribución

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 Cross-Compile (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               - Empieza Aquí: Plantillas para VS Code + CMake
 │    ├── docker_Raspberry_Pi - Plantillas para compilación con Docker (RPi)
 │    └── docker_RG35XX       - Plantillas para compilación con Docker (Anbernic)
 └── Tools                 - Fuentes de las herramientas de conversión
      ├── NGN_CollisionMap - PNG to Collision Map
      ├── NGN_FileSystem   - Asset Packer
      ├── NGN_Sprite       - PNG to Sprite
      ├── NGN_TileMap      - PNG to Tilemap
      └── ToolSet          - Herramientas compiladas listas para usar

🌍 Prerrequisitos Globales (Todos los Sistemas Operativos)

Antes de las configuraciones específicas, asegúrate de tener el editor instalado:

  1. Visual Studio Code: Descargar aquí.
  2. Extensiones: Abre VS Code e instala estas extensiones oficiales de Microsoft:
    • C/C++ (IntelliSense, depuración)
    • CMake Tools (Configuración de proyectos)

VS Code Extensions Marketplace


🪟 Configuración para Windows

1. Configuración de Herramientas

  • Paso A: Descarga e instala CMake. (Asegúrate de seleccionar "Add CMake to system PATH" durante la instalación).
  • Paso B: Descarga e instala MSYS2.

Abre la terminal de MSYS2 (MINGW64) y ejecuta los siguientes comandos para instalar el compilador:

pacman -Syu
pacman -S mingw-w64-x86_64-toolchain

2. Variables de Entorno

Windows necesita saber dónde están el compilador y el SDK.

  • Añadir Compilador al Path: Edita las Variables de Entorno del Sistema. Dentro de la variable Path, añade la ruta a tu carpeta bin de MinGW64. Si usaste la ruta de instalación por defecto, será: C:\msys64\mingw64\bin (Si instalaste MSYS2 en otro directorio, por ejemplo en C:\Code\msys64, ajusta la ruta en consecuencia).

    Windows Path Variable Edit

  • Definir Ruta del SDK:

    1. Copia la carpeta Ngine_SDK (que contiene las librerías) a un lugar seguro (ej. C:\Code\Ngine_SDK).
    2. Crea una NUEVA variable de entorno del sistema llamada NGINE_SDK_PATH que apunte a esa carpeta.

    Nueva Variable de Sistema NGINE_SDK_PATH


🐧 Configuración para Linux / Raspberry Pi

El SDK incluye scripts para gestionar las dependencias y la compilación de librerías automáticamente. Navega a la carpeta LibBuild/InstallNgineSDK/ dentro de la distribución y ejecuta:

chmod +x install_ngine_sdk.sh
./install_ngine_sdk.sh

Terminal ejecutando script de instalación

Esto instalará las dependencias necesarias (SDL2, SFML) y el propio núcleo de N'gine en /usr/local/.


🎮 Tu Primer Proyecto

  1. Navega a la carpeta Templates/cmake en el directorio de tu SDK.
  2. Copia la carpeta basic_template a tu zona de trabajo (ej. C:\Proyectos\MiJuego o ~/Proyectos/MiJuego).
  3. Abre esa carpeta en Visual Studio Code.
  4. Espera a que CMake Tools configure el proyecto. Si te pide seleccionar un Kit de compilación, selecciona GCC x86_64.
  5. Pulsa F7 o haz clic en "Build" en la barra de estado inferior para compilar.

VS Code: Ejecutando un proyecto


📥 Descargar

El paquete de distribución contiene el código fuente, bibliotecas compiladas, documentación, ejemplos comentados y demos funcionales.

Puedes descargar la última versión desde la página de Releases de GitHub.

🎬 Demo Reel

N'gine Demo Reel

(Haz clic en la imagen para ver el vídeo)

📜 Licencia

N'gine se distribuye bajo la Licencia MIT. Esto significa que puedes usarlo, modificarlo y distribuirlo libremente para tus proyectos (comerciales o no), siempre que se incluya la atribución correspondiente.

📧 Contacto

Para cualquier duda o sugerencia, puedes contactar a través de [email protected].