Firma si quieres ver Killer Disco 2600 en Wiz

Started by Drumpi, November 29, 2016, 01:53:33 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

JAJAJAJAJA
JAJAJAJAJAJA
JAJAJAJA

Por Dios, Link, que son la una de la noche y mañana me levanto a las siete y media. No me hagas reir así (ah, eso que tambien despierto a los vecinos) :D

Venga, va, sólo por eso, en cuanto saque un rato, después de los exámenes de inglés (y del prototipo del juego de Android, y de las dichosas hormigas para DCelso), me pongo, adecento el código, y lo saco para Wiz.

Es la primera vez que me piden que haga algo a "golpe de remo" :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Drumpi

Bueno, pues le he metido mano al código, así, por encima. Apenas han sido un par de horas, pero ya he podido pegar y adaptar el código de control de teclas de Wiz al juego. No he podido probarlo aun porque cada vez que decía de sacar la consola me han llamado para algo.
En teoría debería funcionar en la consola, pero aun tengo que hacer más cambios. De momento he separado el control de teclas del código que controla toda la "iluminación" (Futu te aguantas, ahora hay SEIS procesos :D :D :D). Aun tengo que hacer que los bailarines sean procesos independientes, implementar el cambio de dificultad, y el segundo modo de juego para dos jugadores, amen de otros retoques estéticos (ese parpadeo de luces al morir típico de Atari) y de interfaz (que sí, que en la Atari 2600 no se veía en los menús si se había activado el mode o qué, pero es que si no los pongo, no se va a saber, y en la Atari bastaba con echar un vistazo a los interruptores que no se ven aquí).
Y a ver qué hago con el sonido.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Drumpi

Las buenas noticias son que ya funciona en Wiz. No hace nada que no hiciera en PC antes, pero funciona.
Las malas son eso, que no hay cambios respecto a la versión de PC, si siquiera se puede salir del juego.

Así que, recapitulando, mi lista TODO es:
- Poder salir del juego.
- Modificar las z de los protas.
- Separar a los enemigos en procesos independientes.
- Modificar las luces de fondo para que puedan parpadear a lo bestia al morir alguien.
- Aumentar la dificultad del juego progresivamente.
- Añadir selector de dificultad inicial.
- Añadir un segundo modo de juego a dobles.
- ¿Añadir un segundo modo de juego para un jugador?

No debería tardar mucho, peeeeeero...
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Futu-block

Ya se ha terminado el concurso, ya puedes ponerle tres mil millones de procesos si quieres

Drumpi

Juer, pobre Wiz, tres mil millones de procesos :S
¿Alguien ha intentado llegar al máximo número de procesos simultáneos? :D

Bueno, Este fin de semana no me han dejado mucho rato pero al menos he conseguido avanzar un poco con el juego. La lista es la misma de ayer, pero ya está con un + lo que he conseguido programar. Aviso que se han añadido cosas a la lista y están pendientes por añadir más (principalmente por el tema sonoro, para que no esté mudo el juego):
+ Poder salir del juego.
+ Modificar las z de los protas.
+ Separar a los enemigos en procesos independientes.
+ Modificar las luces de fondo para que puedan parpadear a lo bestia al morir alguien.
- Aumentar la dificultad del juego progresivamente.
- Añadir selector de dificultad inicial.
- Añadir un segundo modo de juego a dobles.
- ¿Añadir un segundo modo de juego para un jugador?
- Cambiar textos con nombre de teclas en menu principal segun SO.
- SFX muerte.
- SFX intro.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Futu-block

Quote from: Drumpi on July 09, 2017, 08:09:21 PM
Juer, pobre Wiz, tres mil millones de procesos :S
¿Alguien ha intentado llegar al máximo número de procesos simultáneos? :D

con 1001 procesos solo va a 9 fps, asi que imaginate con tres mil millones... XD


Pasa el killer disco a android, dios mio, estoy que me come la fatiga con android

Drumpi

¿Y cómo meto los controles para dos personas a 4:3? Se me ocurre un esquema sencillo para un jugador, pero tener bandas negras a los lados va a suponer un problema. El juego no se pensó para 16:9 ¡De hecho sólo se pensó para Atari y para tus reglas!

Si después de arreglarlo y portarlo a Wiz (y Caanoo, quizás) me quedan fuerzas y ganas, lo intento, pero te digo ya que tengo muchísimas ganas de retomar el Echo y hacer de una puñetera vez los tres niveles que faltan, porque me están entrando unas ganas de hacer un nivel a lo Gunstar Heroes (correr y disparar con mínimas plataformas y muchos enemigos que mueren fácilmente)...
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Futu-block

Bueno, se puede hacer point ant go de esos de los de aventura grafica...

con tal que lo portes a wiz tenemos ya tol pescao vendío, total

Drumpi

Claro, y le meto reconocimiento dactilar para saber qué jugador ha hecho point&click :D

No sé si subir el DCB de la versión actual o esperar a tenerlo todo terminado ^^U
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Drumpi

Bueno, quién iba a pensar que algo como establecer los valores del nivel de dificultad de un juego arcade iba a ser mcho más complicado que establecer el propio nivel :D
A principio de semana (ya no recuerdo si de esta o de la anterior) me di cuenta de un bug curioso, por el que los enemigos dejaban de aparecer. Tras investigarlo durante una hora vi que la variable que contaba enemigos se había vuelto loca y marcaba -5, y tal como estaba planteado el código era un claro síntoma de que se me había ido un puntero a refrescar a Parla... ¡pero yo no uso punteros en el juego! bueno, alguno hay, pero nada serio. Así que, tras buscar entre los posibles culpables, me quedé sin opciones.
Creo que fueron dos horas más de investigación las que me llevaron a concluir que fue un problema de (falta de) inicialización de algunas structs que tenía para los datos enemigos, y por tanto, algún signal s_kill se me descontrolaba.

Pero bueno, el caso es que he creado una función que establece la velocidad de refresco de la pista, el número máximo, su rango de aparición y el tiempo de vida, tanto de "enemigos" como de chicas, en función del nivel de dificultad. Casi 180 líneas.
Y luego, crear el control que establece el nivel inicial de dificultas (el switch de "dificultad" solicitado por Futu en su día) han sido apenas 5 líneas y tres minutos de programación. ¡Incluso lo que ya había mejorado me había llevado el mismo o menos tiempo!.

También he podido hacer pruebas en Wiz. Funciona perfectamente, aunque no dispongo de un DCB que sepa que funcione, porque actualicé el código de la versión compartida, pero no el binario, y lo tengo compilado desde la propia Wiz ^^U Aun tengo que probar el DCB que he generado después de aquello, pero implementado para Wiz está.

Ahora a ver si consigo betatesters para probar lo que llevo hecho mientras le sigo dando retoques a lo que falta. esta es la lista actual TODO:
+ Poder salir del juego.
+ Modificar las z de los protas.
+ Separar a los enemigos en procesos independientes.
+ Modificar las luces de fondo para que puedan parpadear a lo bestia al morir alguien.
T Aumentar la dificultad del juego progresivamente.
+ Añadir selector de dificultad inicial.
- Añadir un segundo modo de juego a dobles.
- ¿Añadir un segundo modo de juego para un jugador?
- Cambiar textos con nombre de teclas en menu principal segun SO.
- SFX muerte.
- SFX intro.

Como veis, dos cosas más acabadas... bueno, sólo una, la otra tiene una T de "testeo", pero como no paso del nivel 3...
En teoría, el "juego B" para dos jugadores se implementa con un cambio en tres líneas del jugador 2 (también habría que establecer nuevos valores en la dificultad... pero eso ya está hecho :D), pero no tengo ni idea aun de qué tenía pensado para el "juego B" para un solo jugador, que sea fácil de implementar.
Lo de los textos puedo hacerlo bien con mi class_string.inc, o a lo bestia con un par de líneas de código y constantes. Y lo de los sonidos pues ya veremos. Sé qué sonido quiero poner para la muerte, pero quiero investigar cómo se generaba en el sonido en la Atari 2600 para componer una banda sonora para el tutorial. Va a ser apenas un par de segundos de música, pero dada mi habilidad para componer, que no os extrañe que el juego se retrase de forma indefinida :D :D :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Futu-block

bueno, señal que la cosa vá bien, aunque cada vez que leo la palabra puntero no tengo ni idea de lo que es, je je
será un array, como le digo yo :P

si es dificil programar un juego tipo atari 2600 imaginate programarlo para atari, me estoy leyendo asin por encimita un pdf de programación de atari2600 y ahora comprendo al porecito que programó ET en una semana, el tio es un maquina

Drumpi

Un puntero es una variable, igual que las que usas para guardar enteros, floats o strings. Lo que pasa es que contienen una posición en la memoria RAM, que es donde se guarda toda la información del juego, el código binario del ejecutable ¡y los demás programas en ejecución, como el propio sistema operativo! imagina la que se puede liar si accedes a una dirección equivocada.
Con ese valor, puedes leer o modificar cualquier posición de la memoria RAM, y es lo que usan los hackers para trastear en tu ordenador, pero ni ellos ni tú pueden hacerlo tan fácil porque el sistema operativo cuenta con herramientas de seguridad para que ningún programa lea fuera de su zona de memoria asignada (los famosos "segmentation fault" o esas ventanas de error en "chino" de Windows).

Luego, para programar en Atari, no estoy seguro, pero creo que se usaba lenguaje ensamblador. Lo poco que he leido, usaba uno de los procesadores más comunes de la época, por lo que encontrar gente que supiera programarlo no era tan complicado como pudiera parecer en un principio.
El lenguaje ensamblador es bastante fácil de aprender y de entender como concepto, porque son instrucciones muy básicas, y en este caso, limitadas (creo que no debe haber más de 200 ¿no? y muchas están repetidas según el tipo de dato que se use). La pega es que tienes que saber de electrónica de ordenadores, tienes que conocer todos los componentes que lleva y tener al lado el manual de cada uno de ellos para saber cómo funcionan, y también el libro con las 200 instrucciones del procesador, porque los nombres de las instrucciones no son nada aclaratorias.

Superado eso, es cuando empieza la dificultad, porque es cuando le tienes que echar imaginación para saber cómo leches pintas en pantalla, mueves unos bytes que representan a tu personaje de una posición de memoria a otra, o cómo generas ese dichoso sonido sin usar un fichero con una onda sinusoidal.

Y no, no le quito mérito al programador de ET o de Pacman. Dos semanas para hacer eso en ASM es un logro, aunque los resultados sean nefastos. Dos semanas no es suficiente ni hoy día para hacer algo mínimamente decente, y un prototipo no es un juego, aunque el que ponga el dinero diga que sí.



Por cierto, os tengo muy abandonados, pero es que llego a casa con cero ganas de programar. En el trabajo estoy echando más horas de la cuenta, y entre c#, la web api, Xamarin, SQL y el Visual Studio me tienen amargadito. Tardo una mañana entera en generar un simple informe. Espero que con la experiencia pueda reducirlo a un par de horas, pero mientras, llego a casa y sólo tengo dos horas para soltar los trastos, atender a las peticiones que me llevan aguardando en casa desde que salgo a trabajar, y hacer lo que me venga en gana antes de cenar.
Y ahora me ha dado por aprender Blender. Se me agota la licencia de estudiante de Maya, y quiero tener un sustituto "por si acaso".
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Futu-block

Quote from: Drumpi on August 06, 2017, 01:00:22 PM
Por cierto, os tengo muy abandonados, pero es que llego a casa con cero ganas de programar. En el trabajo estoy echando más horas de la cuenta, y entre c#, la web api, Xamarin, SQL y el Visual Studio me tienen amargadito... y bla bla bla

¿Comprendes ahora porque ni te meto prisa con lo nuestro? porque a mi lo que menos me gusta es meter prisa a la gente, y mas si trabaja por amor al arte osease de grati

que por cierto, voy a tener que darle caña a dilley Celso que veo que se está cachondeando de mi una mijita, lol

Drumpi

Juer ¿Desde Julio no toco el código? Se me ha pasado el tiempo volando (es lo que tiene cuando te pasas semana tras semana en plan zombie por falta de sueño o con prisas porque alguien quiere terminar las cosas antes de tiempo).

En fin, hoy he podido dedicarle otra horita (porque ayer estuve ocupado respondiendo dudas a alguien, y no digo a quién :D)
Ya he podido implementar los modos de juego secundarios. Para empezar, al pulsar los botones de "dificultad" o de "modo" (o "select", como lo llamó Futu) hacen que en el menú aparezca un corto mensaje indicando el nuevo valor. Sé que no es lo que él quería pero fuuuuc... de alguna manera tenía que representarlo, porque no tenemos los interruptores físicos de la Atari.
El modo de juego 2 a dos jugadores hace que haya la misma cantidad de bailarines que de bailarinas, de forma que cada jugador tiene que emparejarse con los del sexo contrario, haciendo que los de su propio sexo sean un estorbo. Para el de un jugador, básicamente es un cambio de género: se juega con la chica y se buscan bailarines, para que no se me quejen las feministas :D

Aun me tengo que pensar si hago el cambio de textos según el sistema, y tengo que hacer los efectos sonoros... Eso va a llevar tiempo, por lo que el proyecto corre peligro de abandono :D :D ^^U

Y bueno, ya he gastado mi última media hora libre. Tengo que ir pensando qué juego hago para celebrar el 25º aniversario de los juegos paperactivos, porque tengo sólo hasta el 15 de Noviembre, y los 4 proyectos que tengo empezados no se acaban a tiempo ni aunque les dedique 3 horas diarias ^^U
Jo, y todavía tengo que hacer una prueba de collision con el Echo.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Futu-block