Archivo del sitio

Game Development Basics

Esta es una contribución que hice en el foro de uno de las tareas de la materia Introducción al Diseño de Videojuegos en la carrera de Técnico en Diseño y Programación de Videojuegos que curso por UNL Virtual (Universidad Nacional del Litoral).

Quiero aportar esta información para todos mis compañeros, alguno de los profesores me sabrá corregir si me equivoco en algún aspecto. Cuando encaré este trabajo, también me resultó complicado tener una idea de cómo lo iba a hacer, pero a medida que fui investigando la idea tomaba forma en mi cabeza, quizá algo en la siguiente información les sirva a ustedes.

Para crear juegos para consolas necesitas dos cosas, la licencia y el kit de desarrollo. La licencia es el permiso que te otorga la compañía fabricante de una consola de videojuegos para publicar títulos para dicha consola. Esto quiere decir que si quiero desarrollar un juego para determinada consola en mi computadora puedo hacerlo sin permiso alguno pero si quiero vender el juego y ganar dinero con él, debo tener el permiso de la compañía fabricante de la consola para la cual diseñé mi juego, este licencia cuesta dinero, y no solo debo pagar sino que la compañía se reserva el derecho de admisión, es decir pueden negarme el otorgamiento de la licencia.

Lo otro necesario es un SDK (Software Development Kit), que puede variar de consola a consola, pero básicamente, son las herramientas que me permiten programar y probar los juegos. En el caso de los SDK para consolas, suelen incluir aparte del software de computadora necesario, una consola modificada que me permite probar y hacer debugs a mis programas (juegos). En algunos casos la consola de debug no difiere en ninguna de sus características con la que se comercializa. Como en el caso de la Xbox360 para la cual solo necesito tener una versión del Visual C# de Microsoft y la extensión XNA Game Studio que le agrega al Visual C# lo necesario para crear juegos para Windows, Xbox360 y Zune (reproductor portátil de audio y de video de Microsoft, estilo iPod). La última versión de XNA también me permite crear juegos y aplicaciones para Windows Phone 7. El Visual C# (el numeral se lee sharp en inglés, que sería el equivalente al símbolo de sostenido en la notación musical) viene en un grupo de cuatro programas llamado Microsoft Visual Studio 2008 Express Edition, el cual es un paquete gratuito de programas que incluye el Visual Basic 2008, Visual C++ 2008, Visual C# 2008 y Visual Web Developer 2008, todos en su versión Express Edition (gratuita). La versión 2010 creo que se encuentra en beta y aun no hay versión Express Edition disponible, tampoco sé si la habrá. La extensión XNA Game Studio puede requerir que instalemos previamente, obviamente Visual C#, pero también nos puede pedir algo llamado DirectX SDK. Y algunos de los otros programas del paquete también pueden requerir el Windows SDK para crear otros tipos de programas.

El software necesario para programar suele constar de lo que se llama IDE (Integrated Development Enviroment), el cual posee un editor de texto para nuestro código (lenguaje de programación), un editor visual (en el caso de la programación orientada a objetos) y un compilador que es el encargado de vincular mi código (source) con las bibliotecas pertinentes y de convertir eso en un ejecutable, es decir un archivo capaz de correr (run) en determinado sistema y/o plataforma.

En el caso de los juegos, ya sea para consolas o para computadoras, hay varias tareas pertinentes a los mismos, como el sistema de entrada, las instrucciones que un usuario/jugador le da al juego a través de un joystick, teclado o mouse. La respuesta del juego, las tareas que el juego debe realizar con respecto a esas instrucciones. La representación grafica de esa respuesta, al fin y al cavo el juego es visual y este le debe comunicar al hardware que gráficos representar en pantalla, que animación asociar a ellos, que texturas les debe aplicar, como debe renderizar dichos gráficos y hasta cuanta memoria debe usar para ellos, ya que tiene que quedar suficiente para el sonido y otras tareas. Programar todo eso, de cero, es una tarea muy complicada, es por eso que existen los llamados engines (motores), los cuales ya poseen rutinas para algunas de estas tareas o para todas ellas y hasta algunos son un completo entorno de desarrollo integrado diseñado especialmente para crear juegos. Lo bueno es que para la programación exclusiva del juego que tenemos en mente, según el engine, podemos usar lenguajes de script como JavaScript, Ruby, Python, Perl, Lua y hasta los propios C# y C++. Definitivamente es mucho más fácil hacer scripts que programas enteros.

Yo por lo pronto estoy probando Unity, que me recomendó Jaime Filí, y me encontré con muchas sorpresas, todas ellas agradables por suerte. Se puede descargar de forma gratuita, y esto me permite crear juegos, pero ya para publicar alguno de estos para una consola como la Wii digamos, o para iPhone, iPad o Android debo pagar la licencia pertinente.

https://store.unity3d.com/shop/

Cada licencia posee diferentes características.

http://unity3d.com/unity/licenses

Por último quisiera dejarles un par de páginas que me dieron mucha información sobre engines, aparte de Wikipedia por supuesto, personalmente encuentro mejor información en Wikipedia en ingles que en Wikipedia en español.

http://www.moddb.com/engines

http://arborea.wordpress.com/2010/01/05/como-hacer-tu-propio-juego-de-ordenador/

El último es un post en un blog y la información puede ser un poco vieja, pero algunos de los programas listados dan una idea de que es un engine, como se usa y como se crea un juego con ellos. La verdad han pasado por mis manos el RPG Maker, el Ren’Py y el MUGEN, los tres muy pero muy sencillos de usar y los resultados pueden resultar bastante buenos, eso sí, les recomiendo tener un artista a la mano porque por lo menos en mi caso, no es mi fuerte.

En cuanto a usar esta información para el presente trabajo, yo no lo creo absolutamente necesario, pero para algunos puede ser un detalle a tener en cuenta y para otros un punto muy importante. Les recomiendo que a al hacer sus cuadros comparativos se basen en parte, en sus propias experiencias y en parte, en lo que hayan investigado. Ya que los pros y contras de cada consola deben tener diferentes puntos de vista desde diferentes aspectos de cada una, no necesariamente comparar la misma característica de dos consolas y explicar porque en una es fortaleza y en otra debilidad, por lo tanto es bueno abarcar puntos diferentes pero siendo realmente breve en cada uno de ellos para poder hacer una comparativa rápida a simple vista. Al menos esto me resultó a mí para poder terminar mi trabajo. Sean ocurrentes y originales, su opinión es importante. Lo bueno de trabajar en grupos de trabajo es que las diferentes opiniones de mis compañeros pueden ayudar a reforzar aquellas áreas que desconozco.

Si te gusta lo que lees considera contribuir con este blog para que el mismo pueda tener más y mejor contenido. Contribuir.

Licencia Creative Commons
Esta obra de Juan Pablo Castañeda está bajo una Licencia Creative Commons Atribución 3.0 Unported.

Anuncios

El diseño de videojuegos como motor de negocios

Nicolás Cohen recorre el proceso de Producción (donde hay mucho contacto con las tareas de diseño), poniendo énfasis en algunos aspectos comerciales a tener en cuenta en la creación de un videojuego. En especial, Nicolás destaca la importancia de conocer las características del mercado (las personas) que “consumirá” el producto final (nuestro videojuego).

Producción de Videojuegos: 1ra parte, 2da parte, 3ra parte.

Y algunos videos para entender mas el tema pero ahora en inglés…

Mum, Dad, I want to be a Game Designer
Day in the life: Computer game designer
C64 Ghostbusters on The Computer Chronicles
Retroware TV – Episode 4 Part 4 – David Crane CGE 2007

Y ahora si, mi opinion al respecto…
Recuerden que lo que esté en letra cursiva son intervenciones del profesor…

Creo que un buen diseñador debería ser capaz de realizar proyectos mínimos, y grandes proyectos. Capaz de adecuarse a una formula o plan que garantice el éxito comercial en tal o cual mercado, y aprovechar las limitaciones, tanto en cuanto recursos como en libertades, para terminar plasmando la idea original en algo que se pueda llamar “juego”. Es decir, podemos tener grandes proyectos y perseguir, si se quiere, un “éxito mundial” como última meta, pero es demasiado ambicioso, y no está mal que así sea, siempre y cuando sea lo que nos motive, podríamos llegar a alcanzar esa meta. Pero ¿cómo se llega a eso?, no sucede de un día para el otro. Y si nos embarcamos en un proyecto personal, de manera independiente, y este es demasiado ambicioso, habiendo invertido en él la mayor parte de nuestros ingresos, ¿cómo recuperamos lo “invertido”, para que no sea dinero perdido? Ya sea que estemos trabajando en un proyecto independiente o a pedido de otra empresa, la creatividad consiste en ser capaces de concluir un proyecto sin importar cuales sean las limitaciones que nos impone el “mercado”.

Creo que se puede partir de plantearnos, ¿que nos motiva? ¿Qué me motiva a hacer videojuegos? ¿Lo hago por el dinero? ¿Lo hago porque me interesa que mi juego sea considerado arte? ¿Lo hago para crear una imagen, una “marca”? ¿Lo hago para aprender, como se hace un videojuego, todo lo que implica, lo necesario para crear formulas exitosas de desarrollo y comercialización de videojuegos? ¿Lo hago como hobbie, por diversión, para ver que al menos una persona juegue a algo diseñado por mí?

En cuanto al proyecto en si debemos partir de ¿Por qué hago este juego? ¿Por qué se merece existir? Y luego ¿Para quién hago este juego? ¿Quién va a estar dispuesto a pagar por él? Recién entonces ¿Cuánta gente voy a necesitar para terminarlo? ¿Cuánto tiempo me va a tomar? ¿Cuánto dinero me va a costar?

Todos planteamientos necesarios para juzgar si un proyecto es viable o no. Más allá de las ideas, de algún lugar tiene que salir el dinero para financiar proyectos futuros.

Sebastian Teitelman (Director de la carrera):
Me gustaría remitirme a lo que se conoce como “la Estrategia del Océano Azul”. Esto esta basado en la tesis de los profesores W. Chan Kim y Renée Mauborgne, explicitado en el libro del mismo nombre. (No es de Videojuegos, pero es muy pero muy recomendado!!!)

Básicamente, los autores creen que hay que dejar de lado la competencia destructiva entre las empresas si se quiere ser “un ganador” en el futuro. El secreto, según los profesores, es mirar más allá de los horizontes del mercado y generar valor a través de la innovación.

Los autores dividen a la industria en dos partes: los océanos rojos y los océanos azules. Los océanos rojos representan todas las industrias que existen en la actualidad, donde las reglas del negocio y los límites están perfectamente establecidos y la competencia es sangrienta (por eso el color rojo); mientras que los azules simbolizan las ideas de negocio hoy por hoy desconocidas, donde existen las mejores oportunidades de negocio, con mayor rentabilidad y donde cualquier compentencia es irrelevante.

Por supuesto, esta tesis no puede ser explicada en 3 párrafos. Pero, ¿qué pasa si llevamos esto a la Industria de los Videojuegos?¿Qué ocurre si nuestras ideas por muy locas que parezcan pertenecen al Océano Azul?¿Y si tratamos de llevar nuestras ideas a un modelo de este tipo?¿Cómo influye la innovación en la mente de los jugadores?¿En qué aspectos del Diseño de Videojuegos podemos trabajar más fuertemente para generar innovación e ingresar al Océano Azul?

Me refiero a buscar una idea de juegos innovadora, que por su fuerza genere un nuevo mercado en el mundo de los Videojuegos. Imposible? . No creo. Desafiante?. Esa es la idea !!

Los océanos azules, creo que es el principal nicho para explorar de los programadores independientes, una lucha cuerpo a cuerpo contra los grandes líderes del mercado, sería completamente desigual si carecemos, por ejemplo, de los medios para promocionar nuestros productos, para citar tan solo un ejemplo en donde grandes empresas nos aventajan.

Sin embargo, nuestro más grande capital, son las ideas, la imaginación, a partir de ahí, todas las innovaciones que se nos ocurran pueden sorprender el mercado y conseguir éxitos en ventas, premios, o renombre como buenos diseñadores de videojuegos. Todos factores que pueden asegurarnos éxitos en futuros mercados, si sabemos cómo aprovecharlos.

¿Cómo influye la innovación en la mente de los jugadores?

La innovación, ideas nuevas y frescas de cosas nunca antes vistas, pueden influir muy positivamente en la mente de los jugadores, encontrarse con cosas que lo sorprendan y que lo motiven a seguir jugando. Dependiendo del modo que creemos para generar ingresos, nos puede convenir que sigan jugando, desentrañando misterios, activando niveles ocultos, consiguiendo finales alternativos, comprando ítems.

¿En qué aspectos del Diseño de Videojuegos podemos trabajar más fuertemente para generar innovación e ingresar al Océano Azul?

Más que nada podemos trabajar sobre lo que sería temática + mecánica, el gameplay, el diseño de personajes, el diseño de niveles, la historia del juego y como narrarla. Así también como la forma en la cual comercializaremos y obtendremos ingresos con nuestro juego. Se pueden relacionar todos estos aspectos de alguna manera innovadora para que al jugador le parezca una forma, hasta lógica, el tener que “pagar” por ciertas cosas, pero que lo sorprenda como algo nuevo y nunca visto. O de ser algo ya visto, darle una vuelta de tuerca que sea a la vez innovadora y sorprendente.

Llegar hasta una idea, una concepción, que de tan innovadora cree un mercado que hasta entonces no existía, eso sí que me resulta interesante, y desafiante. Pero claro que es posible, el mundo de las ideas es infinito, siempre se podrán crear cosas que antes no existían, y es precisamente esa, la causa del éxito. Competir en mercados que ya existen y donde muchos otros ya compiten, la lógica nos dice que los usuarios (jugadores o clientes) tendrán que elegir a uno de entre muchos, eso solo significa menos ingresos para todos, o más para los mismos de siempre.

En cambio, si participamos de un mercado en el cual somos los únicos porque somos los que lo creamos, le dice a nuestro público que somos los únicos de los cuales podrán obtener nuestro producto. Y aun cuando otros se sumen a nuestro modelo, siempre nos quedara el prestigio de haber sido los primeros. Y si alguna vez nuestro mercado se satura de competencia, siempre podremos desarrollar nuevos, ya que es eso precisamente lo que nos diferencia de los demás, nuestra capacidad de crear cosas nuevas en las que nadie antes había pensado. O encarar lo existente desde una perspectiva a la que nadie se le ocurrió usar antes.

Si te gusta lo que lees considera contribuir con este blog para que el mismo pueda tener más y mejor contenido. Contribuir.

Licencia Creative Commons
Esta obra de Juan Pablo Castañeda está bajo una Licencia Creative Commons Atribución 3.0 Unported.

Diseño y Programación de Videojuegos

Estoy cursando la Tecnicatura en Diseño y Programación de Videojuegos en la Universidad Nacional del Litoral de la Provincia de Santa Fe.

Este post es una transcripción corregida de mi presentación en el foro de la materia Introducción al Diseño de Videojuegos de esta carrera.

Esta es la primera vez que me presento así que tal vez sea algo extenso…

Hola, me llamo Juan Pablo Castañeda, soy de Máximo Paz, Partido de Cañuelas, Provincia de Buenos Aires. Y a pesar de que Máximo Paz es Partido de Cañuelas, geográficamente queda más cerca de Ezeiza que de Cañuelas. Tengo 27 años, nací el 19 de Noviembre de 1982. Terminé la secundaria en el 2000, y luego por cinco años no hice nada. En el 2005 empecé la carrera de Ingeniería en Electrónica en la Universidad Tecnológica Nacional Facultad Regional Buenos Aires Campus Lugano, no llegué a cursar ni siquiera el primer año. Luego me dediqué a la música, estudié en el Conservatorio Nacional Julián Aguirre de Banfield, partido de Lomas de Zamora. Toco guitarra y un poco de piano y de bajo. Toqué en una banda de metal llamada Replica, y conducía un programa de radio llamado Profetas del Desastre.

Cuando empecé con las computadoras, más o menos a los diez años, las interfaces gráficas no existían, mi primer acercamiento a la programación fue con BASIC sobre DOS 5.0 luego pasé por casi todos los sistemas operativos (al menos los más populares de cada epoca en particular jaja…) como ser, DOS 6.22, Windows 3.1 y 3.11, Windows 95, 98, ME, XP, Vista (que es el que uso actualmente) y Windows 7 (léase seven). Acá en mi pueblo somos pocos los que sabemos de computación, así que no es raro que la gente me busque para que les arregle sus computadoras o para que les instale algún sistema operativo, es así como también pasaron por mis manos otras versiones de Windows como la 2000 y versiones de 64 bits de XP en inglés y en castellano. Me dedico a enseñar informática, inglés y también música. Traté de acercarme un poco a Linux varias veces, fracasando, creo que con Red Hat y con Madrake (ahora Mandriva), pero eso fue hace mucho, más cerca en el tiempo intenté también con Debian, otro fracaso de mi parte. Y últimamente tuve buenas experiencias con Ubuntu, que de verdad me gusta.

En cuanto a la programación, no soy ningún experto, pero siempre he estado probando, desde BASIC, QBASIC y QuickBasic, pasando por C con RHIDE y TCLITE. Hasta Visual Basic, Visual C++ y Visual C# (con XNA Game Studio), los últimos tres, IDE’s de Microsoft. Y creo que probé hasta con DarkBASIC y DarkGDK de TheGameCreators. En cuanto a web, HTML y CSS, aunque recuerdo haber usado JavaScript, JScript (la versión Microsoft del anterior) y VBScript (Visual Basic Script). También intente un poco con Java y con Flash (con su ActionScript). Actualmente creo que el futuro de la Web esta en HTML5+CSS3+JavaScript y considero que Flash no es la mejor opción para internet, especialmente en dispositivos móviles.

Quiero aclarar que todos estos lenguajes de programación que nombré los vi muy por encima y sin embargo aunque logré hacer algunos programas y/o juegos con ellos, nunca fueron la gran cosa.

Es por eso que espero que esta carrera me abra todo un nuevo mundo de posibilidades y conocimientos. Herramientas con las cuales pueda concluir proyectos y empezar a crear ideas nuevas para proyectos futuros.

Tengo muchas expectativas en la carrera y siempre fui una persona con mucha imaginación y muchas ideas. Mi gran expectativa es llenar todos esos espacios vacios con conocimientos que me permitan de una vez por todas encontrar no solo una carrera o un empleo, sino una profesión y una forma de vida. Por supuesto que siempre me gustaron los videojuegos y no voy a nombrar todas las consolas que tuve porque me extendería demasiado… jaja…

Aclaración: El siguiente texto ya no se ajusta a la realidad, actualmente uso mucho Facebook y YouTube, y muy poco o casi nada todas las otras redes sociales.

Les dejo mi twitter y les informo que soy anti-facebook y por ahora estoy probando con cosas como SocialGO y Ning, por lo menos hasta que esté listo el proyecto Diaspora* el cual me interesó mucho.

Si te gusta lo que lees considera contribuir con este blog para que el mismo pueda tener más y mejor contenido. Contribuir.

Licencia Creative Commons
Esta obra de Juan Pablo Castañeda está bajo una Licencia Creative Commons Atribución 3.0 Unported.