Upload
ministerio-tic-colombia
View
157
Download
0
Embed Size (px)
Citation preview
• 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
I n t r o d u c c i ó n
• Colombiano (Medellín)
• Ingeniero de Sistemas
• Gamer (Street Fighter, RPGs, Destiny)
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
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
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
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
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
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
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
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
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
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
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
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
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”
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
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
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
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
M o t o r
• Empezar desde cero?
• Comprar la licencia de un motor existente?
• Modificar el motor existente?
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)
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
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
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
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
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”
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
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
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)
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
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
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)
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
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
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
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
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?
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
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)
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