/Moon

Primary LanguageC++MIT LicenseMIT

Moon

Moon es un Game Engine desarrollado por KEGE Studios escrito en C/C++, fue diseñado basado en la Arquitectura ECS y usando algunas funcionalidades del nuevo estandar de C++20

Características principales

  • Eficiente en el uso de Recursos
  • Arquitectura Kernel para el escalamiento e interacción entre los plugins
  • Uso de la STL para los contenedores
  • Concepts implementados para una mayor seguridad en templates
  • Predicción de tipos en tiempo de compilación
  • Un Core simple, liviano y libre
  • Plugins pequeños y específicos
  • Ejemplos para todos los plugins oficiales
  • Solo incluyes lo que necesitas
  • Independencia de plugins

Características de la versión

  • GameContext
  • System
  • Component
  • Entity
  • Herramienta de Instalacion y creacion de proyectos
  • Uso de la STL para los contenedores
  • Predicción de tipos en tiempo de compilación

Configuración del entorno

Añade la variable de entorno

MOON_STUDIO_PATH=$HOME/MoonStudio

Esto servirá para la creación de los proyectos de Moon

Instalación

Plataformas

  • Windows
  • Linux
  • MacOS(Proximamente)

Windows y Linux

Solo se requiere tener instalado CMake y algún BuildSystem como Ninja para WIndows y Unix Makefile para Linux junto a un compilador de C++ de su elección se recomienda g++ de cygwin para Windows y GNU GCC o Clang para Linux.

# Creamos la carpeta donde se instalaran tanto el core como los plugins
mkdir MoonStudio
cd MoonStudio

# Clonamos el repositorio de Moon
git clone git@github.com:reitmas32/Moon.git
cd Moon

# Creamos una carpeta para los .lib .a y ejecutables
mkdir build
cd build

# Creamos la configuracion de Cmake para la compilacion de Moon
cmake .. -G <BuildSystem>-DCMAKE_CXX_COMPILER=<CXX_COMPILER> -DCMAKE_C_COMPILER=<C_COMPILER> -DCMAKE_CXX_FLAGS=”stdlib=libc++”

# Por ultimo dependiendo del BuildSystem que usemos compilaremos el proyecto 

Usando Moon Core

  • Puede en contrar ejemplos de Moon en los siguientes repositorios

Contribución en Moon

¡Gracias por invertir su tiempo en contribuir a nuestro proyecto! Cualquier contribución que haga se reflejará en https://github.com/reitmas32/Moon.

Lea nuestro Código de conducta para mantener nuestra comunidad accesible y respetable.

Formato para la contribucion de Commits

  • feat(feature-name): mensage del commit
  • fix(feature-name): mensage del commit
  • docs(feature-name): mensage del commit
  • breaking(feature-name): mensage del commit

Plugins

Docuemntación

Para obtener mayor informacin sobre Moon puede consultar nuestra Documentación