Perfil de molécula: Amy Phillips
Amy Phillips responde al título de Alta Sacerdotisa del Código de Herramientas, que obviamente queda genial en una tarjeta de presentación. Su título real, jefa de programación de herramientas, aunque no tan grandilocuente, es igual de importante, porque ella y su equipo tejen cualquier herramienta que puedan necesitar los diferentes equipos del estudio. Hoy hablamos con ella sobre su amor por los acertijos, resolver los problemas de la gente y la clásica aleatoriedad de Mm.
¡Hola, Amy! ¿Qué haces en Media Molecule?
Soy Amy Phillips. Soy la Alta Sacerdotisa del Código de Herramientas en Media Molecule. Obviamente, y por desgracia, no es el nombre de mi trabajo de verdad. Eso viene de cuando fui a la GDC (Game Developers Conference) hace siete años. Tenía que hacerme unas tarjetas de presentación y fueron tan tontos que me dejaron escoger el nombre de mi puesto. Así que escogí "Alta Sacerdotisa del Código de Herramientas". En realidad soy jefa de programación de herramientas, que es la denominación en el idioma del estudio, pero me gusta ser la alta sacerdotisa. Suena poderoso y elegante.
¿Y qué implica eso en el día a día? ¿Trabajas para mejorar las herramientas que usas en Dreams?
No. Entiendo que puedas pensar eso, pero no hacemos las herramientas que los jugadores usan en Dreams. Básicamente, el equipo de herramientas se compone de cuatro de nosotros y, en vez de hacer las herramientas que usan los jugadores, hacemos las herramientas que usan las Moléculas. Esto puede incluir crear o conseguir soluciones para arreglar algo que las Moléculas necesiten para hacer su trabajo. Así que tengo que hablar mucho con ellos y averiguar qué les está causando problemas, qué está ralentizando su trabajo y qué les impide alcanzar un ritmo de trabajo fluido, y luego descubrir si hay algo que podamos hacer para ayudarlos. De modo que trabajamos haciendo compilaciones para una integración continua, así que, cuando un programador añade código nuevo, tenemos sistemas que compilan ese código y avisan rápidamente al programador si rompió algo, ¡lo que es muy útil y bastante fácil de hacer! Estos sistemas pueden compilar el nuevo código rápidamente y ofrecérselo a los encargados del control de calidad o a los creadores de contenido, o a cualquiera que quiera esa compilación.
También creamos algunas pruebas automatizadas, de manera que, cuando llega el código, le hacemos una serie de pruebas para averiguar si hemos roto algo. También ayudamos con la localización, tomando el juego y traduciendo el nuevo texto, para que puedas jugar en francés o español y asegurándonos de que todo esté traducido. Gran parte de ello se trata de mover datos de un lugar a otro, debido a disputas por la gestión del código. Ese es el sistema que usamos para conocer el estado del código en todo momento y asegurarnos de saber qué cambió y por qué se cambió. Nos permite volver a compilaciones anteriores de una determinada versión para poder reproducir una versión que hayamos enviado a los jugadores, por ejemplo. Cualquier cosa que no tenga una asignación clara es para herramientas, lo que es genial porque hay mucha variedad y puedes hablar con un montón de gente diferente de todo el estudio.
¿Recibes muchas solicitudes de herramientas comunes, o todas son bastante diferentes, dependiendo de lo que se necesite?
Suelen ser bastante variadas. Como trabajamos con muchos departamentos de todo el estudio, las solicitudes que recibimos pueden ser muy diferentes. Hemos estado intentando actualizar nuestra documentación sobre cómo ocuparnos de las diferentes solicitudes que recibimos, porque hay algunas que se repiten mucho. Cosas como, "Tengo el típico error fatal y quiero símbolos para él, porque estoy intentando descubrir qué demonios está pasando". Así que ese es bastante común. Pero tenemos todo tipo de cosas aleatorias.
¿Y qué tipo de herramientas creas cuando la gente te hace peticiones?
A menudo, las Moléculas necesitan poder tener compilaciones rápidamente. Cuando empezamos a trabajar desde casa, en 2020, perdimos la red del trabajo, que era muy rápida. En la oficina podías descargar una compilación sin demoras, pero todos nos fuimos a trabajar a casa, con conexiones a Internet de diferentes calidades, así que tuvimos que trabajar en un puñado de mejoras en nuestra herramienta para distribuir compilaciones, para que usase menos ancho de banda y diseñar algunos códigos para intentar usar lo que ya tienes en el disco duro y descargar de la red solo lo que necesitas de verdad. Hay montones de cosas técnicas, pero soy una programadora, así que me gustan todos esas cositas técnicas. Antes era programadora de redes y trabajaba en todo tipo de problemas complejos e interesantes. Eso fue sobre todo cuando trabajaba en los juegos de carreras Burnout e intentaba que los autos tuvieran el mismo aspecto y el mismo comportamiento en la red.
¿Cómo terminaste trabajando en herramientas con unos conocimientos de programación de redes?
Bueno, al principio empecé como una especie de programadora general, y luego estuve un tiempo como programadora de IA, antes de pasar a la programación de redes propiamente dicha. Eso fue cuando hicimos Burnout 3 [en Criterion Games] y lo sacamos online. Luego pasé a Media Molecule, donde era programadora de red en los primeros días de LittleBigPlanet. Después de un tiempo, me tomé una licencia por maternidad y cuando volví, quería trabajar a tiempo parcial, dos días a la semana. Por desgracia, el puesto de programador de red no se ajustaba a esa semana de dos días, así que busqué otras cosas que hacer y me di cuenta de que había varios problemas que no se ajustaban a ningún departamento del estudio. Así que empecé a seleccionar esas tareas, y resultó muy útil que la gente tuviera alguien a quien acudir cuando necesitaba algo.
En realidad, el puesto evolucionó a partir de ahí. No hay que reinventar la rueda, sino encontrar cosas que no funcionan especialmente bien y retocarlas para que funcionen mejor. Es muy gratificante porque puedes ver la reacción de la gente al momento. Por ejemplo, si mejoras la distribución de una compilación para que la IU (interfaz de usuario) sea más bonita y puedas escoger tus compilaciones favoritas para ponerlas en lo alto de la lista, la gente te dará su opinión de inmediato; si alguien hace algo bonito, siempre te darán las gracias, lo cual es bastante agradable.
¿Estudiaste en la universidad para aprender a programar o lo aprendiste por ti misma?
Curiosamente, entré un poco por casualidad. Al principio, fui a la universidad para estudiar Matemáticas, y es lo que estudié el primer año, pero era muy difícil. Así que me cambié a Física durante el segundo y el tercer año, que era un poco más fácil. Sin embargo, no sé... no me resultaba interesante. Así que, después el tercer año de Física, me cambié de nuevo y estudié Ciencias de la computación durante un año. Tuve la enorme suerte de que mi universidad fue superflexible con lo que hice. Así que terminé estudiando eso y me gustó mucho... De alguna forma, encajó.
Me gradué en Ciencias de la computaicón y luego un amigo mío, que trabajaba en Big Blue Box Studios, en Fable, en ese momento, quería que lo visitase en Guildford. Así que fui un fin de semana y lo llamaron para ir a la oficina, porque tenían que cumplir una fecha de entrega; fuimos juntos y conocí a sus amables y simpáticos compañeros, y vi que tenían una escúter y comida en la oficina. Era genial. Pensé: "Ah, mira, videojuegos. Podría ser para mí". Así que envié mi CV a todas las compañías de videojuegos de Guildford y me respondieron de Criterion, donde terminé trabajando. Así que sí, tuve muchísima suerte y casi que entré a la industria sin darme cuenta.
¿Qué te parece lo más interesante de trabajar en Mm?
Sin duda, la gente. Me encanta trabajar con la gente de Mm. Son un grupo de personas muy inteligentes, pero también muy amables y adorables y muy creativas. Cuando hablas con la gente de Mm, siempre hablas con ellos primero como personas y luego por su puesto laboral, así que los consideras tus iguales. Me gusta mucho la atmósfera de que todos seamos primero personas, y luego compañeros del trabajo, y que cada uno pueda debatir sobre cómo van las cosas y qué problemas está teniendo y qué está pasando. Y, en realidad, como programadora de herramientas, resulta muy útil, porque generalmente, si alguien acude a ti y dice, "Quiero esto", es probable que no sea lo que de verdad quiere. Así que tienes que retroceder un poco y preguntar, "Bueno, ¿para qué quieres esto? ¿Qué quieres hacer? ¿Cuál es el contexto general de esta petición?". Porque entonces, cuando tienes el contexto, puedes averiguar si otras personas también querrán eso y cuál es la mejor forma de implementarlo, y qué quieren hacer realmente, en vez de lo que te han pedido.
Ya que llevas en Mm casi desde el principio, ¿cuál ha sido el proyecto en el que has trabajado y que más te ha gustado?
Sin dudas el primer LittleBigPlanet, porque fue todo un desafío. No sabíamos muy bien qué estábamos haciendo, así que todo se iba creando a medida que avanzábamos. Para ser honesta, no entiendo muy bien cómo todo se juntó para hacer un solo producto, porque había un montón de ideas interesantes y mucha experimentación. En ese momento aún era programadora de redes, pero me encantaba lo experimental y aleatorio que era; aunque creo que el equipo aún tiene esa aleatoriedad, en cierta medida.
Así que esa sería otra de mis cosas favoritas de Mm: que nos ponemos manos a la obra y empezamos a hacer interesantes cosas creativas que, además, se sienten colaborativas. Nunca sientes que es solo una persona con una gran idea. Hay una especie de núcleo de lo que intentamos hacer, pero también todos pueden aportar y contribuir con cosas que encajan en ese núcleo. Creo que es muy raro que en un estudio de videojuegos todos los miembros de la compañía tengan la posibilidad de ser creativos.
¿Tienes algún consejo o truco para alguien que podría estar interesado en entrar en la programación de herramientas?
Bueno, un título resulta útil porque, si está relacionado con la programación, como en Ciencias de la computación, te enseñará un montón de conceptos fundamentales que te ayudarán cuando intentes entender por qué tu código se comporta de una manera u otra. Si puedes entender el algoritmo que has escrito, o la estructura de datos que estás usando, y cómo eso usa la caché y por qué estás teniendo extraños problemas de rendimiento, el proceso de descubrir el fallo en tu código será mucho más simple.
Pero también creo que las jams del juego son una oportunidad genial para conocer personas y hacer contactos, además de probar cosas y entrenar tus habilidades creativas. Si soy honesta, darse cuenta de lo difícil que es terminar un juego es una verdadera revelación para saber si quieres permanecer en esta industria o no. Es muy fácil empezar a hacer un juego, pero es muy difícil terminarlo. Supongo que es un poco más fácil en la universidad, porque alguien diseñó el curso para enseñarte las cosas que necesitas saber, pero si estás aprendiendo por tu cuenta, tú tienes que encargarte de descubrir lo que tienes que saber y luego aprender sobre ello.
El personal de Mm parece tener un montón de objetos interesantes en sus escritorios. ¿Qué hay en el tuyo ahora mismo?
Hmmm. No tengo nada demasiado interesante en mi escritorio. ¿Qué tengo? Ah, tengo un libro de acertijos - Journal 29: Oblivion. Son algo complicados porque son, esencialmente, de pensamiento lateral. Primero tienes que averiguar cuál es el acertijo en sí para poder resolverlo. Pero son muy buenos si te gustan las adivinanzas. También tengo una postal de un amigo cuya página web actualicé a cambio de un libro con una postal dentro, y tengo mi Kindle y un broche de Mm. Diría que lo más interesante de mi escritorio es mi adorable taza. Es muy genial: se llama Copa de valor y tiene frases motivacionales, como: "Tú puedes"; "No tengas miedo"; "Hay que luchar, no escapar"; "Ve a tu ritmo"; "Eres más fuerte de lo que crees". También tengo un unicornio que dice, "Eres mágica y valiosa". Los unicornios hacen que todo sea mejor.
La Guía de usuario de Dreams es un trabajo en curso. Mantente al tanto de las actualizaciones porque añadiremos más artículos y recursos de aprendizaje con el tiempo.