10 For the Chairman Episodio 62


1- ¿Cómo ha sido para ti pasar de programar en DirectX8 hace una década a estar trabajando con motores con físicas en DirectX11/12? ¿Tuviste algún problema con ello?

Ha sido divertido. Al comienzo del proyecto, a principios de 2012, yo era básicamente el programador. Escribí el código de la mayor parte de lo que se mostró en Octubre de 2012 y me ocupé de los cambios necesarios que había que hacer al CryEngine para hacerlo realidad. Tuve algo de ayuda de gente clave, como Paul Reindell del departamento de apoyo de CryTek (que ahora trabaja para nosotros); pero en general escribí la mayor parte del código. Afortunadamente nadie ha cambiado la programación de alto nivel de los videojuegos. Probablemente fui uno de los primeros en adoptar C++ en mis tiempos. Escribí Wing Commander en C y para Strike Commander ya usé C++, que fue el cimiento sobre el que se hicieron todos los posteriores juegos 3D de nueva generación, como los nuevos Wing Commander, Wings of Glory, Pacific Strike y parte de lo que hizo Andy Hollister. Si se echa un vistazo al pasado y al mundo de los videojuegos, ese juego y ese motor hizo un montón de cosas por primera vez y, aunque hay que dar crédito a ID por inventar el 3D gaming, ya se habían hecho cosas en 3D antes como los Underworld que Paul Neurath había creado (del que hubo un kickstarter exitosos hace unos meses y yo apoyé), Sid Meir había hecho en 3D el F19… Strike Commander fue el primer juego en hacer en 3D con mapeado de texturas en tiempo real y si echáis un vistazo a ese juego podéis ver que ya teníamos cabinas virtuales en 3D en 1991. Y eso era bastante molón en aquellos tiempos.
Por alguna razón siempre me ha gustado probar y usar la brillante nueva tecnología, y así es como usamos Borland, C y luego C++. Yo y Jason lo aprendimos sobre la marcha con Strike Commander y me gustó mucho, porque funciona de una manera muy similar a cómo yo pienso y organizo las cosa… Y eso, la gente sigue usando C++ todos estos años más tarde. Así que cuando me puse a hacer Star Citizen no era realmente tan distinto. Algunas de las cosas nuevas como STL o Boost son partes nuevas del Léxico de C++ para las cosas nuevas que hace, pero fue como andar en bicicleta de nuevo y bastante divertido en realidad porque es una de las pocas áreas en que puedes controlar y ver cómo se hacen realidad las cosas, por lo que es algo muy satisfactorio cuando tienes una idea que quieres hacer verdad, la programas y la ves funcionando como quieres que sea en el ordenador. Obviamente, tengo un trasfondo en Físicas desde hace mucho tiempo (ndt: estudió físicas en la Universidad de Manchester) y las herramientas que tienes hoy en día son fantásticas comparadas con las que teníamos en los viejos tiempos, en que había que hacer todo a mano. Empezar con algo tan potente como CryEngine desde el principio fue fantástico.
Así que, resumiento, es el mismo concepto que antes sólo que más grande, más potente… y es divertido. Así que no me siento como el viejo que no sabe ya cómo hacer las cosas, pero mi transfondo claramente me ha ayudado a mantenerme al día, porque hay cosas que estamos haciendo en Star Citizen que empuja los límites bastantes y es muy emocionante. Me gustaría poder programar más en vez de hacer otras cosas que tengo que hacer; pero esto siempre pasa en un gran proyecto: hay que dirigir, hay que comunicarse con tanta gente.

2- ¿Cómo se supone que va a funcionar la población de PNJs en el Universo Persistente? ¿Existirán todos los PNJs (90% de la población del Universo Persistente), serán rastreados y se moverán constantemente? ¿Serán creados al azar en las instancias/zonas a medida que entren jugadores allí? ¿Cómo afectará esto a la economía y al sistema de misiones?

Tenemos una simulación de todo el universo que corre en un servidor en particular (no necesita de un conjunto de servidores) y simula unos 20 millones de agentes de la IA a alto nivel conceptual. Ejemplo: tienes una misión, irás de A a B.
Esto no quiere decir que se conecte al juego, tenga una IA, y vuelve por el juego haciendo maniobras de combate. Lo que significa es que se simula los trabajos en función a la demanda del mercado y se toman misiones de la economía para llevar a cabo partes de ella, como por ejemplo llevando carga del planeta A al B, que es una línea que va a llevar digamos 1 día de juego y por el camino hay posibilidades de que se encuentre con piratas y si no hay ningún jugador ahí será simulado con mecánicas estadísticas, como una tirada de dados. Pero si estás en el área, verás el combate en si y podrás ver los resultados. Y esto se aplicará a la simulación general, con los bienes y personajes que se añaden o sustraen de ella, porque hay nodos que crean y otros que consumen y esto se hace a un alto nivel de “meta-IA”. Así se pueden rastrear los movimientos y poblaciones de IAs con facilidad de manera más abstracta y ni siquiera tiene que hacerse en tiempo real, por lo que se va actualizando cuando nos convenga y así podemos tener tantos millones de IAs interactuando… porque al final del día no necesitamos actualizar, para nada, a 20 millones de Agentes a 30 FPS. Realmente, se puede hacer cada 5 o 10 minutos, porque a la escala de fidelidad del universo y su compresión de tiempo es más que suficiente para interactuar con los servidores de juego en los que están los jugadores y la acción.
Así pues, la mayor parte de la población de IAs está siendo simulada y creo que a cierto nivel no se hacen aparecer esos personajes realmente en los planetas, si no que se hacen aparecer a los relativos a los jugadores, como piratas o cazarrecompensas o transportistas o lo que sea. Y cogerán sus naves e interactuarán con la economía y con los jugadores que estén allí. Y se vigilará si las cosas van bien, porque entonces la población crecerá junto a su economía… o viceversa. Es una decente simulación de alto nivel, que propaga desde ese servidor de economía a los servidores de sistema y estos ayudarán a determinar cuando vuelas por ahí si te encuentras con PNJs por ahí, o si están en conflicto entre ellos o lo que sea. Y esto mola, porque tendremos un mundo que vive y respira independientemente de la cantidad de jugadores que estén jugando. Podría haber un sólo jugador en el universo de Star Citizen (espero que no XD), y la gente seguiría con el día a día, comerciando, siendo piratas o cazarrecompensas, mineros etc. Cuando todo esto se ponga en marcha creo que va a molar mucho, lo tenemos ya prototipado y creo que va a funcionar muy bien.

3- ¿Cómo se comunicarán nuestros personajes en la Campaña del Escuadrón 42? ¿Podremos seleccionar voces o nos comunicaremos sólo por texto silenciosamente?

No serás un protagonista silencioso, por lo que hemos rodado todo el Escuadrón 42 con una persona interpretando al jugador y grabamos su voz y rostro durante esas escenas. Tenemos planes para esto porque podrás escoger ser hombre o mujer y por supuesto tu aspecto y rostro a partir de una serie de cabezas básicas que podéis personalizar. Además, vamos a grabar una segunda línea para el personaje femenino y estamos jugando con la idea de tener múltiples voces en función de tu IP, con acento británico si eres de allí o americano si eres de aquí. No sé, es una de las ideas. Creo que molaría mucho poder personalizarlo un poco, y si fuese así podrías escoger entre acento británico, americano o… australiano, por ejemplo.
Te oirás hablar y pensar y si pusieses la tercera persona podrías ver tu rostro cuando hablases, por lo que estará muy bien.

4- ¿Qué es lo que te ha gustado y que es lo que no te ha gustado del contenido generado por la comunidad? ¿Qué te gustaría ver?

Para ser sincero, no creo que haya visto nada que no me haya gustado. Estoy muy impresionado por el nivel de ficción que han creado, con sus propios comics, machinima y vídeos y guías que la gente hace. Algunos hacen sus propias naves con impresoras 3D y mola mucho. The Next Great Starship es algo que nos gustó mucho y me gustaría volver a hacer. Siempre estoy impresionado por cuantas ganas tiene la comunidad a la hora de crear el mundo de Star Citizen y esto lo que siempre me ha encantado, con cosas como Posters de Reclutamiento para la Armada de la UEE y cosas así.
A largo plazo el objetivo es poner herramientas para el contenido generado por la comunidad, porque ahora mismo sólo pueden hacerlo los expertos en CryEngine que pueden portar nuestros recursos y editarlos en condiciones o hacer sus mods. Esto permitiría hacer cosas para el juego de manera más formal, aunque obviamente hay cosas mucho más importantes que sacar antes… pero estoy muy atento a este tema, porque al final del día hay mucha creatividad ahí fuera y es muy difícil para nosotros proporcionar contenido al ritmo que es consumido por la gente. Así que estaría genial que los jugadores pudiesen disfrutar del contenido creado por la propia comunidad y jugarlo. Pero esto es a largo plazo, así que estad atentos a esto.

5- ¿Cómo manejará la inercia el sistema multi-tripulación? ¿Se aplicarán las físicas en función de la posición en la nave, como fuerzas centrífugas o vectores de aceleración?

Eso es algo que vamos a simular a largo plazo, aunque la primera iteración de Multi-tripulación probablemente no tendrá todavía eso activado de la manera en que yo quiero que esté. Tengo un plan para que sea estilo Star Trek, que si sois impactados en la nave seáis sacudidos o tropecéis. O que si estáis en una gran nave y giráis la gente se desplace contra el mamparo contrario sintiendo la aceleración lateral. Esto está directamente relacionado con lo que estamos haciendo para la gravedad cero y el sistema de agarrarse-tirar-empujar, de manera que si una nave es impactada podamos ciclar por todos los personajes y objetos de la nave aplicando a todo lo que esté suelto un impulso equivalente y que reaccionen proceduralmente a este. Esto ya está en parte con las animaciones procedurales que hay al recibir un impacto; pero me gustaría tener esos tropiezos estilo Star Trek en que estiras un brazo para sujetarte a uno de los mamparos.
Así que la primera iteración no lo tendrá, pero las siguientes en el esperamos que no muy distante futuro si que lo tendrán, porque queremos dar una sensación realista de la velocidad e inercia de la nave. Si vuelas normalmente todo irá bien, pero si haces maniobras evasivas muy locas la gente se dará unos cuantos mareos como en las películas clásicas de submarinos. Va a molar un montón.

6- Un poco conocido juego llamado Artemis Bridge Simulator ha hecho un estupendo trabajo a la hora de hacer roles de tripulación interesantes y al mismo tiempo necesitar datos y órdenes de tus compañeros de tripulación. ¿Cuales son los planes de Star Citizen al respecto?

Creo que la respuesta es… que será bastante similar. Habrá bastantes estaciones y asientos de acción por las naves multitripulación y mostraremos esto de manera limitada en Gamescom; pero tendrás timonel, radar, ingeniería, artilleros en torretas… Y tendremos jugabilidad específica para que cuando estés jugando con tus camaradas de tripulación, sea rastreando cosas, protegiendo la nave, reparando la nave o manejando los escudos (que tienen toda una estación para esto ya en la demo) tengas un control con mayor fidelidad y profundidad que cuando pilotas una nave monoplaza y ajustas cosas sobre la marcha: será mucho más efectivo y lo estamos construyendo para que reforzar esto. Y a largo plazo estamos haciendo un VOIP (Chat de voz integrado) para que los jugadores puedan hablar entre si en su nave en vez de tener que usar algo como Teamspeak.
Pero si has visto simuladores de naves estelares … será parecido, excepto que será en tiempo real y con mucho detalle.

7- ¿Se podrá cambiar la dificultad del Escuadrón 42 para que aquellos que seamos malillos pilotando cazas podamos ver la historia?

Tendremos lo típico de Facil, Normal y Difícil. Para ser sinceros todavía no hemos tocado esta parte, pero habitualmente gira en torno a lo precisa y dura que es la IA. Habrá un modo fácil pero no quiero hacerlo demasiado fácil, porque siento que los juegos modernos lo han hecho todo demasiado fácil y eso reduce la experiencia. Si nada es un desafío, no hay satisfacción a la hora de acabarlo. Y esto es algo que aprecié mucho en Demon Souls hace unos cuantos años, porque tras una temporada de jugar a los típicos FPS o TPS en que la muerte y el respawn están a unos pocos segundos de distancia no había penalizaciones… Y Demon souls tenía penalizaciones y era frustrante a veces, pero me mantuvo enganchado y cuando acababa un nivel y mataba un jefe me sentía muy orgulloso. Es uno de los pocos juegos que me acabé y rejugué y eso es todo un milagro en mi caso. No quiero decir que será tan difícil como Demon Souls, pero será similar a los Wing Commanders en que tendrás que completar tu misión antes de poder salvar, en vez de tener checkpoints continuos. Quiero que no sea frustrante, pero tampoco demasiado fácil.

8- ¿Habrá campos de escombros y chatarra para los recuperadores, como si fuesen campos de asteroides, o existirán sólo después de batallas? ¿Publicaréis un documento de diseño sobre Recuperación en el futuro?

Si, habrá campos de escombros por ahí, entre los campos de asteroides o en el vacío, restos de batallas espaciales del pasado y quizá haya interesante y valiosa tecnología que encontrar en esos pecios. Y también habrá la oportunidad de que si encuentras los restos de una batalla reciente podrás recuperar chatarra y objetos que hayan sobrevivido al conflicto con una nave como la Reclaimer.
Respecto al documento, es cosa de Tony Zurovec. Está trabajando en ello y en el futuro lo veréis, probablemente cuando la Reclaimer esté operativa en el juego.

9- Las naves requerirán mantenimiento debido a su deterioro. ¿Las naves de mi hangar se estropearán debido al paso del tiempo aunque no sean usadas o esto sólo sucede cuando las pilotamos? ¿También se deteriorará otro equipo, como armas, armaduras, ropas, contenedores, objetos decorativos..?

Las naves tendrán un mantenimiento similar a las aeronaves del mundo real, pero sólo si las utilizas. Si las dejas en tu hangar, aparte de que tras pasar un par de años tengas un modelo desactualizado, no tendrán deterioro. Combate y vuelo tiene deterioro, que irás viendo en una capa de desgaste apareciendo en tu nave y tendrás que pagar unos créditos en un taller para que recupere su prístino aspecto, aunque no al 100%. Nunca recuperará el aspecto de recien comprado.
Esto también se aplicará a armas, ropas, etc. Todo envejecerá con el uso.

10- Ahora que CryEngine 3.8.1 soporta Linux y OpenGL, ¿Tendremos un cliente para Linux en el futuro?

Ya salió el 3.8.2, de hecho. Queremos hacer que Linux funcione, pero hemos hecho personalizaciones de shaders y drivers que OpenGL no soporta. Aún así, ya lo hemos compilado en Linux (porque todos nuestros servers van en Linux)… y si, querría tener un cliente de Linux, pero depende de la implementación OpenGL de los cambios que hemos hecho en CryEngine. Esto es cosa de nuestro departamento de gráficos, que está muy ocupado ahora en cosas que la gente estoy seguro que querrá ver y DirectX12, por lo que no puedo decir que llegará en los siguientes meses. Estamos muy interesados en OpenGL, eso si.