2. • Esta presentación refleja la experiencia de un solo
ingeniero
• Decenas de personas trabajaron en los distintos juegos
hechos por Bungie
A d v e r t e n c i a s
3. A g e n d a
• Usted no sabe quien soy yo!
• Historia de Bungie
• Lecciones de Desarrollo
4. I n t r o d u c c i ó n
• Colombiano (Medellín)
• Ingeniero de Sistemas
• Gamer (Street Fighter, RPGs, Destiny)
10. M i n i B i o g r a f i a
• 2 años en Microsoft
• 1 año en Electronic Arts
• 11 años en Bungie
• Experiencia en desarrollo de Herramientas, Graficas,
Plataforma, Infraestructura, y mas recientemente de
tecnología en línea
12. B u n g i e
• Fundada en 1991 por dos amigos (Alex Seropian y
Jason Jones)
• Comprada por Microsoft en el 2000
• Se convierte en compañía independiente de nuevo en el
2007
• Responsable por la creación de muchos juegos, pero
mas conocida por las franquicias de Halo y Destiny
29. B u n g i e : H a l o
• Tiempo de transición
• Ya queríamos ser independientes y ser dueños de
nuestro propio Destino
• Comienza un nuevo capitulo para la compañía
31. D e s t i n y
• Juego de Acción en primera persona (First Person
Shooter)
• Enfocado en la experiencia Social
• Ofrece sistema de Inversión para mantener al jugador
interesado
32. D e s t i n y
• Proyecto a diez años
• Mundo cambiante (nuevas misiones, nuevo equipo y
armamento, etc)
• Contenido de Descarga, Expansiones, y mas en el
futuro
• Estudio con mas de 500 empleados
33. D e s t i n y
• El Viajero entra al sistema solar, y su llegada nos
permite florecer como civilización
• Empieza la edad de oro, y se colonizan otros planetas
• El Viajero es alcanzado por sus enemigos, los cuales
casi destruyen por completo nuestra civilización
• El jugador es la esperanza de el planeta tierra
38. A c t i v i d a d e s
• La idea era crear un juego con mayor accesibilidad
• El tipo de actividades están repartidas en distinto tipo de
inversiones de tiempo
• Los Patrols pueden tomar menos de 10 minutos
• Las misiones de la historia pueden tomar entre 30
minutos a mas de una hora
• Los Raids pueden tomar varias horas
39. S o c i a l
• Entorno basado en actividades sociales
• La gran mayoría de actividades están diseñadas para
ser disfrutadas tanto solo como en grupo
• El universo de Destiny siempre esta cambiando, y en el
camino se encuentran otros jugadores con distintos
niveles de progreso
41. B u n g i e : C u l t u r a
• “Dont make us kick your ass”
• Todo lo podemos hacer mejor nosotros
• Espíritu 100% independiente
• La mas importante es la gente, no la propiedad
intelectual
• La innovación puede ocurrir en cualquier nivel de la
compañía
42. B u n g i e : C u l t u r a
• La meta es crear los juegos que nosotros mismos
queremos jugar
• Ser los mas grandes críticos de nuestro trabajo
• Generar un entorno de colaboración y no de
competencia interna
• La calidad del juego es lo mas importante
43. R e t o s c u r i o s o s : M u l t i j u g a d o r
• Halo era un juego altamente competitivo
• Necesitábamos modelar de alguna forma la habilidad de
un jugador
• Investigamos distintos modelos
Sistema matemático interno
ELO (Ajedrez)
Glicko
44. R e t o s c u r i o s o s : M u l t i j u g a d o r
• También queríamos que los jugadores pudieran ver su
nivel de habilidad
• Utilizamos en Halo 2 un modelo basado en ELO
• Creo un problema muy curioso:
híper-competitividad + anonimato en línea + ansiedad
de perder = presión emocional negativa
45. R e t o s c u r i o s o s : M u l t i j u g a d o r
• Empezamos a trabajar en una nueva forma de
determinación de habilidad con Microsoft y la
Universidad de Cambridge
• El nuevo sistema se llamaba “TruSkill”
46.
47. R e t o s c u r i o s o s : M u l t i j u g a d o r
• También le dejábamos saber a los jugadores que tan
buenos eran en el mundo “leaderboards”
• Estos nos causo muchos dolores de cabeza
• Los jugadores se obsesionaron con su nivel y con el
numero de puesto
• Esto llevo a la creación de muchos grupos de hackers y
otros tramposos que solo querían ver su nombre como
numero 1
48. R e t o s c u r i o s o s : M u l t i j u g a d o r
• También creamos muchos sistemas de seguridad para
detectar a los tramposos
• Colección de datos con análisis post-mortem
• Todas los jugadores suben estadísticas como parte del
juego
49. R e t o s c u r i o s o s : M u l t i j u g a d o r
• Las lecciones mas grandes que aprendimos:
• Tener cuidado con los números que se presentan al
jugador ya que pueden crear experiencia negativas
• Intentar aprovechar el sector académico para
resolver problemas interesantes
50. D e s t i n y : D e s a r r o l l o d e M o t o r
52. M o t o r
• En el 2008 el Motor que teníamos (Blam) estaba
optimizado para el Xbox, y para procesadores
homogéneos
• Era claro que el futuro estaría lleno de procesadores
heterogéneos, y que el motor no estaba listo para esos
cambios
• Empezamos la evaluación de nuestras opciones
53. M o t o r
• Empezar desde cero?
• Comprar la licencia de un motor existente?
• Modificar el motor existente?
54. M o t o r
• Decidimos seguir desarrollando sobre el motor existente
(Blam)
• El Desarrollo estaba basado en estos principios:
- Multihilo, Multiplataforma
- Separacion de motor y lógica de juego
- Mantener todas la buena funcionalidad de Blam
(Networking, AI, Sandbox, etc)
55. C a m b i o s e n u n a D é c a d a
Halo 2 (2004) Destiny (2014)
Peak Engineering Team 17 70
Peak Development Team 115 480
Source Files 3,624 25,290
Lines of Code 1.5M 5.7M
Final Executable Size 4.9MB 26MB
Source Content Data 70GB 2TB
Content Build Size 4.2GB 20GB
56. M o t o r
• Los retos y las soluciones
• El motor tenia que estar funcionando 100% del
tiempo
• Cualquier problema de estabilidad nos costaría
mucho tiempo y dinero
• Decidimos mantener los nuevos y viejos
componentes al mismo tiempo
57. M o t o r
• Para los cambios mas grandes usamos un repositorio
aparte
• Era lo correcto pero fue un gran dolor de cabeza
• Cada integración entre repositorios tomaba días y a
veces semanas
58. M o t o r
• Lecciones
• Tener un buen plan de migración de código, mas que todo
si el alcance del proyecto y el numero de ingenieros
incrementa
• Utilizar buenas metodologías de producción y control de
calidad para mantener el nivel de calidad del código lo
mas alto posible pre y post integracion
59.
60.
61. M o t o r
• Para mas información técnica les recomiendo la
presentación de Chris Butcher en GDC 2015 “Destiny:
Six Years in the Making”
63. P r o d u c c i ó n
• Varios tipos de metodologías
• El programa primario de Desarrollo tenia metas cada 6 a
8 semanas
• Cada grupo de ingeniería manejaba su propio programa
dentro de esas 6 a 8 semanas
• Varias grupos usaron Scrum, otros un modelo mas
clásico de desarrollo en cascada
64. P r o d u c c i ó n
• No tomar ningún método de producción como Religión
• Probar varias metodologías y acomodarlas a las
necesidades del equipo
• En el grupo de Online teníamos metas cada 3 semanas,
cada meta requería un demo por ingeniero, y validación
de el grupo de control de calidad
65. P r o d u c c i ó n
• Les recomiendo que en cada paso de desarrollo tener
un producto con alto nivel de estabilidad
• A cada paso del proceso se debe tener la capacidad de
correr y validar el juego (o los sistemas de juego)
67. C o n t r o l d e C a l i d a d
• Otra area no tan glamurosa del desarrollo de
videojuegos
• En mi opinión esta es la formula secreta de Bungie
• Existe una cultura de calidad entre todos los miembros
de Bungie
68. C o n t r o l d e C a l i d a d
• Este principio es aplicado en todos los niveles de
desarrollo
• Tiene un costo: velocidad de cambio, hay que hacer el
balance con cuidado
• Usamos muchos sistemas automatizados para reducir el
margen de error humano
69. E s t a b i l i d a d
• Sistemas automatizados:
• Continous build/Continous integration
• Unit tests: Pruebas unitarias creadas por los ingenieros
para asegurarse que el código sea estable
• Gaunlet: sistema de validación liviano que se ejecuta
antes de que el código se haga parte oficial del
repositorio)
70. V e r i f i c a c i ó n e x h a u s t i v a
• Automation: Pruebas automatizadas del juego en las
que se verifican escenarios específicos (Torre, PvP,
Espacios Publicos, etc)
• BVTs: Build Verification Tests. Un grupo que se dedica
a hacer pruebas manuales y recomiendan versiones
especificas para desarrollo
71. D i s t i n t a s a u d i e n c i a s
• Pruebas internas para asegurarnos que la estabilidad y
el ritmo de juego sean positivos con varios jugadores
• Pruebas externas con distintas audiencia para hacer
pruebas de escala y diversión
• Friends and Family
• Alpha
• Beta
72. R e c o m e n d a c i o n e s
• Invertir en sistemas automatizados (Por lo menos
Continous Build)
• Asegurarse que los creadores de contenido nunca estén
bloqueados
• Utilizar todos los recursos posibles para crear criticas
constructivas del juego
73. L a I n d u s t r i a d e V i d e o j u e g o s
• Primer problema: Como aprendo a crear juegos?
• No existía ningún tipo de documento que describiera el
desarrollo de juegos profesionalmente
• Y todas las compañías mantenían un nivel muy alto de
confidencialidad
74. L a I n d u s t r i a d e V i d e o j u e g o s
• Segundo problema: Como entro a una compañía de
juegos?
• La industria con el problema de la gallina y el huevo
• Te piden experiencia en juegos para contratarte
• Como se gana experiencia si no te contratan?
75. B u s c a n d o E x p e r i e n c i a
• La creación de Demos, Juegos Independientes, y
contribuciones a proyectos de código abierto generan
esa experiencia
• Le recomiendo mucho a los que están empezando que
sigan con sus proyectos personales
• Se deben seleccionar los proyectos con cuidado y hay
que ser realistas en lo que se puede lograr
76. B u s c a n d o E x p e r i e n c i a
• Los primeros proyectos que quise hacer siempre tenían
alcances imposibles (Motor completo, nueva
arquitectura grafica, simulación física, editor, sistemas
de conexión sobre redes, etc.), esto nunca se
materializo
• Si fuese a empezar de nuevo escogería algo mas
pequeño (i.e. sistema de conexión sobre redes en un
juego existente)
77. U l t i m o c o n c e j o
• Generar ideas es fácil
• El truco esta en la ejecución
• Generar buenas ideas bajo las restricciones que vienen
con producción es donde se define si el juego va a ver la
luz del día
• Siempre hay que trabajar con limites