Ir al contenido principal

Entradas

Mostrando entradas de agosto, 2005

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: , ,

M$ prueba dos tipos de servidores

Leyendo en Barrapunto me encuentro un blog dedicado a Windows Vista, donde leo que Microsoft está probando dos versiones de servidores. Una de ellas, llamada Core, no tiene la interfaz gráfica, sólo las funciones comunes. Esto reduciría el consumo de recursos. ¿Estarán aprendiendo algo los muchachos de Billy?

Tags: , ,

Dos pájaros de un tiro

Ayer tuve una fructífera sesión de trabajo. Luego de bucear a fondo en el fuente de net2 y los ejemplos de SDL, logré mi primer server UDP multihilo. Es bastante fácil y cualquiera podría hacerlo siguiendo el ejemplo testthread.c. El programa escucha en el puerto 1515 y devuelve (por ahora) la longitud de los paquetes recibidos, lo probé escaneando los puertos con nmap. Por supuesto que la programación multihilos no es coser y cantar, aunque se mencionen los hilos. Hay muchos detalles que tener en cuenta aún.
Si las cosas siguen avanzando, pienso implementar un cliente sencillo que envíe comandos y del lado del servidor, mover el manejo de IA a otro hilo.

Tags: ,

Rectificar es de sabios

Se le atribuye una anécdota curiosa a Ghandi. Una vez, al preguntarle alguien por qué se contradecía a sí mismo, afirmando lo que anteriormente había negado, respondió "Es que hoy soy más sabio que ayer". Y desgraciadamente no dispongo de un Ministerio como el de 1984 para rehacer y desaparecer las tonterías que dije ayer. Echándole un vistazo a Net2, resulta que a menos que dedique un tiempito a dominar mejor el Visual Studio .Net no podré usarla bajo Windows. El fuente incluye un makefile para GCC pero no un proyecto de VC++.
Así que tendré que seguir el consejo de Bob y revisar el fuente para ver cómo se manejan las conexiones UDP (recuerdan que les hablé de UDP vs TCP cuando este blog trataba sobre juegos y no sobre cualquier bobería).

Tags: ,

Mortal kombat III, en producción

Si mal no recuerdo, uno de los grandes exponentes de los juegos llevados al cine es la franquicia de Midway (el otro es Tomb Raider, pero mucho más tarde). Desde hace casi dos años vengo siguiendo Mortal Kombat: Devastation, pero las noticias son bastante escasas. Según IMDB, parece que tendremos de vuelta a Linden Ashby como Johny Cage, y por supuesto que no podía faltar Robin Shou. Pero yo no me confiaría de lo que dice ahí, porque poco se sabe aún de la trama y casting. Aunque algunos consideran la segunda parte una basura, a mí me gustó mucho. No puedo decir lo mismo de la adaptación de la serie televisiva.

GPUs para móviles con capacidad Shader Model 3

No faltaba mucho para que el 3D llegara a los dispositivos móviles inalámbricos. A través de Tom's Hardware Guide me entero de que Imagination ha revelado tecnología para núcleos gráficos que llevará la aceleración 2D y 3D a estos aparatos. Según la compañía, las especificaciones exceden los requerimientos de Open GL Shader y Microsoft Vertex and Pixel Shader Model 3.

Tags: ,

Bully, de Rockstar, recibe publicidad negativa

Indudablemente el parche Hot Coffee para GTA San Andreas ha tenido una popularidad asombrosa entre los jugadores y también entre los que hacen carrera a costa de criticar. La mala influencia se extiende a Bully, el próximo título de Rockstar para Xbox y PS2, que está recibiendo publicidad negativa, incluso se ha solicitado que sea prohibido. Bully nos pone en el lugar de un chico problemático que tiene que sortear escollos en un reformatorio, como enfrentarse a los abusadores (bullies), hacer trastadas y ganar o perder la chica. Peaceholics ha organizado una manifestación afirmando que juegos de este tipo podrían causar más sucesos como los de Columbine.

Tags: ,

Actualización de Planeshift

La vorágine de trabajo y Anarchy Online no me habían permitido atender mis obligaciones con el open source. Gracias al colega Alí, eché un vistazo al sitio de Planeshift, y me entero que el esperado borrado de caracteres ya se ha realizado, debido a importantes cambios. El sistema de looting ha cambiado, aunque aún está afinándose. Al parecer tendremos mejores y más variados items en los cuerpos, algo que se echaba de menos y desbalanceaba el juego. Las reglas de progresión d eniveles también han recibido cierto trabajo, junto con un nuevo sistema de misiones que facilitará la tarea de los creadores. Una mejor interfaz para interactuar con los NPC vendría muy bien, y así evitarnos las sesiones de adivinación para encontrar la frase correcta.
Ahora estoy en proceso de actualizar, más adelante les daré mis impresiones sobre el juego.


Tags: ,

Primeros virus para Windows Vista

Pues ya tenemos los primeros conceptos de virus, que apuntan a la nueva interfaz de comandos Monad de Windows Vista, que trata de parecerse al bash de Unix. Sí que será popular es SO, si antes de salir ya sabemos que se pueden hacer virus en shell script (eso quiere decir que también se podrán hacer otras cosas útiles).

SDL_net vs Net2

Ya he terminado a Harry Porrito. Tenía en planes dedicarme a un poco de programación en serio en estos días, pero todos se han ido de vacaciones dejándome su trabajo pendiente. Además, La conspiración de Dan Brown conspira en contra de mi creatividad.
Estoy tratando de encontrar algo de tiempo para echarle un vistazo a Net2, la biblioteca de funciones de red creada por Bob Pendleton, que viene siendo una versión multihilo de SDL_net. Siempre he sido renuente a incluir dependencias no oficiales en mis proyectos, pero la escasez de documentación hace bastante molesto desarrollar usando SDL_net. El API de Net2 es mucho más intuitivo y cómodo de utilizar, sin mencionar que su arquitectura multihilo ayuda mucho (hablaré un poco más acerca de por qué se hace más importante en estos días reorientarnos hacia el diseño multihilos). Pienso escribir un servidor de prueba desde cero, a ver cómo me resulta, pero primero debo arreglármelas para compilar la biblioteca en Visual C.

Tags: ,

Los juegos se mudan al cine

Publiqué esto ayer, pero al parecer un bug de blogger, que no me permitía editarlo, terminó por hacer desaparecer esta anotación.
Hollywood se está volviendo hacia nuevas fuentes de inspiración (y de ingresos). Hace un tiempo les comentaba que algunas grandes productoras estaban en negociaciones con Microsoft para llevar Halo al cine. Pues ahora le toca el turno a Doom, protagonizado nada más y nada menos que por La Roca. En preproducción están Silent Hill, Hitman con Vin Diesel y Dungeon Siege, que contará con Kristanna Loken y Jason Statham.

Tags: ,

El libro se acaba

Justo cuando las cosas se ponen buenas.
Para empezar Hermione ha descubierto una tal Aileen Prince en los anales. Pero Harry y Ron no creen que sea el Príncipe Mestizo.
Dumbledore llama a Harry, para ir en busca de uno de los Horacruces. Potter deja la poción Felix Felicis a sus amigos y les encarga que vigilen a Malfoy.
El sitio es una vieja cueva donde Tom Riddle asustó a dos niños del orfanato. Luego de burlar los hechizos protectore, llegan al centro de un lago de aguas negras. Allí Dumbledore debe beber una poción mágica que protege el Horacruz y quedará bastante débil.
Al regreso, encuentran la marca de los mortífagos flotando sobre el castillo y se lanzan en un par de escobas hasta allá. Resulta ser una trampa de Malfoy. Dumbledore queda desarmado, pero antes paraliza a Harry, escondido bajo su capa invisible. La misión de Draco es introducir a los mortífagos en Hogwarts, para lo cual utiliza la vieja cabina en la Sala de los Requerimientos, y matar a Dumbledore.
Sin embargo Malfoy …

El paradero de Malfoy

Pues bien, al fin Dobby y Kreacher descubren dónde se escondía Malfoy: en la Habitación de los Requerimientos, la misma que usaban Harry y la Armada Dumbledore para entrenar. Por ello no aparece en el Mapa de los Merodeadores, y además no se puede entrar mientras él está ahí. Draco usa la poción multijugos para transformar a Crabbe y Goyle en dos niñas, que vigilan el pasillo.
Ron y Lavender rompen. Ginny y Dean tambié, casualmente en ambas ocasiones Harry es casi el culpable, Lav ve a Ron y Hermione saliendo juntos, Harry los acompaña pero cubieto con su capa invisible, al salir empuja accidentalmente a Ginny, que se molesta con Dean.
Aragog ha muerto. Hagrid pide a los tres amigos que acudan a su entierro. Por supuesto que ninguno tiene deseos de ir. A insistencia de Hermione, Harry bebe un trago de Felix Felicis, a ver si logra obtener la memoria de Slughorn. Bajo su influencia lo primero que se le ocurre es ir al entierro de la araña. En el camino se encuentra con el profesor Slugho…