A PAck of classic GAMEs for BEnnugd

Started by DCelso, November 05, 2008, 12:03:38 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Prg

wow, ¿entre todos están preparando los juegos?

QuoteMucha razón. Según aumente el número de juegos del Pack se nos van a acabar las variables globales a usar XD

aquí no se, pero se pueden reutilizar muchas de las globales puesto que se va a tener un sólo juego abierto a la vez, Ejemplo: en energía, pues energía sirve para todos los personajes principales de todos los juegos. y ya nadamás crear funciones que actualicen los parámetros según el juego.

pd. no eh leido mucho del foro, no me hagan mucho caso.
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

DCelso

#76
tyco aún no pude mirar tu fuente, lo miro en breve y te cuento.

Por otro lado ya he cambiado las variables globales del tetris y otras, valla fallo, se me escapó, como era el primero no me daba conflictos con nadie :D.

Tambien he subido los fuentes y el binario de la última revisión para descargar directamente.

He añadido una nueva página con unas pequeñas reglas.

Por otro lado, decir que estoy esperando el documento de normas de programción bennu que amablemente nos está preparando SplinterGU (gracias de antemano).

Pixel, ahora he cambiado tu fichero dos veces, la primera le puse el _ al ancho y alto para que compilase, y la segunda se lo quité porque ya no hacía falta, así que ahora si te da conflictos con tu versión no te preocupes, puedes sobreescribirla sin problemas. He visto que al darle al escape en mitad del juego se cierra, en los otros vuelve al menú, habría que revisar el motivo

Prg, sí, mola, estamos haciendo algo chulo para bennuGD, si quieres puedes contribuir con un pequeñito grano de arena decualquier juego clasico que te guste hacer.

En cuanto a lo que dices, si sería buena opción pero quizás los juegos sean muy dispares y no necesiten todos las mismas variables aunque en mente teníamos unirlos mediante una variable de puntos global para los jugadores y así poder hacer estadísticas de quien ha sido mejor de los jugadores en un juego en concreto y quien ha sido mejor de forma global a todos los juegos "jugados", valgame la redundancia
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

kim-elet-o

Hola a todos ya casi tengo terminado el juego,  ;D ;D los bichos ya atacan, aun no disparan pero si te tocan vas al cielo de los pilotos de naves espaciales, hoy he avanzado poco en el codigo, por que hoy he preferido cambiar todo el sistema de nombres de constantes y variables, ademas de comentar un poquitin mas algunas partes del codigo, ademas de revisar el codigo y sustituir valores numericos por constantes (da mucha flexibilidad a la hora de programar, probar, experimentar, ect, el codigo), durante mi tarea he ido probando y descubriendo trozos de codigo que produce efectos curiosos (,divertidos, y sorprendentes), cuando termine con la version basica para el apagame4be, quiero hacer una version HiperMadCrazy galaxian, no apta para puristas de las recreativas.

Cambiando un poco de tema, he estado testeando el juego un poco, en un portatil que me compre hace 8 años, y me da unos 70 frames sostenidos y establizados, a mi me parece un resultado potable para un pc de las siguientes caracteristicas:

PIII celoron 800Mhz
256 Mb
targeta grafica de 8 mb con algo de  aceleracion grafica.
windows XP "capado"
con el ultraedit corriento, y un par de ventanas abiertas.

http://rapidshare.com/files/165128265/galaxian_V065_pre_Alpha.zip.html
http://www.megaupload.com/es/?d=MDEIG3U0
http://www.filefactory.com/file/945289/n/galaxian_V065_pre_Alpha_zip



|/
|\im-elet-o el yayo programador.

Prg

QuotePrg, sí, mola, estamos haciendo algo chulo para bennuGD, si quieres puedes contribuir con un pequeñito grano de arena decualquier juego clasico que te guste hacer.

me encantaría, aunque los minijuegos es lo más complicado que conozco, he hecho juegos como metroid pero nunca he logrado hacer un pacman, sin embargo ahora que ya se qué hacen aquí, le pondré más atención para ver si puedo aportar algún juego (primero quiervo ver el estilo gráfico y de programación que utilizan para hacer cosas compatibles, sirve que pasa el concurso de programación  en la universidad y me doy tiempo de hacer algo).
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

DCelso

#79
Ya he visto el pacoman.
Tyco, tienes razón hace cosas raras, pero yo diría mas, no se comporta como debiera, seguro que en div no hace esto. A ver, cuando llegas a una pared se come infintamente la bola y eso hace que aumente el marcador disparadamente, luego hay un fantasma que no se mueve queda bloqueado y cuando te comes la bola grande y luego vas a por un fantasma y te lo comes se cuelga :D. Como se me ha colgado no he seguido buscando problemas.

Mas que hacerlo de cero quiza sea mejor arreglarlo y simplificarlo un poco quitándole florituras y yendo mas al grano, no se, eso como veas si quieres hacerlo de cero para ir practicando programación tú mismo y crearte tu propio simplepacman.

En cuanto al menú de selección , está muy bien visualmente hablando, el problema que le veo es que es más complejo de usar y entender, ademas usas técnicas "mas avanzadas" de lectura de teclas. Lo de leer las teclas actualmente no le veo utilidad ya que no hay manera de configurarlas, habría que buscar una forma de usar un fichero de texto plano al estilo ini o cfg, en el que poder poner cosas como


key_up = BUTTON_UP
key_down = BUTTON_DOWN
..

Asi poder configurarlas con el bloc de notas :D. Aunque esto puede esperar, no es tarea bloqueante para el desarrollo :)

El objetivo principal quedamos (bueno mas bien quedé, pero nadie ha dicho lo contrario:) ) en que es intentar hacer un código facilmente legible por iniciados para que aprendan aunque esto conlleve a hacer más lenta su ejecución, es decir buscar eficiencia pero no eficacia si esto empeora la lectura del fuente.
O lo que es lo mismo evitar sentencias como a=(b++>0)?(--c):e, que cuestan un huevo entenderlas :D
o if con expresiones and or muy anidadas.

Nose, en verdad da igual, como lo veis vosotros, sobre todo tu tyco. Se me ocurre llegar a algún consenso intermedio, poner tu versión de menus pero adaptandola al sistema mas facilote del mio, y quitar lo del key_state[] porque es lo mismo que el key() :D
Tambien estoy investigando la forma de evitar tener que poner en el switch case los inicios de cada juego, es un poco rollo, se me ocurre algo como hacer un array de punteros a procesos pero no se si se podrá :D.
Viendo otros sistemas de programación de juegos quizá nos interesaría meter algún "key controller" que pueda leer tres variables de estado distintas keys_up, keys_down y keys_held para teclas recien pulsadas, teclas recien soltadas, teclas que siguen estando pulsadas.


Kim-elet-o esta quedando muy bien el galaxian, y se entiende muy bien el codigo también, ahora diría yo que demasiado largos los nombres de las variables :D (que tocapelotas soy), hay palabras que se pueden abreviar porque no dan mucha información de para qué sirve la variable o simplemente son igual de explicativas, como por ejemplo contador_de_puntos, podemos usar cont_puntos o incluso  cont_pts.
Pero bueno da igual, cuanto mas largo mas explicativo será y mas facil de entender su cometido :D, pero para tí será mas co...azo programar :)

PRG, pues si te animas ya sabes, oye si te gustan los magos te propongo a que hagas una fase del wiz
http://www.mameworld.net/maws/romset/wiz
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Prg

#80
no conozco el wiz, pero ahorita lo investigo :).

aquí hay un código de conecte4 de micromundospro, algo como un lenguaje visual que utilizaba en la secundaria.

si nadie está haciendo un conec... puedo intentar cambiar éste a bennu (Aunque se me hace más fácil iniciar desde cero, pues creo que el objetivo es hacer juegos que no sean complicados en su programación...  [además está medio complicado]).

también recuerdo otro juego que eran carritos con un scroll periódico vertical, y que tenías que dejar los carritos de la cp atras sin tocarlos (cada nivel aumentabas tu velocidad), tenías balas para cuando no te dejaban pasar, pues ellos no tenían movimiento propio, todo se movía como scroll, no recuerdo el nombre, pero es muy sencillo, por si alguien se anima, y si no pues yo. :)

en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Prg



¿éste es wiz?

¿Se trata de agarrar conejitos en un scroll vd?

Acepto  :D
Será divertido :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

TYCO

Quote from: dcelso on November 19, 2008, 12:04:44 AM
Ya he visto el pacoman.
Tyco, tienes razón hace cosas raras, pero yo diría mas, no se comporta como debiera, seguro que en div no hace esto. A ver, cuando llegas a una pared se come infintamente la bola y eso hace que aumente el marcador disparadamente, luego hay un fantasma que no se mueve queda bloqueado y cuando te comes la bola grande y luego vas a por un fantasma y te lo comes se cuelga :D. Como se me ha colgado no he seguido buscando problemas.

Le voy hacer de Cero por mi cuenta, si puedo aprovechar cosas como sonidos y pantallas los aprovecho, el código intentare hacerle yo desde Cero y que no sea complicado de entender (a ver que se puede hacer).

Quote from: dcelso on November 19, 2008, 12:04:44 AM
En cuanto al menú de selección , está muy bien visualmente hablando, el problema que le veo es que es más complejo de usar y entender, ademas usas técnicas "mas avanzadas" de lectura de teclas. Lo de leer las teclas actualmente no le veo utilidad ya que no hay manera de configurarlas, habría que buscar una forma de usar un fichero de texto plano al estilo ini o cfg, en el que poder poner cosas como


key_up = BUTTON_UP
key_down = BUTTON_DOWN
..

Asi poder configurarlas con el bloc de notas :D. Aunque esto puede esperar, no es tarea bloqueante para el desarrollo :)

El tema del Menú igual deberíamos plantearnos si también es necesario que sea super-sencillo para la gente... el Menú que yo he subido, contiene una "lista" que puedes aumentar el tamaño con la variable "margen_inferior", y da igual cuantos juegos haya en la lista o el tamaño de la misma.... que el mecanismo de subir y bajar funciona perfectamente (haz la prueba, añade un montón de juegos para que veas el resultado, y reduce el valor de "margen_inferior=39" por 8, 5, 2, 1 u otro valor cualquiera que no supere 39 (si no el margen bajaría demasiado y al final no se vería en pantalla la lista entera) y veras a que me refiero.

Eso de "técnicas avanzadas" de lectura de teclas... te refieres a leer del disco el archivo CONTROL.DAT??? no creo que eso sea avanzado, creo que está bien explicado y es algo básico. Cosa que deberíamos incluir o dejar. Es verdad que aún le falta al Menú la opción de reconfigurar las teclas (ya que hay 4 botones para los juegos, desde el menú esos cuatro mismos botones deberían usarse para entrar a configurar teclas), y voy más allá, para que sea más sencillo el menú, solo usar tecla_jugador, nada de tecla_sistema... ya que en las consolas el jugador1 era el que tiene los botones de Select y Start.. aquí tendríamos que hacer lo mismo, y al mismo tiempo sería más sencillo el código del menú. Lo del bloc de notas... la gente quiere cosas sencillas para configurar las teclas, no abrir un archivo y poner que teclas quiere.

Por otro lado dcelso, veo incesesario crear un input_controller.prg y crear cosas como "Global   input_controller controller = 0;" y controller = input_controller();, si dices que sea sencillo eso no es necesario, mira mi menú el control de teclas.

Quote from: dcelso on November 19, 2008, 12:04:44 AM
Se me ocurre llegar a algún consenso intermedio, poner tu versión de menus pero adaptandola al sistema mas facilote del mio, y quitar lo del key_state[] porque es lo mismo que el key() :D

Estoy conforme, eso de Key_state no tiene sentido, y de dos menús malos sacar uno decente XD.

Quote from: dcelso on November 19, 2008, 12:04:44 AM
Tambien estoy investigando la forma de evitar tener que poner en el switch case los inicios de cada juego, es un poco rollo, se me ocurre algo como hacer un array de punteros a procesos pero no se si se podrá :D.

Yo también estuve mirandolo pero haber como haces una llamada a un nombre de un proceso (ej: tetris();) almacenado en un Array. (juego[34]="tetris();";) Estuve un rato probando y probando, y no veo la forma por ahora.

Quote from: dcelso on November 19, 2008, 12:04:44 AM
Viendo otros sistemas de programación de juegos quizá nos interesaría meter algún "key controller" que pueda leer tres variables de estado distintas keys_up, keys_down y keys_held para teclas recien pulsadas, teclas recien soltadas, teclas que siguen estando pulsadas.

Esto dejémoslo para más adelante y ver si realmente sería necesario para los juegos que vamos añadiendo.
Por otra parte, eso de llamar a los juegos SimpleTetris.. o SimpleGalaxian... no lo veo, opino que es más usado en Internet y es más lógico llamarles MiniTetris, MiniPang, etc... ya que son versiones Pequeñas de los originales... (algunos serán completo incluso), y llamarles Simple... parece que indica que es un Tetris simple... como si le faltara algo básico del original o no sé, es mi opinión.

Quote from: dcelso on November 19, 2008, 12:04:44 AM
Kim-elet-o esta quedando muy bien el galaxian, y se entiende muy bien el codigo también, ahora diría yo que demasiado largos los nombres de las variables :D (que tocapelotas soy), hay palabras que se pueden abreviar porque no dan mucha información de para qué sirve la variable o simplemente son igual de explicativas, como por ejemplo contador_de_puntos, podemos usar cont_puntos o incluso  cont_pts.
Pero bueno da igual, cuanto mas largo mas explicativo será y mas facil de entender su cometido :D, pero para tí será mas co...azo programar :)

contador_de_puntos... hombre para un novato le queda claro claro XD, yo optaría directamente por... int puntuacion; ...puntuacion_max; etc. Pero yo no me meto, si el juego es legible y son PRIVATES (Nada de Globales para evitar problemas entre juegos), por mi esta bien como lo tiene.

PRG: Te divertirás, ánimo que luego nos divertiremos todos con los mini-juegos.

No sé como veis el ripear los gráficos/sonidos/etc a los juegos para que se parezcan más aún a los originales (ej: Galaxian), yo lo veo una buena idea que cuanto más se parezcan a los originales mucho mejor.

dcelso: Ya estoy en el proyecto agregado pero y ahora qué? sólo tu subes los binarios y sources???

Ahora soy yo el toca-pelotas XD, no tomarse nada a mal ehh.
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

DCelso

#83
PRG, no conozco el juego que pones, yo te puse un link con el auténtico wiz de mame. Te lo puedes descargar de aquí. http://www.romnation.net/srv/roms/58406/mame103/Wiz.html

A ver, para quien quiera buscar juegos clasicos dejo esto:
Windows
1.- Bajar mameui y sus Screenshots http://mameui.classicgaming.gamespy.com/
2.- Instalar mameui y descomprimir Snap.zip y Update.zip en el directorio snapshots
3.- Ejecutar mameui.
4.- Ir a view-custom filters y solo dejar seleccionado: vector, clones, notworking.
5.- En la lista, ordenar por fecha (dando click en el nombre de columna "year")
6.- Seleccionar un juego de la lista y usar las flechas arriba y abajo para navegar por la lista e ir viendo los snapshots de los juegos, Si ves que uno te gustaría remasterizarlo (bonito palabro) pues seguir por el punto 7.
7.  Ir a romnation.
8.- Descargar la rom, NOTA: solo puedes descargarte las que son libre de derechos.
9.- copiar el zip descargado al directorio roms de mameui.
10.- Hacer doble click en el nombre del juego desde el mameui,
11.- Jugar un poco, y si no te gusta o lo ves dificil, vuelves al punto 6.

Como el objetivo es tener muchos motores de juegos clásicos distintos, si ves que uno se parece a los que ya se están programando, pues buscar otro, si ves que es muy largo el juego, planteate en hacer solo una fase, el resto es repetir el motor añadiendo algunos extras y con solo una fase queda muy educativo y facil de seguir.
Hay que evitar seleccionar juegos superiores al 92, ya que suelen ser menos clásicos y mucho más complejos.
Los juegos más clásicos solían estar en todos los sistemas. maquinas recreativas, amstrad, cpc, spectrum, consolas, nes, master system,  etc, otra tecnica sería hacer algo parecido con emuladores de estos sistemas.
Yo recuerdo de mi infancia muchos juegos que me gustaría rehacer para que no caigan en el olvido: ke rulen los petas (cpc), buck rodgers (megadrive), adventure of link (nes), hot rod (mame), hero quest ( 8086 y atari), castle of illusion(master system), the newzeland history (pcengine), etc.

Tyco, me pongo a mezclar menús a ver que churro me sale :D. En cuanto a los nombres, bueno, en realidad yo había pensado que es una redundancia poner o simple o mini, ya que sabemos que todos lo serán, es lo que se pretende. Quiza sería mejor no poner ninguno, o solo hacer referencia en el menú principal algo como selecciona el mini juego en el que quieres competir.

En cuanto a lo de qué puedes hacer en el proyecto, pues no hay nada de reglas aún, en principio haz lo que quieras mientras sea para ir a mejor :).
Para no pisarnos, como cada uno hará minijuegos distintos pues que cada uno se encargue de su propio .prg, y en cuanto al menú pues es que con control de versiones, si no hay cambios drásticos en la estructura del archivo es muy facil sincronizarlo así que no tendría que haber tampoco problemas.
Actualmente yo lo que hago es que cuando quiero que los demás vean el cambio que se produjo en la versión de fuentes última subida que afecten a la jugabilidad del proyecto pues creo un .dcb lo comprimo lo subo con el nombre de la revisión de los fuentes que crea el googlecode.
Hay una forma para que la descarga aparezca en la ventana principal que es ponerle uno de sus labels a "Featured", asi que lo que actualmente hago es poner a la última descarga ese label y quitárselo a las que hubiera antes.
Lo de subir a downloads los fuentes lo hago de vez en cuando por ahora, lo suyo sería no hacerlo,porque si alguien se lo baja y modifica no va a poder sincrinizarlos con svn.

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

TYCO

Ya estoy conectado con SVN, lo primero es ese menú, necesito que me muestres el Sanwitch mixto que sale de ahí para ver si nos convence y sino readaptarlo. Pero es urgente que este tema quede zanjado cuanto antes y quede todo claro en el LEEME.TXT
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

SplinterGU

usen prefijos para las variables globales...

esto es...

SIGLASDEJUEGOENMAYUSCULAS_variable

o

NOMBREDEJUEGOENMAYUSCULAS_variable
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

panreyes

Eso figura en el leeme.txt desde un buen principio xD
Tanto para las variables, como para los procesos/funciones.

Luego, debería indicarse que los colaboradores sólo deben modificar su parte del proyecto en el SVN.
Por ejemplo, yo sólo debo tener derecho a modificar el simplepang.prg o a subir un nuevo simplemotor, pero no modificar el menú principal ni los otros simplemotores.

¿Qué opináis?

DCelso

A ver, he hecho ya el sandwich.
Bajaos el nuevo simpletetris y apagame4be.prg y probadlo a ver que os parece.
He intentado que sea lo mas transparente, modular y sencillo de entender posible.
Creo que queda muy bien.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

no, no, la idea del SVN es que cualquier puede modificar todo... siempre se puede volver a cualquier punto anterior y luego incluso a volver a lo saltado, es un historico de cambios al que se le permite seguir desde cualquiera de los puntos del historico o tomarlos, si no se tuviera permisos de hacerlo careceria de sentido...
cualquiera tiene que poder modificar cualquier cosa
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

TYCO

#89
DCelso: Dónde lo has subido??? porque la revisión del apagame4be.prg es la 21, y la del simpletetris es la 22, y están modificados ayer, no veo tu actualización. Y en la Web Codegoogle tampoco hay downloasd.

PiXel: El Menú una vez terminado no habrá que retocarlo, más que para añadir el nuevo mini-juego a la lista y su "include" y esto lo puede hacer cualquiera, respetando los espacios, etc etc.
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)