VoiD.net: the Developer’s Log

VoiD.net dev worklog

Monday, October 31, 2005

Un fin de semana movido

No he hecho mucho este sábado y domingo, la verdad, entre unas cosas y otras. He tropezado un poco con el intento de vehículo que estoy haciendo ahora, y aunque ya he salido del bache y estoy ultimando los retoques para verlo en acción, no he tenido tiempo de terminarlo. Mañana tengo más tiempo ya reservado para otras cosas, así que será el martes cuando con suerte pueda decir ‘¡Funciona!’ (esperemos).

posted by ferminho at 01:01  

Friday, October 28, 2005

Un reto

Un regalo para los pobres que soportan mi blog 😉

CyberGymkhana 2005 Un concursillo de lo más interesante. ¡Apuntaos, que acaba el plazo pronto y empezará el juego! Me pregunto qué tipo de “enigmas” habrá que resolver…Si os apuntais, aquí tendréis un competidor 😉

posted by ferminho at 14:11  

Friday, October 28, 2005

Un pequeño cambio

Anoche añadí Delta-Timing al juego, nada especial… simplemente ahora se limita a un valor (por defecto 60 fps) la parte de renderizado mientras que la lógica del juego se realiza tantas veces por segundo como sea posible.

También estuve implementando lo que ya comenté; hoy espero poder realizar las primeras pruebas.

posted by ferminho at 14:11  

Thursday, October 27, 2005

De pruebas

Ayer empecé someramente lo que va a ser un temprano prototipo de la implementación de los vehículos… vaya… creo que hasta ahora no los había mencionado,¿No?

Llevaba varios días con una idea en la cabeza y tiene algo que ver con esto. Hoy he terminado el estudio del ‘problema’ y creo que puedo afrontarlo. Todavía hay un punto que no sé cómo realizar del modo más óptimo, sin embargo, tengo una versión ‘simple’ ya en mente, que será la que implemente primero… y si me parece razonable, y decido continuar con ello, ya pensaré en la óptima.

Un poco de secretismo, pero bueno, si sale bien ya diré más…

posted by ferminho at 15:18  

Tuesday, October 25, 2005

0.31: Directivas de Preprocesador

Terminada con algun problemilla resuelto, la 0.31 del compilador, que añade un par de directivas del preprocesador al script, para poder definir macros. Pasaré ahora a terminar la parte de leer el .INI y a hacer algunas pruebas con algo que quiero evaluar si es tangible o no…

posted by ferminho at 20:21  

Monday, October 24, 2005

Pequeñas mejoras de la web

Estoy acostumbrado a usar Opera siempre y se ve genial la página en dicho navegador, pero me paré a mirar en otros y me di cuenta de pequeñas tonterías que se podían mejorar. Ahora mejor, creo.

De todos modos, sigo diciendo: best viewed in 1024×768 with Opera, Mozilla… worst viewed with IE :p

posted by ferminho at 17:15  

Sunday, October 23, 2005

A otra cosa

A día de hoy, la versión 0.3 de BlitzMice (la librería multi-ratón que estaba haciendo) queda cerrada -de momento-.

Funciona bastante bien en Windows® 2000. En XP al parecer el driver no funciona con el segundo ratón, en 98 con ninguno (aunque éste es comprensible). Debería funcionar bien en XP, así que ya lo seguiré mirando, pero de momento es secundario. Sigo con el juego, ya que tengo suficiente para poder usar la librería en 2K que es donde programo.

Ahora mismo, he añadido una mejora interesante al compilador (o debería decir, a los scripts): directivas del preprocesador. De momento un par, que son la definición de macros (al final, macros de sólo una línea – pero ¡Algo es algo!) y un pseudo-include para archivos de definición de macros, lo cuales siguen una sintaxis especial muy muy simple.

Esto se me ocurrió que sería necesario cuando pensé en lo incómodo que sería tener que andar mirando constantemente en un papel/bloc de notas los números de ID que se reservan para un PJ, o para un arma, un objeto, etcétera. Así se pueden definir macros más intuitivas que un simple número y usarlas en todos los scripts (gracias al include).

El motor final del juego vendrá con unos pocos archivos de éstos de definiciones “standard”… los ID de las armas, clases, etcétera.

¡Ah! Bueno, realmente estoy añadiendo ahora mismo todo esto. Para mañana o pasado mañana lo tendré, con suerte.

posted by ferminho at 21:53  

Thursday, October 20, 2005

¡Funciona!

Pues por fin, tras no poco esfuerzo, he conseguido compilar y linkar correctamente mi pequeño módulo para Blitzmax que reconoce más de un ratón. Apenas funciona la inicialización, pero ¡Bueno! Reconoce los dos ratones y eso es todo un logro… El input de botones ahora mismo no funciona pero necesito dormir un poco. Mañana lo seguiré arreglando…

posted by ferminho at 22:24  

Thursday, October 20, 2005

Recomendacion

Para los poco amantes de los plataformas con ratón, una recomendación… Abuse®, de Crack Dot Com ™.

Un juego que me marcó y que me encaminó hacia mi amor por los plataformas 😉 ¡Venga, echadle un vistazo! A ser posible a oscuras y con el sonido alto…

(Único problema: es para DOS)

posted by ferminho at 22:24  

Thursday, October 20, 2005

Control, control

A día de hoy, el tema del control todavía tiene algunas cosas en el aire. Bueno, voy a aprovechar para contar un poco más del motor del juego.

Los personajes (PJs de ahora en adelante), como ya creo que he comentado alguna vez, tienen clases y subclases, atributos, etcétera. Un PJ que pertenece a una clase nunca sale de esa clase, sin embargo el jugador puede (si cumple los requisitos) hacerle cambiar de subclase entre las pertenecientes a esa clase. (Realmente, un PJ podría a ojos de un jugador cambiar de clase, si el scripter lo que hace es definir un PJ nuevo idéntico, que se llame igual, perteneciente a otra clase, y suitituir el antiguo)

Entre otras cosas cada subclase tiene asociado un tipo de movimiento. Hay PJs Lentos, Torpes, Normales, Ágiles, etcétera. Cada tipo de éstos (es un simple campo de flags) simplemente habilita o deshabilita la posibilidad de realizar algunos movimientos.

Aparte, los PJs tienen, un tipo de arma asociado por la clase. Hay cinco tipos de armas:

· De filo: espadas, hachas, todo lo que pinche o corte. Sólo útiles en cuerpo a cuerpo, perfectas para bloquear frente a Contacto.

· De impacto: mazas, martillos, bates de béisbol… contundencia al poder, cuerpo a cuerpo de nuevo. Poder de ataque y defensa elevado.

· Contacto: si el PJ no usa armas, sino que usa su cuerpo para atacar (ya sea con puños, artes marciales, o … extremidades afiladas). Rapidez, arma “gratis”, potencia relacionada con la fuerza del PJ… pero presenta problemas para la defensa contra armas de filo.

· Arrojadizas: todo lo que sea una colección de armas arrojadizas que no pueden usarse en cuerpo a cuerpo. Dañinas pero desventajosas para la defensa.

· De distancia: armas que disparan; ballestas, pistolas, bazookas, lo que sea. Pueden usarse en un apuro como arma de impacto a quemarropa, o para bloquear.

Dentro de cada tipo de arma hay subtipos; cada clase tiene asociado un subtipo de arma; esto significa que, aunque el PJ puede usar cualquier subtipo de arma de ese mismo tipo, obtiene penalizaciones al usar un subtipo al que no está acostumbrado. Ej: Clase Pistolero, tipo De distancia, subtipo Pistola. Usando una escopeta (también de distancia) sufre penalización al utilizar el arma.

Y por último como introducción a “Todo lo que quiso saber sobre los controles y nunca se atrevió a preguntar”, los skills y el H4X.

Cada PJ dispone de 5 slots para skills y H4X. El H4X… no me quiero meter ahora a fondo en el tema, digamos que es ‘magia’ o ‘hechizos’. Las skills son habilidades, pero bueno, funcionan igual ambas. Dependiendo de las características de la subclase, tendrá unas habilidades u otras y tanta capacidad para usar H4X de ciertos tipos o no.

Eso son las bases para entender lo que hace falta para controlar un PJ de éstos:

· Hay que moverse, correr, saltar, agacharse… todo eso controlado con ‘cursores’ (llamémosle así a una cruceta genérica / cuatro teclas del teclado).

· Hay que apuntar y usar dos tipos de golpe/disparo : flojo y fuerte (obviamente uno más rápido, otro más lento y vulnerable pero más devastador). Para ello están el/los ratones o si se anda apurado (en uno de los modos de control de 2players/más) un joystick con 2 botones.

· Hay que elegir el skill/H4X y poder usarlo. Aquí empiezan las dificultades. Opción cómoda, 1 player : rueda del ratón para cambiar, boton de enmedio / click rueda para usar; además de la posibilidad de 5 hotkeys en el teclado.

Si hay 2 ratones… no puedo detectar la rueda de los ratones hacia dónde se mueve (sólo si se usa 1 a la vez). Aun así, se puede usar mover-rueda como ‘siguiente skill/H4X’ y pulsar-rueda como ‘usar skill/H4X’. Esta es la posibilidad que mejor me parece para n ratones. Si se usa un joystick por ahí como sustituto de ratón harán falta 2 botones más, lo cual son 4. (Quizá adopte por standard el ‘siguiente skill/H4X’ incluso para modo 1p para que sea igual en todos los casos, sin usar el rueda-arriba como ‘anterior’ sino ‘siguiente’ también)

Pero, y los hotkeys, ya debería quitarlos, o van a empezar a ocupar mucho teclado. Sin embargo dejar sólo la opción de moverse por ‘siguiente, siguiente…’ no me gusta mucho. Daré opción a configurar hotkeys siempre supongo.

· Y ahora llega el cachondo, el elemento que ya descontrola todo. El esquivar rápido. Un movimiento a-la-Castlevania Symphony of the Night®, al que quería reservar un botón. Pero visto el panorama, ¿qué hago? Sólo se me ocurre asignarle el botón izquierdo + derecho al a vez del ratón/joystick.

En fin, es un jaleo esto. Intentaré hacerlo así, dejando sólo los ‘cursores’ en el teclado, y bueno, hotkeys si se quiere… a menos que se me ocurra algo mejor. O que logre permitir más de un teclado.

posted by ferminho at 14:27  

Wednesday, October 19, 2005

Esto es una ratonera

En estos tres días no he posteado nada porque no he tenido mucho tiempo realmente para hacer nada…

He avanzado un poco en programación pero no mucho. Por otro lado, sin embargo, he diseñado el sistema de manejo de personajes y su estructura de datos, el cual he llamado ACMS (¡Gracias Azazel por los consejos!).

Y lo realmente interesante… he estado pensando a fondo el tema del control. Quiero hacerlo lo más cómodo posible, pero tengo el problema de que deberían poder jugar dos jugadores a la vez, y apuntar con un solo ratón…

Me he comido bastante la cabeza en este aspecto, y creo que lo voy a hacer de un modo bastante comprensible. Aparte de dar opción a elegir entre varios métodos de control, voy a dar soporte para… ¡más de un ratón! (Al menos de momento en Windows® 2000 y Windows® XP). Estoy trabajando en un módulo wrapper para Blitzmax de CPNMouse, un fantástico driver y api open source que permite dicha posibilidad. Y si funciona bien, no sólo 2 jugadores, sino que pensaré en tener ¡Hasta 4 por lo menos! (Aún así va a ser difícil ponerse 4 jugadores con teclado y ratón a la vez… si tuviera algo similar para teclados… aunque lo más probable es que le eche un vistazo también al tema)

Si alguien está pensando que es una flipada… bueno, el wrapper tiene su miga, pero no lo veo imposible. La diferencia entre poner 2 jugadores, 3, ó4, en VoiD.net, tal y como lo estoy desarrollando… es trivial. La parte más “difícil” es tener que meter la configuración de los controles de 4 jugadores en el menú 😉

A ver si esta tarde consigo casi-terminar el wrapper.

posted by ferminho at 11:23  

Monday, October 17, 2005

Algunos bugs han muerto

Un fin de semana movidito, en el que he avanzado algo menos de lo normal, pero un poco sí.

Para empezar unos pocos bugs solucionados, sobre todo referentes a lo último que añadí; que no tuve tiempo de testear… de momento aseguraría que el motor es (casi)totalmente estable. No he tenido ningún problema todavía, pero claro, nunca se puede saber con total certeza…

Por otro lado empiezo a meterme con temas más serios. La pool de personajes ya está más o menos organizada… con un árbol binario (he cambiado varias veces de diseño porque todos tenían ventajas y desventajas), ordenado por los ID del personaje. Por otro lado, añadí algunas funcionalidades al ‘core’ (como por ejemplo más estabilidad para … pausar todo)…

Y lo que ahora mismo estoy haciendo, leer la configuración del archivo .INI… y como soy tan pijoteras, haciéndolo poco restrictivo (qué le vamos a hacer) y demás. Con suerte, el martes lo tengo con la configuración actual inicializable en el INI.

PD: me gusta mucho como están quedando los desplazamientos pseudo-logarítmicos (tanto de posición de cámara, zoom, distorsión de tiempo), creo que me han quedado justo como quería.

posted by ferminho at 00:46  
Next Page »

Powered by WordPress