Respondiendo preguntas: 5to año, Actionscript y C#

Este artículo es la parte 1 de 2 de la serie Respondiendo preguntas

Aunque la idea original era que me mandaran enlaces a través de este formulario, lo cierto es que lo han usado también para enviar correos 🙂 , así que publicaré esto que me mandaron, con su respectiva respuesta:

Hola Chiguire! (No se hacerle los dos puntitos sobre la «U»…), soy estudiante de 5to Año de Bachillerato, y desde hace un tiempo he querido hacer mi propio videojuego para PC… Hace un par de años compre un libro de Action Script 2.0, y con el inicie mi aprendizaje en el mundo de la programacion.

A pesar de que hoy en dia ya he creado uno que otro juego en Flash, esta plataforma no tiene lo que quiero para el videojuego que tengo en mente… Sin contar que lo que realmente me interesa es el Diseño Grafico y la Ilustracion… Hace unos meses encontre la plataforma de Microsoft «XNA 3.1» que se basaba en el codigo de programacion C#, me intereso bastante cuando descubri las posibilidades y la cantidad de informacion que podia encontrar sobre todo esto…

Ahora llegando a mi punto, desde que encontre esta plataforma aun no llego encontrar un buen manual de C# que me explique de una manera amigable como funciona el lenguaje y como puedo orientarlo a la creacion de videojuegos con XNA… Mi peticion es que porfavor escribas un articulo relacionado con el tema, donde preferiblemente puedas colocar un par de libros sobre esto que pueda conseguir aqui en Venezuela (He intentado conseguir siquiera un libro que me explique C#, pero aun nada..) y que expliques mas o menos el proceso de creacion =), me seria muy util y se que a muchos mas! (Ten en cuenta mi grado de novatez jeje…)

PD: Si te sirve de algo, el estilo de juego que quiero crear es algo asi como el conocido de XBLA «Castle Crashers», aunque sin un modo de combate tan profundo ni algunos toques de RPG que incluye ese titulo.

— Luisma

Hola Luisma, me alegra que hayas decidio matar la curiosidad de hacer un videojuego. Yo opino Actionscript es una excelente plataforma para realizar juegos, pues Flash Player tiene una barrera baja de aprendizaje y además se facilita la labor de mercadeo por estar tan asociada a Internet. Con Actionscript puedes hacer cualquier cosa que quieras hacer en otra plataforma.

Te digo esto porque no sé que videojuego tengas en mente y qué es lo que quieres para realizarlo. Esto es una trampa común de la mente, aunque también puede ser una bendición: tu ‘novatez’ impide ver que hay ciertas tareas que son titánicas, pero por eso mismo a veces las haces y nos dejas a los demás mal 🙂 . El hecho es que uno puede tener en mente un videojuego impresionante, y cuando te sientas a hacerlo te das cuenta que se necesitan hacer un montón de cosas, y algunas toman un montón de tiempo y al final te desanimas y dejas el proyecto de lado.

Para darte un ejemplo, Tómate un Descanso, el primer juego que publiqué, iba a ser un juego de aventura con 5 partes, en la que el protagonista iba a viajar e iba a perder su dinero y su identificación, y tendría que trabajar duro y jugárselas para poder regresar a su país. Las tres primeras habitaciones iban a ser como el preludio para todo lo que venía. Y fíjate que ese «preludio» terminó siendo el juego completo. Y antes de Tómate un Descanso ya había hecho algunas cosas que iban a cambiar el mundo, pero en realidad nunca vieron la luz. Así es el camino para aprender a hacer videojuegos, y contrario a estristecerse por este hecho, uno debe asumir que la forma de aprendizaje es paso a paso, con proyectos pequeños y luego creciendo. Y definitivamente haciendo las cosas en grupo, que es la mejor experiencia de aprendizaje para manejar cualquier proyecto.

Te aplaudo también el intento de aprender a programar, así quieras dedicarte al diseño y a la ilustración. Aquellos que diseñan con entendimiento completo de cómo funcionan las computadoras tienen un mejor control de sus herramientas y se comunican mejor con los programadores, teniendo como resultado mejores juegos.

XNA y C# conforman también una buena plataforma. Estarías desarrollando principalmente para Windows y para el Xbox360, lo cual hace la forma de mercadear tu juego muy distinta a como lo harías con un juego en Flash. Allí tienes disponible el Community Games como una forma de publicar tus juegos, y el Live Arcade como «un grandes ligas» por así decirlo. En lo personal, yo solo he leído sobre XNA y C#, pero en realidad nunca he programado seriamente en este lenguaje, por lo que si escribo algún artículo sobre eso, sería como mis notas de aprendizaje así como lo hice con Python y PyGame. Alguna vez tuve un libro para aprender a programar con XNA, pero lo regalé en una charla 😛 así que sigo igual. Con tu experiencia cualquier libro para aprender XNA de nivel básico te bastará. Verás que a medida que ganes experiencia vas a necesitar libros más específicos y, más importante aún, obtener buenas fuentes en Internet para aprender y hacer preguntas. Sé que la estructura de un juego en XNA es similar entre todos los juegos, y el lenguaje solo te puede ayudar hasta la parte en la que necesitas una computadora: la parte del diseño de tu juego como tal debe quedar de tu parte, por lo que probablemente quieras aprender también sobre cómo diseñar juegos.

En fin, creo que es bastante explicación para esta carta. Simplemente comienza a hacer juegos sin preocuparte mucho de tu «gran visión», aprende las herramientas que eventualmente te permitirán realizar esta visión (tú mejor que nadie sabrás cuándo llegará el momento), diviértete un montón, y estamos hablando por acá o por INVENTAD.

Un saludo,

Ciro.

PD: Para que veas que la gente de Castle Crashers (C#/XNA) comenzó por algún lado también, revisa Alien Hominid, que fue hecho en Flash inicialmente.

Respondiendo preguntas: Desarrollando juegos en universidades

Este artículo es la parte 2 de 2 de la serie Respondiendo preguntas

Este fin de semana sucumbí a la tentación de abrir un Formspring, un formulario en el que un usuario, anónimo o no, te hace una pregunta. Al principio vi que otros se habían abierto sus formsprings, pero preguntaban necedades. Tengo la fortuna de que a mi me preguntan cosas realmente interesantes, así que para dejar constancia acá, republicaré algunas preguntas respondidas allá (y así también las pueden ustedes comentar 😉 ). Editaré las preguntas para ajustar la ortografía y puntuación.

Pregunta anónima: ¿Qué piensas del desarrollo de juegos en las universidades? ¿Eso existe? ¿Conoces alguna universidad o algún profesor que sea como tú?

Las universidades, y específicamente las escuelas y departamentos de computación, están naturalmente reacios a recibir a los videojuegos. No los entienden, y además en principio no parecen aportar nada a sus áreas de conocimiento.

Las escuelas y departamentos de computación por lo general son fundados por «científicos computacionales», o «computer scientists». Decir que esta rama de la ciencia trata de computadoras es como decir que uno estudia astronomía para trabajar con telescopios. La computadora es simplemente la herramienta más adecuada para probar las teorías propuestas por estos científicos, pero en realidad estas teorías van más allá de las computadoras como entes físicos, para meterse más a la rama matemática. Por eso la lógica simbólica y las matemáticas discretas son materias fundamentales en cualquier pensum.

Una universidad más abierta a los videojuegos necesariamente tiene que abrirse a otros campos relacionados con la computación. Daré algunos ejemplos.

En primer lugar, la relación entre las computadoras y los seres humanos, conocido como las interfaces, tiene una estrecha relación con la psicología. Los videojuegos necesariamente tienen que darse a entender para que el jugador pueda jugar, entretenerse y engancharse: allí entra la parte psicológica que un pensum de computación no puede ofrecer.

Otro ejemplo más cercano a la computación son los algoritmos de inteligencia artificial, basados en construcciones matemáticas, e implementadas elegantemente en los juegos, de tal manera que son transparentes al jugador.

Finalmente, los videojuegos tienen una relacion estrecha con el hardware que los corre. La visión de los creadores de los juegos por lo general tiene como resultado que el hardware en el que corre se le exprime hasta la última gota de desempeño (Nota relacionada, revisa este link sobre Pseudo 3D http://www.gorenfeld.net/lou/pseudo/). Esto podría tener alguna aplicación sobre el campo de los sistemas operativos, pero también sobre el campo de la construcción de algoritmos. La búsqueda de maneras más eficientes de procesar datos y de algoritmos que faciliten esto podría terminar de aportar algo al campo de computabilidad.

Por otro lado, los juegos en general tienen otra parte que definitivamente no tiene por qué pertenecer a un pensum de computación, y en parte me siento como haciendo trampa a la computación en mis clases cuando doy este contenido. Los juegos tienen una parte de construcción de sistemas que no puede ser enseñado directamente, el creador tiene que enfrentarse directamente para poder absorber esos conociemintos.

Más importante aún, los juegos tienen una parte de entretenimiento, estructura narrativa, de conexión emocional con el consumidor, que llevan toda una vida para aprender y dominar.

Dicho lo anterior, sí existe un campo para desarrollar juegos en la universidad, sólo que no puede ser un esfuerzo exclusivo de computación, debe necesariamente ser un campo multidisciplinario. Solo mira la cantidad de juegos serios/simuladores que se desarrollan para médicos, pilotos, militares, etc. Existirán algunas tesis que podrán autocontenerse en el departamento de computación, pero me temo que son pocas. Chester (http://vimeo.com/5568115) es un ejemplo de una tesis de inteligencia artificial que empleó un juego como excusa.

Si se da algún cambio en las universidades, tiene que provenir de sus propios estudiantes. En mis estudios tuve la fortuna de contar con un profesor que abrió una materia (Andreas Meier, gracias). Pero de resto, fueron los estudiantes los que lograron abrir la electiva que di en la UCAB. Esto lo digo porque sí conozco profesores que gustosos darían materias o proyectos relacionados, pero están atados por sus escuelas (UNE, I’m looking at you).