elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  (Consulta) Como hace un juego que se puedan usar mods en el
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (Consulta) Como hace un juego que se puedan usar mods en el  (Leído 2,682 veces)
Seyro97

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
(Consulta) Como hace un juego que se puedan usar mods en el
« en: 22 Julio 2015, 15:32 pm »

Hola, muy buenas a tod@s. La duda es la siguiente: ¿como hace un juego para que se le puedan meter mods? Pongo un ejemplo: Tenemos un juego que va de disparos, al cual se le pueden meter mods para tener mas armas, o que las armas hagan cosas especiales (lanzar balas con forma de arco iris XD). Explico mejor mi duda: En C++, como se puede hacer que un ejecutable admita mas código, es decir, como hace para que se le pueda insertar código.

Espero haberme explicado, y gracias por sus respuestas


En línea

Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: (Consulta) Como hace un juego que se puedan usar mods en el
« Respuesta #1 en: 22 Julio 2015, 16:34 pm »

Hay muchas formas. te expongo una, muy simple. Dudo que muchos juegos hagan esto, pero es un método xD

Puedes tener en tu programa, un array de armas, por ejemplo. Cada arma, tiene estos punteros a función: getDamage(), getRecoil(), isAuto() y renderGun() (por ejemplo).

En una archivo XML por ejemplo, pone:
Código
  1. <weapon>
  2.    <name>NyanGun</name>
  3.    <folder>nyangun</folder>
  4.    <DLL>nyangun.dll</DLL>
  5. </weapon>

Entonces, cargas esa DLL. Coges en la DLL, las funciones getDamage, getRecoil, etc etc, y las colocas en la clase weapon. Luego esa "weapon", que realmente son punteros a funciones de la DLL, la metes en tu array de armas, y listo. Ya tienes tu nueva arma.

Cuando la quieras renderizar, llamas a weaponList[ i ]->renderGun().

En caso de que necesite texturas, pues pondrías las texturas junto a la DLL en la carpeta (por ejemplo).

Es un ejemplo simple, pero te puede servir. Una DLL puede tener toda la información que quieras, así que es un método factible de crear MODS.

Cada juego tiene lo suyo, y si vas a hacer un programa con mods, utiliza el método que más te guste.


EDITO: Si a alguien se le ocurre algún otro método, o sabe de alguno que sea potente, que lo diga. Cuantos más métodos de hacer esto se expongan, mejor :D!


« Última modificación: 22 Julio 2015, 16:36 pm por ivancea96 » En línea

Seyro97

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
Re: (Consulta) Como hace un juego que se puedan usar mods en el
« Respuesta #2 en: 22 Julio 2015, 17:08 pm »

Parece algo complicado, sobre todo porque no manejo muy bien el tema de los DLLs (aunque tiene lógica, porque están en código máquina, y tu necesitas código máquina)

Muchas gracias!
En línea

Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: (Consulta) Como hace un juego que se puedan usar mods en el
« Respuesta #3 en: 22 Julio 2015, 23:50 pm »

Echale un vistazo a las DLL, que son muy, muy sencillas. Lo único que cambian es la forma de compilarlas.

La DLL al final, son funciones (+ un main, que va un poco a parte). Luego es solo cargar la DLL en otro programa, y cargar las funciones por su nombre.
En línea

Seyro97

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
Re: (Consulta) Como hace un juego que se puedan usar mods en el
« Respuesta #4 en: 23 Julio 2015, 03:46 am »

Vale, muchas gracias :D
En línea

Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines