Produccion y desarrollo de un videojuego


Published on

  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • En esta presentación tratare de explicar sobre algo muy curioso que encontré en el INTERNET
  • En esta presentación intentaremos explicar a grandes rasgos la producción y desarrollo de videojuegos atacando al proceso y los roles involucrados además de las metodologías que se utilizan, en particular, las metodologías ágiles.
  • Hay otras:
    Se le da una fuerte importancia al diseño del juego para cumplir con los fines preestablecidos (divertir, educar, etc).
  • Acción: actuar sin pensar dos veces
    Aventura: la historia importa
    Estrategia: elecciones no triviales, podría verse como el inverso a accion.
    Simulación: ejercicios de optimización
    Puzzle: pensar de forma analítica
    Juguetes: sirven solamente para divertirse
    Educacional: experimentar para aprender
    Obviamente, esta no es una lista exaustiva, pero la mayoría de estos pueden ser combinados para dar lugar a nuevos géneros.
    Alone in the Dark es en forma primaria un juego de Aventura que combina elementos de accion y juegos de puzzle.
    Accion: actuar sin pensar, mucha adrenalina
    nota: esta charla va a tener mucha acción por ejemplo :P.
    Aventura: lo que importa es seguir una historia
    Estrategia: las elecciones no son tan triviales, puede verse como el opuesto a accion.
    nota: no quiere decir que no se den juntas.
    Simulación: reflejar un problema del mundo real.
    Educacional: la finalidad es aprender, por lo general a partir de experimantar cosas.
  • Las etapas ofrecen distintas ganancias. Se puede ganar mas en ciertas etapas que en otras.
    En industrias maduras las compañías tienden a especializarse en una etapa en particular.
  • Es la estrategia o el plan que tiene la empresa para generar ingresos.
  • Advantages
    The consumer must pay upfront before being able to play.
    A boxed copy can be bought to be given as a gift.
    Can sell boxed copies of games to consumers who are already familiar with online casual games but wary of downloading and/or using a credit card online.
    Exposes a casual game to new audience who isn’t familiar with the online scene.
    Boxed games can include marketing material to strengthen relationships with consumers, establish a direct sales channel, and so on.
    Can create bespoke games displays in non-traditional retailers, such as department stores (albeit for a significant price).
    More scope to upsell via attractive premium products or two-in-one bundles.
    Cost of manufacturing physical goods and distribution reduces margins.
    Physical product also means far greater risks of loss compared to online distribution, since tens to hundreds of thousands of copies of the games must be manufactured ahead of any sales.
    Casual games are usually too simplistic to impress via screenshots on boxes, which is traditionally a key retail sales tool.
    Retail sales could theoretically cannibalize more profitable online sales.
    Hard to stand out among hundreds of games in traditional game stores.
    Unless the game is an ongoing hit, it will have a limited shelf-life compared to online, where even if a game leaves a portal’s prime front page slot it can be available indefinitely elsewhere on the site.
    Consumers cannot try before buying, which puts greater weight on the franchise and the appeal of the packaging, rather than compelling gameplay.
    Store staff unlikely to be evangelists for casual games.
    Different business procedures, which means a big learning overhead for new entrants, or more likely the need to work with (and lose margins to) a third-party specialist.
    Big carbon footprint compared to digital distribution.
  • Comentar de los avisos estáticos y los avisos dinámicos dentro de los juegos.
    Consumers play casual games for free in a Web-browser or via a download, with advertising displayed around the game-in-progress, and/or before the game begins and during breaks in play.
    Several different forms of game-related advertising revenue streams have popped up in recent years. Firms such as Massive, IGA and Double Fusion do big business in in-game advertising for clients such as EA, Activision, THQ and Microsoft. Game ad agencies typically serve up static ads (ads that ship with a product and never change) or dynamic (ads that are updated in real time via the net) within game products that are contextually appropriate for advertising (i.e. sports, racing, or contemporary shooters).
    The size of this conventional in-game advertising market is currently pegged at $100-200M, according to well-placed industry sources. However, the number and quality of games with dynamic advertising enabled is escalating dramatically. So much so that Yankee Group predicts the in-game ad market will reach $732M by 2010.
  • Free-to-play downloadable games are distributed with restrictions such as time limits or cut-down features, with the aim of enticing consumers to pay to unlock the full version.
    Modelo muy utilizado para los videojuegos casuales mediante una versión descargable desde los portales, una empresa que utiliza este modelo es Mystery Studios.
    Este modelo anteriormente se denominaba Shareware o demo y se distribuía p. ej. en cd’s que venían con revistas de videojuegos.
    No risk to consumers of trying a game (except their time).
    Proven business model with clear value chain in place, which means developers, publishers and distributors can concentrate on improving their performance rather than reinventing the wheel.
    Casual games consumers are now well-acquainted with Try Before You Buy downloads, and a sufficient number are comfortable making credit card payments.
    Relatively level playing field – with a sufficiently great title, any developer can gain access to the established market.
    Good for viral spread if compared to a model requiring purchase before any play, since word-of-mouth recommendation from friends easily leads to more risk-free trials.
    The conversion rate of trials to sales is low, with less than 1% typical.
    The huge number of free trial versions of games now available means game-hopping consumers get to enjoy lots of content for free, without the developers seeing a penny for the unconverted play.
    Saturation means gamers have less time to try new games.
    The hit-driven nature of the model means publishers and developers have poor earnings visibility. (Portals/retailers win whatever is being downloaded).
    Some casual consumers remain wary of installing software downloaded from the Internet onto their PCs.
    Full purchase requires a credit card, ruling out sales to younger consumers.
    The dominance of portals means they can dictate the terms.
  • Gamers pay an entry fee to challenge each other online, typically either head-to-head or for position in a tournament. The winner gets a cash prize, made up of all the entrance fees less a percentage taken by the website hosting the game.
    Cash business, with players committing funds up-front.
    No distractions to the core game experience, unlike with advertising.
    Can attract consumers who like competition but who would be disdainful of ‘merely’ playing games.
    Players provide the main incentives, in terms of competition and the cash for prizes.
    Can tap into territories where anti-gambling legislation has left a gap in the online entertainment market.
    Success breeds ongoing success, as a larger membership base means players are more likely to find appropriately-matched opponents to play against.
    Simple games seem to work best, which caps development costs –attempts to create online skill-based tournaments with more hardcore games have so far failed.
    Skill-based games can have a long shelf-life.
    Flexible promotion and marketing opportunities: it’s easy to introduce special prizes or extra big money tournaments.
    The market has been consolidating for years.
    A large audience is required to provide well-matched games, which is very difficult for new entrants to acquire.
    Ensuring games minimise luck and are based on skill is an extra complication for game designers.
    Security issues are critical: most casual games sites only need to be extra vigilant at the time of purchase, but for skill game providers who have a great deal of money in aggregate flowing through their systems, detecting and deterring cheating is required throughout hosting and gameplay.
    Skill-based game sites generally develop their games in-house to ensure their integrity, which results in a truncated value chain compared to other casual game business models.
    The viability of online skill-based gaming is more likely to be affected by legalisation than other methods of monetization.
  • Surgen en respuesta a los bajos porcentajes de consumidores que compran más de un videojuego usando el modelo probar antes de comprar.
    En el modelo todo lo que pueda consumir, el consumidor paga una cuota fija por mes y tiene la posibilidad de jugar en forma ilimitada a cualquier juego incluido en la subscripción.
    En compras por mes, el consumidor paga una cuota fija por mes obteniendo uno o más juegos gratis y descuentos al adicionar nuevos juegos.
    En estos modelos las ganancias son repartidas entre el desarrollador y el publisher según la cantidad de partidas que se comienzan para un título en particular. Esta es la única medida que se puede tomar con relativa precisión.
    Siendo miembro vip el consumidor paga una cuota fija por mes y obtiene privilegios especiales (acceso a ítems o pantallas nuevas).
  • Lo bueno de este modelo es que plantea el formato de juego gratis, lo cual lleva a conseguir una comunidad muy grande de jugadores y atraer posibles suscriptores. Lo malo es que puede llegar a crecer mucho con jugadores que no pagan y esto tiene un costo de mantenimiento que no se está financiando por si solo.
  • Las ganancias se ven distribuidas entre todos los elementos de la cadena de valores, a pesar de vender muchas copias, el desarrollador probablemente vea poca ganancia.
  • Se distribuye el juego de forma gratuita y se cobra por cada adición que se quiera, tanto en contenido como en personalizacion, etc.
    Un usuario puede gastar 10 mil dólares en un mes si así lo desea.
    El hecho de no cobrar inicialmente permite un fuerte crecimimento al comienzo.
    Los jugadores pagan por extra y no lo sienten como un costo sino como un beneficio.
    Pueden haber compras recurrentes (comprar municiones por ejemplo)
    Algunos jugadores terminan gastando mucho más usando este modelo que si hubieran comprado el juego inicialmente por 20 dolares
    Permite combatir la pirateria ya que el juego es gratis y las micro transacciones son seguras
    Mientras se siga creando contenido y siga habiendo audiencia, la ganancia puede crecer indefinidamente.
    No hay plata al momento de la compra (ya que no hay compra)
    Pueden requerir sistemas complejos para manejar las transacciones y hacerlas seguras.
    The cost structure is hard to judge, as there’s no consensus in the West; gamers can easily feel ripped off if an upgrade is too pricey.
    Alternative business models in the West mean gamers can feel that microtransactions mean they’re paying for something that used to be ‘free’.
    Can require more sophisticated backend systems to manage player accounts, compared to other models.
    An unsuccessful game may earn even less than with other models, since all the microtransaction opportunities come after the gamer has tested the presumably unsatisfactory game experience.
  • Los usuarios compran un jueguete de Webkinz que viene con un código para activar una mascota virtual, jugar trivias y distintos juegos online para niños.
  • Clocking in at last on the list is of alternate revenue streams is player donations. Raph Koster recently blogged about meeting up with the Kingdom of Loathing guys at ComicCon in San Diego. Raph reported that while KoL’s revenue is “definitely indie,” their primary revenue stream of player donations is a sustainable one.
    According to Wired, the donation revenue has allowed creator Zack Johnson to quit his day job and hire six employees to help improve and maintain the product.
    That’s what Maid Marian founder Gene Endrody would call a “lifestyle business,” but I suspect most of us wouldn’t scoff at it or any of the above revenue models.
  • Tengamos en cuenta que no tiene por que haber una correspondencia uno a uno entre roles y personas. Por ejemplo el Game Designer pueden ser dos personas. Además una persona puede realizar más de un Rol.
  • El equipo de diseño esta compuesto por el Diseñador del Juego, Diseñadores de Niveles y el escritor. A pesar de que todos en el equipo contribuyen al diseño, este grupo es el que establece el diseño orignial de juego.
    Disenador del Juego
    Responsable del concepto general.
    Diseña la mecánica, gameplay y factor diversión del juego
    Si es el Líder de Diseño evalúa nuevas ideas determinando si pueden ayudar o perjudicar al juego, y si serán tenidas en cuenta.
    Encargado del documento de diseño del juego.
    Diseñador de Niveles
    Construye la arquitectura interactiva (tanto edifcios como terreno natural) para cada nivel del juego.
    Diseño de campañas o misiones
    Este rol es apropiado para juegos de rol o estrategia, en los que el disenador utiliza un editor de ambiente específico del juego para colocar terrenos y recursos.
    En todos los tipos de juego, el diseño de niveles puede incluir establecer objetivos, habilidades y comportamiento de los enemigos.
    Escritor de guiones/historia
    Investigan y crean la historia de trasfondo
    Componen el texto en pantalla, escriben los dialogos y las voces para los personajes en el juego
    Crean el guion de las escenas para las introducciones y transiciones.
    Escribe los manuales o libros de ayuda del juego.
  • El diseño del juego es plasmado por parte de los programadores. Transforman las ideas, arte y música y en un programa de software.
    Programador junior
    Nivel inicial de un programador.
    Debe demostrar talento, habilidades para codificar y motivación.
    Agrega pequeños elementos al juego.
    Tiene conocimientos báscios de programación de AI, programación gráfica, matemáticas 3d, físicas, sistemas de colisiones, teoría de diseño de juegos
    Programador líder
    Es parcialmente un gerente y parcialmente un programador.
    Debe tener habilidades para liderar el equipo y actuar como nexo entre el productor y el equipo de programación.
    Toma decisiones de análisis y diseño de software, que tecnologías usar y asigna tareas a los demás programadores.
    Es responsable de la estructura general y la implementación de todo el código del juego.
    Programador de herramientas/motor (infraestructura)
    Ayuda a diseñar y construir la base del motor en el cual correrá el juego.
    Debe conocer conceptos matemáticos, gráficos, detección de colisiones.
    Tiene conocimientos sólidos de APIs gráficas, conceptos 3d y física.
    Construye herramientas para ayudar a los artistas y diseñadores a interactuar con el motor.
    Se escriben scripts que permiten especificar acciones a los personajes controlados por computadora
    Se diseñan plugins de programas gráficos para que los artistas puedan integrar las texturas y fondos en el juego
    Se crean editores de mapas y niveles.
    Debe tener sólidos conocimientos del motor del juego y del sistema objetivo (PC, consola).
    Programador gráfico/efectos especiales.
    Deben ser expertos en las técnicas de programación gráfica
    Deben saber optimizar los algoritmos a modo de aprovechar mejor los recursos dedicados al area gráfica.
    Se requiere de bastante experiencia ya que sus principios se basan en matemáticas y el conocimiento de particularidades de APIs gráficas.
    Programador o Ingeniero de audio.
    Escriben las herramientas de software que soportan los sonidos y música en los juegos.
    Debe conocer los procesos de producción, grabación y mezcla de audio, estándares de compresión, procesamiento de señales y APIs de música interactiva
    Programador de inteligencia artificial.
    Proporciona inteligencia a las entidades del juego escribiendo las reglas que manejan su comportamiento.
    Es un trabajo en el que se debe determinar la mejor forma de hacer que las cosas parezcan inteligentes y a la vez minimizar los costos de procesamiento.
    Conocimientos :
    Búsqueda de caminos , patrones y árboles de decisión, autómatas deterministas, maquinas de estados finitas, redes neuronales, algoritmos genéticos, entre otros
    Programador de redes
    Los juegos multijugador tienen desafíos únicos basados en un conjunto de variables: el sistema de usuarios, las capacidades
    cambiantes de las redes, la arquitectura del servidor del juego, sistema de facturación, aspectos de seguridad, entre otros.
    Se deben conocer conceptos como: arquitecturas (p. ej. cliente/servidor), seguridad de redes, protocolos de red, concurrencia,
    sincronización, APIs de red y aspectos de administración y manejo de bases de datos.
  • Artista junior
    Constructor de objetos 3D
    Diseña gráficamente objetos físicos como vehículos, muebles, armas, etc
    Artista de concepto
    Trabajan con el equipo de diseño para crear el aspectoConcept artists work with the designer to create the look of the game. You make multi-
    ple sketches of characters and settings, trying to bring the designer’s vision to lifePuede crear historietas para las secuencias cinemáticas
    Debe poder esbozar los elementos importantes de la escena rápidamente.
    Probablemente no cree arte que vaya al juego, pero es responsable por la apariencia básica de muchas cosas.
    En las tormentas de ideas de diseño dibuja las ideas en el momento.
    Crean la mayoría del arte que aparece en el documento de diseño.
    Artista de texturas
    Hay diferentes técnicas utilizadas comunmente para crear texturas, y necesita conocerlas todas y ser capaz de escoger
    la mejor para cada trabajo en particular. Algunos de los métodos más comunes es la manipulació de fotografías, pintura
    a mano, aplanar modelos detallados, texturas algorítmicas y mapeo de relieves.
    Artista de (CUTSCENE)
    Sigue la historieta generada por el artista de concepto para generar una secuencia de cinemática de alta calidad, tanto
    con animaciones pre renderizadas, o con un script que crea la escena utilizando el motor del juego. Las cutscenes no interactivas
    requieren movimiento de camara virtual, iluminación, animación de personajes y objetos, efectos especiales, fondos y utilería
    Constructor de personajes
    Crea los personajes del juego, que pueden ser modelos de baja o alta resolucion dependiendo
    de la plataforma y del diseno del juego.
    Trabaja de cerca con el artista de concepto y los programadores
    Animador de personajes
    Constructor de niveles
    Trabaja de cerca con el disenador de niveles para colocar estructuras, objetos, y personajes en el nivel del juego.
    Muchas compañías utilizan herramientas propietarias para crear el mundo en lugar de paquetes 3D, por lo que no esta tan difundido como otros roles.
    Director de arte y animaciones
    El director de arte es el que conoce todas las herramientas, tecnologías y métodos,
    Trabaja de cerca con el productor y diseñador para manejar el desempeño del equipo de arte.
    Técnico de arte
    Ayuda a los equipos de arte a vencer los obstáculos tecnológicos y de software.
    Es el comprador de hardware y software sirviendo como enlace con las compañías de software gráfico para ayudar a decidir que paquetes de software comprar.
  • Ingeniero/diseñador de sonidos
    Crea todo el material de audio en el videojuego, excepto la música.
    Genera los efectos de sonido
    Trabaja junto con los equipos de diseño y programación
    Son quienes componen la música
  • Verificador del juego o Game Tester
    Verifica balance y features del juego y reporta errores.
    Es un experto en el juego y puede notar cualquier desviación del diseño y funcionamiento incorrecto
    Líder de Verificación
    Lidera el equipo de verificación.
    Arma el plan de verificación junto con diseñadores y productores
  • .
  • La velocidad con que evoluciona la tecnología hace que constantemente se deba estar aprendiendo y adaptando sin permitir tener un conocimiento y una infraestructura estable.
    Los requisitos suelen ser muy cambiantes debido al avance tecnológico, factores de mercado como tiempos de salida, juegos de la competencia o la búsqueda de diversión en el producto.
    Los requisitos son muchas veces difícil evaluar (diversión, atractivo gráfico).
    El desarrollo se basa en la interacción de varias disciplinas por lo que aumentan los problemas en la comunicación, además con distintas formaciones.
    Sobre todo afecta al campo feedback que necesita el diseñador del juego.
    Búsqueda de perfección en el contenido audiovisual, gameplay, cantidad y calidad de características, entre otros. Esta búsqueda es una motivación para equipo de desarrollo y del proyecto, pero lleva a retrasos en plazos planificados.
    Concentración de conocimientos específicos en pocas personas.
    Salvo un par de estos, la mayoría son dificultades en general de la industria de los videojuegos.
  • La velocidad con que evoluciona la tecnología hace que constantemente se deba estar aprendiendo y adaptando sin permitir tener un conocimiento y una infraestructura estable.
    Los requisitos suelen ser muy cambiantes debido al avance tecnológico, factores de mercado como tiempos de salida, juegos de la competencia o la búsqueda de diversión en el producto.
    Los requisitos son muchas veces difícil evaluar (diversión, atractivo gráfico).
    El desarrollo se basa en la interacción de varias disciplinas por lo que aumentan los problemas en la comunicación, además con distintas formaciones.
    Sobre todo afecta al campo feedback que necesita el diseñador del juego.
    Búsqueda de perfección en el contenido audiovisual, gameplay, cantidad y calidad de características, entre otros. Esta búsqueda es una motivación para equipo de desarrollo y del proyecto, pero lleva a retrasos en plazos planificados.
    Concentración de conocimientos específicos en pocas personas.
    Salvo un par de estos, la mayoría son dificultades en general de la industria de los videojuegos.
  • Se pueden atacar en distintas manera, cambios en las formas de trabajo (metodos), cambios en los procesos (hay una cadena de comunicación para algo simple, se cambia y se comunican directamente, etc.), cambios en las herramientas (se crea una herramienta que permite modificar fácilmente los modelos3d y compila automaticamente para el formato utilizado en el videojuego), o tambien usando enfoques y paradigmas nuevos (se debe escribir una prueba antes de hacer código).
  • Como siempre plantear el hecho de que no todo es blanco o negro.
    Existen dos extremos, los modelos que intentan predecir desde el comienzo todo y se basan en que todo tiene que estar planificado y una vez determinado esto cualquiera puede implementar. Y luego está el extremo de lo ágil, modelos que se basan en que todo puede cambiar y lo puede hacer rápidamente por lo que hay que estar dispuestos a adaptarse a este cambio.
  • BDUF: big design up front.
  • Facilidad de adopción por el equipo de desarrollo ya que el método es muy utilizado en la industria en general.
    Facilita la administración del proyecto, ya que siempre sabemos en que etapa del proyecto nos encontramos.
    Aplicable en equipos de desarrollo grandes.
    Fácil aplicabilidad en proyectos que se basan en modificaciones pequeñas de productos ya realizados (secuelas de juegos).
  • No responde bien ante cambios, tanto tecnológicos como de requisitos ya que las decisiones se toman al comienzo y luego se construye en base a eso. En otras palabras, el costo del cambio crece a medida que transcurre el desarrollo.
    La comunicación entre distintas áreas suele ser a partir de documentos por lo cual se producen errores de interpretación que llevan a bajar la calidad del producto final y a caer fuera de los plazos.
    Ningún objeto puede ser considerado completo hasta que todas las dependencias de ese objeto hayan sido construidas, esto genera un problema principalmente para los diseñadores de juego que necesitan validar si una característica es divertida o no lo antes posible.
    Cuando hay departamentos de desarrollo que dependen uno de otro se genera una situación de cuello de botella.
  • Esto implica que se intensifique la interacción directa p. ej. entre un gamedesigner y un lead programmer (o programador lider o arquitecto) disminuyendo la dependencia a los documentos pero no dejándolos de lado, o la dependencia de 3eros en interacciones para discutir pequeños detalles. (p. ej. Tener que interactuar con un lead artist para que interactúe con el lead programmer para que interactúe con el programmer).
    Es muy importante en videojuegos ya que no se sabe que tan divertido o no puede ser una idea por lo que tener un prototipo inicial del juego (posiblemente evolutivo) es muy útil, pero esto no implica que el juego no tenga que estar definido previamente.
    P. ej. Cuando se tiene un cliente externo, este cliente probablemente determine que es lo que le parece o no divertido por lo que es de mucha utilidad tener una fluida colaboración para adaptarse a sus necesidades. Hay casos en donde se gana mucha confianza y el cliente prefiere no participar ya que sabe que el contenido probablemente sea lo que busca, pero para proyectos grandes esto puede ser un riesgo.
    Importante cuando hay que decidir si una característica agrega valor o no, o si es divertida o no, por ejemplo, puede pasar que incialmente se esté buscando un juego determinado pero sobre el desarrollo se descubra un juego más divertido y se apunte a desarrollar este en vez del inicial. (caso del geometry wars p.ej.)
    Estas prácticas son graduales de un extremo al otro, ser extremistas tiene sus desventajas.
  • Compromiso: por parte del cliente a participar del desarrollo, por parte de los desarrolladores a implementar y estimar los tiempos correctamente, etc.
    Enfoque: no distracciones, no desviarse.
  • La idea es no entrar en mucho detalle, el que esté interesado en más que vaya a la pagina.
    Scrum master: es un rol que toma un miembro del equipo, hace de nexo o puerta de enlace entre los desarrolladores y el cliente/administracion, etc. Protege al equipo de desarrollo y es el encargado de remover los impedimentos que estos tengan.
    Scrum team: usualmente son equipos de 6 a 10 personas (promedio) y la particularidad es que no incluyen roles especificos como verificador, diseñador de interfaces gráficas, etc.
    Backlog de producto: conjunto de todas las funcionalidades que se desean para el producto final, usualmente cuando comienza el desarrollo no está claro muchas de estas. Se parte por definir en detalle las cosas que si se tienen muy claras o son muy obvias y las demás dejarlas definidas vagamente que cuando llegue el momento se pasaran a detallar (cambia durante el desarrollo).
    Sprint: una iteración de scrum, de 2 a 4 semanas usualmente. El equipo de desarrollo se compromete a implementar un subconjunto de funcionalidades del product backlog, denominado sprint backlog según sus estimaciones. Durante este período no se puede modificar este subconjunto, el equipo está protegido y no hay interacción con “el mundo exterior” hasta finalizar el sprint.
    En las reuniones de planificacion del sprint se determina el sprint backlog, en donde se eligen conjunto al cliente o product owner el subconjunto de funcionalidades del product backlog que se podrán hacer en ese sprint. Luego se generan varias tareas que en su totalidad cumplen con una funcionalidad (se desagrega o se baja a tierra).
    Reuniones diarias: la idea es que cada miembro plantea al scrum master que es lo que va a hacer a continuacion, si se quedó trancado en algo tiene que explicar en que y porque le parece, el scrum master toma medidas luego de la reunión para poder continuar sin problemas.
    Revision: se plantea lo logrado en el Sprint, tipicamente en formato demo de producto.
  • 1) Al ser iterativo e incremental se obtienen versiones jugables del producto en intervalos regulares de tiempo lo cual reduce el riesgo de que cambien los requisitos y permite mayor retroalimentación tanto a los diseñadores como a los clientes. (mucho feedback)
    2) Distribuye conocimientos entre los miembros del equipo al imponer que cada mimbro participe, tome responsabilidades y se comprometa, y al no tener roles definidos.
    3) No significa saber con exactitud el alcance sino que se va acordando sobre la marcha, es decir, puede pasar que a la mitad del desarrollo (originalmente planificado) ya se tiene un videojuego como se deseaba, por lo que se puede acortar el alcance sobre la marcha.
    4) De la mano con la anterior, permite abandonar características sobre la marcha o dar foco a otras que al comienzo no parecían pertinentes.
  • Implica cambios organizacionales, además para comenzar es bueno con equipos chicos.
    A veces el cliente no se siente afín a participar constantemente, por ejemplo, por tiempos acotados.
    Mejora con la experiencia, pero al comenzar a adoptar scrum es muy complicado definir exactamente que hay que hacer pero sin ir a mucho detalle.
    Está pensado para sacar cosas rápidas, desarrollos cortos, es lo que estimula al equipo, en desarrollos muy duraderos puede ser difícil mantener el espíritu inicial
    Se puede, es escalable (hay casos que lo prueban) pero requiere de mucho conocimiento de la metodología.
  • Hay varias empresas que utilizan Scrum hoy en día, algunas de ellas como Highmoon Studios o Large Animal Games comparten sus experiencias en artículos publicados en Gamasutra o en sus propios blogs de desarrollo.
    Mirror's Edge is an upcoming first person action-adventure video game being developed by EA Digital Illusions CE (DICE) for a simultaneous release on PlayStation 3, Xbox 360, and Windows-based PCs on November 11, 2008.[3]
  • Comunicación se ve favorecida por la interaccion que involucra, cliente dentro del equipo, equipos pequeños, etc.
    Simplicidad: se enfoca en resolver las cosas de manera simple (no pensar super soluciones a los problemas)
    Respeto: se promueve trabajando en conjunto, pair programming es una practica que ayuda para ello.
    Coraje: al tener practicas como tener tests automatizados entre otras se promueve el coraje a tomar desiciones importantes, realizar cambios en el software sin tener miedo a romper todo, etc.
    Retroalimentacion: es muy importante tener feedback de cada parte del desarrollo, tanto de lo que está funcionando o no según las pruebas automatizadas como del cliente sobre que opinion tiene sobre lo que hay.
    Pair programming: implica trabajar a la par dos programadores, cada uno tiene el control del pc y mientras programa discute con el otro las mejores soluciones y simples a los problemas.
    Test first programming: implica definir una prueba y luego escribir el código que hace que esta prueba pase correctamente (mas adelante se ve TDD)
  • Distribución del conocimiento entre todos los miembros del equipo gracias a prácticas como programación en pares.
    Entrenamiento de programadores con menos experiencia por parte de los que tienen más experiencia.
    Al hacer sesiones de programación en pares no se puede chequear el correo electrónico, contestar teléfonos, explorar la web, etc.
    La interacción frecuente entre los clientes y los diseñadores permite adaptar el desarrollo del videojuego a las necesidades de ambos y a lograr el resultado esperado.
  • Necesitan de frameworks para realizarlas (p. ej. verificación) como de voluntad propia (programación en pares, realizar pruebas antes del código, diseño simple, etc.)
    Las prácticas están pensadas principalmente para programadores y no necesariamente consideran otros roles como artistas gráficos, sonidistas, diseñadores, etc.
    Difícil aplicación en equipos de desarrollo numerosos. La solución consta de separar en grupos pequeños siguiendo distintas estrategias como separar por funcionalidad, por características de juego, etc.
  • Starmada X (el proyecto que desarrollaron) es más bien un juego de tablero de combates entre naves espaciales.
    Además sabemos de casos como el de Highmoon Studios que lo aplica junto con Scrum.
  • Hablar de las tecnos y herramientas disponibles como motores gráficos, etc, etc.
  • Se decidió no pasar al detalle de cada una ya que son parte de los temas que se darán en las otras presentaciones.
    En particular rendering en tiempo real.
  • Se decidió no pasar al detalle de cada una ya que son parte de los temas que se darán en las otras presentaciones.
  • Render monkey a la izquierda y Blender a la derecha.
  • Seleccionamos estos dos en particular, pero hay otros.
  • Caso de ejemplo: en nuestra tarea de cga dejamos el cargador de escenas como tarea menos prioritaria, lo cual nos jugó en contra ya que cada vez que queríamos una nueva escena teníamos que recompilar todo el código de nuevo, y eso quitaba mucho tiempo.
  • No vamos a explicar en detalle lo que es testdriven development, solamente nombrarlo y plantear para que sirve o no sirve (o para que puede servir).
  • Sobre la documentación sirve ya que usualmente el ambiente de videojuegos es más informal que el de software convencional por lo que se documentan menos cosas con respecto a las interfaces de las clases, etc.
    Lo de reducción de las sesiones de debugging sirve ya que los videojuegos son aplicaciones interactivas complejas para realizar debug.\
    Al elaborar las pruebas primero el programador no siente que las pruebas destruyen el código.
    Se tiene mucha retroalimentación sobre que está funcionando y que no.
    Sirve como forma de documentación ya que las pruebas demuestran lo que el sistema debe ser capaz de hacer.
    Ayuda al realizar reconstrucción logrando un mejor diseño ya que se pueden realizar modificaciones y al correr las pruebas se sabe si se introdujo un error o no.
    Reducen tiempo de debugging sobre el juego ya que la mayoría de los errores son detectados por las pruebas automatizadas.
    Proveen una medida del progreso del proyecto.
  • Difícil de adoptar ya que no es intuitivo realizar pruebas antes que codificar, muchas veces no se sabe como escribirlas o que probar específicamente, lo cual lleva a frustraciones por parte de los desarrolladores.
    Gran cantidad de código extra.
    Difícil de utilizar para probar características como diversión, atractivo gráfico, componentes de la interfaz gráfica.
    Requiere de un framework para correr las pruebas de forma automatizada.
  • Para lo de las plataformas plantear el hecho de la dificultad por no poder asegurar que al pasar una prueba en una plataforma no necesariamente ande en la otra.
    Para el punto de gráficos y audio plantear aquel que planteaba probar los tamaños de los archivos, las resoluciones y los formatos (para que cumplan con lo preestablecido) antes de poder ejecutar el juego (esto sirve para plataformas limitadas)
    Difícil de utilizar en sistemas no deterministas, una forma de intentar evitar este problema es plantear el no determinismo con ciertas entradas deterministas que prueban casos clave.
  • Produccion y desarrollo de un videojuego

    2. 2. TEMAS 1. Introducción 2. Modelos de negocios 3. Equipo de desarrollo 4. Ciclo de vida 5. Problemas en el desarrollo de videojuegos 6. Metodologías de desarrollo 7. Tecnologías y herramientas 8. Enfoques
    3. 3. 1. Introducción
    4. 4. ¿QUÉ ES UN VIDEOJUEGO?  Un juego es “una actividad competitiva en donde se quieren alcanzar un conjunto de metas, siguiendo un marco de reglas preestablecidas.”  Su finalidad puede ser principalmente divertir o educar, pero no quedan acotados a estas solamente.  Un videojuego es un juego que se presenta en un software sobre distintas plataformas.
    5. 5. ¿QUÉ DIFERENCIAS HAY CON EL SOFTWARE CONVENCIONAL?  Se le da una muy fuerte importancia al contenido audiovisual.  Se necesita de un equipo multidisciplinario de desarrollo.  Suele ser más motivador para los desarrolladores :D.
    6. 6. ¿QUÉ GÉNEROS DE VIDEOJUEGOS HAY?  Acción  Aventura  Estrategia  Simulación  Puzzle  Juguetes  Educacional
    7. 7. ¿CUÁLES SON LAS PLATAFORMAS DISPONIBLES?  PC: Windows, Mac OS, Linux, otros  Web  Consolas: Playstation2, Playstation3, Playstation Portable, Nintendo Wii, Nintendo DS, Xbox 360, otros.  Dispositivos móviles: Celular, Pocket PC, Palm, otros.  Otros
    8. 8. 2. Modelos de negocios
    9. 9. 2.1 Cadena de valores
    10. 10. CADENA DE VALORES  La cadena de valores encapsula las varias etapas o procesos que se realizan sobre un producto en su camino hacia un consumidor.  Cada etapa agrega valor u optimiza el producto.  La industria de video juegos está basada en la creación, publicación y distribución de productos.
    12. 12. DESARROLLADORES (1)  Los desarrolladores son los responsables de la creación de los videojuegos.  Se componen por equipos interdisciplinarios con decenas de profesionales como diseñadores, programadores, artistas, músicos, guionistas, productores, entre otros.
    13. 13. DESARROLLADORES (2)  Generalmente subcontratan a empresas que se encargan de partes específicas del desarrollo como animación o música.  A veces se necesitan herramientas de desarrollo externas (gráficas, de programación, etc.) que también alimentan a los desarrolladores en esta etapa.
    14. 14. PUBLISHERS  Son los responsables de la selección de títulos de videojuegos, tanto provenientes de estudios de desarrollo independientes o de estudios internos.  Financian el desarrollo, supervisan su progreso y correcta terminación.  Suelen administrar la verificación, la localización (traducción a diferentes idiomas y costumbres), el marketing, la manufactura y en algunos casos, la distribución a los Retailers.
    15. 15. FABRICANTES DE CONSOLAS  Se encargan de diseñar y manufacturar nuevos sistemas de consolas.  El precio de venta de estas consolas está fuertemente subsidiado por los fabricantes, y cobran una licencia por cada copia manufacturada.  Mantienen un estricto control sobre qué títulos obtienen la licencia en un mercado altamente controlado.
    16. 16. DISTRIBUIDORES  Son intermediarios entre los Publishers y los Retailers.  No crea ni publica juegos, no vende, no manufactura ni financia estas actividades.  Venden juegos a los Retailers en nombre de los Publishers pequeños que no tienen los recursos necesarios.  Proveen espacio de almacenamiento y envío (para juegos Retail).
    17. 17. RETAILERS Y PORTALES WEB  Retailers Tiendas donde se pueden comprar los video juegos en caja. Compran los video juegos a un Distribuidor o Publisher.  Portales Web Venden los juegos proporcionando descarga online.
    18. 18. CONSUMIDORES  Es quien quiere comprar un video juego.  Es la fuente de dinero que vuelve a cada eslabón de la cadena. En algunos casos el consumidor provee ese dinero en forma directa, comprando el juego. En otros casos un anunciante puede proveer dinero mediante anuncios en el juego, etc.
    19. 19. 2.2 Modelos de ingresos
    20. 20. RETAIL  El videojuego se vende en un cd/dvd empaquetado en una caja en una tienda (p.ej. un supermercado).  Es el método más conocido y más usado hasta hace relativamente poco tiempo.  Un ejemplo: Diablo II de Blizzard.
    21. 21. PUBLICIDAD  Se presentan distintos avisos publicitarios durante el videojuego, pudiendo ser cuando comienzan, en las cargas de pantallas, etc.  En caso de ser videojuegos web, los avisos pueden ser mostrados en la página que contiene el videojuego como cualquier otro aviso web.  El videojuego web Hattrick hace uso de avisos publicitarios para obtener ingresos.  Otro ejemplo es el Pro Evolution Soccer que publica avisos en las canchas, entre otros.
    22. 22. ADVERGAMING  Es un caso particular de publicidad donde el contenido del videojuego depende de la misma, parcial o totalmente (en la mayoría de los casos).  Un ejemplo es un videojuego dedicado a promocionar y publicitar un dibujo animado de algún canal de tv, por ejemplo, SpongeBob Driving Exam de Batovi Games Studio, videojuego realizado para Nickelodeon.
    23. 23. PROBAR ANTES DE COMPRAR (TRY BEFORE YOU BUY)  Se distribuye una versión gratuita de prueba limitada por tiempo o por funcionalidades para permitir al usuario (potencial comprador) probar el producto y en caso de que le convenza el contenido puede pagar para obtener la versión completa.  Mystery Studios usa este modelo con Pirate Poppers desde el portal de PlayFirst.
    24. 24. TORNEOS  Los jugadores pagan una suma de dinero para participar de una competencia en donde el ganador obtiene un premio (p. ej. mercaderías) que se obtiene de la entrada de todos los otros jugadores menos el porcentaje que se queda el organizador del torneo.  Shot Online es un videojuego de Golf que utiliza este modelo de ingresos.
    25. 25. SUBSCRIPCIONES  Se paga una cuota fija por mes para obtener distintos servicios.  Los formatos más conocidos son:  Todo lo que puedas consumir: acceso a jugar a un conjunto de videojuegos de forma ilimitada.  Compras por mes: uno o más juegos gratis (que elija) y descuentos adicionales.  Miembro vip: obtiene privilegios especiales (p. ej. ítems o pantallas nuevas).  GameTap es un portal que permite acceder de forma ilimitada a un conjunto de juegos por una suma fija por mes.  Blizzard también utiliza este modelo para el World of Warcraft.
    26. 26. SUBSCRIPCIONES EN CAPAS  Es un caso particular del anterior, se permite a los usuarios jugar gratis pero aquellos que deseen acceso a contenido extra pueden pagar una cuota por mes (p. ej. 5 dólares), a medida que requieran de más funcionalidades o contenido pueden pagar mayores cuotas.  Runscape es un MMO que lidera en este tipo de modelo, teniendo 1 millón de usuarios que optaron por el programa de subscripciones en capas, generando 60 millones de dólares anualmente.  Hattrick también provee un sistema de privilegios especiales con una cuota fija por mes que cambia según la cantidad y cantidad de estos.
    27. 27. DISPOSITIVOS MÓVILES  Se distribuyen los videojuegos desde un portal accesible desde el dispositivo móvil y se pueden comprar por medio de una transacción desde el mismo (usualmente, cerca de 5 dólares por juego).  Arcade Fishing de Batovi Games Studio es un ejemplo de este modelo:
    28. 28. MICROTRANSACCIONES  Se distribuye el juego de forma gratuita o a bajo precio. Se les provee a los jugadores contenido opcional como nuevas armas, pantallas, personalizaciones de su avatar, etc. y se les cobra poca plata por cada una de estos.  Maple Story es un MMORPG de plataformas 2D desarrollado por Nexon que utiliza este modelo.
    29. 29. MERCHANDIZE  Los usuarios pueden jugar gratis.  Mediante la compra de mercadería se proporcionan códigos para usar dentro del juego y destrabar funcionalidades o contenido exclusivo  Ejemplo  Webkinz
    30. 30. DONACIONES  El juego es gratuito y las ganancias vienen de las donaciones de los usuarios  Ejemplo  The Kingdom of Loathing  MMORPG de bajo presupuesto  1.4 millones de cuentas creadas  194 mil cuentas activas  Entre 140-150k dólares de ganancias por mes. (Eso dicen :S)
    32. 32. XBOX LIVE COMMUNITY GAMES (2) XNA CREATORS CLUB  Es una comunidad para desarrolladores de videojuegos.  Se proporcionan herramientas para crear juegos en Windows y Xbox 360, y recursos para aprender a crear estos juegos.
    33. 33. XBOX LIVE COMMUNITY GAMES (3) ¿Cómo funciona?  Se debe ser miembro Premium de XNA Creators Club  Se podrá enviar juegos completos para XBox 360 creados en XNA Game Studio.  Otros miembros Premium de la comunidad evaluarán el juego para asegurar que se puede jugar y no tiene errores.  Si el juego está correctamente evaluado, se fija el precio en puntos (entre 200 a 800) que los jugadores pagarán para poder jugar.
    34. 34. XBOX LIVE COMMUNITY GAMES (4)  El juego queda disponible en el XBox LIVE Marketplace.  Se obtiene un pago electrónico cada trimestre (hasta 70% de las ganancias del juego)  Dependiendo del éxito del juego, este puede ser promocionados en los sitios de XBox y Microsoft.
    35. 35. XBOX LIVE COMMUNITY GAMES (5) ¿Cómo comenzar?  Se debe tener un XBox 360  Descargar XNA Game Studio.  Crear una cuenta en XNA Creator’s Club y pagar una membresía Premium (US$99 anuales).  Crear el juego y enviarlo para la revisión.
    36. 36. XBOX LIVE COMMUNITY GAMES (6) Disponibilidad  Está disponible en USA, Canadá, Reino Unido, Francia, Italia, España.  Más adelante se podrá participar desde otros países.
    37. 37. 3. Equipos de desarrollo
    38. 38. INTRODUCCIÓN  Existen distintos roles que se pueden cumplir en una empresa de videojuegos, los mismos pueden estar en distintas áreas de desarrollo y se presentan a continuación.
    39. 39. DISEÑO  Diseñador de juego  Diseñador de niveles/escenas  Escritor de guiones/historia
    40. 40. PROGRAMACIÓN  Programador junior  Programador líder  Programador de herramientas/motor (infraestructura)  Programador gráfico/efectos especiales.  Programador o Ingeniero de audio.  Programador de inteligencia artificial.  Programador de redes
    41. 41. ARTES VISUALES  Artista junior  Constructor de objetos 3D  Artista de concepto  Artista de texturas  Constructor de personajes  Animador de personajes  Constructor de niveles  Director de arte y animaciones  Técnico de arte
    42. 42. AUDIO  Ingeniero/diseñador de sonidos  Compositor
    43. 43. VERIFICACIÓN  Líder de verificación  Verificador de juego
    44. 44. PRODUCCIÓN  Pueden ser vistos como Gerentes de proyecto.  Se encargan de asegurar que el progreso del proyecto sea acorde con lo planificado y dentro del presupuesto. Coordinan la verificación.  Se encargan de temas contractuales, legales y de negocios.  Existen varios niveles que van desde el Productor ejecutivo hasta los Productores asociados.
    45. 45. PRODUCCIÓN  Tenemos dos tipos de Productores  Productor externo  Trabaja con un Publisher o Desarrollador externo.  Se asegura que el proyecto esté encaminado y siga la planificación.  Productor interno  Gestiona lo referente a el equipo de desarrollo.  Representa al equipo y al producto hacia el exterior.
    46. 46. 4. Ciclo de vida
    47. 47. INTRODUCCION  Concepto  Pre-Producción  Producción  Alfa  Beta  Congelación de código  Liberación  Parches  Actualizaciones
    48. 48. CONCEPTO (1)  Es cuando se define el concepto del juego.  Se realiza una tormenta de ideas.  Se crea el arte de concepto para mostrar como se verá el juego y su historia.  Participan  Diseñador  Líder técnico (Programador)  Artista de concepto  Productor
    49. 49. CONCEPTO (2) Artefactos generados:  Concepto de alto nivel  Es una descripción en pocas oraciones de lo que es el juego. Incluye las características que lo destacan y lo diferencian de los demás juegos. Muestra la visión del juego.  Propuesta del juego  Es un documento que se utiliza para realizar la presentación del juego en busca de financiamiento.  Resume el documento de concepto, explicando de que se trata el juego, por que será exitoso, como será desarrollado y como generará dinero.
    50. 50. CONCEPTO (3) Artefactos generados:  Documento de concepto:  Describe el concepto en forma más detallada.  Puede incluir las siguientes secciones:  Concepto de alto nivel  Género  Gameplay  Características  Ambientación (incluye arte de concepto)  Audiencia objetivo  Plataformas de hardware  Cronograma estimado  Presupuesto  Análisis competitivo  Equipo de desarrollo  Análisis de riesgos
    51. 51. PRE-PRODUCCIÓN (1)  En esta etapa se demuestra que vale la pena construir el juego y que el equipo está capacitado para hacerlo.  Si se trabaja con Publisher, este puede utilizar el período de Pre-Producción para determinar si el proyecto puede ser realizado por el equipo.
    52. 52. PRE-PRODUCCIÓN (2) Artefactos generados:  Plan de proyecto  Es una guía que indica como va a ser construido el juego. Se divide en varios documentos independientes que son plan de personal, plan de recursos, seguimiento de proyecto, presupuesto, análisis de pérdidas y ganancias, cronograma de desarrollo y definición de milestones.  Documento de diseño  Define el juego describiéndolo en forma clara y detallada.  Detalla la mecánica, gameplay, vistas, niveles, personajes, las distintas pantallas, interfaz de usuario, historias, assets, etc
    53. 53. PRE-PRODUCCIÓN (3) Artefactos generados:  Documento de diseño técnico  Es un documento de diseño de software  Describe las herramientas que serán utilizadas.  Lista hardware y software que debe ser comprado.  Establece un cronograma de implementación.  Plan de producción de arte  Indica la estética del juego y el cronograma de creación de arte. Incluye una Biblia de arte que describe los objetos a ser creados
    54. 54. PRE-PRODUCCIÓN (4) Artefactos generados  Prototipos  Programa de software que captura la esencia del juego.  Puede ser la mayor influencia para determinar si el proyecto continúa.  Muestra la visión y demuestra que se puede llegar de las ideas a la realidad en forma efectiva y razonable.  Mitiga riesgos tecnológicos.
    55. 55. PRODUCCIÓN (1)  Se comienza la construcción del juego – Se escribe el código. – Se crea el arte gráfico. – Se crean los sonidos. – Se crean niveles del juego – Verificadores comienzan a trabajar cuando algo puede ser jugado  El juego puede cambiar o evolucionar – Aparecen nuevas features. – Se quitan otras – Se deben completar y mantener actualizados los documentos ya generados.
    56. 56. PRODUCCIÓN (2)  Si se trabaja con Publisher suelen definirse milestones que indican un conjunto de features a ser implementadas para una fecha determinada.  El incumplimiento de estas puede implicar que no se paguen avances acordados con el Publisher.  Estas milestones se marcan en el cronograma del proyecto.  Deben estar definidas en forma clara, medible y concisa. – Mala definición : Tener un nivel jugable
    57. 57. ALFA  Es el punto en el que el juego puede ser jugado de principio a fin.  Quedan detalles por agregar o arreglar y no todos los assets están terminados.  Motor, interfaz de usuario y subsitemas están completos  El foco cambia de:  Construir a terminar  Crear a arreglar.  Se comienza la verificación en busca de errores
    58. 58. BETA  Todos los assets son integrados y el desarrollo se detiene, lo único que se hace es arreglar errores.  El objetivo en esta etapa es estabilizar el proyecto y eliminar la mayor cantidad de errores posible antes de liberar el juego
    59. 59. CONGELACIÓN DE CÓDIGO  Una vez que se solucionaron los errores encontrados en Beta (o por lo menos los mas críticos) se obtiene el candidato para la liberación final.  En esta etapa se congela el código y queda pendiente de aprobación para pasar a ser la versión final.
    60. 60. LIBERACIÓN  El juego esta completo, verificado y listo para ser enviado a los canales de distribución.
    61. 61. PARCHES  En los juegos para PC, se ha vuelto casi inevitable que se requieran parches luego del lanzamiento.  Dado que existen muchas combinaciones posibles de hardware, es imposible verificarlas todas.  Si se encuentra un problema generalizado el desarrollador deberá crear un Parche.
    62. 62. ACTUALIZACIONES  La actualización es diferente al parche, ya que representa contenido adicional creado para mejorar el videojuego.  La actualización es un proyecto y necesita ser manejado como tal, con verificación, milestones, y el resto de los elementos del proceso de desarrollo.
    63. 63. 5.Problemas en el desarrollo de videojuegos
    64. 64. ¿QUÉ PROBLEMAS EXISTEN EN EL DESARROLLO DE VIDEOJUEGOS? (1)  La rápida y constante evolución de las tecnologías.  Los requisitos cambiantes y difíciles de evaluar (diversión, atractivo gráfico, etc.)  La comunicación se dificulta por ser una industria multidisciplinaria (artistas, diseñadores, sonidistas, etc.)
    65. 65. ¿QUÉ PROBLEMAS EXISTEN EN EL DESARROLLO DE VIDEOJUEGOS? (2)  Búsqueda de perfección lleva a retrasos en los plazos planificados (mejores armas, mejores escenarios, etc.)  Concentración de conocimientos en pocas personas (p. ej. un especialista en inteligencia artificial)
    66. 66. ¿CÓMO SE PUEDEN SOLUCIONAR? Existen diversas soluciones, a continuación se plantean algunas:  Realizar mejoras en el proceso y metodologías de desarrollo (p. ej. codificar mano a mano con el diseñador).  Desarrollo de nuevas herramientas (p. ej. entornos para realizar prototipos o motores que encapsulen la dependencia a una tecnología específica).  Seguimiento de nuevos enfoques y paradigmas (p. ej. datadriven para la separación entre contenido y el código).
    67. 67. 6. Metodologías de desarrollo
    68. 68. METODOLOGÍA DE DESARROLLO  Una metodología plantea realizar un conjunto de prácticas y métodos para lograr un objetivo.  Existen dos extremos, las metodologías que intentan predecir (deterministas o secuenciales) y las que se adaptan al cambio (ágiles).
    69. 69. 6.1 Metodologías Deterministas
    70. 70. METODOLOGÍAS DETERMINISTAS  Se basan en tres premisas:  Todo sale de acuerdo a lo planificado.  Micro optimizaciones llevan a macro optimizaciones  Las personas son prescindibles y hay que decirles que hacer.  Metodologías presentadas: Waterfall.
    71. 71. WATERFALL (O BDUF)  Plantea que el diseño tiene que ser perfecto y estar completo antes de comenzar la implementación.  Es el más utilizado en la industria hoy en día en las empresas grandes.
    72. 72. WATERFALL - VIRTUDES  Facilidad de adopción por el equipo de desarrollo.  Facilita la administración del proyecto.  Aplicable en equipos de desarrollo grandes.  Fácil aplicabilidad en proyectos que se basan en modificaciones pequeñas de productos ya realizados (secuelas de juegos).
    73. 73. WATERFALL - DEBILIDADES  No responde bien ante cambios.  Existen problemas de comunicación e interpretación.  Ningún objeto puede ser considerado completo hasta que todas las dependencias de ese objeto hayan sido construidas.  Cuando hay departamentos de desarrollo que dependen uno de otro se generan situaciones de cuello de botella.
    74. 74. 6.2 Metodologías Ágiles
    75. 75. METODOLOGÍAS ÁGILES  Se basan en cuatro premisas [Agi01] en donde se da mayor importancia a:  Individuos e sus interacciones frente a procesos y herramientas  Software en funcionamiento frente a documentación exhaustiva  Colaboración del cliente frente a negociación de un contrato.  Respuesta al cambio frente a seguir un plan.  Metodologías presentadas: Scrum y Extreme Programming.
    76. 76. SCRUM  Es una metodología ágil que sirve para administrar y controlar el desarrollo de un producto. Se caracteriza por cinco valores:  Compromiso  Enfoque  Sinceridad  Respeto  Coraje
    77. 77. SCRUM Estos valores son implementados mediante varias prácticas (sprints, scrum master, etc.). Se presenta un ciclo de vida con Scrum:
    78. 78. SCRUM - VIRTUDES  Al ser iterativo e incremental se obtienen versiones jugables del producto en intervalos regulares de tiempo.  Involucra a todo el equipo y hace que participen activamente en el proceso.  Mayor control tanto del cliente como los desarrolladores sobre el alcance del proyecto.  Priorización de características del producto en cada Sprint.
    79. 79. SCRUM - DEBILIDADES  Dificultad en la adopción.  Difícil involucrar al cliente en el proceso.  Problemas en la elaboración de contratos.  Resulta difícil definir la descripción de las funcionalidades del videojuego en una granularidad adecuada, que no sea demasiado especifica ni muy vasta.  En proyectos que duran años es difícil mantener la perspectiva y la dirección.  Difícil adopción en equipos grandes (p. ej. 100 personas)
    80. 80. SCRUM - EJEMPLO  EA Digital Illusions CE (DICE) está trabajando en Mirror’s Edge utilizando Scrum, y planifica liberar una versión simultanea para PC, PS3 y XBox360.
    81. 81. EXTREME PROGRAMMING (XP)  Es una metodología ágil que se enfoca en la parte de desarrollo y se basa en cinco valores:  Comunicación  Simplicidad  Respeto  Coraje  Retroalimentación  Son llevados a cabo por varias prácticas, entre ellas: pair programming y test first programming
    82. 82. EXTREME PROGRAMMING (XP)  Ejemplo de pair programming:
    83. 83. EXTREME PROGRAMMING (XP) - VIRTUDES  Distribución del conocimiento entre todos los miembros.  Entrenamiento de programadores con menos experiencia por parte de los que tienen más experiencia.  Mayores períodos de concentración.  La interacción frecuente entre los clientes y los diseñadores permite adaptar el desarrollo del videojuego a las necesidades de ambos y a lograr el resultado esperado.
    84. 84. EXTREME PROGRAMMING (XP) - DEBILIDADES  Algunas de las prácticas son difíciles de adoptar.  Las prácticas están pensadas principalmente para programadores y no necesariamente consideran otros roles.  Difícil aplicación en equipos de desarrollo numerosos.
    85. 85. EXTREME PROGRAMMING (XP) - EJEMPLO  Principalmente nos interesa destacar la experiencia desarrollada por Peter Drake y Nigel Kerr [DK06], en donde plantean el desarrollo de un videojuego en un curso de grado intentando hacer uso de todas y cada una de las prácticas planteadas por XP.  El proyecto fue un videojuego multijugador de estrategia por turnos desarrollado en Java, el cliente fue externo al desarrollo y la interacción se realizó de forma remota.
    86. 86. SCRUM Y EXTREME PROGRAMMING (XP)  Ambas metodologías comparten muchos aspectos a pesar que una apunta al gerenciamiento del proyecto (Scrum) y la otra al desarrollo (XP).  Por lo tanto se pueden utilizar (y se utilizan) en conjunto obteniendo ganancias de aplicar las prácticas de ambas.  En particular Highmoon Studios es una empresa de videojuegos que aprovecha este aspecto y ha escrito artículos al respecto.
    87. 87. 7.Tecnologías y herramientas
    88. 88. TECNOLOGÍAS Y HERRAMIENTAS  Las áreas tecnológicas más relevantes para videojuegos son:  rendering (p. ej. shaders)  simulación (p. ej. simulación física)  redes  audio (p. ej. sonido tridimensional)  inteligencia artificial (p. ej. pathfinding)
    89. 89. TECNOLOGÍAS Y HERRAMIENTAS  Que se acompañan de herramientas para generar contenido, por ejemplo: Editor de modelos 3d (p. ej. Blender) Editor de scripts Editor de shaders (p.ej. RenderMonkey)
    91. 91. TECNOLOGÍAS Y HERRAMIENTAS  Y también de:  motores (p. ej. Ogre3d para acceder al hardware gráfico, entre otras funcionalidades)  bibliotecas (p. ej. SDL_mixer para reproducir sonidos)  frameworks que nos abstraen para poder utilizar en código el contenido generado por las herramientas.
    92. 92. TECNOLOGÍAS Y HERRAMIENTAS - EJEMPLOS  Wintermute Engine Development Kit es un kit que viene tanto con un motor como con un conjunto de herramientas para generar videojuegos del género de aventuras gráficas.
    93. 93. 8. Enfoques
    94. 94. 8.1 Data-driven development
    95. 95. INTRODUCCIÓN (1)  Colocando todo el contenido de la lógica del videojuego y de las descripciones (posiblemente incluso los niveles) en código se tienen las siguientes consecuencias: Tanto los artistas como los diseñadores se ven perjudicados ya que ante cualquier cambio o ajuste pequeño dependen de cambios en el código por un programador y no pueden ver el mismo rápidamente.
    96. 96. INTRODUCCIÓN (2) El programador dedica un tiempo considerable a pedidos de los artistas y los diseñadores y menos tiempo a implementar nuevas características funcionales del juego en sí. El código termina atado a Un juego en particular, reduciendo considerablemente la reusabilidad del código.
    97. 97. DATA DRIVEN  Las arquitecturas Data-driven solucionan estos problemas colocando la mayor parte del contenido en archivos separados y lo mínimo posible en el código del videojuego.  Esto implica no solo contenido audiovisual sino también definiciones completas de personajes e incluso comportamientos (p. ej. con scripts de Lua o Python).
    98. 98. DATA DRIVEN - EJEMPLO  Un ejemplo de la utilización de xml para definir una entidad en un videojuego.  En particular xml es muy útil porque es legible y extensible (entre otras particularidades), aunque puede ser lento de procesar. <baddies>            <baddie name=”Mr Zombie”>                  <model>                       <filename>zombie1.mdl</filename>                  </model>                  <stats>                       <health>100</health>                       <attackdamage>10</attackdamage>                       <speed>10</speed>                  </stats>            </baddie> </baddies>
    99. 99. 8.2 Test-driven development
    100. 100. TEST DRIVEN DEVELOPMENT  Es un enfoque que plantea guiar el desarrollo por pruebas realizadas previamente, paso a paso de forma iterativa e incremental.  Se puede aplicar a distintos niveles pero usualmente se aplica a nivel de código y XP es una metodología que lo aprovecha a ese nivel.
    102. 102. TEST DRIVEN DEVELOPMENT - EJEMPLO TEST (EntityDoesNotConsumesSpeedPowerupByDefault) {  GameEntity entity;  SpeedPowerup powerup;  CHECK (!entity.Apply(powerup));  }  TEST (EntityConsumesSpeedPowerup) {  GameEntity entity;  entity.Accepts(SpeedPowerup);  SpeedPowerup powerup;  CHECK (entity.Apply(powerup));  } 
    103. 103. TEST DRIVEN DEVELOPMENT - VIRTUDES  Al elaborar las pruebas primero, el programador no siente que las pruebas destruyen el código.  Se tiene mucha retroalimentación.  Sirve como forma de documentación.  Ayuda al realizar reconstrucción logrando un mejor diseño.  Reducen tiempo de debugging sobre el juego.  Proveen una medida del progreso del proyecto.
    104. 104. TEST DRIVEN DEVELOPMENT - DEBILIDADES  Difícil de adoptar.  Gran cantidad de código extra.  Difícil de utilizar para probar características como diversión, atractivo gráfico, componentes de la interfaz gráfica.  Requiere de un framework para correr las pruebas de forma automatizada.
    105. 105. TEST DRIVEN DEVELOPMENT  En videojuegos presenta ciertos retos:  probar para distintas plataformas  probar gráficos, audio, etc.  probar bibliotecas o motores de terceros que no fueron diseñados para ser probados por pruebas unitarias  probar eventos no deterministas (p. ej. simulación física)  probar scripts de alto nivel (p. ej. Lua)
    106. 106. REFERENCIAS  IGDA  [Agi01] Manifesto for agile software development. Online, 2001.  [DK06] Peter Drake and Nigel Kerr. Developing a computer strategy game in an undergraduate course in software development using extreme programming. J. Comput. Small Coll., 22(2):39–45, 2006.  [BB03] Bob Bates. Game Developer’s Market Guide. ISBN1592001041. Muska & Lipman/Premier-Trade, 2003  [Llo04] Noel Llopis. Gdc 2004: Software engineering roundtable summary. Online, 2004.  Shot Online, videojuego de Golf  Subscripciones en capas – Runescape -  Top 10 revenue models for free to play - revenue-models-for-free-to-play-games/  Wintermute Engine Development Kit -  Mirror’s Edge de DICE, artículo de gamasutra :