Ir al contenido principal

Entradas

Mostrando entradas de 2005

Gimp 2.2.10 y 2.3.6 liberados

En medio del 22do Chaos Communication Congress, el equipo del Gimp se las ha arreglado para liberar 2 versiones de este popular programa de manejo de imágenes.
La 2.210 es una versión que corrige algunos bugs de la rama estable, que incluyen:
corregido error de compilación en el compilador C de Sun (bug #319811)
corregido problema con los scripts Guías (bug #320933)
corregido el problema de selección de display (bug #319029)
corregido un potencial problema con wget (bug #322977)
corregido uso no interactivo de gimp-edit-stroke (bug #323778)
corregido crash de script-fu en algunos locales como el Chino (bug #163212)
corregida compilación del plug-in libsrvg (bug #314400)
corregido el tipo de parámetro en procedimiento "plug-in-unsharp-mask" (bug #325007).Además viene con un splash screen conmemorativo por los 10 años. Por su parte la 2.3.6 pertenece a la rama de desarrollo, e incluye:

inicio de la aplicación aún más rápido
binario relocalizable enm linux por medio de binreloc
es más ver…

Servidor 4 de Vendetta abierto a registro

Hoy me percaté que se abrió el Servidor 4 de Vendetta. Este es un juego muy similar a OGame, y si quieres probarlo te recomiendo que te registres hoy o mañana, porque en este tipo de juegos por desgracia siempre estás a merced de los que empeizan primero.
Yo ya llevo varios días probándolo en el Servidor 3.

Implementando acceso a bases de datos

Luego de pensarlo bien, decidí que tener una base de datos centralizada para los usuarios no me vendría mal. Hace un tiempo probé las librerías de Postgresql en C/C++, y como éste es el gestor sql que utilizo, pues me di a la tarea de agregar el soporte al servidor del juego. Mi primera visita fue a libpq++. No me resultaría fácil compilarla en Visual Studio, y como de todas formas tendría que descarga Postgres completo y no estaba seguro de tenerla en linux, ni de su nombre de linkeo, pues decidí usar libpq, que es la que viene con el paquete y ya compilada. En un minuto la tenía integrada en ambas plataformas y funcionando adecuadamente.

Crystal Space incluirá generador de follaje

Dándome una vuelta por el sitio de Crystal Space me encuentro con que están trabajando en un generador de follaje que permitirá crear dinámicamente arbustos, hierbas, etc, sobre terrenos y otras mallas. Las capturas de pantalla se ven magníficas.
CS es el motor de juegos utilizado por Planeshift, por lo que cabe esperar que en algún momento tengamos algunas praderas cubiertas de pastos en este RPG online.

Videos de Elder Scrolls: Oblivion

Pablo me avisó ayer de que estaban disponibles algunos videos de este juego que muestran lo que mencionó Todd Howard en la entrevista. De veras están impresionantes. El bosque generado en tiempo real, con los árboles agitados por el viento y un nivel de detalle que no sé cómo van a moverlo las tarjetas de video. No se los pierdan.

¿A qué super héroe te pareces?

De nuevo, por menéame, llego a este blog, con un interesante test: ¿qué super héroe serías tú?. Pues a mí me sale que soy Superman.

Your results:
You are SupermanSuperman 90%Green Lantern 85%Spider-Man 75%Robin 75%Catwoman 55%Batman 55%The Flash 55%Supergirl 50%Hulk 45%Iron Man 40%Wonder Woman 20%You are mild-mannered, good,
strong and you love to help others.
Click here to take the Superhero Personality Quiz

Reconocimiento de rostros

Vía menéame me encuentro este sitio con un sistema gratis de reconocimiento de rostros. Te dice a qué personaje famoso te pareces. Hasta el momento me sale que me parezco a Charlie Manson, Jasoin Biggs (el de American Pie) y horror de horrores, ¡a John Travolta y Tom Cruise también! Después de todo, parece que mi madre tenía razón al decir que soy muy lindo.

Juez bloquea la ley aprobada por Schwarzenegger

Pues parece que la ley californiana contra los videjuegos violentos no pasará tan fácil. Según el juez viola la primera enmienda (en USA cualquier cosa que se te ocurra viola algún parche de la Constitución) y lo más importante: reconoce que los argumentos acerca de la influencia de los videojuegos son cuestionables.

Planeshift: 150000 cuentas

Aunque el juego va de cabeza para algunos usuarios (como yo) por problemas de conexión desde la última actualización, Planeshift cierra el año por todo lo alto. El pasado día 30 alcanzaron las 150000 cuentas y justo ahora el reporte dice que hay 162043. Para ser un juego creado por voluntarios y aún en estado beta, con constantes problemas y borrado de cuentas, es un buen logro.

Gentoo live cd 2005.1-r1

Con vistas a instalar un Gentoo para mi casa acabo de echarle un vistazo al último Live CD de Gentoo. El cambio es sorprendente. Hacía tiempo que no miraba esta distro y estaba acostumbrado a la instalación desde un shell. Ahora el CD arranca en un desktop Gnome, e incluye el Installer: dos asistentes, uno gráfico y otro basado en texto que facilitan la tarea de configurar la red, particionar, crear el kernel, etc, para los que le temen al pesado proceso de hacer todo eso a manopla.

La rueda del tiempo

Al fin se pone interesante esto. No me explico como Robert Jordan logró que le publicaran este libro, porque las cosas mejoran solo bien adelantado el segundo. Pero está muy bien logrado y ha captado mi interés. Por el momento me he quedado sin mundodiscos, los que tengo son en formato pdf, el único que puedo convertir es Brujas de viaje y las aventuras de Yaya Ceravieja no me hacen mucha gracia. Prefiero las historias de la guardia nocturna y de la Muerte.
Y aunque insistan en que Mundodisco es una serie de novelas muy geek, pues yo no la catalogaría como tal, a pesar de la computadora hecha de hormigas y los calendarios de piedras portátiles de los druidas.
Por el momento sigo con el Dragón Renacido.

The Tower, en activo otra vez

Luego de una mañana de lucha con los scripts de autotools al fin he logrado rehacerlos para que compilen en mi entorno de trabajo. Aunque el trabajo viene desde ayer, que tuve que recompilar Ogre porque la primera vez que lo hice no detecto Cegui y me creó una versión sin soporte para gui. Ahora solo me resta solucionar un problema, no me carga los jpg.

Días ocupados

He tenido un par de días bastante ocupados y apenas tengo tiempo para postear por acá. En primer lugar sigo trabajando en el gui y algunos otros detalles. Por otra parte estoy haciendo un exeprimento: reescribir el relato a cuatro manos con ayuda de un amigo. Hasta ahora el resultado me gusta.

Nuevo user interface

Ahora, Open GL y C++. Aún me quedan algunos problemas, ya que los colores se me están mezclando, y no logro que el blend funcione.

Yo soy un estúpido

Pues sí. Después de pasar dos días tratando de averiguar por qué no se mostraba correctamente el código en 2d, descubrí dos cosas. Primero, que el orden de búsqueda de las funciones de una clase cuando son derivadas es Derivada->base, solo si has declarado ese miebro en la clase derivada como no virtual. En mi caso, la clase widget implementa un método virtual void redraw()=0; y su clase hija window un método cuya declaración correcta debe ser void redraw(); y no virtual void redraw();. Me he castigado debidamente por ese error pillándome las orejas con la bandeja de la unidad de CDs.
El segundo horrible disparate era en el constructor de la clase widget. Había cometido la burrada de usar los mismos nombres de los miebros x,y,w,h para los parámetros. Obviamente eso... mejor ni mencionar qué sucedía. La mesa se encargó de pegarme varias veces en la cabeza para que no se repitan tan vergonzosos errores.
Por el lado de las buenas noticias, la clase que maneja los temas es un singleton.…

ytfontlib

Ayer por la mañana mientras conversaba con mi viejo amigo Torsten acerca de la interfaz de usuario, me ofreció su biblioteca de renderizado de fuentes: ytfontlib. Este era un tema que me preocupaba, porque estaba planeando usar sdl-ttf. Sin embargo esta biblioteca me ahorra el trabajo, ya que además incluye las herramientas para convertir los archivos ttf a texturas.

El último samurai

Desde hacía un tiempo venía dándole vueltas en mi cabeza al tema de esta peli. Según me parecía, los japoneses usaron armas de fuego mucho antes de esa época. Y no las consideraron deshonrosas.Las introdujeron los portugueses en 1542 y ya en la batalla de Kajiki en 1549 se utilizaron.
Creo que los samuráis hubieran usado cualquier arma avanzada, incluso hasta un sable de luz de haber tenido uno, porque muy poca diferencia hay entre matar a alguien con un arco, que lanza varillas afiladas de madera y un arcabuz, que lanza bolitas de plomo. El resultado es más o menos el mismo.

GUI

Desde ayer estoy trabajando en llevar a C++ algunas pruebas que hice para hacerme mi propio interfaz de usuario en C.
Así se veía antes:
No se ve de maravilla, pero espero que mejore un poco. Además del cambio de lenguaje estoy cambiando a Open GL como backend de renderizado en lugar de SDL.

¡Ya tenemos WiFi!

Acabo de recibir el aviso del Departamento Comercial de ENET. Justo hace unos días me preguntaba cuándo diablos se preocuparían en ponerse al día. El primer punto está ubicado en el lobby del Hotel Panorama, en la Habana. El precio, unos módicos 8.00 dólares la hora.

Adicción

Me he vuelto adicto a Mundodisco. Y ya se me están acabando. Lo peor es que aún me quedan tres en formato pdf que tendré que leer en la PC, porque no puedo meterlas en la Palm. La Rueda del Tiempo ha quedado ahí en cola para cuando termine.

Tipos de besadores

Vía LnL me encuentro el curioso test para saber qué tipo de besador eres.

You're a Romantic Kisser
For you, kissing is all about feeling the romance
You love to kiss under the stars or by the sea
The perfect kiss involves the perfect mood
It's pretty common for kisses to sweep you off your feetWhat Kind of Kisser Are You?
Pues sí que se ajusta.

Irrlicht 0.14

Pues sí que andaba yo bastante perdido en estos días cuando no me di cuenta de esto a tiempo. Niko liberó Irrlicht 0.14. Las razones para el salto de la 0.12 a la 0.14 se explican en el anuncio. Y el cvs (o subversion) abierto sigue en el limbo...

¿Ataque de ingeniería social?

Revisando mi cuenta en gmail me encuentro dos mensajes provenientes de terracartoes@terra.com.br, en portugués, aparentando ser postales. Ambos tinene en común un enlace para leer la postal completa. El primero terminaba en extensión scr. Eso me olió mal, no he visto ninguna página web que se respete con dicha extensión. El segundo me enviaba a un archivo subido en rapidshare. revisando los headers parecen venir de dnsdashboard.com, cuyo registro SPF gmail no logra identificar.
Me suena a que muchos van a caer en esta trampa.

Soporte de scripts

Bueno, en estos días el proyecto no ha estado muy activo. Alguien se ofreció para hacer el terrain renderer, pero no ha dado más señales de vida. Y he estado ocupado retocando un relato qeu escribí, para enviarlo a revisar al taller literario. Si sale algo que sirva lo liberaré bajo licencia Creative Commons.
Pero hoy le eché nuevamente un vistazo y pensé que ya que no se me ocurría nada, era hora de volver a instalar Lua y agregar soporte de scripting. Aún no lo he probado y solo agregué unas líneas. Espero incrementarlo pronto. Por otra parte, tal vez teng auna solución para el terrain renderer, y es posible que pase a triangle strips.

Reunión del Hospitality Club

Ayer por la tarde nos reuniomos los miembros del Hospitality Club en Santiago de Cuba. Kiell, de Alemania, Pradel y Franklin, de Haití, Sang (no sé como se escribe exactamente el nombre) y Suzanne de China, Lianne, Otoniel, yoandro, Leo y yo, de Cuba.
Compartimos una buena tarde, ahora tenemos planificado una sesión de comida china el próximo sábado. A mí me toca buscar el aceite y la salsa china.

Xbox e Internet Explorer

No suelo hablar de consolas porque no tengo, ni podré tener una. Pero un comentario en un post de Javi es bastante curioso. Rafa se pregunta si IE estará incluido en el sistema operativo de las Xbox. En definitiva, es una versión recortada de Windows.
Y bien, esto es todo lo que pienso decir sobre consolas por ahora.

xorg 6.8.99

Esta es la versión RC2 del xorg, que incluye soporte para los chipsets r300 de ATI (superiores a la Radeon 9200). No sé qué mala idea me dio de compilarlo y probarlo cuando instalé Centos. El caso es que me he encontrado con los problemas más raros que he visto en mi vida. Para empezar cuando estoy en modo gráfico no puedo cambiar a las consolas texto con Ctrl+Alt+Fkey. Y desde hace dos días para acá, solo puedo usar Xfce o KDE como root, aunque el lunes probé el Xfce en el runlevel 5 como usuario normal.
Por supuesto que cualquier poco deseo que tenía de recompilar xorg modular en mi futura instalación de Gentoo en casa se me han quitado por completo, creo que me iré por la variante del driver propietario de ATI y soportaré los fallos que tenga.

Convirtiendo de click a coordenadas 3d

Una de las cosas que más me preocupaban en todo este trabajo de medio hacer el motor gráfico era convertir las coordenadas del mouse a las coordenadas 3d de Open GL. Pregunté en todas partes, pero nadie me daba una respuesta precisa, sólo que había que usar gluUnproject y dependía de la matriz de proyección. Llegué a pensar que hacía falta toda una serie de cálculos complejos para eso.
Sin embargo, la respuesta estaba bien cerca en NeHe y es bastante sencilla.
Esto resuelve el problema en caso que tenga un motor pseudo isométrico, sin embargo para la vista planeada en el proyecto no me sirve, pues lo que necesito averiguar es si el rayo trazado desde el punto en pantalla atraviesa el mesh de un personaje u objeto. Podría usarlo de todas formas, pero el click entonces se comportaría raro pues deberíamos clickear sobre los pies del personaje para seleccionarlo.

Mundodisco

Aunque este blog no es exactamente sobre libros y soy una completa nulidad en materia de crítica literaria, de vez en cuando dejo caer alguna opinión sobre lo que leo. Hace un tiempo mencioné que había leído algunos de los libros de la serie de Mundodisco, gracias a que podía meterlos en mi pda.
Pues bien, leí 8 de ellos de un tirón. No voy a entrar en detalles, pero si no los has leído échales un vistazo. Terry Pratchet hace un buen trabajo y hacía un buen tiempo que no me reía tanto. La acción se mueve rápido, nada de largas parrafadas inútiles y sin embargo está todo lo que tiene que esta para comprender este singular mundo que viaja por el universo a lomos de cuatro elefantes montados en la gran tortuga A'Tuin.
Ahora estoy leyendo La rueda del tiempo, pero por el momento no le cojo el gusto. Si Orson Scott Card tiene el don de llenar montones de páginas con profundos debates filosóficos, Robert Jordan tiene el de alargar sus libros enriqueciendo las descripciones con detalles t…

Adiós a Fedora

Hoy tenía planificado migrar de Fedora Core 2 a CentOS 4.2. Luego de una larga lucha con el orden de los discos (tengo un SCSI y un IDE), logré arrancar una instalación mínima.
Ahora estoy batallando con la difícil tarea de rearmar el sistema a partir de esa instlación mínima, el mar de dependencias ya me tiene loco y el yum no funciona. El colmo es que para instalar dovecot tuve que instalar también mysql. Esa es una de las causas por la que me gusta mucho más gentoo.
Y aún me queda el jabber, pero eso será el lunes.

Formato de mapas

En estos días me he detenido para pensar en el diseño del formato de los mapas. Necesito (por ahora) un formato que permita especificar alturas como un heightmap, pero al mismo tiempo seguir siendo orientado a tiles. Como usaré XML debía optimizar dentro de lo posible evitar incluir la definición de tiles o ubicaciones vacíos, por lo que opté por una representación sparse (dispersa). O sea, el mapa incluye sólo las definiciones de los puntos que difieren del layout base.
El mapa xml sería más o menos así:
< x="100" y="110">Testing map< /map>
< -- Base texture -->
< id="1">marsh.jpg< /baset>
< id="2">rocky.jpg
<>
< x="10" y="12" h="4">
< x="10" y="12" texture="2">
< /tiles>
Y generaría una matriz final, que no sería sparse, así:
(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0)
(1,0),(1,0),(1,0),(2,4),(1,0),(1,0),(1,0),(1,0),(1,0)…

¡Windows Vista soportará enlaces simbólicos!

¡Qué gran novedad! Luego de muchos años de existir en los sistemas de archivos Unix, al fin NTFS incorporará enlaces simbólicos. De los de verdad, no ese invento malojero que son los accesos directos, como bien nos explican en la anotación que enlazo. Lo que no detallan es si tendremos dos categorías: duros y blandos. Para los no familiarizados, un enlace blando es solo un puntero al nombre del objeto. Si borras el objeto el enlace blando se queda perdido. Un enlace duro es un puntero al objeto en sí. Si borras un objeto, y existe un enlace duro a él, el objeto no desaparece pues en la tabla de archivos queda otro apuntador a esos datos (y si no es así que me corrija un profesor de Sistemas Operativos).

¿A dónde fue Google Analytics?

Como todo el mundo, me suscribí hace tre días al nuevo servicio Google Analytics. El primer día no funcionó. El segundo más o menos, pero sin estadísticas. Ayer vi que tenía algunas. Hoy resulta que al intentar acceder me redirige hacia la página de búsqueda.
Realmente Analytics ha arrancado con el pie izquierdo.

Modelos animados

Hoy finalmente me decidí a echar un vistazo a los tutoriales de archivos 3d con carga de animaciones incluida. Luego de revisar el tutorial de DigiBen (en gametutorials.com, que según veo hay que pagarlo ahora) y la implementación hecha por Gabor para Scourge (basada en ese mismo tutorial), me decidí finalmente por el primero. Tuve que hacer un trabajo extra porque el código no era portable, por suerte ya lo es y lo que más me preocupaba, que era el sistema de temporizado de los cuadros funciona, o al menos eso parece. Ahora estoy en proceso de implementar la carga de texturas.
De paso, aprovecho para recomendarles que sigan el trabajo de Dmitri, creo que va muy bien aunque modestamente considera que su motor aún es débil, yo le veo mucho potencial.

Tags: ,

Neverwinter Nights 2

Vía Gamespot recibí este artículo sobre la próxima versión de este clásico del rol, ahora desarrollado por Obsidian. Las imágenes del motor desarrollado por la compañía para esta entrega se ven interesantes, aunque por el momento no se aprecian innovaciones revolucionarias. Que dicho sea de paso, no son necesarias, porque este título vende por sí solo.

Tags: ,

Bienvenidos a la era del xml

Hace dos días me di a la tarea de implementar el soporte para xml en el proyecto. Para ello escogí TinyXml, que es muy fácil de integrar pues como no es una biblioteca sólo tienes que incluir algunos archivos y ya está.
De momento, la configuración del cliente (servidor al que se conecta y resolución de pantalla) se lee desde un xml. El archivo en cuestión es el siguiente:


< ip="192.168.1.1">< /server>
< x="800" y="600" bpp="32">Screen resolution< /screen>

Y se parsea con un código tan sencillo como este:

TiXmlDocument conf;
if (!conf.LoadFile("metalclient.xml")) {
//hubo algun problema
printf("Error loading config file.\n");
}
TiXmlHandle chandle(&conf);
TiXmlElement *cvalue=chandle.FirstChild("screen").Element();
if (cvalue->QueryIntAttribute("x",&Width)!=TIXML_SUCCESS) {
printf("Problem loading config value screen, check config file.\n");

Detectando dead links

Estuve investigando un poco y el sistema que me había inventado para detectar cuando un cliente o el servidor se quedan sin conexión es más o menos acertado. Es bastante sencillo, solamente se mantiene un registro por cada conexión activa del tiempo del último paquete recibido. Se chequea periódicamente cuánto ha pasado dese que hubo actividad de red por última vez y si excede un valor establecido entonces el enlace está muerto. Esto implica además que hay que enviar unos pings que mantengan la conexión viva.
Ya estoy trabajando en implementarlo.

El misterioso asunto de los blits acelerados

Desde hace un buen tiempo vengo buscando alguna forma de acelerar los blits de las superficies de SDL mediante Open GL. Uno de los problemas en Linux es que nunca obtienes un blit acelerado, por limitaciones propias del X. En cambio sí puedes obtener mejor rendimiento usando Open GL.
La solución más cómoda es convertir la superfice a una textura invirtiendo el orden de las filas o algo así (hay una función auxiliar para hacerlo en uno de los ejemplos que liberé y en casi cualquier demo que use SDL para cargar las imágenes) y luego aplicando esa textura sobre un rectángulo.
Luego de mucha insistencia, al fin me aclararon que este método, además del más sencillo es más eficiente que intentar usar glDrawPixels. Por tanto, es el utilizado en glSDL, la versión de SDL que utiliza funciones Open GL para acelerar estas operaciones y que con el tiempo reemplazará a la SDL actual. Este método es un poco más lento en las tarjetas Nvidia que en las ATI.

Feedburner, cambio en mis feeds

Dándome una vuelta por Mundogeek (soy punto fijo allí), descubrí Feed Burner. Aunque este blog no es muy popular ni nada de eso, por suerte cuento, que yo sepa, con al menos una suscripción en bloglines. Por favor, si usas algún agregador de feeds para leer esto, cambia la dirección a http://feeds.feedburner.com/dsgp, así podré llevar las estadísticas de acceso via feeds.

Otra actualización másActualización:

Hay disponible otra actualziación de planeshift. Es pequeña, pero incluye cambios al cliente y al Reino de los Muertos (donde tengo un personaje atascado porque no se ve absolutamente nada). Aunque solo son 8 megas se ha tomado mas de una hora en llegar al 50%.

Actualización: Lalentitud era culpa mía. Pero parecen haber archivos corruptos en el primer mirror, así que cambié al segundo y me reporta que son 22 megas, no 8 (puedes cambiar el mirror en la configuración del update, busca mirrors y pon en active cualquiera que no sea el 1).

Trabajo de diseño

En estos días he decidido hacer un poco del papeleo atrasado. Cuando pido ayuda lo primero que preguntan es si hay algún diseño hecho. Este asunto dle diseño tiene muchas variantes. A mí me ha sucedido que me he quedado con montones de ideas a medias porque simplemente no hay un buen motor y equipo de trabajo que las soporte. Otros prefieren tenerlo todo bien detallado en el papel antes de poner una sola línea de código.
De todas formas estaba trabado en algunas cosas y dediqué algo de tiempo a definir qué quiero y cómo lo quiero.
Por el momento he desechado la idea de un juego con ambientación ci-fi. El diseño es un poco más complicado (y si crees lo contrario pues dame una idea de cómo lo harías). Es mucho más fácil decir que tendrás orcos, si hay orcos tendrán que haber elfos y seguramente los enanos no querrán quedarse fuera. Habrá magia, obviamente. La magia se explica por sí sola, no tienes que exprimirte el cerebro para explicar científicamente por qué ciertas clases de jugadores…

Gripe aviar

La gripe aviar se extiende por el mundo. Ya se reporta la primera víctima en Francia.

Nueva tarjeta

Ayer traje a la oficina mi Radeon 9800 pro. Me costó algo de trabajo montarla, porque es bastante grande y además el sistema de enfriamiento ocupa bastante espacio. Resulta que la fuente no tiene cables suficientes para alimentar el fan porque ya hay montados dos discos duros, quemador y lector de DVD. Así que estoy tirando con los disipadores. No se calientan mucho, pero alcanzan cierta temperatura.
He intentado probarla con Half Life 2 y Vampires Bloodline. Ninguno de ellos ha funcionado y sospechosamente el error es el mismo, algo referente a vertex buffers. También Morrowind falló. Sin embargo, el Delta Force 5, Planeshift y Scourge corren bien.
Tendré que probar Anarchy Online y WoW, a ver, aunque estos últimos usan motores más ligeros.
En otro orden de cosas, ya Planeshift funciona. Lo probaré más a fondo hoy o mañana.

Planeshift y la última actualización

Me costó un poco de trabajo obtenerla y al fin pude probarla brevemente ahora. Al parecer siguen los problemas, no puedo atacar nada. En el forum se han reportado problemas similares, todos relacionados con los NPCs. A veces no pueden ser atacados, no responden a las agresiones o si lo hacen, es una respuesta mínima.
Habrá que seguir esperando.

Bump Mapping

¿Qué es bump mapping? Básicamente es una técnica que permite simular profundidad en una superficie plana alterando la iluminación que recibe dicha superficie. Esto permite lograr más nivel de detalle con menos polígonos. El bump mapping utiliza una imagen en escala de grises que representa la elevación.
En ciertos casos esto no logra los resultados adecuados, y en su lugar se utiliza normal mapping. El mismo emplea mapas de normales en vez de mapas de elevación. Al igual que en el bump mapping estos mapas normales se generan a partir de una versión con mayor número de polígonos. Al aplicar la textura sobre una variante del modelo con menos polígonos utilizando ya sea normal o bump mapping, obtenemos una representación mejor del modelo (si es que todo sale bien).

Tags: ,

La Guerra de los Buscadores

¿Cuál será el próximo paso de la competencia para desbancar al líder Google? Hasta el momento, la calidad de los resultados es el factor primordial para atraer usuarios. Sin embargo, según Gates esto podría cambiar. Entrevistado por Computing, Billy se fue de lengua acerca de Google, a quien calificó de competidor serio , pero no de amenaza. Tal como Microsoft viene anunciando desde hace un tiempo, se está trabajando en una tecnología de búsqeuda que ahrá a MSN Serach comparable a Google. Insinuó además que Google no había sacado nada original, refiriéndose a Gmail y Google Talk.
El boletín de Entireweb da además algunos detalles adicionales acerca de cuál podría ser el arma del futuro en esta guerra. Gates afirma que Google gana unos $50 anuales por cada usuario. Una vez que MSN logre superar a Google, podríamos ver algún tipo de incentivo por parte de los buscadores, ya sea contenido gratis o incluso un cheque. "La competencia por los usuarios ni siquiera ha empezado" dice…

Otro día de trabajo

Ya se me acabaron los Mundodisco. Eso me ha dolido. Así que para variar voy a entrarle a los Net Force de Tom Clancy.
Por otra parte, a pesar de las interrupciones hoy he avanzado un poco en eso del log in y log out. El problema del movimiento aún no se ha solucionado del todo. En general, el proyecto camina, aunque por supuesto que está muy lejos de ser algo. Espero mañana implementar algunas cosas como sincronizar los datos del jugador entre el cliente y el servidor. Y también agregar algunos parámetros más de configuración. Ya casi me he decidido por TinyXML como parser xml.
Si las cosas siguen a este ritmo, posiblemente a final de mes el servidor ya sea muy diferente. El cuello de botella sigue siendo el cliente.

Proyecto de Troika Games

El mundo no es justo, eso es una teoría comprobada. Si alguien que lea estas líneas ha jugado Fallout 1 o 2 sabe que este juego tiene dos efectos: a) es insoportable, largo y aburrido b) cambia tu vida completamente. En el caso b te quedas esperando que detrás venga una secuela. Un Fallout 3, no esa decepción que fue Fallout Tactics. Es lógico, además, desde el punto de vista del productor. Si tienes una franquicia así lo menos que puedes hacer es explotarla adecuadamente. Y si no estás en condiciones de hacerlo, pues debieras vendérsela a quien pueda lograrlo de la mejor manera posible.
De los equipos de trabajo que produjeron los primeros Fallouts (los que de verdad importan), nacieron dos compañías, si no me equivoco, Troika Games y Obsidian Studios. De Troika he probado Arcanum (mediocre) y algo más que no recuerdo ahora. De Obsidian no recuerdo tampoco si he jugado algo, aunque tienen buenos títulos.
En un principio iba a haber Fo 3, llamado proyecto Van Buren. Pero Van Buren fue c…

Ultimos avances

Después de luchar un poco con DevCpp, tuve que crear el proyecto nuevamente en Visual C .net por causa de una violación de segmento que no logro encontrar. El cliente ya funciona. Luego de un pequeño cambio, la cámara ya no se comporta igual. Aún la vista es isométrica, pero ahora sigue al personaje, aunque no es exactamente el efecto de tercera persona que quiero lograr.
He posteado algunas solicitudes de ayuda a ver si encuentro a alguien que se haga cargo de este asunto del cliente. Por el momento no hay respuesta.

Expansión para WoW

World of Warcraft ya tiene una expansión: The burning crusade. Varios sitios que cubrían la Blizzcon publicaron la noticia el pasado día 28 (Gamespot tiene una galería de imágenes). Las mejoras más significativas son el aumento del nivel máximo a 70, dos nuevas razas (incluyendo los blood elves) y un nuevo continente, Outlands.
Otro hecho interesante, se esperaba que durante la feria Blizzard anunciara el Diablo 3. Sin embargo no fue así. Obviamente, se están tomando las cosas con calma. Especialmente ahora que WoW es una fuente de ingresos estable (por el momento). Y es que la Blizzard tiene bastante tela por donde cortar. Pocas compañías pueden vanagloriarse de tener tres franquicias capaces de vender millones de copias en una semana. Lo que que venga, ya sea Starcraft 2 o Diablo 3, no durará mucho en los estantes.

Tags: ,

Sony Online anuncia que lanzará un MMORPG gratis

Al parecer se está haciendo muy difícil convencer a los jugadores de pagar las suscripciones, a pesar de que están bastante bajas, en mi opinión. Si exceptuamos, claro, a WoW.
Así que Sony Online planea lanzar un título gratis, basado en el modelo de negocios de la mayoría de los MMORPG asiáticos (como Mu Online). Los ingresos provendrán del acceso a nuevos contenidos o la venta de ítems especiales. Interesante.
Evidentemente el modelo basado en suscripciones ya no es tan sostenible.

Tags: ,

Cambios en el proyecto

No sé si realmente esto pudiera llamarse proyecto. Pero había que poner algo explícito en el título.
Hoy me di a la tarea de cambiar la estructura de archivos. Ya se hacía muy molesto borrar los ejecutables para poder generar ambos programas otra vez, incluso cuando sólo había que recompilar uno de ellos. Separé el cliente del servidor, cada uno con su makefile independiente. Ambos tienen en común el directorio de cabeceras. Mi primera idea fue usar las autotools y generar un configure. Definitivamente una pérdida de tiempo. Así que me quedé con mis viejos makefiles hechos a mano.
En Windows, usé el DevCpp para crear el proyecto del cliente. Compila, pero por alguna razón da un fallo de segmentación, algo que no puedo explicarme porque el cliente funciona perfecto en Linux. No acabo de entenderme con el debugger de DevCpp para encontrar el punto exacto de la explosión. Tal vez tenga que volver a Visual C.
Estoy trabajando en el movimiento del jugador por el mapa. Aún no implemento la ver…

Impresiones acerca de la última actualización de Planeshift

Sith happens, como decía alguien por ahí. Las cosas no han salido muy bien luego de esta actualización que incluía arreglos al cliente y al servidor de Planeshift. No me detendré a detallar los problemas, porque los míos son sólo una fracción de los que parece haber. Nada más ver el forum se le caen las alas del corazón a cualquiera. penoso, porque el juego va muy bien. Y digo va porque doy por descontado que estos problemillas se resolverán.
Así que a esperar. Y venga, a ver si alguien se anima a echarme una mano con mi proyecto.

Más sobre EBMAS

Hace un tiempo les mencioné mi primera sesión de entrenamiento de EBMAS. Me habían quedado algunas dudas que ya aclaré un poco. En primer lugar, el maestro Boztepe ha diseñado un sistema más agresivo que el Win Tsung tradicional, esa es la diferencia más importante.
En cuanto a la verticalidad de los puños, pues según ciertas cuentas chinas, el brazo recorre menos espacio (cosas de las artes marciales asiáticas). lo queno quiere decir que no haya golpes como el swing lateral o gancho desde abajo. Pero todo sale desde el frente, nunca se coge impulso desde atrás. Ya he mejorado un poco el golpeo y la posición de los codos aunque me queda mucho aún por avanzar, pues todavía me quedan huecos desprotegidos en la línea central.

Creando el cliente

El proyecto avanza y se está haciendo más confuso que un plato de spaghetti sin señalizaciones. Empiezan a hacerse necesarias algunas cosillas como una caché de objetos para centralizar el almacenamiento de las texturas y modelos y permitir que estén accesibles desde diversos componentes. Por el momento una clase sencilla se encarga de mostrar el mapa, más o menos así:

Estoy valorando la opción de pasar el servidor a C++. Hay mucho código compartido con el programa cliente.

Tags: ,

HVC de 3.9 terabytes

En estos días se ha estado comentando acerca de un posible competidor ante el cual los HD-DVD y Blue Ray serían simples monederos de los chiquitos, donde apenas cabe el menudo para coger la guagua. Y es que el disco holográfico apunta a guardar como mínimo 3.9 terabytes, o 200 gigabytes en una tarjeta. La velocidad de transferencia podría alcanzar hasta 1 Gb.
Esta es una foto del disco:


Impresionante ¿no? Si alguien no sabe qué hacer con 3 terabytes, pues a mí se me ocurren algunas cosillas que guardar ahí como:
Las dos trilogías en calidad dvd (ya saben de cuál estoy hablando ¿o no? Sólo hay una "dos trilogías")La trilogía de Matrix (aunque la última no vale los megas que ocupa)
El señor de ya ustedes saben quéTodas las temporadas de 24 horas

Tags:

Informe demográfico sobre desarrolladores

La IGDA ha realizado un análisis sobre la demografía y diversidad de los desarrolladores de juegos. Los pdfs con el resultado completo pueden descargarse ahí, pero en resumen, las encuestas arrojan los siguiente: un 88.5% de los desarrolladores son hombres, la mayoría blancos, 83.3%, seguidos por los asiáticos, 7.5%. De ellos el 80% tiene título universitario. La edad promedio es 31 años y el 13% tiene alguna discapacidad

Microsoft reinventa la rueda: licencias "casi" GPL

Microsoft ha publicado varias licencias, dos de ellas, La Microsoft Permisive License y la Microsoft Community License, cumplen los requisitos de la Definición de Software Libre. Tal como destaca el artículo, no es nada adecuado que cada compañía empiece a lanzar sus propias versiones de la GPL, pero luego de criticarla con más saña que la Caperucita Roja al Lobo, no iban a darle su apoyo liberando código bajo tal denominación.
Y para dejar bien claro que no tiene nada que ver unas cosas con las otras, dicen que por el momento no solicitarán la aprobación de la OSI.
Leo en lso comentarios de este post de Ricardo Galli, que tal vez lo que se porponen los de Redmond es liberar porciones de .net bajo alguna licencia de este tipo para desbancar a Java, y por tanto, a Sun Microsystems.
Timeo Danaos et dona ferentes...

DevCpp

Tenía instalado DevCpp desde hace un buen tiempo, pero lo había usado poco. Generalmente era un poco molesto obtener paquetes de desarrollo para poder utilizarlo en un proyecto medianamete decente. Sin embargo, hoy decidí echarle un vistazo porque Scourge no trae un proyecto para Visual C, pero sí para DevCpp. Me di una vuelta por su herramienta de actualización y resulta que sí hay un repositorio de paquetes muy bien provisto, incluyendo Irrlicht 0.11 y Ogre, por hablar solamente de motores 3d. El actualizador no solamente incluye paquetes, sino también las herramientas del entorno como gcc, binutils, etc.
Así que instalé la última versión: 4.9.9.2 y pienso probarla más a fondo y familiarizarme con ella. Si voy a utilizar software libre, pues voy a hacerlo en grande, que no es esencial tener Linux para usarlo.

Tags:

Soporte para Lua en SWIG

Desde hace unos días se venía mencionando esto en la lista de discusión de Lua y hoy circuló el anuncio oficial, aunque algo atrasado porque es del día 15. La versión 1.3.27 de SWIG incluye soporte para Lua. SWIG es una herramienta que parsea cabeceras de C/C++ y genera el código necesario exportar funciones y variables a unos 10 lenguajes como Python, Ruby, etc. ¿Ventajas? un producto bastante maduro, que incluye un parser de C más completo que las opciones disponibles hasta el momento (tolua, luabind y otros), lo que ahorra generar versiones trasquiladas o ficheros específicos.
Y de paso, si aún no te decides a probar SWIG, tolua++ 1.0.7 está disponible.

Tags: ,

No he estado holgazaneando

Aunque el resultado deja mucho que desear. En estos dos días he dedicado un tiempo al asunto de la cámara en tercera persona. Sin embargo aún no me he estudiado a fondo los artículos que sugerí en la anotación anterior. En esencia esto que ven aqui:

es más o menos inútil por el momento. Ni siquiera el ángulo es el adecuado. Por otra parte, he probado ser un desastre también como diseñador web, pueden comprobarlo aquí, es una página que estoy haciendo para una amiga.

ATI sobrepasa a Nvidia en rendimiento Open GL

Un milagroso hack al driver de ATI ha logrado un aumento de rendimiento del 30% y mejor manejo de memoria, según dicen los ingenieros de esta compañia. Ahora una tarjeta de 16 pipelines sobrepasa a su competidora de 24. Tendremos esta nueva característica disponible en la versión 5.11 de Catalyst. Espero que haga algún efecto en mi Radeon 9800 pro.
A ver si esto le da un respiro a ATI, que siempre va por detrás de Nvidia.

Tags: , , ,

Weasel Reader

Hace algún tiempo probé un lector de documentos para Palm llamado Plucker. Sin embargo, crearse documentos era bastante molesto. Con motivo de un mensaje en una lista y considerando que diariamente pierdo un par de horas en las paradas de autobuses, de mi casa a la oficina y de la oficina a la casa, me di a la tarea de encontrar una solución para aprovechar este tiempo leyendo algo de mi copiosa (o debiera decir copiada) biblioteca digital. Luego de un poco de búsqueda encontré el Weasel Reader. Weasel Reader incluye una simple herramienta para convertir a ztxt y tal vez su desventaja mayor sea que solo opera sobre archivos texto.
Su formato ztxt es comprimido, algo importantísimo ya que solo cuento con dos miserables megas. Muy buen programa, y es software libre por supuesto.

Gaim 2.0

En estos días el Gaim ha recibido bastante publicidad, al ser contratado Sean Egan por Google. No entraré en detalles acerca de la importancia de que Sean esté trabajando en llevar el soporte de voz a otros clientes. Sin embargo, en el sitio web de Gaim se habla un poco acerca de la versión 2.0.0 y lo que no se ha comentado es que ya se ha iniciado el proceso de mezclar el cliente oficial con gaim-vv. El esperado soporte para video y voz (para Yahoo y MSN si no me equivoco) ya está en camino, aunque no esperen maravillas.

Tags:

Dependencias

Las dependencias son como un saco en el que cabe cualquier cosa. Lo molesto es que por ciertas razones a veces no puedes compartir el saco ya lleno con tus futuros usuarios. Digamos que te encuentras una excelente biblioteca que maneja ciertas operaciones X que debes hacer en tu juego y la utilizas para ahorrarte un montón de trabajo. Genial. Pero sucede que quien descargue tu juego para usarlo en Linux también tendrá que conseguirse esa biblioteca.
Esto puede parecer fácil, pero en ocasiones es todo un problema. Puede ser que no haya un paquete para la distribución del usuario. Puede ser que por alguna razón no compile correctamente. Puede ser que a su vez esa biblioteca tenga otras dependencias y eso nos lleva de vuelta al puede ser inicial. O aún peor, el usuario puede no ser root.
Ten en mente que estás programando un juego. El proceso de obtenerlo y echarlo a andar no debe ser tan complicado, o muchos usuarios terminarán por descartarlo antes de haberlo probado. Trata de conocer la…

Cámara en tercera persona

Ayer inicié el trabajo para implementar una cámara en tercera persona (siguiendo al personaje desde atrás), que parece ser la más popular en los juegos de rol online. De inmediato me percaté que no tenía el suficiente bagaje matemático para deducir cómo desplazar y rotar la cámara. Lo primero que hice fue preguntar y he aquí el resultado, que aún no acabo de entender del todo. Además encontré el artículo en NeHe que menciona Scott. Desgraciadamente no sé cuánto tiempo me tomará implementar algo que funcione.

Tags: ,

Primer tutorial simple de SDL

Esto es un ejemplo muy básico del trabajo con SDL en C. Cubre las operaciones mínimas que deberás hacer en todo juego: inicializar un modo de video, cargar un par de imágenes, usar una de ellas como fondo y mover la otra usando las teclas del cursor. Igualmente el ejemplo implementa un sencillo contador de cuadros que se muestran por cada segundo. Está bastante comentado y en español, así que creo que no hace falta que me extienda mucho más en esta anotación. Les debo el proyecto de Visual C.
Sólo un comentario adicional acerca del uso de while y no if al procesar eventos. Si se fijan, aclaro bien que es un grave error utilizar if. ¿Por qué? pues porque en ese caso por cada cuadro estaríamos procesando un solo evento. Créeme que no querrás que eso pase, ya cometí esa estupidez una vez. Usando while procesarás todos los eventos pendientes en cada vuelta del lazo principal, ese es el modo correcto de hacerlo.
Disponible para descarga aquí.

Tags: ,

Fotorealismo

En Joystick me encuentro una anotación que lleva a este artículo sobre el fotorrealismo en los juegos. El nivel de detalle gráfico se incrementa un poco con cada juego que sale, y por supuesto, también los requerimientos de hardware. ¿Hasta qué punto vamos a llegar? Sin embargo, no encontramos la misma creatividad e innovación en los modos de juego.
Todo el mundo parece quejarse de esto. Pero si vamos un poco más profundo, solo podríamos culpar de esta tendencia a nosotros mismos, tal y como plantea el artículo. Cuando alguien nos habla de un nuevo juego, lo primero que preguntamos es ¿cómo se ve? Hace unos 12 años lo primero que preguntábamos era ¿cómo se juega? porque básicamente todo se veía igual: algunos montoncitos de píxeles moviéndose en dos dimensiones. Todos queríamos ver el Doom 3, aunque las adiciones al modo de jugarlo eran mínimas. En cambio se esperaba que la tecnología gráfica fuera impresionante (en mi opinión, muy mal aprovechada y demasiado exagerada, pero eso es otr…

Enrique Núñez

He podido adquirir gracias a mi mamá, que lo obtuvo de mi hermana, las memorias del Maestro Enrique Núñez Rodríguez. Maestro con mayúsculas, del humorismo cubano, fallecido hace unos meses. No tengo palabras para expresar el gozo que produce leer esta autobiografía. Baste decir que es como tenerlo aún vivo entre nosotros revelándonos las anécdotas que no podía regalarnos desde la TV en aquellos breves minutos con Héctor Rodríguez.
Conocí la obra de Núñez Rodríguez hace muchísimo tiempo, cuando compartía una página del Juventud Rebelde dominical con nada más y nada menos que el Premio Nobel Gabriel García Márquez. Si algo lamento es lo poco que lo disfrutamos los de mi generación, pues no era un humorista de espectáculos teatrales, tuvo muy poco espacio en la prensa escrita y recién hace unos años tuvo algunas apariciones en la televisión, que mi padre y yo seguíamos con fidelidad propia de las fanáticas de Backstreet Boys. Su época dorada fue en la radio de antes del 59 y en los primer…

Al fin tengo

Ayer al llegar a casa y realizar las operaciones rutinarias de dejar las llaves y el dinero sobre mi armario me encontré con un telegrama de notificación de que debía presentarme en el correo a recoger un bulto. Nadie me había avisado del telegrama y usualmente tardo en percatarme de los cambios en mi cuarto, o mejor dicho, la mitad de la sala que uso para dormir.
No tenía idea de quién podía haberme mandado un paquete porque es una alegría que no recibo desde hace años. Al fin recordé que podía ser la camiseta de los Lores del Sith, que amablemente Erein se ofreció a comprarme y enviarme desde España. Los colegas de la lista pudieron lucirla el día del estreno en Madrid, pero yo llegué un poco tarde al baile.

Ya me alisté ¿y ahora qué?

Pues ya aprendí C, ¿qué hago ahora? Pues bien, programar juegos no es exactamente como tus clases de Análisis y Diseño de Algoritmos. En primer lugar sería bueno que hubieses aprobado esas clases y cuando te mencionen un árbol o algo de eso, tengas una idea mínima y no lo confundas con ese objeto vegetal blanco de las meadas de los caninos.
Hay muy buenos lugares donde encontrar información relativa a la creación de juegos y el primero de ellos es indudablemente Gamedev. No tanto por su colección de artículos, como por sus foros. Hay un montón de buenos programadores que pueden echarte una mano con consejos útiles de casi cualquier tema, sin contar un inmenso caudal de información que ya está ahí disponible. Imitado por muchos, pero aún insuperable.
Suponiendo que quieras algo más tangible, como tutoriales, el sitio a visitar es Game Tutorials. Excelentes y portables, lo mismo puedes probarlos en Windows que en Linux. La única desventaja es que algunos temas muy difíciles de encontrar (…

Escoger un lenguaje de programación

Una de las primeras preguntas que se hacen los que quieren iniciarse en la programación de juegos es qué lenguaje es el más adecuado. Un consejo, si aún no has aprendido un lenguaje, para empezer no deberías estar pensando en programar juegos. Pero como sé que van a ignorar esta advertencia pues seguimos adelante. En realidad puedes hacer un juego en casi cualquier lenguaje, hasta en ensamblador. Pero hay varias opciones que son más adecuadas que las demás.
La elección de las mayorías es C/C++. C genera un código bien optimizado, lo que se traduce en ejecutables muy rápidos. Es portable, hay compiladores de C para cualquier plataforma que te puedas imaginar. La mayoría de las bibliotecas están hechas en C, aunque los proyectos más importantes siempre cuentan con enlaces a otros lenguajes. Su mayor desventaja es que es más molesto de aprender que los demás lenguajes, pero hay un detalle y es que no necesitas conocer a fondo todos los puntos oscuros de C para poder desarrollar con cierta…

Hay que aprovechar al máximo las situaciones

Bush de visita en New Orleans. Hay que ver que este tío no pierde tiempo para vacacionar hasta en las peores crisis.

EBMAS

Ayer fue mi primer entrenamiento de EBMAS. EBMAS es un sistema desarrollado por el maestro turco Emin Boztepe basado en el Wing Tsung. Lleveba ya unos meses sin entrenar y más de un año sin tener un entrenamiento fuerte de verdad con bastante contacto personal, nada de formas por el momento. Al parecer todo conspiraba para que no se diera, la primera vez que fui no entrenamos por lluvia y ayer también me mojé porque el aguacero era torrencial. Pero por suerte el viaje (que es bastante largo porque el entrenador vive 10 kilómetros fuera de la ciudad, cerca del Santuario del Cobre) no fue en vano y hoy me duelen los hombros y tengo los antebrazos hinchados. Dicen que caí con suerte, porque a los recién llegados siempre se les recibe con algunos golpes para que vayan probando en carne propia la efectividad del sistema.
EBMAS, como el Wing Tsung, es muy práctico. Este primer día me resultó muy difícil ya que los conceptos resultan chocantes al inicio, como eso de mantener la línea central…

Ya estoy de vuelta

Pues si no lo habían notado ya estoy de regreso. He pasado unos días por la región de origen de mi padre, visitando a la rama familiar más interesante (por parte de madre son todas mujeres y siempre están enredadas en bretes) que cuenta con especímenes como mi primo Ernesto El Pinto, que cayó preso por robar algunos miles de libras y para que los policías no lo molestaran más preguntando dónde había escondido el dinero se cosió la boca, o su hermano Aníbal El Nene, que hace unos meses tuvo un accidente en su moto, se salió de la carretera a toda velocidad y golpeó un poste de cerca con la cabeza. Del pobre, no quedó nada. Me refiero al poste claro, El Nene sigue ahí con solo una abolladura de 20 puntos a lo Frankenstein en la cabeza.
Lo más importante es que mi tío me trajo desde el reino junto una tarjeta ATI Radeon 9800 Pro que pienso poner en funcionamiento muy pronto, si es que sobrevivió los viajes y el posterior proceso de ensamblado del sistema de enfriamiento Zalman adicional.

Falleció John Hall

El pasado 17 de septiembre falleció debido a un melanoma John Reeves "Overcode" Hall, empleado de la desaparecida Loki Games, hacker, geek y piloto , autor del libro Programming Linux Games. Tenía 19 años cuando lo escribió y 24 cuando el cáncer logró vencerlo.
Si piensas iniciarte en la programación de juegos multiplataforma, su libro es material de consulta excelente.

Vacaciones

Luego de una semana pésima, que culminó hoy al perder un post que me tomó mas de media hora escribir y que al final se perdió por algún error de Blogger, he decidido hacer como Bush y tomarme unas vacaciones cuando las cosas estánmás calientes. Bueno, realmente estaba decidido desde hace algunos días. Así que no me verán por aquí en unos 10 días.

Nuevo virus

Hoy, luego de regresar de la universidad con la mala noticia de que efectivamente, había sido desaprobado en Prolog tres años atrás, que además debo el compilador y el segundo semestre de Modelos de Optimización, me encuentro que en mi ausencia, con premeditación y alevosía, se me ha colado un virus. Desgraciadamente por un descuido no tenía incluido vbe en la lista de extensiones bloqueadas. Y resulta que tenemos un virus aparentemente cubano, que se ha colado y unos cuantos incautos en mi red han picado. Se me ha roto el récord de varios años consecutivos sin incidentes virales.
Al parecer tendré que hacer una operación de limpieza manual mañana. El virus crea varios ejecutables con nombres similares a procesos del sistema (LSASS.exe, SVCHOSTS.exe, Winword.exe) ubicados en Documents and settings/user/Configuracion local/Temp, crea unas llaves en el registro que hay que eliminar y crea ficheros ejecutables con nombres aleatorios en la raíz de C.

La paciencia rinde frutos

Luego de un par de días ocupado, al fin pude retomar Planeshift para evaluar los cambios en la última actualización. Lo que he podido notar no me ha gustado nada. Hay algún cambio en el manejo de las distancias, ahora es más molesto atacar porque a menudo me da que estoy muy lejos. Han afinado más el sistema de drops, las ratas dan menos y es muy común que no den nada. También me suele suceder que no estén muertas del todo y ataquen, o que luego de muertas se alejen caminando y desaparezcan.
Lamentablemente no poseo una lista exacta de todo lo que cambió, así que las cosas buenas que mencionaré a continuación no sé si son de esta actualización o de las anteriores. Al parecer el juego se anima. Hay items nuevos y más poderosos, y hasta pujas en el canal de subastas. Ayer mismo me hice con una espada de daño slash 20 a muy buen precio y oí mencionar otras que pintan estar muy bien (hacen 40 de daños slash y las pujas alcanzan las 5000 o 5500 trias). He descubierto que los fanáticos son u…

SDL ¿avanza o no?

Con motivo de la liberación de SDL 1.2.9 se ha despertado la curiosidad de algunos desarrolladores. ¿Cuándo tendremos la 1.3? ¿El soporte multiventanas? Un error muy extendido es pensar que porque las versiones de SDL salen casi una por año, el desarrollo de la misma está estancado. Si bien Sam ha estado ocupado últimamente (con su trabajo en Blizzard y un hijo), la librería aún evoluciona. Sin mencionar que su estado actual es extremadamente estable.
Hace unos días Sam respondió algunas preguntas sobre las futuras versiones de SDL. La mayor parte del desarrollo se centra en las ramas 1.2 y 1.3. La 1.2, ya la conocemos y no va a cambiar mucho. Sin embargo, la 1.3 traerá un cambio esperado por los linuxeros: la integración del backend Open GL, que actualmente David Olofson mantiene separadamente en la librería glSDL (que también podía ser integrado a la 1.2.8 mediante un parche). El mismo permitirá blits acelerados por hardware en Linux (por limitaciones del X no se pueden lograr). Tamb…

BSD no es dificil...

Aunque aun no puedo poner las tildes. Ha sido un dia bastante malo, sin embargo entre algunas cosas buenas, he podido cambiar el ip de la tarjeta de red en FreeBSD (no es igual que en Linux, aqui se modifica /etc/rc.conf y los nombres del dispositivo dependen del nombre del driver). Les debo como hacerlo sin reiniciar, si es que es posible, porque el manual dice que hay que reiniciar. Luego de eso, compile el proyecto en BSD. Hay un detalle que no funciona y es que en el Makefile de linux es valida la siguiente construccion:

CLIBS = $(sdl-config --libs)

Para empezar en BSD es sdl11-config, en la libreria que tengo instalada. Y como no soy un experto en shell script, no halle forma portable de hacerlo y termine metiendo la linea a mano. Compila identico que en Linux y por supuesto, funciona intachablemente.
Proxima parada: configurar la tarjeta de sonido.

Ya tengo Jabber 2

Luego de mucha espera, al fin logré actualizar a la versión 2.09 de Jabberd. No pude hacer una migración de los usuarios que tenía, pero me interesaba más limpiar todo y empezar de nuevo. Estoy utilizando como almacenamiento una base de datos de Postgresql. Lo cual es una desventaja. Al parecer todo mundo se ha olvidado de que Postgres existe y que era un gestor de bases de datos mucho antes que MySQL surgiera. De hecho, MySQL aún no es un gestor de bases de datos relacionales como Dios manda. El JUD, Bandersnatch y casi cualquier addon que puedas encontrarte está hecho para MySQL.
En cuanto tenga un tiempo pienso hacer una pequeña guía de su instalación, apoyándome en el tutorial que usé. Aunque es sencillo cuando alguien te lo explica paso a paso, a primera vista la caonfiguración parece un infierno porque ya no es un solo archivo, sino varios.

CEGUI 0.4

Ha sido liberada la versión 0.4.0 de Crazy Ed's GUI, una interfaz gráfica que puede usar múltiples backends para renderizar: Open GL, Direct X, Ogre o Irrlicht. La novedad es que ya se puede personalizar el look mediante XML, no es necesario una librería aparte para cada look que se quiera implementar. Voy apurado, así que les debo los enlaces, tags, etc. Vamos, usen un poco a Google que para eso está la cajita ahí mismo casi tapando esta anotación.

Spam

Como me apunta Mirabai en el comentario, ya me ha caído el spam por acá. He habilitado la verificación de posteo de comentarios. Como casi nadie comenta aquí pues no creo que moleste mucho.

OASIS y Firefox

Leyendo digg.com me encuentro estas dos noticias que no deben hacerle mucha gracia a Microsoft. En primer lugar, el estado de Massachusetts planea establecer OASIS como requisito para las suites ofimáticas a partir del 2007.
Por otra parte, si te parece que Firefox carga lento, debieras echarle un vistazo Firefox preloader, que hace una precarga del navegador para que se ejecute rápidamente cuando sea necesario.

Malos días

El viernes fue un día terrible. Sin mencionar que todo el trabajo que venía haciendo en estos días está detenido y no sé cuando vuelva a tener deseos de continuar, al parecer ese día se reunieron muchos factores para hacerlo candidato perfecto a Peor Día del Año. Malos comentarios, mal en el examen. En resumen, ira, sufrimiento. Vaya, que casi me paso al lado oscuro y tenía pensado golpear a alguien que no debería. Creo que ya entiendo por qué Darth Vader iba por ahí estrangulando gente (a propósito de ahorcados, Michael Sheard, el Almirante Ozzel, murió hace unos días).

Aún no he vuelto

Han sido un par de días muy atareados y no he tenido tiempo de pasar por aquí. Estoy tratando de sacar adelante los estudios, así que no esperen mucho por ahora. Tal vez la semana que viene.

Geek soluciona su ansiedad social convirtiendo su vida real en un RPG

Sí que hay soluciones originales por ahí, y este tío se lleva el premio de esta semana. Ross Davis ha resuelto su problema de ansiedad social convirtiendo su vida real en un RPG. Cada vez que Davis conversa con una chica, se asigna puntos de experiencia y así planea ir subiendo de nivel y adquiriendo nuevas habilidades sociales. Tendré que probar este método, pero me asalta la duda de qué hacer si el diálogo no funciona. ¿Saco mi espada larga +2 y resuelvo el problema cortándole la cabeza? Nah, eso dañaría mi alineación.

PD: Si quieres leer más noticias tontas y divertidas, revisa el resto de la página. Todavía me pregunto si esto será verdad.

Resolviendo el problema del orden de los paquetes

Hace un par de días tuve una charla con Sven y me señaló un detalle que no había tenido en cuenta: el orden de recepción de los paquetes. Luego de una búsqueda rápida en los foros de gamedev.net encontré una solución más óptima que usar algún timestamp, usar un valor incremental. Tendré que hacer algunas pruebas al respecto.
De momento ajusté el cliente para permitir una configuración básica. Ya el ip del server no es fijo, se lee desde un archivo.

Tags: ,

Google Talk y comunidad Jabber

Al parecer Google planea abrir su servidor de Google Talk al resto de la red Jabber/XMPP. Los requisitos para conectar un server al de Google pueden verse aquí. Registro abierto deshabilitado, protecciones que eviten registros automatizado y un certificado válido para las conexiones S2S son algunas de las exigencias. En esencia, la mayoría de los servidores públicos, si no todos, están excluidos.

Actualización: Como bien me apuntan en el comentario, hay un error. No leí adecuadamente y me salté la línea (también todas las líneas anteriores y siguientes) que explican que es una propuesta a Google.

Tags: ,

Los buenos viejos tiempos...

Este post de extra life me trae gratos recuerdos. Eso es lo que yo llamo montarse en la máquina del tiempo y darle para atrás sin escatimar. Qué época aquella, en que los juegos cabían en un diskette de 5 1/4 (de los que se doblaban y aguantaban de todo, no las porquerías de 3 1/2), hacían maravillas con 4 colores a resolución mínima y 640 kb de RAM era más que suficiente. La protección anticopia simplemente consistía en alguna pregunta cuya respuesta estaba en las páginas del manual oficial. Entonces no había scanners a patadas, así que andábamos con hojas impresas con las respuestas. Luego de cierto tiempo, como me pasaba con el LHX, ya te sabías las respuestas, desde la envergadura de un MiG 27 hasta el peso de la cabeza de combate de un SA-7. Ahora las protecciones son tremendamente complejas, con el resultado de que siempre hay alguien dispuesto a romperlas. Ya no hay diversión alguna en ello, simplemente corres un programita y ya estás jugando Half Life 2, si previamente has cum…

Irrlicht 0.12

Hoy ha sido liberada la versión 0.12 de Irrlicht, motor gráfico multiplataforma bajo una licencia libre muy flexible. Si te estás iniciando en esto de los juegos 3d, Irrlicht es una buena opción, muy sencillo de usar y con buenas funcionalidades. Incluye además un parser xml, aunque creo que ha sido separado a un proyecto aparte. Si buscas algo más profesional, te recomiendo que pruebes otras cosas como Ogre, y si buscas motores completos (soporte para red, sonido y física) Neoengine o Crystal Space (que es utilizado en Planeshift).

Tags: ,

Adonthell 0.3.4

Ha sido liberada la versión 0.3.4 de Adonthell. Mejor dicho, fue. El anuncio en el sitio web data de abril, pero recién hoy es que se publica en Linux Game Tome. Probé este juego hace unos tres años. Parecía un proyecto bien encaminado, incluso con una nominación a Proyecto OSS más prometedor de Linux Game Tome. Sin embargo, el avance en estos últimos tiempos (año y medio según Kai Sterker) no es notable. La versión 0.4, que traerá un motor gráfico mejorado y, combate y otras cosas no parece estar muy cerca. Necesitan más desarrolladores. Una pena, porque este juego pinta muy bien y ya hay mucho trabajo hecho. Visualmente impresiona y el sistema de diálogos y misiones estaba bastante completo. Veré si encuentro un tiempo para probarlo.

Tags: ,

Ping UDP

Ya está funcionando el ping udp entre el cliente y el servidor. Si todo avanza bien, pienso trabajar en una autentificación básica a partir de mañana. Hoy realmente no tengo idea de cómo empezar y ya me han salido bastantes cosas mal.
Buscaba una forma de no tener que hacer un bind a un canal UDP, pero no pude evitarlo. Pero sí encontré una forma de evitar que el servidor se coma el CPU. Simplemente en el lazo que chequea el socket constantemente introduje una breve demora de 25 milisegundos si no se ha recibido ningún paquete. Eso bastó para reducir el uso de procesador a niveles normales. De esa forma espero que el servidor utilice más racionalmente el tiempo de procesamiento, esperando si no viene nada y contestando inmediatamente si hay carga.
Repitan conmigo: los lazos son el enemigo del CPU, los lazos son el enemigo del CPU, los lazos son el enemigo del CPU...

Tags: ,

En desarrollo motor Unreal 4

Teamxbox informa que Epic Games ya está trabajando en el motor Unreal 4. Aunque no ha salido aún ningún juego basado en el motor Unreal 3, el mismo ha ganado popularidad entre los desarrolladores, varios de ellos han licenciado esta tecnología para futuros videojuegos. En el artículo puede verse un enlace a la galería de imágenes de Gears of War (para Xbox 360).

Tags: ,

Videojuegos y violencia

A través de barrapunto llego a un post de pjorge acerca de un artículo en The Economist sobre el tema del asunto. No voy a abundar acerca de los detalles que destaca pjorge. Hay algo en esta polémica que me recuerda las comparaciones de seguridad entre Linux y Windows basadas en el número de agujeros publicados. Siempre hay un número abrumadoramente mayor de vulnerabilidades en Linux, por la sencilla razón de que los "investigadores" "olvidan" mencionar que en la categoría Linux caen todas las vulnerabilidades de muchas aplicaciones (apache, sendmail, ftp, kernel, etc). En cambio, sólo se comparan contra las vulnerabilidades de unas pocas aplicaciones en Windows (el núcleo, outlook, IE que es casi parte del núcleo). Si hay un detalle que obvian muchos detractores es el porcentaje mínimo de casos que desarrollan conductas agresivas. Sin embargo esos casos reciben gran cobertura de prensa, porque evidentemente la historia de un jugador de toda la vida que jamás mató …

Prerelease de SDL disponible

Está disponible una versión pre de SDL 1.2.9. Algunos cambios significativos desde la 1.2.8 son:
Mejoras al port de AtariLos manipuladores de SIGTERM y SIGINT son reseteados al salirSoporte para Visual C++
Corregido un crash al intentar solicitar superficies en hardware en Mac OS XSDL.dll funciona en Win 95 nuevamenteBlitters Altive optimizados y un largo etcétera. Por su parte Sam ha estado haciendo algunas preguntas en la lista, al parecer el esperado soporte para múltiples ventanas viene en camino.

Autolevel vs distribución manual

Con vistas a decidir qué sistema utilizar para un posible juego de rol, hice esta encuesta en Happy Penguin. Ambos sistemas, distribuir los mpuntos manualmente o incrementar las habilidades según se usan, tienen sus inconvenientes, que no voy a detallar aquí porque la discusión del hilo en el forum las ilustran efectivamente. Supongo que en vistas de los resultados, solo me queda elaborar alguna solución mixta, como en World of Warcraft. El gran problema sería, qué se autoincrementa y qué distribuyes manualmente. Me desagrada enormemente el uso de entrenadores (NPCs a los que debes acudir para hacer efectivos tus puntos de nivel), sin embargo es una posibilidad que no puedo descartar sin valorarla.
En general quisiera un sistema donde puedas encontrar NPCs que te vendan niveles: por ejemplo, el dueño de un gimnasio que pueda entrenarte y elevar tu fuerza en un punto por un precio proporcional al valor de esa estadística.Tengo algunas ideas rondando, pero aún no he logrado concretar e…

Motor de SCOURGE

Gabor me ha respondido. Al parecer el trabajo en la división entre el código del juego y lo demás ya está en camino. Pero no se hará efectiva por ahora, sino hasta la versión 0.12. De todas formas no tengo apuro. Hay mucho que aprender aún en la parte de comunicaciones e inteligencia artificial.

Reporte de estado

Me encamino a implementar la comunicación bidireccional sobre UDP etre el cliente y el servidor. Básicamente estoy trabajando en un ping sencillo, que permita la cliente conocer la latencia, carga de usuarios y versión del servidor. Por el momento es muy ineficiente, pues bloquea el cliente mientras se envía el paquete. Tendré que trabajar en un diseño multihilos también para el lado del usuario y adoptar la filosofía de Net2.
Por otra parte, empiezan a salir los problemas clásicos de cuando inicias algún proyecto medianamente complejo. Necesitas una interfaz de usuario. Desempolvé mis viejas pruebas para crear mi propio GUI en C y me decidií a llevarlo a C++ y POO. Lo anterior era machacarse los testículos sin necesidad alguna. Realmente no tengo una idea precisa de cómo implementar una interfaz gráfica. Sólo sé que necesito una lista donde almacenar los widgets que se han creado e interceptar los eventos. Si el evento se produce sobre un widget visible, se genera el mensaje correspon…

Age of Empires 3

Gamespot presenta una interesante evaluación de este juego, aún por salir. Al parecer se introducen algunos conceptos nuevos como un héroe y una capital imperial. El tradicional trasiego de recursos entre los puntos de acopio y la correspondiente edificación donde se almacenan desaparece. El motor gráfico ha recibido un lavado de cara (no podía faltar).
Y revisando las noticias relacionadas, Ensemble Studios está a la caza de alguien experimentado en el desarrollo de servidores multijugador masivos, lo que da que pensar. Por el momento se niegan a hacer comentarios al respecto.

Tags: ,

Demo de cliente y servidor udp

Ya está terminado. Esto es un cliente y un servidor muy básicos, el cliente se limita a enviar las coordenadas de los clicks. La comunicación es vía UDP, está basado en SDL_net y la idea es que sea un mini tutorial muy sencillo. Pueden descargarlo aquí, incluye proyecto para Visual Studio .Net, solo tendrías que arreglar los caminos y para evitarte esa molestia también están los ejecutables y dlls.
Acá les muestro el cliente en acción:
Algo que me preocupa es que si se fijan en el applet de recursos, el servidor carga un poco el CPU. Sin embargo, introducir un delay me parece contraproducente en caso de que se tuviese que manejar una importante carga de usuarios.
Por supuesto, esto es solo una guía sencilla de cómo establecer la conexión. Ahora pienso trabajar en mejorar el cliente, incluyendo el cargador de archivos 3ds para mover un personaje en un mapa. Veamos cómo me va.

Tags: ,

Solucionado el problema de envío UDP con sdl_net

Al fin alguien me señaló el estúpido error que estaba cometiendo al enviar los paquetes UDP. Simplemente había olvidado establecer la longitud del mismo. El código debería quedar más o menos así:

SDLNet_ResolveHost(&serverIP,"192.168.1.1", 1515); //preparamos una conexión a una ip y puerto
servsocket = SDLNet_UDP_Open(0); //abrimos el socket
chan = SDLNet_UDP_Bind(servsocket, -1, &serverIP); //hacemos un bind del socket a la ip
packet=SDLNet_AllocPacket(128); //Creamos el pakete

packet->data[0]=1;
packet->len=1; //estamos enviando un solo byte
SDLNet_UDP_Send(servsocket,chan,packet); //y lo enviamos

Así que ya está funcionando, el server levanta un hilo que escucha y el cliente envía. Próximo paso, parsear lo que envía el cliente (en este caso, estoy enviando las coordenadas de los clicks). También está pendiente el proyecto de Visual Studio, pero es que soy un poco vago para desarrollar en Windows. Apenas lo pula un poco haré público el fuente, antes que s…

Consola de juegos

Admiro a la gente que se lanza a proyectos grandes, aunque la posibilidad de éxito no sea mucha. Pueden echarle un vistazo a este proyecto, una consola de juegos de bajo costo (unos 50 euros). El creador anda en busca de desarrolladores que quieran crear juegos para su plataforma. La misma estará basada en Linux (derivado de Gentoo) y lo que más disputas ha suscitado es que se niega a incluir hardware 3D porque dice que aumentaría mucho el costo.

Tags: , ,