Plugins en videojuegos: ¿Cómo funcionan?
Creando nuestro propio videojuego, dentro de otro videojuego.
Desde chico mi sueño fue hacer videojuegos, algo que algún dia cumpliré, pero gracias a esto descubrí mi otra pasión: Programar.
Mi yo pequeño, curioso y con sed de aprender (si, desde chico) se me ocurrió la idea de crear mi propio servidor de counter strike, pero no uno común, sino uno de zombies. Esto me llevo a aprender muchas cosas, una de ellas era como crear mi propio juego dentro de otro.
¿Cómo funcionan los videojuegos?
Para empezar entendamos la raíz. Los videojuegos son creados con un mix de cosas, una de ellas es la programación. Dependiendo de la década en que se haya creado puede variar entre programación de alto nivel ó bajo nivel, también muchas empresas usan motores creados por ellos mismos ó de terceros (Unity, Unreal Engine, por ejemplo) para agilizar los tiempos de creación.
A veces por necesidad de los mismos jugadores se crean adicionales (plugins) para agregar mas jugabilidad, en algunos casos estos adicionales usan librerías de los motores ya mencionados ó en una capa superior se agrega un “algo” para permitírnoslo. Estos plugins muchas veces agregan más duración a los videojuegos, conviene muchas veces tanto para los jugadores como a los desarrolladores.
Entonces… ¿Cómo funcionan los plugins?
Como mencioné mas arriba, es un “algo” que se agrega al juego base, puede estar escrito en el mismo lenguaje que él ó un lenguaje distinto.
Algunos ejemplos pueden ser: Pawn, Java ó Lua
Pawn
Es un lenguaje bastante interesante, es muy parecido a C, es de 32 bits y bastante rápido.
Más info en: Link a info de Pawns
Es muy típico en verlo por ejemplo en plugins para GTA San Andreas Multiplayer (SAMP), Counter Strike 1.6 (AMX MOD) y Counter Strike Global Offensive (SourceMod).
Como verán, el juego nativo en si no acepta Pawn PERO agregando un extra como AMXMOD ó SAMP dependiendo del juego nos permite crear cosas muy locas, desde un simple mensaje en pantalla hasta guardar cosas en base de datos. En el Counter Strike 1.6 cree un mod zombie con niveles, obviamente llevó su esfuerzo, pero es posible.
Counter Strike Global Offensive Scripting: https://wiki.alliedmods.net/index.php/Category:SourceMod_Scripting
SAMP Scripting: https://team.sa-mp.com/wiki/Scripting_Basics.html
Counter Strike 1.6: https://wiki.alliedmods.net/Category:Scripting_(AMX_Mod_X)
Java
El caso de Java es interesante. Es un lenguaje que conoce todo el mundo, robusto y fiable. Minecraft está hecho en esto y nos permite nativamente (con bukkit ó spiggot) crear plugins en este lenguaje ó mods y usar las librerías nativas del mismo. Es muy poderoso realmente lo que se puede hacer.
Lua
Lua al igual que Java es un lenguaje utilizado en un videojuego: Roblox. El mismo caso que Minecraft, podemos usarlo para crear plugins y conectarlos al juego ó servidor.
Otros casos
Existen otros plugins, como por ejemplo los de RimWorld que utilizan C# como lenguaje base. En estos casos los plugins/mods se suelen compartir por el workshop de Steam para hacerlo llegar a todos los jugadores y se centran en el modo de juego offline.
https://rimworldwiki.com/wiki/Modding_Tutorials#C.23_tutorials
Conclusiones
En resumen, si deseamos agregar cosas a nuestros videojuegos u otro juego dentro del mismo juego debemos recurrir a estos plugins/mods que podemos descargar ó crearlos nosotros mismos.
Curiosidad de la semana: DockerCraft
¿Sabias que existe un mod de Minecraft que nos permite crear contenedores de Docker desde el mismo juego? Bueno, ahora lo sabes, te presento DockerCraft
Recomendación de la semana: Castlevania (la serie)
Creada por Netflix, a mi gusto, es una obra de arte. Tiene todo: Acción, Sangre y Romance. La serie trata sobre Dracula y el último descendiente de los Belmont (un cazador de monstruos/heroe). 100% recomendable.