lunes, 26 de junio de 2017

Second prototype of Thrylos.

Noe: I erased the link to the game on 14/12/2020, due to persnal reasons.

I think it's time I start writing some posts in English. As you can see, Spanish is the main language here, as it's my mother's tongue, but nowadays video games are pusblished mostly in English. It makes little sense to publish my freeware games in English to speak about them only in Spanish!

So, I'll start a new page in English. I'm not tricking you: most of the posts will be direct translations of a Spanish-written post and I see unlikely that all posts will translated. After all, some of them will be likely about Spanish issues without relevance for people around the world.

However, I'm not discarding writing posts exclusively in English. Indeed, it's very likely that translations won't be literal and will have some fragments rewritten. Why? Because, while writing in Spanish, I won't resist making jokes that won't have sense in English, both/either because they may be untranslatable word jokes and/or may be based in particular facts from Spain.

This post is the very example, even if only for the introduction. And now, let's go with my game, as you'll be likely wondering what is Thrylos about. Around three years ago, I got this impulse of making a game. My experience with informatics until then was that of a advanced user of various Windows programs. My degree in Chemistry had made familiar with Excel and very specific maths programs such as Maple.

But I had learnt nothing about C++ or any other programming language. Incredibly, Spanish education has still some problems in recognizing the capital importance of informatics in every scientifical field nowadays.

It was then when my best friend, Daniel Robledo, spoke me about Python. He argued it was easy to learn and easy to handle. His asseverations were true, but I needed some guide to implementing games. It was then when I came to know about Pygame, a module specifically thought for 2D games. While it didn't have everything I'd have wished, it was a good start.

So I started practicing Python and, specially, Pygame. I also attended the course An Introduction to Interactive Programming in Python in Coursera, which was honestly fundamental during my first steps.

Basically, Thrylos is a mixture between two very different kinds of platformers: cinematic platformers and single screen, non-scrolling platformers. I know it's a somewhat peculiar system, but the idea is simple: You must go towards the exit of the level. In some stages, some conditions will be necessary to meet to progress.

The main character is Xanthias, a girl captured in a slave raid that escapes when her new masters can't watch her. The adventure goes on until she reaches a bifurcation... and that's one of the concepts I want to introduce in Thrylos: alternate histories.

In some, Xanthias will agree to colaborate with her masters so he can still move. In others, with other people. In all of them, at the least somebody else will be a new character, controllable until the end of the stage. This stages will be the collection of levels with the same characters and the same condition to finish the level. Some of you must think in Lost Vikings right now. I think I played it only once at a friend's.

The game will continue until a ending is reached, and I must advise I don't want to define endings in terms of good and bad, much less as canon. Indeed, it's very likely that in every ending Xanthias will have a diffferent past. This comes from the fact that Xanthias will be a standard Greek-culture girl from 5.500 BC, the name likely means "blonde", as somebody with a good knowledge of Greek told me it was a common name for (blonde) slaves in Aristophane's comedies.

The mechanics of the game are similar of those of Abe's Oddyssey, for example, in that most of the movements are realistic. However, I've made the movements so they're dynamic and they don't depend on grids, like it's common in the cinematic subgenre. As I'm aiming for realism, one hit means death or significant injure, but you can just restart the game in any given moment.

This is the first serious attempt on Thrylos, as my two former works were mere practices. In any case, this is first one that has known two versions (the first is still at the link on the column). Anyway, the ERASED is here.

Segunda versión del prototipo de Thrylos.

Aviso: Desde el 14/12/2020, se eliminó el enlace. Motivos, en una entrada posterior.

He seguido introduciendo nuevas facetas para Thrylos y puedo decir que he cumplido prácticamente la totalidad de mis planes. De momento:

-En el anterior prototipo, fallaba la animación de empujar cajas y la de dejarse caer, por lo que no se incluyó el movimiento de descolgarse. Ahora están corregidos y funciona bien.

-Hay plataformas por las que se puede pasar a través, lo cual mejorará mucho la jugabilidad.

-Los ataques son ahora más precisos, en el anterior prototipo no detectaban correctamente las colisiones.

-Configuración de controles. A no todo el mundo le gusta usar los mismos controles, así que es absurdo no dar una opción para cambiarlos.

-En lo que se refiere al código en sí, he implementado un mejor registro de datos, que el anterior era un coñazo y daba errores con frecuencia. No obstante, aún quedan algunos asuntos pendientes que aclaro más adelante.

-He cambiado la inteligencia artificial, pues quiero que el primer enemigo que se encuentra en el juego sólo tenga ataques cuerpo a cuerpo. También he desarrollado otro tipo de enemigo, aunque no aparece en este prototipo.

Me queda pendiente, eso sí, mejorar mucho este último aspecto. He reflexionado bastante al respecto y debo admitir que, si bien ya creé en uno de mis intentos anteriores un sistema funcional, no me convence del todo porque depende de banderas y como cada tipo de enemigo tendrá su propio comportamiento, al fin y al cabo podría hacerlo más complejo.

Para el futuro queda:
-Introducir los datos como archivos que se cargan al iniciar el programa, para implementar un sistema más cómodo para añadir mods.
-Incluir textos en español. Pero si hago eso, seguramente será como un dato externo. ¿Por qué? Porque, si uno piensa en las traducciones, es más fácil añadir nuevos archivos, que tener que introducir en el código el nuevo texto en el idioma que sea. Es decir, una extensión del anterior punto.
-Un editor de niveles, personajes y otros puntos para agilizar que se puedan guardar los anteriores datos en archivos.
-Más ideas como que los ataques puedan orientarse en varias direcciones, pero seguramente me concentraré más en las anteriores ideas de momento.

Ahora bien, debo reconocer que tengo una severa limitación:
-Sprites. Hasta ahora he usado sprites freeware, pero cualquier obra coherente presenta una unidad estética. No puedo seguir cogiendo por ahí para que esto resulte serio. Hasta ahora me ha bastado para aprender, pero es hora de que intente algo por ahí. Ya se me ocurrirá algo...

Allá va el ELIMINADO. De todos modos, se puede encontrar el link en la columna a la derecha.