Skip to content

wikiti/go-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GO Engine

1. Resumen

Go Engine es un motor gráfico multiplataforma para poder utilizar como base a la hora de realizar videojuegos. El nombre proviene de la orientación del proyecto (GameObject Engine), basado en entidades y componentes.

2. Descripción detallada

En este proyecto, trataremos de implementar un motor de videojuegos multiplataforma (Windows, Linux y Mac) que será utilizado como API por los usuarios para realizar sus propios videojuegos. El sistema dispondrá de una simple interfaz gráfica que permitirá a los usuarios trabajar de una forma más cómoda e intuitiva. Dentro de las especificaciones del motor, podemos mencionar las siguientes:

  • Gráficos 3D con OpenGL
  • Sonido 3D con OpenAL (u otras)
  • Capacidad de red (networking)
  • Motor físico con Bullet Engine
  • Interfaz gráfica de usuario sencilla (o GUI)

Para ello, se usará un paradigma del tipo orientado a objetos, en este caso, orientado a objetos y componentes (véase éste enlace ).

Además, se desarrollarán una serie de sistemas que trabajarán con dichos objetos (como mostrarlos por pantalla, actualizar su posición, etc).

Se definirán 3 partes en el proyecto bien claras y definidas:

  • Engine: Parte principal del motor (llámese kernel, núcleo, etc), conteniendo las definiciones de los objetos de juego, componentes y sistemas.
  • Usuario: Apartado en el que irá el código del usuario.
  • Editor: Interfaz gráfica para que el usuario pueda trabajar cómodamente.

3. Implementación

C++ implementado en Mingw (principalmente), GCC o cualquier compilador libre de C++

4. Librerías y dependencias

5. Documentación

La página de documentación del proyecto puede encontrarse en la carpeta "/doc" del repositorio, o bien accediendo a http://wikiti.github.io/go-engine.

6. Construcción del proyecto

El usuario debe programar en el directorio user/, que será usado para compilar el proyecto en conjunto.

En un futuro, se hará que el motor gráfico sea un ejecutable, y los ficheros del usuario sean unas librerías dll (shared libs), que será una solución algo mas limpia, pero más problemática.

Para construir el proyecto, se utilizará la herramienta CMake para el preparado de las dependencias y la compilación (módulos cmake Find<módulo>.cmake).

Simplemente, basta con usar la herramienta cmake dentro del directorio build/, junto con la toolchain deseada, y luego ejecutar la herramienta make.

> cd build/
> cmake .. -G "<Toolchain aquí>"
... Corregir errores, relanzar cmake, etc.
> make

Y se generá el ejecutable goengine, que deberá ser ejecutado:

> cd ..
> ./build/goengine

Básicamente, el ejecutable se debe lanzar desde la carpeta raíz del proyecto, si no, no encontrará los archivos en la carpeta data/. Por comodidad, se puede copiar el ejecutable a la carpeta raíz, o crear una carpeta bin y poner el ejecutable dentro, además de crear un acceso directo para ejecutarlo desde la raíz.

Para saber la lista de toolchains disponibles, basta con usar:

> cmake --help

Por defecto, si no se usa la opción -G, se usará la toolchain predeterminada.

Recomiendo commpilar el proyecto en Windows, con MiNGW Makefiles

Nota: MSYS Makefiles para Windows dará problemas, ya que no enlazará correctamente la librería libSDL2main.a.

7. Autores

Este proyecto ha sido desarrollado, en conjunto, por:

Avatar Nombre Nickname Correo electrónico
Daniel Herzog Cruz Wikiti wikiti.doghound@gmail.com

8. Enlaces de interés

About

GO Engine based on Game Objects and Components

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages