lunes, 15 de mayo de 2006
Lanzamiento oficial de Dylo's Adventure
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
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...
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
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
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
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
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
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
- 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
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
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
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
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
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...
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
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
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
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.
