Concurso de programas BASIC 10Liners 2017

Utilitarios, programación, demos.

Concurso de programas BASIC 10Liners 2017

Notapor vitoco » Vie Feb 17, 2017 10:40 pm

Estimados, por si no lo notaron, ya se abrió la recepción de programas para el concurso BASIC 10Liners 2017 del evento NOMAM.

Las reglas son prácticamente las mismas del año pasado:
- Cualquier plataforma de 8 bits.
- 10 líneas de código BASIC de cualquier sabor, y las abreviaciones están permitidas.
- POKE permitido pero USR (lenguaje de máquina) no. Tampoco código automodificable.
- Todo el programa debe estar contenido en el código, nada de archivos con datos adicionales.
- Se debe incluir manuales y el listado completo sin abreviaturas para efectos educacionales.

Hay 3 categorías: líneas de 80, de 120 y de 256 caracteres.

Se debe enviar por correo a GKANOLD en Gmail. Si el desarrollo del juego se publica en algún foro como éste, hay que enviar el enlace para documentación.

Fecha límite: 15 de abril al medio día en Chile.

Premiación: 22 de abril.

Yo ya envié mi jueguito... es el #7 en la página de los participantes.
vitoco
Golem
Golem
 
Mensajes: 38
Registrado: Mié Nov 08, 2006 7:04 pm

Re: Concurso de programas BASIC 10Liners 2017

Notapor devwebcl » Mar Feb 28, 2017 6:22 pm

a ver si me animo este año...
Manillismo talento en video juegos
Avatar de Usuario
devwebcl
Elemental
Elemental
 
Mensajes: 1664
Registrado: Jue Nov 04, 2004 2:32 pm

Re: Concurso de programas BASIC 10Liners 2017

Notapor vitoco » Mar Feb 28, 2017 10:58 pm

devwebcl escribió:a ver si me animo este año...

Yo ya llevo 2... El segundo es el #26. :P

Éste sí se puede descargar y jugar ahora ya: Don't go! Es 100% player/missile y sólo se usa una línea de texto para el puntaje. Cae en la categoría PUR-80, la de los más pequeños. Si lo juegan en Atari real, necesitarán un par de controles Paddle. En Altirra basta el mouse, pero hay que configurarlo como Paddle A en el Puerto 1. Se ve simple, pero puede ser bastante enredado, casi como sobarse la panza y golpearse la cabeza al mismo tiempo. Se requiere un poco de concentración y práctica... ¿Qué les parece?
vitoco
Golem
Golem
 
Mensajes: 38
Registrado: Mié Nov 08, 2006 7:04 pm

Re: Concurso de programas BASIC 10Liners 2017

Notapor lbaeza » Mié Mar 01, 2017 9:41 am

Hola Vitoco
Estuve viendo los detalles de tu juego en tu página web, y encuentro super destacable el que compartas por una parte qué te inspiró a desarrollarlo, y cómo lo programaste. En el apogeo del Atari, el oscurantismo la llevaba, y ver tanto detalle detrás de un programa era sencillamente impensable.
Suerte con tu programa, tiene todo el potencial para salir entre los primeros lugares.
Salu2
Dr. von Byte AKA Viagra Killer
Avatar de Usuario
lbaeza
Elemental
Elemental
 
Mensajes: 2098
Registrado: Vie Oct 22, 2004 12:42 am
Ubicación: After all these years...still looking for the goddamn Boletines Centro Atari...

Re: Concurso de programas BASIC 10Liners 2017

Notapor AsCrNet » Lun Mar 06, 2017 8:18 am

:shock: Felicidades Vitoco, animado como siempre para este concurso. :D

Saludos
/|\ ATARI XL-XE
Avatar de Usuario
AsCrNet
Elemental
Elemental
 
Mensajes: 1010
Registrado: Dom Dic 18, 2005 11:27 am

Re: Concurso de programas BASIC 10Liners 2017

Notapor vitoco » Mié Mar 15, 2017 10:22 am

devwebcl escribió:a ver si me animo este año...

:lawealoca: ¡¡¡¡Ánimo!!!! :bravo:


Yo ya llevo 3. El más reciente es el #33: Space Ranger
vitoco
Golem
Golem
 
Mensajes: 38
Registrado: Mié Nov 08, 2006 7:04 pm

Re: Concurso de programas BASIC 10Liners 2017

Notapor vitoco » Dom Abr 02, 2017 12:07 pm

¡Vamos! Quedan sólo 2 semanas. Harto se puede hacer.

Yo tengo 3 más que presentaré muy pronto... Estoy armando los entregables! 8)
vitoco
Golem
Golem
 
Mensajes: 38
Registrado: Mié Nov 08, 2006 7:04 pm

Re: Concurso de programas BASIC 10Liners 2017

Notapor lbaeza » Dom Abr 02, 2017 9:02 pm

jojojoj vitoco a toda máquina.

Demás que quedas entre los programas destacados de esta premiación.

Suerte con eso.

Salu2
Dr. von Byte AKA Viagra Killer
Avatar de Usuario
lbaeza
Elemental
Elemental
 
Mensajes: 2098
Registrado: Vie Oct 22, 2004 12:42 am
Ubicación: After all these years...still looking for the goddamn Boletines Centro Atari...

Re: Concurso de programas BASIC 10Liners 2017

Notapor vitoco » Mié Abr 05, 2017 10:44 pm

Parece que la creatividad no ha sido mucha... en esta oportunidad hay varios juegos repetidos:

Hay 4 juegos de disparos simulando estar en una nave de combate: Combat Pilot (Ambstrad CPC), Interceptor (Atari XL/XE), Space Ranger (Atari XL/XE) y Combat Aerien (Tandy TRS-80).
Hay 4 juegos en que hay que hacerle el quite a algo: Descend (Atari XL/XE), Monteiro (Amstrad CPC), Raindrops Keep Falling On My Head (Atari XL/XE), Streamweaver (Atari XL/XE).
Hay 3 juegos simulando el juguete Etch-A-Sketch: Etch A Sketch (MSX), Etch (Amstrad CPC) y Sketch-PadDles (Atari XL/XE).
Hay 3 juegos tipo Broad's Revenge: Boulder Jumper (ZX Spectrum), Man-Up (Atari XL/XE), dotosaur-jump (Commodore 64).
Hay 2 juegos tipo pong de 4 paletas: Don't Go! (Atari XL/XE) y Paddle Up! (Amstrad CPC).
Hay 2 juegos tipo Centipede: Minipede (Atari XL/XE) y Decipede (Atari XL/XE).
Hay 2 juegos tipo Kaboom!: Brick Hunter (Commodore 16) y Hunt4Gems (Commodore 64).

... y varios juegos que no sé de qué se tratan, y capaz que también estén repetidos.

Y lo peor de todo es que 5 de ellos son míos!!! :oops:
vitoco
Golem
Golem
 
Mensajes: 38
Registrado: Mié Nov 08, 2006 7:04 pm

Re: Concurso de programas BASIC 10Liners 2017

Notapor lbaeza » Jue Abr 06, 2017 10:47 am

Hola Vitoco

Supongo que la intención principal de este concurso es evaluar la capacidad de poder hacer un juego en BASIC usando el mínimo de líneas de código. Desde ese punto de vista, uno como programador se enfrenta a la siguiente disyuntiva: codifico más de lo mismo, o aprovecho de desarrollar una nueva idea. Lo segundo es más complicado, porque tienes que hacer un diseño atractivo, pero siempre teniendo en mente la limitación de las líneas de código. Me hace recordar la problemática que enfrentaban los primeros desarrolladores de juegos de Atari 2600, antes de que inventaran la técnica de bankswitching para aumentar la capacidad de los cartuchos. Esto es múcho más complicado, porque imagina que cumples con el objetivo del uso mínimo de líneas, pero tu idea no queda bien implementada debido a esta restricción. Aun así, me imagino que los jueces serán más propensos a premiar a una idea fresca y novedosa por sobre otro "matamarcianos" como dirían en la Madre Tierra...

Salu2
Dr. von Byte AKA Viagra Killer
Avatar de Usuario
lbaeza
Elemental
Elemental
 
Mensajes: 2098
Registrado: Vie Oct 22, 2004 12:42 am
Ubicación: After all these years...still looking for the goddamn Boletines Centro Atari...

Re: Concurso de programas BASIC 10Liners 2017

Notapor vitoco » Jue Abr 06, 2017 12:26 pm

El año pasado gané una categoría precisamente con un matamarcianos no muy novedoso que digamos, "Invaders", un simple clon del Space Invaders. Pero creo que sorprendí no por lo novedoso sino porque fue posible hacerlo en 10 líneas, porque tenía buena gráfica, porque era jugable, y porque era posible de ganar con algo de dificultad. Tenía sólo una ronda y no controlaba ni el puntaje... o ganabas o perdías en pocos minutos. ¡Simplecito!

El otro juego mío que ganó el año pasado en otra categoría, "Where's my cheese?", era de laberintos, pero en lugar de encontrar la salida, había que buscar una celda marcada. Lo novedoso fue que lo presenté en perspectiva 3D, y que era suficientemente rápido para recorrer en busca de la bandera, que finalmente fue un trozo de queso (más fácil dibujar un cuadrado que otra cosa en baja resolución), lo que le daba además un contexto distinto al juego.

Entre los 6 juegos que presenté este año (no creo que vaya a hacer otro más en una semana, si todavía me falta documentar un par), sólo uno es original mío: "Don't go!", que se juega con paddles y no tiene mayor ciencia que lo frustrante que puede resultar ser descoordinado. Esta semana otra persona publicó un "port" para Amstrad CPC, pero por lo que leí, usa el teclado para controlar las paletas.

De los otros, "Space Ranger" era simple de programar, pero le quise dar un aspecto distinto a lo esperado y utilicé casi puros óvalos para dibujar la cabina de pilotaje, y además le incluí el eje Z para controlar la distancia. Con eso ya pude darle nuevas reglas al juego, como el hecho que hay que perseguir y alcanzar al enemigo, y restringir los disparos haciéndolos parte del consumo de combustible, que no es nada más que un timer con otro nombre. Yo confío en que eso haga la diferencia.

En el fondo, la idea es sorprender al jurado con cosas que no se esperan, y por eso no he liberado todos los juegos aún. Ya solté 2: "Sketch-PadDles" que ya estaba en el catálogo, pero que se juega con perillas reales y no con joystick o teclado, y el "Don't go!" como prueba de concepto pero que ya lo copiaron...

Vamos a ver cómo evalúan las 2 versiones de Centipede que envié... Por si tienen dudas, ambos juegos tienen sobre el 80% de código en común, y comparten partes de las reglas del juego, pero se juegan distinto... mejor me callo y lo dejo como sorpresa. Todo estará liberado en un par de semanas 8)
vitoco
Golem
Golem
 
Mensajes: 38
Registrado: Mié Nov 08, 2006 7:04 pm

Re: Concurso de programas BASIC 10Liners 2017

Notapor Yautja » Sab Abr 22, 2017 11:28 pm

Felicitaciones a Vitoco, por haber ganado en las categorías PUR-120 y EXTREM-256 con Minipede y Space Ranger, respectivamente. :bravo: :bravo: :bravo:

- Y -
http://atariteca.blogspot.com ... Guías, trucos, audio y más de las Atari 8-bits!
Avatar de Usuario
Yautja
Shapeshifter
Shapeshifter
 
Mensajes: 182
Registrado: Vie Mar 06, 2009 9:36 pm
Ubicación: Mandaloria

Re: Concurso de programas BASIC 10Liners 2017

Notapor lbaeza » Dom Abr 23, 2017 7:29 pm

Excelentes noticias!

http://gkanold.wixsite.com/homeputerium/results-2017

Vitoco, te pasaste...con esto te has convertido en el Master 10L.

Un abrazo y felicitaciones!

:bravo:

Salu2
Dr. von Byte AKA Viagra Killer
Avatar de Usuario
lbaeza
Elemental
Elemental
 
Mensajes: 2098
Registrado: Vie Oct 22, 2004 12:42 am
Ubicación: After all these years...still looking for the goddamn Boletines Centro Atari...

Re: Concurso de programas BASIC 10Liners 2017

Notapor devwebcl » Sab Abr 29, 2017 9:31 am

muy buen trabajo, congrats !!!!
8) :bravo:
Manillismo talento en video juegos
Avatar de Usuario
devwebcl
Elemental
Elemental
 
Mensajes: 1664
Registrado: Jue Nov 04, 2004 2:32 pm

Re: Concurso de programas BASIC 10Liners 2017

Notapor AsCrNet » Sab Abr 29, 2017 9:23 pm

Bueno felicidades amigo vitoco por ganar por segundo año :lawealoca:

Saludos
/|\ ATARI XL-XE
Avatar de Usuario
AsCrNet
Elemental
Elemental
 
Mensajes: 1010
Registrado: Dom Dic 18, 2005 11:27 am

Re: Concurso de programas BASIC 10Liners 2017

Notapor vitoco » Jue May 04, 2017 12:07 pm

Muchas gracias a todos.

Ojalá ustedes disfruten jugándolos tanto como yo programando estos minijuegos.

Si bien entretiene programar con lo básico y lograr hacer algo interesante, la firme es que puede ser estresante. Hay un doble desafío en el proceso: crear un juego o hacer una versión mini de algo ya conocido por un lado, y meter todo el código en 10 líneas por el otro.

La componente creativa se aplica al máximo, tanto inventando un juego con reglas claras como determinando qué elementos de HW se van a utilizar y cómo para sacarles el máximo provecho. Después viene la programación, en donde uno va descubriendo que debe evitar los GOTO/GOSUB y que el código se puede optimizar para usar un menor número de instrucciones, como el uso de expresiones para evitar los IF-ELSE-ENDIF y tratar de usar una misma instrucción para distintas cosas, como un SOUND que sirva tanto para indicar que ganaste como que perdiste según el tono (otra expresión). Además, todas las variables deben ser lo más cortas posibles, idealmente de una letra.

En particular, yo programo en texto libre en el PC, con una instrucción por línea, luego genero el código abreviado usando un utilitario propio (*) y luego cargo en emulador Altirra usando ENTER. Durante el desarrollo sólo me preocupo que funcione adecuadamente y que pese poco.

(*) El parser TurboBASIC XL de Daniel Serpell (dmsc) hace lo mismo y con validaciones y opciones adicionales, como la posibilidad de programar usando variables descriptivas en el texto fuente que son renombradas al momento de crear el texto abreviado o el programa "tokenizado".

Cuando ya se tiene un prototipo operando, viene la segunda parte, que es hacer el tetris de meter el código abreviado en 10 líneas, y recién aquí se ve en qué categoría dejar el juego. Sin embargo, las 3 categorías son muy distintas entre ellas en el fuerzo requerido para meter el código en la cantidad de caracteres por línea requeridos, porque cada una presenta restricciones de diferente índole.

La categoría de 120 caracteres por línea pareciera ser la más flexible. Si el código abreviado crece mucho y pasa de 10 líneas, pero se mantiene bajo los 1200 caracteres, puede ser posible reordenar las instrucciones para llenar lo más que se pueda cada línea. En caso extremo, se podrían eliminar algunas características o dejar cosas con valores por defecto del sistema.

Si el código baja de 800 caracteres, se podría pasar a la categoría de 80 caracteres por línea, pero aquí es mucho más complicado redistribuir instrucciones, pues caben menos por línea y se limita el rango de ellas que puede ser reordenado. Si se complica mucho, se puede dejar en categoría de 120, pero vale hacer el esfuerzo si es que el programa tiene apenas 770 caracteres. Tal vez cambiando un WHILE-WEND por REPEAT-UNTIL o viceversa haga una gran diferencia al moverse la expresión de condición entre 2 extremos distintos del programa, haciendo los corrimientos intermedios.

Si el programa abreviado pasa de los 1200 caracteres, se presentan 2 posibilidades: eliminar características para permanecer en la categoría de 120 por línea, o pasar a la categoría de 256. Pero cuidado que no quiere decir que se pueda disponer de 2500 caracteres, ya que surge otra restricción que es difícil que se presente en la categoría de 80 y que sí puede presentarse en la de 120 pero no es habitual: Las sentencias son almacenadas internamente en formato interno o "tokenizado", es decir las palabras reservadas y las variables usan sólo un byte, pero las constantes numéricas usan 7 bytes, agregándose además algunos bytes de control y delimitadores, y la restricción es que todo eso debe ser inferior a 255 bytes por línea. Es decir, una porción de código de unos 100 bytes de texto fuente puede almacenarse en menos o más de 100 bytes dependiendo de cómo se escriba. Si se usan constantes, la línea se va a expandir, pero si se usan variables con los respectivos valores, la línea se achica.

Por lo tanto, puede ser una tentación pasar a la categoría de 256 caracteres por línea, pero lo que se puede usar efectivamente es bastante menor, probablemente entre 160 y 180 antes de tener que comenzar a ofuscar el código para convertir constantes numéricas en variables y otras des-optimizaciones en el código para lograr "tokenizar" lo más que se pueda y de alguna manera equiparar los largos del formato de texto con los del formato interno, línea por línea. En esta labor es muy útil el parser de dmsc, aunque creo que le falta indicar el largo interno de cada línea y no sólo el de la más larga, ya que eso sería una guía adicional para hacer el doble tetris. En mi caso, uso otro utilitario mío para obtener esa cuenta directamente del resultado en formato "tokenizado" del parser.

Un ejemplo de esto último es Space Ranger. El juego es bastante simple y el prototipo estaba funcionando en 120 caracteres, pero el diseño de la cabina era muy pobre y quise mejorarlo. Ahí comenzó a aumentar fuertemente el código con tanto PLOT, DRAWTO, CIRCLE y la montonera de coordenadas con valores constantes y tuve que decidir entre cortar algo o pasarme a la categoría EXTREM-256. Al mismo tiempo, apareció otro juego similar en la categoría PUR-120, por lo que decidí dar el salto y aprovechar los bytes adicionales para introducir un par de cosas que tenía en mente. A medida que iba viendo que aún me quedaba espacio, le fui agregando efectos especiales. El último no pude ponerlo porque ya no me calzaban las piezas del doble tetris, pero como no era necesario, cerré el código y lo envié al concurso. Poco después caché que la jugabilidad no estaba tan buena y podía mejorarla... ¡Auch! El cambio que era muy simple de todos modos me rompía todo desde la línea 3 (creo) y tuve que volver a hacer calzar las piezas de ahí para abajo.

El extremo contrario se dio con Sketch-PadDles, en que el prototipo funcionando fue tan pequeño (apenas 2 o 3 líneas de 80 caracteres empaquetados) que tuve espacio suficiente para agregarle el manejo básico de archivos en diskette para grabar y recuperar los dibujos hechos sin dejar la categoría PUR-80.

Resumiendo, si se conoce el HW, el mayor esfuerzo del desarrollo se da en la optimización del código y en hacerlo calzar en alguna de las categorías. Si bien con práctica y experiencia uno puede ir programando código optimizado, hacer calzar las líneas es una actividad que se puede hacer demasiado compleja al punto de tener que cambiar el código para concluir con éxito.

Por otro lado, hay optimizaciones que no aplican para todos los casos. Algo que fue muy útil en un desarrollo podría no ser lo apropiado para otro. En mi página están en orden cronológico los 12 juegos que he publicado (tengo otros prototipos en carpeta). Si bien se puede ver que hay evolución en la forma de manejar algunas cosas, también se puede ver que en los últimos se vuelven a usar elementos de la misma forma que en los primeros.

Espero que todo esto sea tomado más como una ayuda a quienes estén interesados en aventurarse en esto de los minijuegos que como una barrera de entrada. Al menos yo los considero como hints adicionales a lo que ya he escrito o descrito en las páginas de cada juego. Había pensado en poner estos hints en la página principal, así que los dejo aquí como primicia y en español. 8)
vitoco
Golem
Golem
 
Mensajes: 38
Registrado: Mié Nov 08, 2006 7:04 pm

Re: Concurso de programas BASIC 10Liners 2017

Notapor Shamus » Jue May 04, 2017 2:56 pm

Excelente!

Además de las felicitaciones y el esfuerzo, se agradecen los hints and tips.
La verdad que después de haber leído tu post, dan ganas de aventurarse...

Salud!
Avatar de Usuario
Shamus
Elemental
Elemental
 
Mensajes: 850
Registrado: Dom Mar 26, 2006 8:38 pm


Volver a Software

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado