lunes, 13 de junio de 2011

Último post

Con una pequeña entrada cierro este blog que mostró de todo un poco, tal vez como fueron estos años de mi vida :)
Escribí sobre informática, celulares, la vida, literatura...
Ahora la sigo en mi nuevo blog.
Gracias a los que me leyeron y a los que se molestaron en opinar.
Un abrazo!

jueves, 8 de octubre de 2009

El rey niño

Sandra, mi compañera de trabajo, me mostró un cuento corto que escribió hace muchos años. El cuento habla de un rey de duendes, que vive en su mundo de fantasías y se enamora de mujeres humanas. Por lo que muchas noches se transforma en humano y las va a visitar.
Es cortito, pero me gustó mucho...

Esta tarde, como no tenía ni media gana de programar... escribí algo que está mezclado con ese cuento.

El rey niño

Tirano despiadado, opinaban muchos. Alma solidaria, muchos más.
Rodeado de su corte de aduladores, hipócritas e inútiles, el anciano rey jamás podría contentar a todos los corazones de sus súbditos.

Rey niño… rey viejo… vivió una existencia abrumada, por el peso del oro sobre sus sienes.
No hubo juegos, ni juguetes. No tuvo cuentos, ni historias de abuelos.
Sólo él, escapando a su soledad de soledades (la soledad de los que están rodeados de nada), creó en su imaginación, los sueños de los niños.
Entonces soñó con hadas y duendes. Princesas y sapos. Héroes y villanos de fantasías.
Voló en su niñez de Peter Pan y Campanita. Adolescente, se hizo amigo de un genio maravilloso. En su juventud, navegó los siete mares de piratas.
Aprendió el uso de las varitas; esparció polvos mágicos por doquier; disparó sus cañones frente a barcos fantasmas… y besó labios dormidos eternamente.
Sólo en su mente y en su corazón encontró calor para vivir. Sólo en sus sueños, tuvo las esperanzas de algún día viajar a esos mundos de color y de magia.

Los años de reinado, jamás permitieron que despegara sus pies en un vuelo de estrellas. La realidad del castillo, cruel y fría, lo sujetó con las más pesadas cadenas, las de la tristeza.

Pero una noche…

El viejo rey subió lentamente los peldaños de piedra, rumbo a la más alta de las torres. Cansado, abatido, degastado su corazón de fantasía. Decidió emprender su último vuelo. El que lo llevara lejos de esta realidad. Que lo regresara a una infancia que nunca tuvo.
Escalón tras escalón, se desprendió de joyas y corona. De su pesada capa roja y de sus finas ropas doradas.
La puerta de la torre lo recibió y presentó al frío de la luna llena. Lo invitó a salir, a dar los tres pasos que lo separaban del abismo. El sibilante viento, lo tomó de las manos, acompañando a ese rey soñador, a que despegara a sus sueños.

Y en ese momento plateado de luna, un cálido y fugaz resplandor detuvo el tiempo. Y no hubo viento, y no hubo frío.
El viejo rey se encontró frente a otro rey, el de un reinado invisible. Un rey de historias fantásticas y de magia. Un rey de duendes.
- Este no es tu tiempo, ni tu lugar – dijo el rey de duendes - Por lo tanto, rey de sueños, te doy un pasaporte a mi mundo de fantasías. Llegarás sin corona ni trono. Y serás el más feliz de sus habitantes. Porque serás sólo lo que tu imaginación desee

Y el rey de sueños volvió a ser niño. Volvió a volar (pero de veras) en polvos de estrellas. Se sumergió en las profundidades de los cantos de las sirenas. Cruzó a través de mil espejos y de mundos del revés. Fue un valiente luchando frente a gigantes… y un sapo encantado saltando entre los pantanos.
Y… sí… como es de esperar en estos cuentos, encontró a la princesa que lo besara y lo amara para siempre.

Y jamás, del nunca jamás, se alejó de la calidez de su eterno amigo, el rey de duendes.

jueves, 29 de enero de 2009

La felicidad

No la voy a definir, porque creo que tiene tantas definiciones como seres humanos sobreviven.
Por lo tanto, quien lea, piense en la suya y adapte el texto como más le guste.

Siempre afirmo que la felicidad, como un estado constante, permanente, no existe.
Que sí, existen momentos felices.
Momentos incluso de días o meses, que terminan, para transformarse en otros estados.
Por eso, buscar la felicidad, como una meta, como un fin, me parece un derroche de energías.

¿Qué podría llevarnos a un estado de felicidad plena y permanente?
¿Otra persona? ¿Lo material? ¿Lo espiritual?
De ese modo, llegaríamos a una felicidad dependiente.
Cuando desaparece el vínculo, por la causa que sea, ésta termina.
Sólo habremos vivido momentos felices.

Entonces... veámoslo desde una mirada individual.
¿Cómo hago a ser feliz para siempre, sin depender de nadie?
¿Qué es lo que me hace feliz, por mí mismo?
Ahí entran en escena tres parámetros relacionados: pensar, sentir y actuar de la misma forma.
Es decir, vivir con unidad interna.
Cuando vivimos con unidad, cuando hacemos lo que sentimos y pensamos (y las otras combianciones) somos felices.
Cuando entramos en contradicción. Cuando pensamos de un modo y actuamos de otro (y también con las otras combinaciones) nos sentimos mal. Tal vez tengamos ciertas sensaciones placenteras, pero nos engañamos. No somos felices.

Bien, ya tenemos la fórmula: pensar, sentir y actuar de la misma forma.
Si vivimos con unidad y armonía interna, seremos felices plena y eternamente.

Ahora... seamos sinceros... ¿Cuántos de ustedes, mis estimados miles de lectores, logran implementar la fórmula completa?
No un día, ni un mes... ¿sino en modo permanente?
¿Quién puede afirmar con total libertad que vive con unidad interna?
No un día, ni un mes.
¿Quién no ha transado algunos de los parámetros, a cambio de hacer más llevadera una situación?
¿Qué tan a menudo lo hacen?
Cada vez que eso ocurre... surge la contradicción... y adiós felicidad permanente.

Entonces... la fórmula es un éxito para lograr... momentos felices.

Vivamos el mayor tiempo posible en unidad interna.
Pensemos, actuemos y sintamos, cada vez que el mundo nos deje, en forma armónica.
Eso nos garantizará unos hermosos estados de felicidad.
Mientras duren.

Nos leemos!

miércoles, 28 de enero de 2009

El sueño


Las lágrimas brotaron cálidas, mientras el sollozo, imposible de reprimir, hacía vibrar sus lábios trémulos.
No era un llanto de tristeza, o congoja... Ni siquiera parecía haber un motivo para llorar...
Pero las tenía allí, acumuladas, presionando... y sintió la necesidad de soltarlas.

Él, recostado a su lado, la atrajo con un abrazo firme, protector y dejó que la cabeza de ella reposara en su pecho.
Comenzó a acariciarla suavemente, a besar su cabello, tratando de transmitir toda la ternura de la que fuera capaz.

Poco a poco, el llanto fue tornándose más sereno. Pero él no disminuyó sus caricias.
Incluso, la siguió acariciando cuando notó que ella se había dormido.
Cubrió su fresca desnudez con una sábana y se relajó, tranquilo, disfrutando de ese cuerpo tibio pegado al suyo.

En su corto, pero profundo sueño, ella flotaba sobre campos azules y amarillos. Sobre cristalinos arroyos, que descendían de cerros inalcanzables.
El sol doraba todo lo que tocaba, un calor de bienestar, de placer.
Luego, descendía de ese vuelo, sobre mantos de hojas secas, a la orilla de un bosque de robles añosos.
Su gata, ¿qué hacía esa gata allí?, se acercó, con sus frecuentes ronroneos.
Ella, se dejó caer sobre las hojas, alegre, satisfecha, bebiéndose todo el día y el paisaje que la rodeaba.
Estiró una de sus manos, y comenzó a jugar con los pelos de la gata...

Entonces despertó, y notó que sus manos estaban enredadas en el pecho de él...
Ese pecho viril, que había absorbido cada una de sus lágrimas.

La observó, conmovido, y con una sonrisa apacible le susurró: "Seguí durmiendo..."
Pero ella, regresando del bosque y de las hojas secas, sabía que ya tendría mucho tiempo para dormir, y para llorar.

Esa noche, su sexo fue manso, reposado. Se tomaron tiempo para paladearse, para libar sus mieles, para recorrerse y encontrar uno por uno sus sentidos.

El sol, tímido, comenzó a colarse por la ventana del amanecer...

Nos leemos!!!

martes, 27 de enero de 2009

Una bisagra...

¿Qué hago? ¿Borro todas mis entradas? ¿Dejo este blog triste y abandonado y abro otro?

Escribo esto porque tengo ganas de teclear cossas nuevas.
Cossas que tal vez no tengan nada que ver con la programación... porque con casi 24 años de aprendizaje continuo, ya estoy bastante saturado de código, análisis, más código, bugs...
Obvio que sigo viviendo de la informática... Aunque mirando un poco alrededor... si hubiera sido plomero/gasista/albañil, tal vez mi situación económica sería más cómoda :)
Y no estoy criticando profesiones... sólo comparo algunos ingresos habituales en ésta, con los presupuestos que se ven por allí para arreglar un inodoro...

Bueno, el tema es ése. Que no voy a escribir más sobre informática. O sí... qué se yo.
Está claro que las cossas no se separan tan fácilmente.

¡También es muy seguro que a nadie le importe lo que yo escriba!
En realidad, lo hago sólo para mi.
Así que cualquier comentario de adulación o defenestración sobre mis palabras, me tiene sin cuidado.
Bah... a los de adulación seguramente los responda :)
Y ya que estamos, a los que me critiquen los perseguiré en sus propios blogs, destruyendo cada una de sus entradas.

Así que, volviendo a mis preguntas iniciales... Me contesto: dejo todo como está y sigo escribiendo arriba del Father Joe.

El que quiera conocer algo de lo que hice, o de dónde vengo, puede leer posts anteriores.
¡Desde ya les aviso que no van a aprender nada!

Y ahora termino esta entrada bisagra.

Lo anterior, malo o bueno, ya está escrito.

Lo que sigue, sin dudas será pésimo... pero distinto.

Y al final de todo... hacer cossas distintas en la vida, nos da la adrenalina necesaria para seguir adelante ;)

¡Nos leemos!

jueves, 10 de enero de 2008

¡Father Joe ya genera ganancias!

¡Estas son las impresionantes estadísticas de GameJump!

Summary Statistics
Total Revenue: $ 0.03
Average Revenue per Day: $ 0.01
Number of Days: 3


Lo cierto es que el gran envión anímico que estas cifras producen, me lleva a creer más que nunca en mis posibilidades de hacer buen dinero con la industria de juegos para móviles.

Y a este hecho, debo sumarle otras varias situaciones motivantes:

- No ganó ningún premio en el concurso que participó (IMGA 2007)
- Firmó 2 contratos con diferentes distribuidores, pero nunca fue publicado a través de ellos.
- Estuvo 3 meses "Pending Release" en GameJump, cuando los nuevos juegos son publicados cada mes.
- Luego de un mes de publicado en ClickGamer, no vendió ni una sola copia a U$S 5.

Así es que, con mi ánimo y entusiasmo por las nubes, estoy embarcado en un nuevo proyecto de juego para móviles.

Es de esperar que el resultado, en un par de meses, será un nuevo impacto en el mercado. Y tengo serias aspiraciones a superar todo lo logrado con Father Joe.

En unos días ya tendré algunas pantallas para mostrar y hablar un poco de "My Beautiful Baby"

¡Nos leemos!

sábado, 1 de septiembre de 2007

Padre José (o Padre Carlos reloaded)

Como decíamos ayer...

Padre Carlos comprendió que no estaba capacitado para semejante misión, por lo que aceptó dar un paso al costado y permitir que Padre José lo reemplace en la tarea de recuperar almas.
En realidad, en todo este tiempo hubo muchos cambios.

El distriuidor que me estaba dando soporte (muy valioso por cierto) está superado con otras actividades y ya hace casi dos meses que no me entrega ningún informe. Me dice que ni bien tenga un tiempo libre volverá a los test... También se iba a encargar de mejorar el especto gráfico y por la misma causa, me dio a entender que no lo podrá hacer.

Bien, como yo consideré que el juego en sí estaba ya terminado, que era sólo cuestión de porting, me hice un demo para probar suerte con otros posibles distribuidores.Y realemente la respuesta fue mejor de lo esperado!
Transcribo uno de los mails recibidos:

We've carefully reviewed this game, it has great creativity, a very nice game.However the graphic is a little bit poor, is it possible to refine the resource?And also we found some bugs when playing, such as it can't be moved when touch something architecture or it can't be moved when loading after pressing the continue.(We test on K700) Maybe this game is at the very beginning stage, when it be much improved, we'll think about to bring into Chinese market.

Ops! parece que el mercado chino no es tan inalcanzable!! :)

Así que con este empujón de ánimo, me puse a la tarea de mejorar todo el set de gráficos, tarea para la cual no soy especialista, se nota eso :( Pero bueno, tomando algunas ideas de aquí y de allá el aspecto visual mejoró bastante.

De ahí también el cambio de nombre. El distribuidor inicial me presentó un logotipo para Padre Carlos muy interesante...pero cuando pasara Carlos al inglés, desaparecía la "O"... Así que ahora tengo a Padre José y a Father Joe. ¿Alguien sabe cómo es la O en chino :)) ?





Y para resolver el tema del porting y los test en diferentes móviles decidí poner el mismo demo en varios foros, esperando por la ayuda y la buena voluntad del resto de los integrantes de esta industria.

Hay un hilo en Stratos:
http://www.stratos-ad.com/forums3/viewtopic.php?t=9314

Otro en j2meForum:
http://www.j2meforums.com/forum/index.php?topic=16677.0

Y otro en ADVA:
http://www.adva.com.ar/foro/index.php?topic=4056.0

Hasta ahora llevo 13 revisiones, con una buena respuesta en general y que me permitieron corregir bugs y aportaron pequeñas ideas para mejorar.
También inicié una campaña de testing en GetJar, de la que voy a comenzar a recibir resultados la semana próxima.
Creo que con toda la info obtenida estaré en condiciones de abarcar una buena gama de móviles.

Así que ahí va Padre José... Laaaaaaargo el tema para un juego de móviles... Pero, bueno... creo que después venderle a 450 millones de chinos hará que todo se válido..


Bah.. en realidad lo hago sólo por diversión y hobby ;)




Nos leemos!

viernes, 12 de enero de 2007

Padre Carlos III

Esta tercera parte de Padre Carlos tendría que haber salido hace más de un mes, pero realmente estoy pasado de trabajo en esta época.
Luego del estímulo (anímico y de soporte) de algunos publishers (los de España me hacen testing sobre varios móviles), comencé a incorporar más contenido al juego.
Nuevos enemigos, edificios, armas e íconos, para mejorar los niveles existentes y completar el nivel 3, en el cual el Padre Carlos ya es Obispo.
Cuando todo fue creciendo, noté que el engine open source que usé se quedó chico.
La velocidad no fue la correcta, incorrecto uso de la memoria heap, mucho "hardcode", etc. Me comuniqué con el creador del engine y me dio a entender que no habría nuevas versiones :(
Entonces comencé a mejorarlo, pero ya no valía el tiempo que gastaría. Por lo tanto, inicié mi propio engine isométrico (con lo que aprendí del isoj2me engine) pero con un enfoque totalmente distinto.
Vale comentar la excelente información que se puede encontrar en este foro: http://www.j2meforums.com/
También tuve la disyuntiva, ¿lo hago totalmente estandarizado para usarlo en otros juegos, o lo especializo para Padre Carlos?
La idea de crear algo abierto era atrayente, pero... ¿y si terminaba, como muchos ejemplos vistos por allí, gastando todo mi esfuerzo, tiempo y entusiasmo en un engine?
Entonces digamos que creé un híbrido, con mucho especial para Padre Carlos, pero medianamente adaptable a otros juegos similares.
Por ejemplo, en este juego no hay escaleras o plataformas para subir o bajar niveles, etc. Pero el engine puede soportarlo si lo necesito.

En el tema del gameplay, incorporé las Acciones. Son actos que el player tiene que cumplir cada cierto tiempo y en los edificios indicados.
Una flecha indica dónde debe dirigirse y unos textos le dicen qué acción cumplir y qué beneficios obtiene.
Para superar cada nivel, hay que lograr unos objetivos mínimos de oro y fieles acumulados, además de eliminar al demonio final.
Cada Acción, a veces da y otras quita algo de esos elementos, con lo cual nos acercamos o alejamos de los objetivos.
Por ejemplo, "dar misa" puede darnos algo de oro y fieles, pero “bendecir fábrica” nos dará oro y nos quitará fieles (es una de esas fábricas contaminantes)
También fueron incorporados los Íconos. Son velas, ángeles, cálices y demás, que están esparcidos por la ciudad y que nos dan oro, fieles, escudos, energía, etc.

Ya el juego fue creciendo en tamaño y estuvo por los 70 kb de jar. Dentro de mis exigencias aún, pero hay que considerar que no tenía nada de sonido. En realidad el sonido quedará para lo último, dependiendo del espacio libre…

Acá van otras capturas, en este caso, desde el WTK, con una resolución de 240 x 320.




En estos días subiré la cuarta entrega, y supongo que con muy buenas novedades en cuanto a lo que tiene que ver con la industria y comercialización de Padre Carlos.

Nos leemos!

martes, 7 de noviembre de 2006

Padre Carlos II

Hoy envié a Padre Carlos a ser testeado en su nueva versión, la cual incluye el nivel dos. Y ya que estamos, sigo con esta serie de cómo se fue construyendo el juego.

Cuando decidí iniciar el proyecto, tenía en mente aprovechar parte del código y motor que había hecho en los intentos de meses anteriores. Es decir, un arcade de scroll lateral y plataformas. Mi intención era hacer algo no muy difícil, buscando el mercado casual. Para ese mercado, también necesitaba gráficos de buen tamaño y coloridos. En parte, un desafío, porque ya se sabe lo que significan esas características para los móviles.

Sprites de 50 x 40 píxeles

En esas pruebas estaba cuando me encontré con un engine isométrico open source para MIDP 1.0: IsoJ2ME.

http://sourceforge.net/projects/isoj2me

Si bien no parecía estar actualizado, le dediqué algo de tiempo para ver sus posibilidades. El engine fue desarrollado por un italiano. No estaba documentado y bastante hardcodeado. Pero venía acompañado por un simple juego como muestra de su funcionamiento.
Me pareció una buena solución. Inclusive me comuniqué con su creador y me dijo que lo estaba mejorando.
Así que, dejando de lado todo lo que ya tenía hecho, me decidí a reformular el proyecto para darle una vista isométrica.

Como la idea era que Padre Carlos anduviera por la ciudad persiguiendo enemigos, tenía que decidir el compromiso del tamaño de los edificios... Si trataba de mantener las proporciones, me quedaba un personaje sumamente pequeño y no era lo que buscaba. Por lo tanto, preferí mantener los sprites de buen tamaño (56 x 40 píxeles) y que la ciudad en sí fuera más pequeña, pero muy colorida. De ahí que el edificio más alto no supera los 80 píxeles.
Creo que esta solución fue apropiada, porque no afectó al gameplay el hecho que Padre Carlos o los demonios fueran más altos que un estadio de fútbol... y al mismo tiempo dio lugar a trabajar mejor cada sprite. Vale aclarar que la resolución elegida para desarrollo fue de 176 x 208 píxeles.
Un buen efecto lateral de esto es que sólo necesitaré dos juegos de gráficos. Uno para screens de 128 x XX y otro para las superiores. Es decir, el juego se ve bien en móviles QVGA, con resoluciones de 320 x 240 o mayores.
Por el lado de la programación, traté de mantener los mínimos requerimientos, para llegar a la mayor cantidad de móviles posibles. Así, mantuve la CLDC 1.0 y de MIDP 2.0 sólo utilicé la clase Sprite, para facilitar rotaciones y demás. Si quiero portarlo a móviles MIDP 1.0, será para los que dispongan un API con mirror, etc., como Nokia por ejemplo.
Otra restricción que me impuse, fue que el jar final no superara los 120 Kb para el juego de gráficos más grande. A medida que fui creando los recursos, me di cuenta que muchas de las ideas serían imposibles para sostener ese límite. Por lo tanto, desaparecieron algunos enemigos, ítems, edificios y demás. De todos modos, quedó mucho para divertirse :))
Pasados unos 45 días ya tenía una funcionalidad aceptable. Padre Carlos se movía por la ciudad al igual que los enemigos (prostituta, gay y serpiente) y todos disparaban sus armas. Probé el juego en varios emuladores y en dos móviles: Samsung x486 y Motorola ROKR. En ese Samsung nada anda bien, así que no me preocupé por la baja velocidad... pero en el Motorola corría a unos 10 fps, lo cual me pareció suficiente.
Todo el material, junto a un resumido documento de diseño, fue enviado a algunos posibles publishers... más para conocer sobre lo que pensaban de la idea, que de cómo estaba el juego en sí.
Sus respuestas fueron tranquilizadoras. Podría llegar a arder en la hoguera en algún momento... pero si dejaba el juego presentable, ellos lo distribuirían :))

Así se cumplió la primer etapa del proyecto.
Espero que sea de utilidad a alguien lo expresado más arriba :)


Ya vendrá un nuevo post sobre cómo siguió la vida del Padre Carlos...
Nos leemos!!

martes, 29 de agosto de 2006

Padre Carlos

Meses atrás, vivimos una parafernalia de prensa generada para vender "El Código Da Vinci", en todas sus versiones multimedia. Como no soy de correr detrás de esas campañas, me resistí a leerlo y por supuesto, tampoco fui a ver la película.
En esos meses, pasó bastante desapercibida (o al menos eso intentaron) una serie animada de la BBC inglesa: PopeTown http://en.wikipedia.org/wiki/Popetown
Prohibida su emisión por TV en Inglaterra, sí la pasaron en Alemania y se publicó en DVD, etc.
En las notas que hablaron del hecho de censura previa, comentaron de qué se trató la serie. Una parodia de la vida en el Vaticano.
La curiosidad me llevó a dar una vuelta por el e-mule... y allí encontré los 10 capítulos completos en inglés.
La serie es realmente divertida, sin considerar que la persona creyente pueda sentirse ofendida. Yo diría que más que divertida... tiene mucho de cotidiano.
Bueno, a qué viene esta introducción...

Después del concurso de móviles y Think Robot! pensé con qué podía seguir. Por un lado, Species Circus, que lo tengo abandonado y me falta estímulo para continuarlo. Por otro lado, está lo de juegos para móviles, que estoy seguro se le puede sacar buen jugo aún.
Comencé una idea de scroll lateral y plataformas, en cavernas, con un personaje de movimientos similares al viejo Prince of Persia... pero la historia no terminaba de atraparme...
En eso estuve... hasta PopeTown.
Cuando vi la serie, tuve una revelación :p y una interesante aventura para móviles fue tomando forma en mi mente.
¿Qué pasa si tengo un personaje que es un sacerdote? Pero no los de fantasía, sino uno de los de verdad :)
¿Y si los NPC´s son gente común, sólo que a los ojos de este sacerdote son enemigos? Digamos... un enemigo es un ladrón, un terrorista... pero también lo son un gay, una prostituta, un predicador de otras sectas...
Ufff... Comencé a sentir que me metía en terrenos peligrosos...
¿Y cómo pelea este sacerdote? ¡Sin dudas que con sus armas más poderosas! ¡La Cruz y la Biblia!
Bueno, ya estoy con el lodo hasta el cuello...
¿Y ahora qué sigue? ¿Un sacerdote matando gente? ¡Voy a arder en la hoguera!
No, no los mata, simplemente los enemigos renacen como gente normal... siempre a los ojos de este sacerdote ;)
¿Y de qué le sirve todo esto al sacerdote? ¿Sólo limpiar su cuidad de elementos indeseables?... mmmm... esteeeeee... ¡NO! ¡Le sirve para subir en jerarquía y así llegar a ser Papa!
¿Y simplemente con esos actos llega a Papa? ¿Tan fácil?
No es tan fácil... ¿para qué tenemos siempre a mano los aterradores demonios y hasta el mismo Diablo?

Bien, estos y varios pensamientos más dieron vueltas en mi cabeza, hasta que se fue armando la historia...
Me gustó cómo iba quedando, pero siempre con una gran duda... ¡¿a quién se lo vendo?!
Así que con esa duda, di inicio al proyecto. Para intentar vender, una idea no sirve. Hay que mostrar algo...
Por suerte, hay un par de publishers que se interesaron en el tema y lo creen viable.

Padre Carlos, así se llama mi juego, ya está bien avanzado y con muy buenas perspectivas de ser publicado en un par de meses :)

Vaya a saber por qué el señor Blogger hoy no deja subir imágenes... así que paso unos links con screenshots de muestra.

http://www.cervetto-ref.com.ar/backSplash.jpg
http://www.cervetto-ref.com.ar/level1_sample2.jpg
http://www.cervetto-ref.com.ar/level2_sample1.jpg

En estos días, seguirán algunos posts más técnicos, contando cómo comenzó y continúa el proyecto.

Nos leemos!

miércoles, 21 de junio de 2006

Cuando la vida hace un click

En este mes se cumplen 21 años. A fines de junio de 1985 fue que me decidí.
Es que las manos me temblaban continuamente. Hacía ya días que casi no dormía. Sólo probaba algunos bocados de a ratos, cuando el hambre amenazaba con desvanecerme.
Me daba cuenta de lo que me pasaba. Había probado esa droga y ya era un adicto. La necesitaba. Fue creada para mi.
Entonces, cuando ya nada importaba, saqué los 500 dólares que tenía ahorrados y fui al comercio que vendía televisores y lavarropas en mi ciudad.
Me enfrenté, al empleado que leía el manual de una tostadora y dije, balbuceante: "Quiero esa TK 85"
El hombre me miró, giró hacia los televisores, pero no registraba ningún modelo de ese tipo. Luego, tratando de esconder su ignorancia, hizo un ademán hacia los nuevos radriograbadores... tampoco.
Finalmente, mirándome entre desconcertado y curioso, me preguntó: "¿qué cosa?"
Le señalé allá arriba, en la estantería, la caja verde entre medio de los veladores...
Por supuesto que la compré sin garantía, sin probarla, sin que nadie entendiera el manual en portugués... Pero era mía!! Tenía mi droga y ya mi pulso volvía a la normalidad.
Luego, sólo fue necesario conectarla a la tele, encenderla y mirar su pantalla en blanco y negro mostrando un "OK"...
De ahí en más, todo muy fácil... aprender Basic. Porque no se conseguía ni un sólo cassette para esas máquinas...
Pero qué alegría!!! La felicidad me embriagaba!!! Tenía la poderosa TK85 de 16 Kb de RAM!!! Mi amigo Daniel se moría de envidia, con su Timex Sinclar 1000 de 2 K!!! jajaja y bueno, que sufriera, si fue él quien me introdujo en esa adicción de las computadoras...

Es cierto el título de este post... la vida hizo un click para mi ese año. Porque todo, de allí en más, giró en torno de las compus. Primero, como simple hobby, luego como trabajo.
Hoy no se concibe la existencia sin estar rodeados de pc´s... pero hace más de 20 años, en el interior del interior de Argentina... el "boludo" de las computadoras encontraba sentido a su vida.

lunes, 15 de mayo de 2006

Lanzamiento oficial de Dylo's Adventure

Vuelvo al blog después de meses... Es que andaba con otras cosas, y no eran mujeres, lamentablemente.
Con muy poco tiempo, sigo desarrollando. Algo de Species Circus, algo de móviles... Ya habrá novedades más importantes para comentar.

Lo importante hoy es que South Winds Games (el amigo Pogacha) anuncia la puesta en venta oficial de su juego Dylo's Adventure.

El link: http://www.southwindsgames.com/site/Home.php

Quien conoce lo difícil que es desarrollar juegos en Argentina, comprende que terminar un proyecto y publicarlo es un logro inmenso. Y es seguro que éste es sólo el primer paso de una larga serie de buenos títulos por parte de la empresa.

Dylo's Adventure no es un AAA, ni tampoco se apuntó a eso. Pero el amante de los arcades y plataformas tendrá diversión para rato.
Gráficos y música bien cuidados, variedad de enemigos, interesantes efectos como el rebote de las piedras, todo hace a un juego agradable y entretenido. Ideal para un mercado casual.

A ver si se bajan la demo, que pesa menos de 6 MB y corre sin problemas en equipos no tan potentes. Y luego, van y lo compran!!

Bueno, digamos que para crítico no sirvo ni un poco. Pero South Winds Games hizo lo que pocos hacemos (aunque avanzamos cada día) que es terminar un proyecto... y empezar a vivir de él.

Un abrazo Pogacha!!!

lunes, 13 de febrero de 2006

THiNK, Robot! y 3

Analizando críticamente el código fuente del juego, acepto que lo volvería a escribir desde cero.
A medida que fui conociendo el lenguaje y la plataforma, me di cuenta de lo que no usaba... o usaba mal.
Finalmente, como el tiempo apremiaba, tuve que recurrir a los siempre odiosos parches para salir del paso.

El hábito de programar orientado a objetos, por ejemplo, en móviles se debe reconsiderar. Al menos en algunos aspectos. Con un heap tan bajo en ciertas plataformas, es una buena práctica dejar de lado métodos como get y set, sustituyéndolos con accesos a variables protegidas.

Como todo está hecho en MIDP 1.0, tuve que ver cómo cargaba las imágenes en memoria. (En MIDP 2.0 hay clases que administran eso sin problemas)
Me hice una clase para cargar una gran imagen y extraer tiles y sprites desde allí. Pero permanentemente se me escapaba la memoria heap. Nunca pude comprobar si era algún error mío o los emuladores me indicaban mal el heap ocupado. Así que decidí crear y cargar archivos individuales para cada imagen. Esto llevó a tener un archivo .jar de mayor tamaño y realmente no es lo que debe hacerse... pero al no poder probar sobre celulares, no quise arriesgarme a que luego nada funcionara por falta de memoria.

Traté de seguir las guidelines de Nokia para el armado de los menúes y uso de teclas.
Me hubiera gustado crear los menúes usando la UI de bajo nivel, con un juego de caracteres gráfico y efectos especiales... pero el tiempo no daba para todo eso.
Como dije en su momento... cada celular trata de forma distinta a los fonts del sistema, por lo que en cada emulador he visto un meú diferente... Ahora estoy escribiendo un framework para desarrollar menúes de texto o gráficos en forma más genérica.

La última semana, además de pulir todo, fue dedicada al sonido. Encontré algunos loops .wav interesantes en www.flashkit.com y otros midi que convertí a tonos a través de la Suite de Nokia.
Demás está decir que también puede ser mejorado...

Terminando con todo esto de THiNK, Robot!... considero que fue una gran experiencia.
Desarrollar para móviles, no sólo juegos, es un camino que recién se comienza a andar...
Cuando analizo un poco este mercado, me pongo en la situación de los años en que programaba para las home computers... limitada plataforma... inmenso futuro y la posibilidad de aún poder competir contra las grandes desarrolladoras.

Nos leemos.

lunes, 30 de enero de 2006

THiNK, Robot! segunda parte

Pantalla splash del juego (agradecimiento especial a mi amigo Eduardo Comoglio, uno de los mejores dibujantes que he conocido)

Este texto es porque el blogger me borra lo que está pegado a la imagen... vaya uno a saber por qué

Presentación del documento de diseño:

"THiNK, Robot! Es un juego de ingenio por niveles.
El gameplay desafía al jugador a resolver los diferentes problemas presentados, desplazando al robot, empujando bloques y evitando el ataque de los aliens.
El juego se orienta al usuario
casual adulto, que gusta de la resolución de problemas como pasatiempo.
No hay una lucha contra el tiempo. Tampoco se mantienen puntajes máximos ni récords. La idea es sólo entretener sin estrés.
A través de los niveles que suben en dificultad, se garantiza una divertida experiencia para el jugador."


Como pueden leer en un post anterior, el juego se basó en Eggerland, un juego de ingenio para las viejas home computers.

Decidida la idea a utilizar en el concurso, decididos los demás elementos como ser el IDE, lenguaje, etc. inicié el proyecto a fines de noviembre del 2005.

Digamos que todo fue programar y aprender al mismo tiempo... cosas que un viejo programador se puede dar el lujo de hacer :))

Primer inconveniente para el neófito: el sitio de Nokia. Es muy bueno en cantidad y calidad de información y herramientas. Pero navegarlo y encontrar lo que realmente hace falta.... uffff difícil. Todo bien, finalmente pude instalar los emuladores necesarios. Los cuales, como ya dije, andan como y cuando quieren...
Ejemplos: en algunos, que en teoría son para los mismos móviles, funciona el sonido y en otros no. Algunos tratan bien el almacenamiento permanente de los datos y otros dan error. El mismo código muestra un texto en pantalla en un emulador... y en otro lo presenta de distinto tamaño.
En fin, es todo prueba y error. Y por lo que se puede investigar en los foros... con los celulares también ocurre.

Siguiendo. Como la lógica del juego exige ver toda la pantalla simultáneamente, tuve que decidir un compromiso entre tamaño de los sprites y cantidad de "celdas" por nivel, a fin de lograr una buena variedad de problemas. Además, el concurso exige presentar el juego para móviles S60 y S40 de Nokia, con resoluciones de 176 x 208 y 128 x 128 píxeles.
Si diseñaba sprites grandes y bonitos, me quedaba sin espacio para buenas combinaciones de elementos a fin de armar los niveles.
Finalmente, decidí:
Sprites y tiles de 24 x 24 píxeles para los móviles Serie 60
Sprites y tiles de 18 x 18 píxeles para los móviles Serie 40
Esto me permitió armar grillas de 7 x 7 tiles para el layout de los niveles, y al mismo tiempo me dejó un tamaño aceptable para los gráficos.

Si bien inicié el desarrollo apuntado a la S60, traté de crear todo de forma que me permitiera hacer el port a S40 lo más rápido y fácil posible. Resultado: el port me llevó nada más que dos días. Siendo lo más lento de eso, el diseño de un nuevo set de gráficos.

La creación de los niveles tuvo su fase cómica. Mis hijos de 12 y 7 años son fanáticos de los juegos de estrategia (algo de culpa tengo) así que cuando les mostré una emulación del Eggerland para PC, se pasaron horas con eso. De allí, cuando Stéfano (7) me vió diseñando niveles, se puso con lápiz y papel a armar algunos... Y THiNK, Robot! lleva cuatro niveles que recogieron las ideas del pendex... y no son los más fáciles, lo aseguro.

Bien, esto va para largo, así que lo sigo en otro post. Dejo la pantalla de un nivel como muestra...

THiNK, Robot! mi experiencia con celulares...

Después de casi dos meses sin escribir, voy a tirar algunas líneas para actualizar un poco el blog.

Hoy, finalmente terminé el juego para móviles que estaba desarrollando. Justo sobre la fecha de cierre del concurso... como debe ser :))

Como puse en el post anterior, fue mi primer experiencia con esta tecnología y creo que el tema da para contar algunas cosas vividas y sufridas... que lo haré en dos partes, para que no se haga largo.

Este post también podría titularse: Cómo hacer juegos para móviles... sin tener un móvil.

Es que no tengo :)) y no me interesa adquirir alguno por ahora... digamos que así me siento menos perseguido... je

Bien, entonces... sin móvil... cómo lo hacemos? Pues fácil... están los emuladores!!! Esos te muestran todo tal cual lo verás luego en el aparato.

jajajajajajajajajajajajja

Bueno, desde el principio.
Pequeña investigación de mercado:

- Más de cien modelos de móviles distintos por lo menos.
- Lenguaje más usado, J2ME... pero habría que prestarle atención a Flash para móviles, con su versión FlashLite... concociendo cómo penetró el mercado de browsers, no me extrañaría que sea casi un standar para móviles.
- IDEs para programar, NetBeans de Sun, Eclipse, el Java Wireless Toolkit de Sun, la Suite de Nokia...
- No leí nada avanzado aún para conectividad (por falta de tiempo)
- Tamaños de pantalla más utilizados: 128 x 128 y 176 x 208 píxeles
- La mayoría con MIDP 1.0, aunque el MIDP 2.0 lo va reemplazando de a poco.

- Y por lo general: todos funcionan distinto :( Que la memoria, que las APIs, que el sonido, que las imágenes... una verdadera ensaladera de opciones.

Como leí en algún foro sobre el tema. Una frase de John Carmack:
Write-once-run-anywhere. Ha. Hahahahaha. We are only testing on four platforms right now, and not a single pair has the exact same quirks. All the commercial games are tweaked and compiled individually for each (often 100+) platform. Portability is not a justification for the awful performance.

En definitiva, para hacer THiNK, Robot! me decidí por:
- IDE: NetBeans 4.1
- Lenguaje: J2ME (lo exigían las reglas del concurso)
- MIDP 1.0 (lo exigían las reglas del concurso)
- CLDC 1.1
- API externa: Nokia API, para acceder a clases FullCanvas y Sound

- Emuladores de Nokia y el Mpowerplayer (lo exigían las reglas del concurso)

En otro post cuento un poco el desarrollo del juego.

Nos leemos.

miércoles, 7 de diciembre de 2005

Juegos para móviles

Hace bastante que veo cómo los juegos para móviles están mejorando en calidad y creciendo en cantidad.
Incluso investigué un poco para introducirme en el tema, pero lo que no pude encontrar es la manera de comercializarlos correctamente.
Digamos, fui aprendiendo con los años... Casi siempre me embarqué en desarrollos (míos o de grupos) movido por el entusiasmo de crear cosas nuevas. Entonces, luego de dedicarle tiempo, me di cuenta de la inviabilidad del proyecto... o la dificultad de ganar algún dinero con él.
Con los juegos para celulares no quise cometer el mismo error.
Difícil comercializarlos vía sitios. O mejor dicho, difícil recuperar el dinero desde Argentina... al menos mientras sigamos en default.
Más difícil vendérselos directo a los operadores, Movistar o el que sea... Ellos compran paquetes de juegos y si es posible, a firmas conocidas.
Por todo esto es que no entré antes al mercado.
Gracias a algunas charlas en la EVA, me encontré con empresas como JUMO, de Sebastián Uribe (Inmune Games) http://www.inmune.com.ar/
Ellos dan todo tipo de soporte, dependiendo del proyecto que se les presente. Desde colaborar con gráfica, porting a distintos modelos de móviles... y lo más importante: La comercialización.
Pues eso, más el concurso que se inició en Stratos y MovilGamers: http://www.movilgamers.com/certamen/
me entusiasmaron a desarrollar algo para celulares.
El primero que estoy haciendo: una adaptación del viejo Eggerland... juego de ingenio que me quitó mil horas hace 20 años con la MSX.
Y tengo en espera una suite de 3 proyectos en los que avanzaré dependiendo cómo vaya éste.

Así que le estoy robando un poco de tiempo a Species Circus... por supuesto, ni hablar de frenar eso.
Si va bien lo de los móviles, sería un ingreso extra para financiar host y demás a mi juego 3D.

Nos leemos!

miércoles, 2 de noviembre de 2005

La EVA 05 o cómo disfrutar de lo que a uno le gusta

Siempre que puedo voy a seminarios, charlas o expos. Por suerte, la empresa donde trabajo me apoya en algunos de esos viajes. Lástima que muchos no están accesibles por la distancia.
Casi siempre, también, son eventos asociados íntimamente a lo que yo programo: Plataforma .NET - Microsoft
Se arman en los mejores hoteles, nos dan una panafernalia de biromes, carpetas, folletos. Los break coffee son eso... estupendos break coffees :)) con infinita cantidad de dulces, jugos, etc.
Cuando todo termina, nos vamos conformes... aprendimos algunas cosas, estuvimos entre gente que hace lo mismo. Nos trataron muy bien... y tenemos el estómago lleno :))
Pero... ¿y la diversión? ¿Para que sea un seminario de trabajo tiene que ser acartonado y serio? ¿Todos los oradores tienen que estar sentaditos y de saco y corbata? Un certificado de asistencia a esos lugares debería incluir un comentario del tipo: "Certifico que Sergio Cossa asistió al seminario sin emitir ni una sola sonrisa (mucho menos una carcajada) y que sus bostezos no superaron a los de la mayoría (tanto sea en calidad como en cantidad)"

Bue... a qué viene esto...

A que EVA hace lo mismo. Habla de negocios, negocios millonarios. Informa. Aglutina a cientos de programadores-artistas-empresarios. Pero además, nos divierte. Se habla de negocios y ciencia, pero sin moldes. Todo es más simple, con menos lujo (ni hablar de comida) pero al final deja la sensación de plenitud. De haber estado en el lugar indicado durante dos días.

Nos leemos.

viernes, 7 de octubre de 2005

EVA 05

Se viene nomás una nueva expo sobre videojuegos en Argentina.
Madurez, se le suele llamar.

http://adva.com.ar/eva/index.php

Trataré de viajar, por supuesto.

Creo que desarrollar un videojuego es investigar, laburar, crear... y conocer en persona a los mismos que están en este entorno.
Desde la distancia (la cual se acortó infinitamente gracias a internet) es muy difícil entender ciertos parámetros de lo que sucede en Capital.
Supongo que compartir unas cuantas horas en esa expo me va a abrir bastante la cabeza respecto a lo que tiene que ver con relacionarse con el medio.

Así que, con la humildad de un simple aprendiz en esto de los videogames... trataré de traerme el bolso lleno de ideas, direcciones y teléfonos...

sábado, 1 de octubre de 2005

Species Circus y 3D Studio

Desde hace 10 días estoy mejorando lo poco que sabía del uso de 3D Studio Max.
Lamentablemente no me sobra tiempo y no avanzo como quisiera... pero ya aprendí cosas que pensé que eran más complicadas.
Realmente es un software que supera mis expectativas gráficas.
También probé el Blender, que es gratuito... pero lo encuentro más complicado y por supuesto, con muchos menos ejemplos y tutoriales.
Supongo que voy a poder completar yo todos los diseños gráficos de naves, planetas y demás. Aunque tal vez pida alguna ayuda si va muy lento.

Los gráficos que hay que hacer para la primera versión, según el documento de diseño:

- 5 especies (un caracter para cada una)
- 40 naves espaciales ( 8 diferentes por cada especie )
- 20 componentes de las naves (serán todos iguales, no importa la especie)
- 10 planetas
- 6 estrellas
- 20 estructuras planetarias (igual que los componentes, sin diferencias entre especies)
- Las superficies de cada planeta, donde van a ir las estructuras. A esto aún no lo tengo decidido. Si hacerlo estilo Civilization, pero en 3D... o estilo al viejo Ascendancy.
- 25 tecnologías
- Al menos 4 skybox... para que no se vea siempre el mismo universo de fondo

Ya tengo hechos algunos bocetos en papel, con naves y especies (lástima que dibuje taaaan feo) Mi amigo Eduardo Comoglio tendrá que aportar otros, los que realmente muestren una buena imagen del juego.

Bueno, ahí va... falta muchísimo aún.
Cuando evalúo todo lo hecho y lo por hacer, trato de no amedrentarme, porque de ser así, abandonaría este proyecto.
Hay que ponerle mucha fe, fuerza y dedicación.
Estoy confiado en que alcanzará a lo que aspiro: Programar un lindo juego.

viernes, 16 de septiembre de 2005

Regresando de la nada

No es que no tenía ganas de escribir, es que la vida y el trabajo estaban monótonos...

Mucho movimiento en esta empresa, entrando en temporada. Varios cambios de computadoras me llevaron gran tiempo, en especial, fuera de hora :(
Al menos yo me quedé con un PIV full, con todo lo que hace falta para seguir adelante con el juego ;)) Así que ahora tengo más ganas que antes para continuarlo.

Párrafo aparte para lo que renegué desde ayer a la mañana.

Hago unas pruebas y noto que todo lo que corro en 3D tiene como un parate de fracciones de segundo. Pongo a girar un triángulo y sale entrecortado... Lo primero, pensar que es la GeForce 5200 FX que tengo.
Desinstalo el driver y nada. Entonces veo el TaskManager. Un proceso me come 25 % de CPU cada medio segundo!!

Pruebo iniciando en modo seguro y todo bien. Vuelvo al modo normal y se me escapa el CPU.

Un día y medio probando, desinstalando, volviendo a instalar, consultando en los foros...
Hoy desarmé el equipo y saqué las tarjetas de video y modem. Desenchufé la red, parlantes y el Iomega ZIP paralelo.

Malditos métodos de prueba y error!!! ja

Finalmente lo encontré. El ZIP ocasiona esos parates. Incluso luego de instalarle los drivers nuevos y oficiales, lo sigue haciendo. Así que ahí está, desenchufado, el maldito. Cuando se me pase la bronca, veré qué es lo que interfiere.

Al final, como siempre... ante tanta mufa y pérdida de tiempo, queda lo aprendido. Montón de apuntes y artículos leídos para entender muchas cosas de los procesos del XP que no conocía.

Nos leemos.

miércoles, 24 de agosto de 2005

Avances en Species Circus

Paso a detallar los avances en el juego:

- Creación de los archivos de recursos de texto y sus clases para accederlos. Esto permitirá tener el juego en distintos idiomas con sólo modificar la configuración inicial.

- Clases Manager para Entidades, Gráficos, Eventos, etc.

- Clases para mantener en memoria las Texturas y Meshes con Irrlicht.

- Ya están los módulos para controlar Jugador - Naves - Planetas - Sistemas Solares. Están los manager de cada uno de éstos, con las separaciones en clases para control de datos (Model), control de gráficos (View) y control de eventos (Controller)

- Está el módulo que genera dinámicamente el Universo al cargar el juego.

- Control de estados del juego. Desarrollé un sistema de estados y subestados que dirigirá todo el flujo del juego. Desde el loop principal, hacia los distintos subsistemas.

Aclarar que todo está en prototipo y sin profundizar en detalles. Por ejemplo, de las Naves controlo simplemente ubicación, ID y Mesh. Similar para los Planetas. Pero la funcionalidad no va a variar demasiado, es simplemente agregarle propiedades y capacidades.

Nos leemos.

jueves, 11 de agosto de 2005

El diseño base

Después de un mes de probar el motor Irrlicht, ya entiendo bastante lo que puede dar... así que comienzo a armar la estructura base del juego.

Como escribí en su momento, voy a tratar de seguir una arquitectura MVC, aunque tal vez con alguna variante. Hay dos textos muy interesantes, de los cuales extraje info como para desarrollar el diseño del juego:

- Página en Gamasutra
http://www.gamasutra.com/features/20050414/rouwe_01.shtml

- Este es un .pdf que se puede bajar de varios lugares:
"Architecture for a massively multiplayer online role playing game engine"

Por supuesto que también tengo varios libros piratas bajados de la web...

Nos leemos,

martes, 2 de agosto de 2005

Moviendo la cámara

Al fin encontré la forma de rotar la cámara alrededor de un objeto ubicado en el centro de la pantalla... No había nada específico sobre eso con Irrlicht, hasta pregunté en Stratos.
Las ideas que me dieron estaban acertadas a medias.
Ya de última, apareció en el search un viejo post en Irrlicht, sobre ese tipo de rotación, basado en el juego Never Winter Nights.
Es código c++, pero lo pude adaptar sin problemas a .Net
Ahora sólo resta integrarlo al resto de funciones de movimiento de cámara que ya tengo funcionando bien.
La idea es que el player vea inicialmente un sistema solar desde lejos, con todos sus componentes y luego pueda desplazarse, hacer zoom, rotar, etc. para ubicarse en cualquier lugar del mismo.
Para eso necesito una cámara totalmente ágil y poderosa, que se mueva al estilo de Black & White, donde podés hacer lo que quieras.
Cuando tenga toda esa funcionalidad, voy a poner un tutorial en Irrlicht, para los que vienen renegando con la versión .Net, como yo.

jueves, 21 de julio de 2005

Día del Amigo

Fue ayer... pero no me dieron ganas de escribir nada en especial.
Reconozco que estoy en contra de todo ese tipo de fiestas o conmemoraciones comercializadas.

Al final, como había decidido (porque lo debía desde hace tiempo), sólo llamé por teléfono a Mirta, la esposa de mi único gran amigo Sergio. Como éste ahora anda por España... que ni sueñe que lo voy a saludar por fono. Encima está peleado con internet.

Los demás... bueno, algunos saludaron por chat... y les respondí por cortesía. A los que mandaron mail, directamente no les contesté.

Qué livianitas que se ven las amistades últimamente... o será que yo siempre fui muy exigente... pero que te digan que sos un gran amigo y todo ese verso, cuando lo único que compartís son unas horas de laburo, o de chat, no va para mi.

Tal vez la gente necesita alguien que escuche y no tenga que pagarle por sesiones... tal vez cuando uno tira un par de consejos (de cosas aprendidas en la universidad de la calle) se toman como que nacen de algo íntimo como es la amistad...
Pues para mi, nada de eso es cierto. Me gusta escuchar y charlar con la gente. Trato de tener buena onda y que los demás estén bien.
Pero analizándolo fríamente, eso es sólo egoísmo puro de mi parte :)) Porque si están de mala onda me joden la vida a mi.
Y los únicos que tienen derecho a joderle la vida a alguien... son los hijos... y los verdaderos amigos :))

Y vaya este texto, para que sepan lo que es la verdadera amistad:

Un AMIGO: Te manda e-mails que te hacen reflexionar y meditar.
Un VERDADERO AMIGO: Te manda e-mails de minas en bolas y asquerosidades.

Un AMIGO: Piensa que los problemas por los que te quejás son recientes.
Un VERDADERO AMIGO: Te dice: "Dejá de quejarte de las mismas boludeces de siempre y solucionalo, que ya me tenés harto!".

Un AMIGO: Nunca te vio Llorar.
Un VERDADERO AMIGO: Ya tiene los hombros mojados de verte llorar y ya sabe que sos un mariconazo.

Un AMIGO: Desconoce el nombre de tus padres.
Un VERDADERO AMIGO: Tiene siempre el teléfono de tus viejos encima por si te llevan preso.

Un AMIGO: Lleva una botella de vino a tu casa cuando hay fiesta.
Un VERDADERO AMIGO: Llega a tu casa completamente pedo, se toma todo lo que encuentra en su camino, putea a tus invitados y te hace quedar como el culo.

Un AMIGO: Odia que lo llames a la hora de la siesta, pero te atiende igual.
Un VERDADERO AMIGO: Directamente ni te atiende.

Un AMIGO: Busca hablar de tus problemas.
Un VERDADERO AMIGO: Te los intenta solucionar con unas cuantas botellas de cerveza de por medio.

Un AMIGO: Actúa como invitado en tu casa.
Un VERDADERO AMIGO: Entra a tu casa, abre la heladera, te putea si esta vacía, te caga el baño y se sienta a ver lo que él quiera en la tele.

Un AMIGO: Piensa que se acaba la amistad si hay una discusión.
Un VERDADERO AMIGO: Se mama, te caga puteando y al día siguiente ni se acuerda qué pasó, pero está todo bien.

Un AMIGO: Espera que estés siempre a su lado.
Un VERDADERO AMIGO: Espera siempre estar a tu lado.

Un AMIGO: Nunca te putea.
Un VERDADERO AMIGO: Ya te ha dicho todas las barbaridades habidas y por haber.

Un AMIGO: Te cuida toda la noche si estás muy borracho.
Un VERDADERO AMIGO: Te tira en unos matorrales para que no te detengan y a las 8 de la mañana te pasa a buscar para llevarte a tu casa.

Un AMIGO: Si te quieren pegar intenta arreglarlo con explicaciones.
Un VERDADERO AMIGO: Se mama, se pelea y la ligás vos de rebote por salir a defenderlo.

Un AMIGO: Nunca dice cosas que sabe que te molestan.
Un VERDADERO AMIGO: Si sabe que te molesta algo lo va a hacer hasta el agotamiento.

Un AMIGO: Te diría "Pasale este mensaje a todas aquellas personas que
verdaderamente apreciás y querés y todos tus deseos se harán realidad".
Un VERDADERO AMIGO: Te diría "Déjate de leer pelotudeces y mandá algo bueno o voy a tu casa y te cago a patadas!".

Nos leemos.

viernes, 15 de julio de 2005

Decisiones sobre el engine

Finalmente, luego de probar varios motores, me decido por Irrlicht, con su versión de .NET

http://irrlicht.sourceforge.net

Los otros que probé no tienen suficiente desarrollo aún, o son demasiado complicados como punto de partida.
Si ben el wrap de .NET de Irrlicht no está terminado (ni mucho menos) al menos es suficiente para orientar el juego a ese engine.

En realidad, la idea será hacerlo lo más despegado posible del motor gráfico, pero en alguno tengo que basarme para introducirme un poco más en esto.

Estoy dispuesto a cambiar en algún momento si la experiencia lo hace necesario...

Siempre complicado yo... si me decidiera por c++ encuentro miles de ejemplos. En C# hay bien poco... pero bue. Como puse en otro hilo, apostando a futuro. Considero que C# superará finalmente a c++ (pero no lo digo públicamente porque me matan)

Nos leemos.

viernes, 8 de julio de 2005

martes, 5 de julio de 2005

Historia y prehistoria

Pego abajo el post que puse hoy en Stratos, en un hilo de off topic, como para que el que no me conoce, sepa un poco de dónde vengo informáticamente.

En la prehistoria (1985) existían las Timex Sinclair 1000 con 2 KB de RAM.
Después me compré una TK 85 brasilera que ya tenía 16 KB y era un lujo.
Hasta le agregué un kit de sonido que hacía cosas como piiiiiiiiiiiiiiiii miiiiiiiiiiiiiiiiiii grgrgrgrgrgrgrgrgrgr
Por supuesto que todo era programar, ya que no había nada hecho para eso, y si conseguías algún cassette, seguro no lo podías cargar ni a palos. Aprendía con las revistas de Spectrum o Amstrad que venían de España con 6 meses de atraso.
Ya en la edad media, adquirí una Talent MSX (genial intento japonés de estandarizar las home, pero que quedó en la nada) 64 KB de RAM, chip de video y sonido separados, hasta 32 sprites en pantalla... un sueño.
Entré en un concurso que hizo Telemática de Argentina (El programador del Año) y lo gané con un juego "Robinson Crusoe". Aventura literaria por turnos y tiempo.
Al año siguiente participé de nuevo y saqué un segundo premio con "CRASH" un Arkanoid horizontal escrito en Assembler del Z80.
Después, en la edad moderna... las necesidades me llevaron al mundo de la gestión, facturación y todo ese entorno aburrido pero que da para vivir.
Pasé por varios lenguajes y bases de datos: Turbo Pascal, FoxPro, Visual FoxPro, C, Visual Basic, SQL Server y desde el 2001, C#
En los tiempos contemporáneos, hice varias cosas para web, incluyendo CyborgLand, un web game que alcanzó los 1300 players, pero que no dio el tiempo y los $$$ para mantener el host.
Desde febrero empecé a ver ManagedDX y a aprender el mundo del 3D ( en algunas horas libres ) y estoy diseñando un juego de exploración espacial online, con MDX y C#.
Mientras tanto, aún mantengo sistemas escritos desde 1990 en MS DOS y FoxPro... de algo hay que vivir
Saludos a todos.
Sergio Cossa
Argentina

Nos leemos.

lunes, 4 de julio de 2005

Buscando engine...

Difícil decisión.
Busco un engine gratuito y que esté programado en C#, o al menos que tenga un wraper para .Net
Hay pocos y todos en estado Alpha/Beta. Es lógico, ya que todo esto es muy nuevo. Hace poco que se dispone del ManagedDX y como además está por salir el VS 2005, los que desarrollan prefieren no avanzar demasiado, ya que se viene con muchos cambios.

Irrlicht: es el más avanzado. Tiene mucho tiempo de desarrollo. Si bien se hace en C++, le están creando un wraper para C#. El foro es sumamente activo.
http://irrlicht.sourceforge.net/

RealmForge: parace que va a ser el más completo, pero aún está en Alpha. Lleva un desarrollo sostenido. Espero que mejoren los tutoriales (lo prometieron), porque lo veo complicado. Está basado en Axiom, que es un port para C# de OGRE.
http://www.realmforge.com/

PurpleSharp: Su desarrollo estuvo parado, pero ahora parece que el flaco se puso las pilas. También en estado Beta. Es un motor sencillo pero bastante fácil de utilizar.
http://www.bunnz.com/index.php

Por ahora no vale la pena profundizar en ninguno de ellos. Simplemente les dediqué unos días para ver qué es lo que ofrece el mercado.
De todos modos, tengo mucho por hacer antes de decidirme a usar un engine gráfico.

Nos leemos.

sábado, 2 de julio de 2005

Aprendiendo a programar

Era hora que aprendiera a programar de veras :))

Bueno, vamos... uno ya tiene su experiencia, seguro. ¿Pero cuán válida es? ¿De qué sirven 19 años desarrollando software?
Creo que para lo único que sirven, es para facilitar la capacidad de aprendizaje. Para comprender que las cosas cambian rápido en esta profesión y que todo lo asimilado durante años puede ser inútil si el desarrollador no tiene una gran capacidad de adaptación (o traducido: visión de futuro)

En el 2001 comencé a desarrollar sobre la plataforma .Net, la cual aún estaba en beta. Desde ya que eso implicó falta de documentación, semanas tratando de entender el entorno y... nadie cerca para preguntar... es más cuando quise consultar algo, tuve que dedicarme a explicar en qué consistía toda esta novedad.

Luego de cuatro años, está claro que .Net es el presente y futuro de Microsoft. Todos sus desarrollos se orientan a esta plataforma. Infinita cantidad de documentación y millones de desarrolladores trabajando por el mundo. Y por supuesto que el monopolio de MS arrastra a otros cientos de empresas en esa misma dirección.

¿Visión de futuro? No. Capacidad para utilizar la experiencia de años.

Bien... qué tiene que ver eso con el aprender a programar del título.

Utilizar una plataforma orientada a objetos (no un simple lenguaje, sino todo un marco de trabajo) obliga, si uno es coherente, a diseñar duro para extraer todo lo que ese entorno ofrece.
Desarrollo rápido, reusabilidad, escalabilidad son nociones de las que mucho siempre se habla pero que no todos respetan, a veces por falta de soporte en la herramienta (Cobol y Clipper 87 aún se usan) y otras por las pocas ganas de cambiar hábitos adquiridos.

Si bien hace rato que trato de orientar mi software a objetos, nunca logré avanzar sobre esas nociones del párrafo anterior. Motivo principal: falta de tiempo en diseño, improvisación y escasa comprensión de las mismas.

Para mi nuevo juego, como para todos mis desarrollos, pienso implementar las "mejores prácticas" en programación. Considero que no es correcto perseguir dogmas, pero sí es necesario aceptar y entender la experiencia ofrecida por otros.
Dentro de esta línea de conceptos, la utilización de patrones de diseño (ejemplo: http://www.dofactory.com/Patterns/Patterns.aspx ) es una buena guía.

Claro... para aplicar esto, se deben revertir muchos vicios. Dedicarle mucho tiempo al diseño, planificar, leer mucho y comprender ejemplos. Dicho en lenguaje llano, una forma de programar inútil para cualquier empresario que solicite software :)) así que no me llamen para que les haga un presupuesto :p

Nos leemos.

jueves, 30 de junio de 2005

Primero, el juego

Estoy tratando de hacer un juego. Bueno, para ser más específico: estoy programando un juego.

Desde principio de año decidí nuevamente hacer algo, luego de la caída de mi juego web Cyborg Land, hace ya tiempo.

No quise hacer otro juego web... al final, la idea de todo esto es aprender, mejorar y crecer. Un juego web tiene sus complicaciones, los navegadores son limitados y hay que exigirse mucho para lograr calidad, velocidad y bajo tamaño de transferencias. Demás está decir lo que es lidiar con multiplayer, universo persistente, usuarios tramposos y demás...

Bueno, mi idea es tener todas esas cosas complicadas, pero agregándole gráficos en 3D :(
Así que llevo meses metiéndome con Manged DirectX, engines, etcéteras. Junto al diseño general de lo que será el juego, claro está.

La idea... juego espacial de exploración, conquista, economía, investigacion... sip, nada original como idea. Espero aportarle algunas cosas extras para que lo hagan distinto de los otros miles... ya veremos.

El usuario se baja un cliente no muy pesado (unos 20 MB) y juega online. Habría un sistema de turnos y tiempo. Trato de utilizar algunos patrones de diseño, como el Model-View-Controller (MVC) para así poder hacer distintas interfaces visuales. Es decir, lo jugás en tu casa, online. Pero también podés acceder desde web o celular para consultar tus estados o hacer algunas movidas simples.

Cuánto voy a tardar? Ni idea... un laaaaaaargo año o más, seguramente.

En realidad este blog es para llevar una especie de diario. Un registro de muchas cosas que hacen al desarrollo de un juego y que luego de un tiempo uno olvida.

Nos leemos.

Bienvenidos al blog

Bien, acá estamos... subidos a la moda del blog.

Supongo que escribiré principalmente sobre informática, aunque me tengo fe que también lograré hilvanar algunos pensamientos propios y profundos sobre otros temas :)

Nos leemos.