Skip to content

2D Game Engine written in C++ based on SDL2 & SFML

License

Notifications You must be signed in to change notification settings

knightfox75/ngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ngine

[Español]

  • ¿Qué es N’gine?
    N’gine es un motor de código abierto para el desarrollo de juegos en 2D, especialmente diseñado para juegos de píxeles, inspirado en las técnicas utilizadas por las consolas clásicas (fondos de tiles, sprite-sheets, etc.).

  • ¿Qué lenguaje de programación se ha usado?
    Todo el motor está programado completamente en C++, utilizando bibliotecas de apoyo para acelerar el proceso de creación del mismo, como SDL2, SFML y LodePng, entre otras.

  • ¿A quién va destinado?
    A cualquier persona que quiera desarrollar su videojuego y tenga nociones de programación orientada a objetos.

  • ¿Bajo qué sistemas funciona?
    Actualmente, el motor funciona en sistemas operativos Windows, Linux y Raspberry PI OS.

  • ¿Bajo qué licencia se distribuye?
    El motor se distribuye bajo la licencia MIT. Eso significa que puedes usar, modificar, crear y distribuir contenido utilizando el motor, siempre y cuando lo acredites correctamente.

  • ¿Cómo nació este proyecto?
    El proyecto nació por la necesidad de tener una herramienta 2D a medida para el desarrollo de proyectos personales y, en mayor medida, como base para la realización de proyectos de los estudiantes de primer curso en el centro donde imparto clases como profesor de diseño y programación de videojuegos.

  • ¿En qué estado de desarrollo se encuentra el motor?
    Con más de 6 años de desarrollo, ya se encuentra en una fase estable y sin errores graves conocidos. Actualmente, se trabaja en la mejora del rendimiento y la incorporación de nuevas funcionalidades.

  • ¿Cuáles son las principales características del motor?

    Métodos de entrada:

    • Teclado
    • Ratón
    • Gamepads norma x-input

    Gráficos:

    • Texturas de hasta 8192x8192 píxeles
    • Fondos de gran tamaño usando tiles
    • Sprites con o sin animación
    • Cámara virtual 2D
    • Capas de texto
    • Lienzo para el dibujado de primitivas
    • Diferentes modos de mezcla y uso de máscaras
    • Hasta 8 viewports simultáneos y ajustables
    • Capacidad de 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
    • Posibilidad de cambiar el volumen, pan (en los efectos de sonido), pitch y loop

    Colisiones:

    • Detección de colisión entre 2 sprites por cajas, con la posibilidad de añadir múltiples colisionadores en cada sprite
    • Detección de colisión entre 2 sprites a nivel de píxel
    • Raycast de 1 punto de una coordenada a un sprite
    • Mapas de colisión de hasta 255 colores

    Sistema de archivos:

    • Funciones de carga de los recursos desde el sistema de archivos
    • Posibilidad de crear archivos de empaquetado de recursos con la opción de encriptación
    • Funciones de carga y grabación de archivos en formato binario o texto
    • Posibilidad de gestionar hasta 127 repositorios de recursos, indicando la lista de archivos a cargar desde un archivo de texto plano
  • ¿Qué contiene el paquete de distribución del motor?
    El archivo contiene el código fuente del motor, así como las librerías del mismo compiladas para Windows, Linux Mint y Raspberry PI OS (Raspbian), documentación de instalación y uso, ejemplos comentados y un paquete con demos ya compiladas que muestran las principales funcionalidades del motor.

  • ¿Cómo puedo contactar con el autor?
    Puedes enviar un correo electrónico a la dirección de contacto: contact@nightfoxandco.com.

Aquí tienes una demo reel con la mayoría de características del motor:
Demo Reel




[English]

  • What is N’gine?
    N’gine is an open-source engine for 2D game development, especially tailored for pixel art games. It is inspired by techniques used in classic consoles (tile backgrounds, sprite-sheets, etc.).

  • Which programming language is used?
    The entire engine is programmed in C++, using supporting libraries like SDL2, SFML, and LodePng to expedite the creation process.

  • Who is it intended for?
    It is aimed at anyone who wants to develop their own video game and has a basic understanding of object-oriented programming.

  • Which systems does it run on?
    Currently, the engine runs on Windows, Linux, and Raspberry PI OS.

  • Under what license is it distributed?
    The engine is distributed under the MIT license. This means you can use, modify, create, and distribute content using the engine, as long as proper attribution is given.

  • How did this project originate?
    The project was born out of the need for a custom 2D tool for personal projects and, to a greater extent, as a foundation for first-year student projects at the center where I teach as a game design and programming instructor.

  • In what development state is the engine?
    With over 6 years of development, it is now in a stable phase without known major bugs. The current focus is on performance improvement and the addition of new features.

  • What are the main features of the engine?

    Input Methods:

    • Keyboard
    • Mouse
    • X-input standard Gamepads

    Graphics:

    • Textures up to 8192x8192 pixels
    • Large backgrounds using tiles
    • Sprites with or without animation
    • 2D virtual camera
    • Text layers
    • Canvas for primitive drawing
    • Various blending modes and use of masks
    • Up to 8 simultaneous and adjustable viewports
    • Ability to move, rotate, and scale all graphic elements

    Sound:

    • Up to 4 simultaneous music/dialogue streams (ogg format)
    • Up to 64 simultaneous sound effects (recommended wav format)
    • 5-channel mixer
    • Ability to change volume, pan (for sound effects), pitch, and loop

    Collisions:

    • Collision detection between 2 sprites by boxes, with the ability to add multiple colliders to each sprite
    • Pixel-level collision detection between 2 sprites
    • Raycasting from 1 point of a coordinate to a sprite
    • Collision maps with up to 255 colors

    File System:

    • Loading functions for resources from the file system
    • Ability to create resource packaging files with encryption options
    • Loading and saving functions for binary or text files
    • Ability to manage up to 127 resource repositories, specifying the list of files to load from a plain text file
  • What does the engine distribution package contain?
    The file includes the engine's source code, as well as compiled libraries for Windows, Linux Mint, and Raspberry PI OS (Raspbian), installation and usage documentation, commented examples, and a package with already compiled demos showcasing the main features of the engine.

  • How can I contact the author?
    You can send an email to the contact address: contact@nightfoxandco.com.

Here's a demo reel with most of the engine's features:
Demo Reel