@ agnasg

Buenas y malas noticias: Eve es gratis… o algo así

17-11-2016 12:23 PM

Como es reportado por todas partes salió la expansión de Eve Ascencion que entre cosas ofrece f2p para los jugadores, es decir, jugar gratis. En reddit la discusión fue intensa, pasando de “siempre he querido probarlo” a “luego de un par de semanas seguía sin tener idea de qué es lo que estaba haciendo”, y además “eve es un asco y CCP es una porquería” (CCP es la compañia detrás de Eve).

Las opiniones son mixtas: en realidad no es exactamente gratis, es prueba ilimitada, pero con limitaciones, porque no puedes comprar un battleship, y hay quienes dicen que justamente es con los battleships que el juego se pone divertido.

Yo lo estuve probando hace 3 ó 4 años, durante un par de semanas.

La buena noticia es que Eve tiene esta nueva modalidad de prueba gratis.

La mala noticia es que borré el juego el año pasado (7gb)

No, esa es una buena noticia también, todas son buenas noticias.

No confies demasiado en google… o en stackoverflow… o en nada

16-11-2016 4:58 AM

No sé cómo se llama el proceso mental que sufren algunos programadores (me incluyo, por supuesto) cuando, usualmente después de 10 horas de trabajo en un algoritmo, las cosas comienzan a ponerse bizarras y confusas. Me refiero a casos como el siguiente:

for (int i = 1;i <= 4; i++) {
    switch (i) {
    case 1: execute1 (); break;
    case 2: execute2 (); break;
    case 3: execute3 (); break;
    case 4: execute4 (); break;
    }
} 

El algoritmo comienza a complicarse y aparecen monstruos a veces inofensivos, a veces destructivos, definitivamente risibles.
Ayer estaba trabajando en un complicado sistema que se conecta a un webserver y devuelve información via https, pero con un nivel adicional de encriptación por seguridad (en este caso los usuarios del sistema son capaces de cualquier cosa, incluyendo lo imposible). Pues cuando todo parecía funcionar los códigos de retorno comenzaron a llegar con basura (en realidad todo el tiempo estaban llegando con basura pero yo no había llegado aún a ese punto)
Luego de una hora de debugguing llegué a este código:

QByteArray array = QString(source.c_str()).toLatin1();
strncpy ((char*)buffer, array.data(), source.length());

Recordé que días atrás estaba buscando la forma de pasar de QString a unsigned char * de una forma estándard ( o cómo dice la página de stackoverflow, a clean way) El googleo me llevó a esta página: http://stackoverflow.com/questions/17936160/clean-way-to-convert-qstring-to-char-not-const-char. Quizás lo que sea que estaba tratando de hacer en aquél momento funcionó porque el código de conversión utilizando QByteArray y toLatin1 permaneció ahí, mas no el argumento. Este código toma un std::string, lo convierte a QString y luego a unsigned char * (ups, strncpy no acepta en un compilador estricto unsigned char * así que hay que hacer un cast)

El resultado es que 0xc4 se transformaba en 0xffffffc4. Supongo que este código tenía sentido cuando originalmente era un QString, pero cuando el argumento pasó a ser un std::string, las cosas se volvieron, ofuscosas.

Para hacer el cuento largo corto el código defectuoso se transformó en:

for (int i = 0; i < source.length();i++) {
    buffer[i] = source[i] &amp; 0xff;
}

2 horas después. Gracias stackoverflow. O quizás gracias sindrome de la ofuscación del código después de 10 horas de trabajo.

De la mala documentación

08-11-2016 3:39 PM

Me refiero en el título a las documentación que no cumple su cometido: documentar. Estoy migrando Qt a 5.7 y encontré muchos de los problemas descritos aquí. ¿Quién es el autor de esta documentación? Yo.

Por ejemplo, “C2061: syntax error : identifier ‘__RPC__out_xcount_part’” es un terrible error que casi nadie en google (me refiero a internet) sabe cómo resolver. Pues mi solución de hace dos años fue “eliminar completamente el include de DirectX en el makefile”, pues rearreglar las variables INCLUDE no funciona.

“eliminar completamente el include de DirectX en el makefile”

“eliminar completamente el include de DirectX en el makefile”

¿Qué significa eso? ¿Cuál makefile, yo no veo el makefile? Claro afortunadamente todavía tengo la instalación de qt 5.2 y pude descubrir (recordar) que el error se presenta en “qtmultimedia/src/plugins/directshow”

Lo que pasa es que haciendo pruebas se hace realmente engorroso hacer un clean a una configuración porque el “nmake clean” no funciona como uno supone, y eso es necesario cada vez que cambiamos la configuración. Así que descubrí cómo hacer un “shadow build”, es decir, usar un directorio de trabajo diferente al que está junto con los sources. Para hacer eso hay que hacer los siguientes pasos:

Supongamos que qt está instalado en c:\qt

mkdir c:\qt-build # este es nuestro directorio de trabajo donde se compilará todo (donde están los makefile)

cd c:\qt-build       # entramos en el directorio

..\qt\configure -debug-and-release -opensource -confirm-license -platform win32-msvc2013 (otros flags)

Así que los makefile quedan en la estructura  c:\qt-build no dentro de c:\qt y por eso

“eliminar completamente el include de DirectX en el makefile”

no hace sentido si no sabes dónde están los makefile.

Un misterio que todavía no estoy seguro pueda resolver es de dónde salen los

-I”C:\Program Files (x86)\Microsoft DirectX SDK (February 2007)\include”

que aparecen en los makefile despues de hacer el configure, si:

  1. La variable INCLUDE no lo tiene
  2. La variable DXSDK_DIR está eliminada (anteriormente apuntaba al SDK de feb 2007

Es posible que la variable DXSDK_DIR sea la culpable, tendré que hacer más auditoría forense. Como quiera que sea estoy en el día 2 de la migración a 5.6 Correcto, 5.7 parece estar llena de problemas.

Debe haber pasión en ambos lados de la pantalla

11-10-2016 5:36 PM

Estaba leyendo estos comentarios de Emily Short sobre el juego Timecrest (solo en Apple)  y luego de diversas divagaciones dilatorias y digresionales aterricé en esta página donde algunos fanáticos discuten el juego (me refiero a que discuten sobre el juego Timecrest).

La discusión comienza con esto: “Yo he jugado Timecrest casi 100 veces en el curso de los últimos 10 meses” (“I have played through Timecrest 1 almost 100 times over the course of the past 10 months”)

keanu-woo

Woo!

¿100 veces? Yo no creo haber jugado jamás un juego más de 1 vez. Quizás Rogue (el roguelike, y eso por la permamuerte), o la aventura original (Colossal Cave), y eso porque, bueno, tú sabes, ¡es la aventura original!. Así que 100 veces es algo sorprendente. Quitando la exageración, (debe ser muchas veces, definitivamente más de 10 veces) esto denota fanatismo, algo de locura, y pasión. Con esto acabo de definir a un jugador “hardcore”, pero uno muy especial, donde la pasión sobresale. Pero eso no es suficiente, también debe haber pasión del otro lado de la pantalla, los programadores también deben ser apasionados sobre su trabajo para producir una obra de arte que haga que al menos un jugador, al menos uno, exagere diciendo que ha jugado el juego casi 100 veces. Eso es algo.

¿Qué debe tener un juego para que genere reacciones como esa? Es difícil porque funciona como esos conceptos subjetivos, por ejemplo la felicidad, cada quien tiene que buscar su propia manera de ser feliz, de la misma manera,  cada juego es especial en su propia manera, casi siempre de una forma única. El mencionado juego “la aventura original” es especial por presentar cierta mecánica de juego, ciertos puzzles que generan el momento “woo”. Me refiero no solamente a cuando resuelves el puzzle del pajarito, sino particularmente el puzzle del oso (el que tiene la cadena de oro). Es simple pero al menos para mi generó ese momento “woo”.

Y esa podría ser una segunda característica: es una experiencia particular de cada juego y particular de cada quien, lo que para mí fue un momento “woo” para otro puede resultar una tontería. Pero la opinión personal  “genera” el consenso general y así ese juego se convierte en especial.

Parte de la gracia se pierde cuando sabes resolver el problema (después de que sabes cómo parar un huevo, consideras el hacerlo como algo tonto, pero si no sabes como hacerlo constituye una prueba en contra de tu nivel de inteligencia) . Estaba viendo jugar a alguien y en algún momento se confrontó con uno de esos puzzles donde hay que alinear bloques de colores con una señal emitida por un totem, una señal, por supuesto, del mismo color. La persona se quedó maravillada con el mecanismo y me preguntó “¿como se te ocurrió eso?”. No le respondí, y me quedé disfrutando el “woo”.

Es posible pensar o creer que todas las ideas sobre puzzles de nivel “woo” (o momentos de nivel “woo”) ya han sido probadas, pero no necesariamente. Las posibilidades son infinitas. Pero hay que apasionarse en la búsqueda de esos momentos porque pueden saltar en el momento que menos te lo imaginas.

 

No se puede publicar un juego donde no se ven las huellas en la nieve

25-09-2016 10:31 AM

Hace años era un tema importante de dilucidar cuál motor gráfico utilizar. Había varios pero en la arena de software libre, gratis, C/C++ y con una buena comunidad dos buenas alternativas eran Ogre3d e Irrlicht. Finalmente yo escogí Irrlicht honestamente porque estaba programado de una forma similar a como yo programo por lo que me resultaba más familiar. La documentación me gustó y los demos también.

Hoy en día no existe ese tema, cualquier programador novato o experimentado debería escoger Unity. Quizás Unreal pero este último requiere una cantidad de esfuerzo y trabajo que resulta intimidante para alguien que lo que quiere es hacer un simple juego.  En la última semana estuve considerando seriamente migrar psyblast a Ogre3d. He llegado a un punto donde estoy requiriendo un motor gráfico más o menos actualizado y lamentablemente irrlicht está muy lejos de eso. Lo que me queda es comenzar a implementar los efectos del juego e irrlicht no me va a dar los resultados que estoy esperando. O dicho de otra forma, estoy en un punto en que o bien continúo con irrlicht y trato de implementar los efectos, o cambio de plataforma a una que ya tenga las herramientas para esto. Lo que me ha detenido todo este tiempo en hacer cambios en el desarrollo es el efecto Duke Nukem Forever. Cuentan que George Broussard se la pasaba importunando al equipo de desarrollo con nuevos requerimientos, y cuando vio un juego donde los personajes dejaban huellas en la nieve, dijo que definitivamente DNF tenía que incluir eso. Este tipo de requerimientos y otras decisiones llevaron a que DNF cambiara de engine (Quake II a Unreal) con el ya conocido atraso en su desarrollo (15 años). Enlace.

Ogre3d por supuesto no es mi única opción, pero es la que tengo más a la mano y no va a requerir el sobretrabajo que necesitaría por ejemplo  trabajar con Unreal. Además todavía estoy pensando en pequeños pasos. Nada grande. Y Unreal va a requerir demasiado trabajo y me va a alejar más del lanzamiento (a mi no me sirve Unity en lo absoluto porque internamente su desarrollo es un caos y porque es un producto propietario y cerrado)

Pero Ogre3d no es fácil, inclusive para un programador experimentado como yo. A continuación mis notas sobre el proceso de compilación y pruebas del engine. Descubrí visitando el sitio de ogre que ya está en 2.1 pero la versión estable es 1.9 Como no quiero hacer migraciones posteriores voy a trabajar directamente con 2.1, extrayendo los archivos del repositorio git.

Así que me fui al sitio de Ogre3d y comencé a instalar el paquete. Si usted sigue estas instrucciones no debería tener problemas. No haga como yo que comencé a instalar dando tumbos hasta que descubrí que estaba instalando la versión incorrecta.

NOTA: lo que sigue no es un tutorial de lo que se debe hacer. Aquí en forma anecdótica describo mis pasos que parecen más un capítulo de los 3 chiflados que otra cosa. Lea detenidamente el sitio de Ogre3d para entender cómo es el proceso antes de hacer algo.

Sin embargo estas notas pueden ser de utilidad porque incluyen instrucciones para resolver diferentes problemas, incluyendo el error “d3dcompiler_47.dll is misssing” que ocurre si usted está trabajando en Windows 7.

Para configurar el archivo de proyecto sln que utilizará Visual Studio para compilar el paquete, hay que usar cmake-gui y configurar apropiadamente. Van a aparecer dependencias faltantes. Yo me imagino que hay una forma correcta de hacer esto pero la desconozco (hay que leer los manuales, insólito) porque las veces que he usado cmake de alguna forma los makefile están listos y no hay que estar haciendo cirugía archivo por archivo. En mi caso tuve que ir a la carpeta ogre/CMake/Packages y editar los archivos FindOIS.cmakeFindFreetype.cmake y colocar donde están instalados estos paquetes.

Luego descubrí un Quick Start donde se explica cómo evitar todo esto que es por donde debí comenzar.

Luego de varios intentos y discusiones con el comando “set” de CMAKE, finalmente encontró los paquetes y comenzó a compilar.

El primer error fue el inefable  syntax error : identifier ‘__RPC__inout_xcount’  que he visto en innumerables ocasiones, y que se corrige colocando los headers de DirectX al final de los include en VC++Directories, en la configuración del proyecto de Visual Studio. Lamentablemente en este caso no fue tan fácil porque CMAKE agrega esta dependencia en otro sitio, en “Additional Includes” en la pestaña General. Finalmente eliminado de este sitio se resuelve el problema.

En resumen y para que quede claro, si tienes el SDK de DirectX lo debes colocar en Include files en VC++ Directories.

En mi caso este es el path:

C:\Program Files (x86)\Microsoft DirectX SDK (February 2007)\Include;

Teóricamente esto se resuelve Windows 8.1 porque ya vienen incluídos.

Luego de 15 minutos de compilación un nuevo error:

IID_IDirect3DSwapChain9Ex undefined

google está lleno de callejones sin salida así que tuve que deducir la solución yo mismo. Recórcholis. Afortunadamente mi primera presunción fue correcta y era el mismo problema, incompatibilidades con DX, así que se resuelve asegurándose que use la librería  dxguid.lib actualizada y no la de 2007.

Cuando tratas de ejecutar aparece un nuevo error, esta vez a tiempo de ejecución:

d3dcompiler_47.dll is misssing

Este es fácil, se puede encontrar aquí: %ProgramFiles(x86)%\Windows Kits\8.1\Redist\D3D\ en las dos versiones  x86 and x64.

Windows 7 y DX11 no se llevan bien así que hay que actualizar el windows con esta actualización KB2670838. Esto lo encontré en la documentación de ogre.

Resueltos todos estos problemas apareció el configurador de Ogre que te permite decidir cuál render usar (DX9, DX11 o Opengl). Escogí DX11 (yo amo el peligro) y recibí en respuesta una adorable pantalla negra. Me imaginé que después de todos los problemas con DX11 seguramente con DX9 debería funcionar pero entonces no aparecía el menu donde se selecciona eso. Luego de varias cavilaciones descubrí que hay una cosa llamada ogre.cfg donde se guarda la configuración ( lo cual si, cierto, tiene sentido, te pregunta una vez y la segunda vez no te pregunta, pero esto no toma en cuenta qué pasa si no funciona). El siguiente problema es dónde está ogre.cfg. En la carpeta donde está el ejecutable están los otros archivos de configuración plugins_d.cfgresources_d.cfg, samples_d.cfg pero no está el ogre.cfg.

Después de googlear sin cesar encontré en un sitio en las profundidades de internet un comentario sobre un comentario donde alguien de pasada indicaba que ogre.cfg está en  C:/Users/<user_name>/MyDocuments/Ogre/<Ogre version> que es efectivamente donde se guardan los archivos de configuración en Windows, pero ¿por qué entonces los otros archivos están donde está el ejecutable? ¿por que la documentación no indica esta ubicación? I don’t know

Pues bien borré el archivo ogre.cfg y ejecuté el programa de nuevo. Pude cambiar de DX11 a DX9 pero la pantalla negra hizo nuevamente su triunfal entrada (es posible editar ogre.cfg pero quería hacer la cosas como un usuario normal)

En la misma carpeta donde está el ogre.cfg está ogre.log que ya había visto de reojo antes así que revisé los últimos mensajes:

Cannot find an archive factory to deal with archive of type Zip

Mi goggleo para este problema terminó en innumerables páginas tipo dead end (callejones sin salida) como es usual:

http://ogre3d.org/forums/viewtopic.php?f=2&t=64684

http://ogre3d.org/forums/viewtopic.php?f=2&t=69048

http://www.ogre3d.org/forums/viewtopic.php?f=2&t=80852

Así que tuve que ponerme a pensar (que problema). Regresé al CMAKE y descubrí que se me había pasado un error, no encontraba el zlib que luce como el orígen del problema. Tuve que instalar zlib (está en http://www.zlib.net/) y compilar haciendo zlib nmake -f win32/Makefile.msc

Luego editar el  FindZLIB.cmake que se encuentra en ogre/CMake/Packages como en las ocasiones anteriores. Pero nuevos errores hicieron su aparición:

error LNK2019: unresolved external symbol “public: __thiscall Ogre::ZipArchive::ZipArchive

y una docena de errores similares. Un estudio rápido del código fuente me llevó a  OGRE_NO_ZIP_ARCHIVE  que es definida en include\OgreBuildSettings.h Como este define incluye algo así como una doble negación y el código está lleno de preguntas como esta:

#if OGRE_NO_ZIP_ARCHIVE == 0

lo cual es bien confuso porque si yo digo “Si Juan no vino de Barcelona entonces vamos a no ir” la mayoría de la gente va a responder con un “¿qué?”. Así que tuve que jugar con este define colocándole “1” y “0” a ver qué hacía.

En este punto analizando la salida de CMAKE me encontré con esta perla:

Configuring OGRE 1.10.0unstable

¿Por qué dice 1.10 si se supone que estoy configurando 2.1??

Mi consuelo es que no soy al único que le ha pasado, este usuario tuvo el mismo problema. El problema está relacionado a bitbucket, no veo una forma de hacer un enlace a la página de la versión 2.1, o quizás sí, la página debería ser esta https://bitbucket.org/sinbad/ogre/branch/v2-1, pero si haces clone aquí, no selecciona 2.1 sino el default, y cómo yo venía de la página de Ogre pensé que ya estaba en la página correcta, tal como funciona github. Al parecer es obligado bajar y usar el software recomendado por bitbucket Atlassian SourceTree, lo cual, por supuesto, no me gusta, ya tengo git no debería necesitar un producto propietario para bajar un software dominio público. Claro el dueño de bitbucket es Atlassian. El sospechoso usual. En definitiva el comando correcto es

hg clone https://bitbucket.org/sinbad/ogre/branch/v2-1

Conclusión

Dejando de lado mis peripecias al instalar no estoy en lo absoluto impresionado con Ogre3d. En realidad, si hay alguna forma en que un paquete puede indicarme claramente que no quiero utilizarlo es la forma como Ogre3d lo hace. Los demos son la peor selección que me puedo imaginar, no hay demos de sistema de partícula, demos de elementos básicos para programación de juegos, el tutorial sobre collision detection es desesperanzador (hay que implementar a nivel de rayIntersects) , en general la forma cómo está implementado no puede ser más diferente a la forma como yo pienso que se debe trabajar ( la cual no es ni correcta ni incorrecta, es simplemente diferente). En definitiva quedé tan defraudado con todo el esfuerzo involucrado que regresé a mi trabajo de investigación sobre Irrlicht y buscar la forma de migrar. Informaré sobre mis avances al respecto en las próximas semanas (ya tengo algunas ideas para un post sobre efectos HLSL y cómo se usan en Irrlicht).

Digital Homicide

19-09-2016 9:52 AM

Antes de entrar en el tema de Digital Suicide, quiero mencionar que este es el 4° post seguido con un tema relacionado a juegos, y no a desarrollo de juegos. Yo no creo estar sufriendo una crisis de bloguing como otros (Greedy Goblin por ejemplo. Sí, esto es terrible.) y mi promedio mensual sigue igual que siempre (2-3 posts mensuales). Pero lo menciono antes que alguien me coloque bajo sospecha. Estoy metido en un proyecto de desarrollo bien extenso que no tiene nada que ver con juegos así que quizás es eso. Mi juego psyblast está ahí en espera todavía. Pero, como quiera que sea, y entrando en materia… Digital Homicide. Entremos en materia.

El resumen es este: Digital Homicide es un desarrollador de juegos que es famoso por sus juegos de dudosa calidad. Yo personalmente no he jugado ninguno, no soy masoquista, pero parecen ser famosos y populares: su página facebook tiene 15k “likes” que es poco pero es los suficiente para hacerlos relevantes. La data relativa a uno de sus juegos (“Forsaken Uprising”) indica que tiene un movimiento de más de 100k jugadores (steamspy). Ellos se hicieron famosos porque le metieron una demanda de $10 millones a Jim Sterling, un comentador que calificó negativamente a The Slaughtering Grounds (para Jim es uno de los peores juegos de 2014). Algo interesante sobre Jim Sterling y su canal en youtube es que este capítulo donde habla de Slaughtering Grounds, tiene 2 millones 162mil y pico de vistas. Permitanme decirlo de nuevo, un video de 11 minutos donde Jim  habla de uno de los peores juegos de 2014 (según él) tiene 2,162,367 de vistas para el momento que escribo esto. Es verdad.

Finalmente esta novela tiene un nuevo capítulo cuando en lo que ha sido calificado como un suicidio digital, Digital Homicide demandó a 100 usuarios anónimos de Steam debido a malos/negativos  reviews (“Game Developer Sues 100 Anonymous Steam Users For $18 Million“) a lo queValve respondió terminando sus negocios con Digital Homicide porque es hostil con los clientes de Steam. (“Valve has stopped doing business with Digital Homicide for being hostile to Steam customers“)

Basado en lo que se puede leer en reddit, Digital Homicide:

  • Está envuelto en lavado de dinero
  • Tiene una oscura conspiración para conseguir un beneficio secreto e impactante, como el que compró las torres del World Trade Center unos meses antes de 9/11 y cobró una poliza de varios millardos de dólares.
  • Usando Occam’s Razor, son unos idiotas

La gente en reddit no se caracterizan por comentarios sustentados en algún tipo de buen sentido común así que vamos a ignorar todo esto y utilizando Occam’s Razor, pero correctamente, veamos qué esta pasando aquí. Y para ello, leamos… lo… que… Digital Homicide… tiene que decir. Aquí están sus alegatos. Básicamente los simpáticos usuarios de Steam hacen amenazas de muerte, califican de basura los juegos de Digital Homicide, y consistentemente spamean los comentarios sobre los juegos con repetidos insultos etc. Es decir, el hostil, según Valve es Digital Homicide, no lo usuarios. Si leemos o escuchamos lo que Jim Sterling dice básicamente considera esos juegos como un asco. En definitiva, son el tipo de juegos que no deberíamos jugar más de 5-10 minutos si somos jugadores serios (sic). Yo estuve viendo detenidamente los videos, juguemos Slaughtering Grounds y similares, y definitivamente es el tipo de juegos que intenté jugar hace 20 años y ni obligado volvería a jugar. Pero:

  • 120mil personas compraron el juego, a pesar de que  en general este juego tiene una evaluación mayoritariamente negativa (basado en 2,038 reviews) (link en archive.org porque ya Valve eliminó la página en Steam)
  • Otros juegos de Digital Homicide. Tienen similares volúmenes de venta, por ejemplo el mencionado Forsaken Uprising.
  • 15mil “me gusta” en la página de facebook.
  • 133k seguidores en twitter.
  • 2k “me gusta” en famous (bueno esto no es el salom de la fama de los fanáticos pero es algo)

Por si fuera poco, esto:

digitalhomicide

¿Por qué alguien querría poner en riesgo un posicionamiento tan difícil de lograr? Sus juegos son desechables, y ellos lo reconocen al hacer un bundle de $20 con 59 de sus juegos, pero en cuestión de pocos años tienen un valor de mercado que muchos aspirantes quisieran tener. ¿Por qué? Volvamos a esta pregunta dentro de un rato, y vamos a dedicar un tiempo a la comunidad Steam.

Ya he hablado anteriormente que la comunidad de Steam tiene sus peculiaridades. Podemos encontrar jugadores que han comprado más de 3000 juegos y solamente han jugado una fracción de ellos (o quizás la mayoría de estos juegos realmente nunca los van a jugar). Hay que ver con lupa los reviews que generan primero porque muchos son pagados, otros son el producto de pocas horas de juego y difícilmente pueden ser válidos. Por eso Valve agregó la estadística de cuántas horas el reviewer jugó el juego, de manera de colocar en contexto el review. El proceso de greenlight parece ser justo y a veces difícil pero dada las características de la comunidad inclusive este proceso no se debe tomar muy en serio. Steam es una maquinita de hacer dinero que Valve se inventó y eso está bien, la idea es hacer dinero, ¿cierto? Así que en la comunidad pululan todo tipo de bichos raros, incluyendo a los que amenazan de muerte a un desarrollador de juegos que saca juegos de mala calidad. Lo cual en sí parece una locura porque si el juego es malo y no te gusta habría que preguntarse por qué lo compras o por qué no pides simplemente tu dinero de vuelta y fin de la historia. Ahora hay otros desarrolladores que no han tenido en lo absoluto este tipo de problemas porque no solamente sus juegos tienen alguna calidad sino porque reaccionan de una forma diferente a un review negativo.

Y así llegamos a la reacción de Digital Homicide a un mal review. Es decir, la gente detrás de Digital Homicide reaccionan violentamente cuando alguien escribe o publica un mal review de su juego Slaughtering Grounds. ¿Te has dado cuenta que Digital Homicide significa homicidio digital y que Slaughtering Grounds trasladado al español es territorio de matanza o tierra de masacre? ¿Hay que sorprenderse de que una gente conocida como homicidio digital y que hace un juego llamado matanza o masacre reaccionen violentamente? ¿O que los jugadores de este tipo juegos, obviamente gente que le encanta la violencia reaccionen violentamente, con amenazas de homicidio? Yo no estoy sorprendido. De hecho me parece razonablemente loco pensar que una comunidad de locos que le gusta juegos de matanza y que compran 3000 juegos que nunca van a jugar andan amenazando de muerte. Normalmente enloquecido, por supuesto.

La gente detrás de Digital Homicide no son idiotas, están locos al igual que sus jugadores.  y es algo tan loco que le llama la atención a la gente, ven un video sobre el tema 2 millones de veces y comentan, discuten, preguntan, cuestionan, maldicen y en general despotrican sobre el tema en miles de comentarios en su mayoría sin sentido (el mencionado video tiene 4k comentarios, en youtube). En una comunidad donde se puede encontrar un simulador para preñar a tu mamá, y que esté a punto de aprobar el greenlight me resulta que cualquier cosa puede suceder. Es como si la comunidad Steam es un 9gag enloquecido. Si algo así es posible.

 

No Man’s Sky

07-09-2016 7:52 AM

Ok parece que toda esta novela sobre No Man’s Sky terminó. Voy a dejar esto aquí:

NoManSky
Eso representa perder el 99.9% de tus jugadores (tomado de aquí). Por ahí dicen que las características prometidas pero no incluidas van a estar disponibles con el tiempo. Sí claro, como si alguien va a creer eso, o va a regresar a ver si es verdad.

En realidad a mi no me gustan los juegos del espacio. Probé Eve durante un tiempo, e inclusive ahora que es gratis ni siquiera me he motivado a probarlo de nuevo. Y lo tengo instalado no tengo que hacer el doloroso download de 12gb o más. No Man’s Sky prometía mucho pero lo descarté desde el comienzo porque me lucía demasiado a un juego de exploración, y es divertido explorar, los primeros 15 minutos. Pero después se hace repetitivo que es como es. Explorar es repetitivo. Como quiera que sea, Sean, el hombre fuerte detrás de No Man’s Sky se ganó unos reales. Lo felicitamos por eso. Lástima que no tenía un plan para después que la gente descubriera que su juego era un cartel luminoso diciendo “Pase y diviértase”. Solo que la diversión es imaginaria y usted mismo debe divertirse solo sin ayuda. No Man’s Sky es eso, un cartel luminoso diciendo “Pase y diviértase”. No hay más nada después.

Legion

21-08-2016 4:12 PM

Ya el prepatch de la expansión Legion de World of Warcraft está en su tercera semana, dejando todo listo para su lanzamiento el 30 de agosto, solo en 7 días. Algunas sorpresas en esta ocasión, siendo la más importante la muerte del rey Varian y las ascensión del principe Arduin. Que el principe Arduin iba a ser el nuevo rey muy pronto ya lo veíamos venir desde Pandaria, pero por alguna razón me imaginaba que los sucesos se iban a presentar de una forma diferente. Los guionistas se pusieron intensos en esta ocasión. Alguien mencionó que esto estaba en el lore de Warcraft pero lamentablemente no conseguí la referencia en ningún lugar, así que todo queda en manos de la especulación.

Como se intuye de todo lo anterior tengo 2 semanas jugando tal como eran mis planes.

Casi sorpresivamente decidí hacer el uso acelerado del boost de Pandaria y subí un Warlock a 90, especializada en Destrucción.  Ya está en 98, y la buena noticia es que ya hice la introducción con Legion y ahora tiene un anillo, un staff y un trinket nivel 640. Yay!

En líneas generales todo me ha resultado bien divertido como era de esperarse. Ya hablaré que tal el lanzamiento de Legion y como se perfila para los próximos meses. Tengo el proyecto de subir un warrior durante Legion. Estuve durante unos días comenzando uno y me pareció más divertido de lo que siempre me había imaginado. Ya reportaré los resultados.

Lost Soul Aside

01-08-2016 6:19 PM

Lost Soul Aside (página de facebook parece que no tiene un sitio web) es un caso interesante por varios motivos. Se trata de un juego estilo Final Fantasy, desarrollado con el motor Unreal 4, con una calidad tipo AAA, que podría pasar por un producto de Square Enix o Kotaku. Pero en realidad es una producción de una sola persona (el coreano Yang Bing) quien lo realizó durante los  últimos cuatro años. El logro es impresionante y demuestra lo que se puede lograr con esfuerzo, determinación y claridad de pensamiento. Claro sería interesante investigar qué aporta al género pero ya esa es otra discusión. Lo que quiero discutir es la actitud que podemos tomar al ver algo como esto. Para mi es un ejemplo de “sí se puede”, y más que cualquier otra cosa me anima a trabajar duro como freelancer y productor indie aficionado. Yo ni remotamente voy a trabajar tiempo completo (cosa que obviamente el sr. Bing ha hecho) en mis juegos así que quizás produzca algo no en 4 años sino en mucho más. Y claro yo nunca haría algo remotamente similar o parecido a los juegos que podemos encontrar por cientos ya que eso para mí no tiene sentido. Es mi opinión por supuesto.

Pero entonces surgen preguntas. Un comentador en reddit piensa que ese nivel de calidad es insuperable  y que más bien sería una desgracia inundar la escena indie con sus propias producciones de mala calidad, por lo que debería renunciar al desarrollo de juegos. No me es ajeno el sentimiento. Cuando descubrí el tipo de juegos que quiero hacer y llegué a la conclusión que necesitaría muchos años para lograrlo me sentí tan abrumado que pensé lo mismo y efectivamente pasé meses cavilando y viéndome los pies. Pero entonces al reflexionar sobre el tema, la filosofía indie permite (esto es un invento mío no lo he leído en ningún decálogo del buen desarrollador indie)  tomarse las cosas con calma, vivir un día la vez, y trabajar lo que se pueda cada vez, y eventualmente, con paciencia y determinación, la producción quedará lista, porque de todas formas si avanzas un milímetro todos los días eventualmente llegarás a donde quiera que sea que quieras llegar. Es inevitable. Esta es, a mi parecer, la perspectiva correcta.

El mencionado post en reddit está full de comentarios relativos a que él no hizo todo el juego, sino que hay toneladas de objetos comprados en el mercado de Unreal (“ton of bought assets“). Sin embargo, es sorprendente el trabajo involucrado en ensamblar todos los componentes y preparar las animaciones. Si en efecto las animaciones las compró debe haber pagado una fortuna. Algunos comentadores piensan (y estoy de acuerdo con ellos) que la programación y las animaciones son demasiado trabajo para una sola persona trabajando full time 2-4 años. Finalmente, algunos comentadores mencionan que el juego tiene excelentes efectos especiales y un acabado de altísima calidad, pero es fastidioso y repetitivo. Como quiera que sea, todo parece indicar que Lost Soul Aside quedará como un sorprendente juego, intrigante y polémico en la memorias del mundo indie.

¿Por dónde empiezo?

26-07-2016 7:34 PM

¿Quieres lanzarte en paracaídas? ¿ Salir a pescar tiburones? ¿Programar y hacerte famoso con tu primer juego?

Ok, aquí tienes algunas sugerencias.

Lo primero es definir bien la idea del juego y documentarla al máximo. Aquí está mi explicación detallada de este punto. El documento de diseño del juego (GDD) es un trabajo permanente, mientras desarrollas lo vas completando y actualizando constantemente.

Para las tecnologías puedes ver las secciones en la columna de la izquierda.

Mientras vas desarrollando, tu primera prioridad debe ser preparar un prototipo o demo. Una muestra de cómo va a lucir el juego con la mecánica básica.

Antes de pasar a betatesting, usando el demo prepararas un youtube de 3 mins con lo más divertido del juego para mostrar a la gente, y de esta forma tus potenciales betatesters (early access players) puedan saber rápidamente cómo va el juego. De todas formas cuando comiences a publicitar tu juego lo primero que te van a pedir es un video youtube así que es mejor ir preparándote para esto.

Ten listo cuentas en los principales foros, para comenzar a calentar a tus posibles jugadores. Es, muy importante tener un blog de desarrollador, o el sitio web con el blog y la info del juego con los tópicos más relevantes que puedes extraer del documento del juego. Tienes que registrar tu dominio con el nombre de tu compañia o buscar alguna solución con algún proveedor de sitios web para desarrolladores indy, por ejemplo itch.io

Comienza a moverte con facilidad en la escena indy. Es decir, tienes que conocer la calidad de los juegos que tienen algún chance. No necesariamente se necesitan unos gráficos super excelentes, pero el juego debe tener profundidad, atención a los detalles y ser perfecto en su género. Hay 100s de videos en youtube que sirven como introducción, y por supuesto las compilaciones son imperdibles, por ejemplo esta Great Indie Games from E3 2016! https://www.youtube.com/watch?v=o1_ySZW31js. En releación a los gráficos hay un consenso no muy oficial que sugiere que los jugadores lo que buscan es un buen gameplay, una buena historia y buenos gráficos. En ese order. Puede ser que tenga excelentes gráficos pero si falla en el gameplay o en la historia no tendrá mucho chance.

Finalmente y en realidad este debería ser mi primer consejo, clarifica bien los detalles financieros con tu partner, si lo tienes, debe quedar por escrito como se va a repartir las ganancias y las pérdidas. Si son 2 debería ser 50%/50% y si entra algún otro socio debe definirse su participación. Pegar un juego es como ganar la lotería y debemos estar más preparados para si el juego vende 100.000 o 1.000.000 de copias que si no vende ni una. Si el juego no tiene éxito tienes que pasar al menos 6 meses o un año corrigiendo los errores lo más rápido posible. Un juego puede pegar meses después de su lanzamiento. Transcurridos 6 meses o un año no hay nada más que hacer o comienzas a hacer tu segundo juego o te dedicas a otra cosa.