How to start making games as a computer-engeneering student and where to go once started given your profile and aspirations.This talk was given in 2013 within the Week of Computer Engeneering
1. Desarrollo videojuegos:
No soy gallo, soy chocobo
El Equipo YinYang
{Jorge Palacios, Christian Chomiak}
presenta
Ola k
ase?
Kiere aser
juego o k
ase?
3. Agenda
● Introducción al desarrollo de videojuegos.
● Retos de la industria.
● Diferencias entre la academia y "el mundo real".
● Breve introducción a Unity.
● Recomendaciones y conclusiones
4. Introducción al desarrollo de videojuegos
¿Qué es un videojuego?
(Lámina dejada en blanco para que la
audiencia de su definición)
5. Introducción al desarrollo de videojuegos
¿Qué es el desarrollo de juegos?
● También conocido como gamedev.
● Disciplina dedicada al desarrollo de
software de entretenimiento (videojuegos).
● Game developer != Gamer
6. Introducción al desarrollo de videojuegos
(Principales) Áreas y disciplinas
● Programación
○ IA
○ Rendering
○ Gameplay
● Diseño de juego
○ Game design
○ Level design
● Arte
○ Concept Art
○ Modelado 3D
Game Designer != Game Programmer
8. ● Ley de videojuegos y juguetes bélicos.
○ Fundación FILANTROPIA.
● Posibilidades de trabajo
● Agrupaciones
● Eventos
○ GameJams
Introducción al desarrollo de videojuegos
Situación en Venezuela
10. ● Básicas
○ Matemáticas.
○ Trigonometría.
○ Álgebra.
Introducción al desarrollo de videojuegos
¿Qué se necesita saber?
● Deseables
○ Física.
■ Movimiento.
○ Comunicación.
○ Prototipado.
Conocimientos y habilidades
11. Conocimientos y habilidades ...
para Game Designers
● Psicología.
● Lógica.
● Arte.
● Programación (básica).
● Redacción y ortografía
● Comunicación (avanzada).
Introducción al desarrollo de videojuegos
¿Qué se necesita saber?
12. Conocimientos y habilidades ...
para Game Programmers
● Algoritmos (while(mas){mejor;})
● Scripting (deseable).
● Programación orientada a objetos
(necesaria).
● C, C++ (indispensable).
Introducción al desarrollo de videojuegos
¿Qué se necesita saber?
14. ● Aprende.
● Sinfín de libros y
tutoriales en Internet.
Fantasmas (y cómo vencerlos)
"No sé programar"
15. Fantasmas (y cómo vencerlos)
"Soy programador, no artista."
Recursos gratis en
Internet
(Creative Commons)
Asset Store (Unity)
Artistas Freelance
Panas que estudien
diseño
16. Fantasmas (y cómo vencerlos)
"Soy estudiante (no tengo dinero)."
Herramientas
OpenSource
Versiones gratis de
herramientas pagas
Convenios Universitarios:
● Descuentos para estudiantes
● Software gratis*
* Ciertas condiciones aplican
17. Fantasmas (y cómo vencerlos)
"Nunca he hecho un juego, pero quiero hacer el
próximo CoD*."
● Bájate de esa nube.
● Empieza por algo sencillo.
○ Experiencia++
*Aplica también para MMORPGs/Diablo
21. Los desarrolladores AAA...
● Están restringidos a proyectos
con fórmulas exitosas. Poco
espacio para la innovación.
● Responden a gustos del
mercado y a gente que
financia, publica y vende el
juego.
El mundo real
La realidad de los desarrolladores
22. Los desarrolladores Indie...
● Trabajan en equipos de
pequeño y mediano tamaño.
● Tienen poco presupuesto.
○ Kickstarter.
● No tienen quince y último.*
El mundo real
La realidad de los desarrolladores
*Ciertas condiciones aplican
25. Cosas que no se aprenden
en la academia
● Resolver.
○ Muchas veces, las
soluciones simples sirven
igual o mejor que las
"correctas".
● Colaborar.
○ Comunidad en Internet
■ Foros.
■ Stack Overflow
○ No reinventar la rueda.
El mundo real
Trade-off con la academia
Cosas que no se aprenden
en el mundo real
● Estudio de algoritmos.
○ Algoritmos avanzados.
● Estado del arte.
● "Only the best is good
enough." -LEGO
27. Desarrollo
Niveles y herramientas
● Bajo nivel - Sangre, sudor y lágrimas
○ Librerías como SDL y GLUT.
● Nivel medio - Sudor y lágrimas
○ Frameworks como XNA, PyGame, Enchant.js, Flixel.
● Alto nivel - Sudor
○ Motores como Unity, UDK y Source.
● Nivel Nyancat - Flores silvestres, helado y ponicornios
○ Herramientas como GameMaker y RPGMaker.
Lista de herramientas populares: http://makegames.pixelprospector.com/
30. Desarrollo - Unity3D
Versiones
Unity
● Gratis
● Muestra splash
screen y
watermarks.
Unity Pro
● Licencia de $1500
● Permite:
○ Render-to-texture
○ Iluminación global
○ Efecto de post-
procesamiento
○ Occlusion culling
○ Plug-ins
31. Desarrollo - Unity3D
Programación
● Scripting
○ Motor creado a partir de Mono (implementación
OpenSource del Framework .NET).
○ Lenguajes
■ UnityScript (Javascript en esteroides)
■ C#
■ Boo (sintaxis inspirada en Python)
● IDE
○ MonoDevelop (incluído en el instalador)
○ Soporte para Visual Studio
33. Desarrollo - Unity3D
Plug-ins
● Librerías escritas en código nativo (C, C++, Objective-
C).
● Permiten integración entre Unity y aplicaciones de
terceros.
● Por ejemplo:
○ ARToolKit for Unity: Realidad Aumentada.
○ FingerGestures: detección de input via touch.
○ OpenCV: procesamiento de imágenes.
36. Desarrollo - Unity3D
Sistema de Control de Versiones
Es cualquier práctica que permita llevar
un control de los cambios en un proyecto.
● git
● mercurial
● subversion
● perforce
● visual sourcesafe (DON'T YOU DARE!)
37. Desarrollo - Unity3D
Sistema de Control de Versiones
● github
● bitbucket
● google code
● source forge
● assembla
y hay más...
38. Desarrollo - Unity3D
¿Qué es Git?
Es un sistema de control de versiones
(duh).
Diseñado por Linus Torvalds.
¿Por qué es mejor que otras soluciones,
como Mercurial y SVN?
40. ● Definir el archivo .gitignore
● Configurar el proyecto en Unity:
○ Edit > Project Settings > Editor
■ Seleccionar “Meta files” abajo de
Version Control Mode
Desarrollo - Unity3D
Unity+Git
Para más información, ver este post del blog de Christian (en inglés)
http://bonusdisc.wordpress.com/2013/02/11/version-control-and-unity3d/
42. Conclusiones y
Recomendaciones
● Inicia un blog!
○ Compartes experiencias.
○ Llevas registro de lo que has aprendido.
● Trabaja en un portafolio
○ Un blog puede ser un primer trampolín.
○ Es una muestra tangible de tus capacidades.
● Participa en una comunidad.
○ Aprendes de la experiencia de los demás.
○ Un lugar para la sana competición y colaboración.
43. Conclusiones y
Más recomendaciones
● Mantente:
○ Organizado.
■ Usa herramientas de control de proyectos,
como Trello.
○ Actualizado.
■ La computación es un área en constante
evolución.
○ Curioso.
■ Ponte retos.
44. Conclusiones y
Muchas más recomendaciones
● Haz brainstorming.
○ Muchas soluciones > una única solución.
● Programa
○ La práctica hace al maestro.
● Descansa.
○ "All work and no play makes Jack a dull boy."
○ En otras palabras, ten una vida.
45. Y hay más!
Recuerda que...
...hay gente que está o estuvo en tu misma
situación.
...el desarrollo de software es un proceso
iterativo.
...lo que no se comienza hoy no se termina
mañana.