¿Cómo empiezo a programar videojuegos? (Parte 2)

Aquí os dejamos la segunda y última parte del artículo del señor Tommy Refenes, igualmente cargada de sabios consejos e información interesante. Esperamos que os sea de gran utilidad.

 

¿Qué libros o tutoriales me recomiendas?

Hay dos libros que recomiendo, pero son sólo sobre programación en C++ y no son para principiantes. Son “Effective C++” y “More Effective C++”. Son libros de C++ avanzado, por lo que si no sabes C++, no te pongas en plan “Oh, los necesito para hacer juegos”. No.

Aparte de esos dos, no he leído otros libros. Aprendo leyendo la documentación de los SDK. No es muy típico, pero así es como lo hago.

Sí que recomiendo buscar tutoriales online. Internet está lleno de programas de ejemplo, tutoriales como NeHe, etc. No recomiendo ninguno en particular, principalmente porque no he seguido ninguno pero sé que hay abundancia y variedad de recursos en la red. Estoy seguro de que con un poco de ayuda de Google encontrarás exactamente lo que necesitas. NO recomiendo copiar y pegar código de tutoriales para hacer tu juego. Así no aprendes nada, sólo estás copiando. Lo mismo para programas de código abierto. Está bien mirarlos, estudiarlos y como referencia, pero no están ahí para que hagas tu juego con ellos. No te convertirás en un buen programador copiando y pegando código en tu juego a menos que lo entiendas. No te engañes así, tómate un tiempo extra y entiende las cosas antes de usarlas.

 

¿Qué programa usaste para hacer el juego?

Cuando me hacen esta pregunta, siento como si la gente asumiera que hay una herramienta mágica que hace juegos por tí. El hecho es que hay herramientas que te dan un montón de cosas hechas. Si no estás interesado en aprender un lenguaje de programación para hacer un motor de juego, echa un vistazo a cosas como Unity o UDK. Te libran de la carga más pesada del desarrollo y te permiten simplemente crear tu juego. Sin embargo esto tiene un coste: Estás limitado por el sistema que te presentan. Estas herramientas están llenas de características bien hechas, estables e increíbles, pero a veces no harán lo que quieres.

Personalmente no me gustan las limitaciones y realmente me divierte sumergirme en el desarrollo por lo que evito estas herramientas y hago mi juego a partir de código que he escrito a lo largo de los años. Esto no significa que no pudiera hacer Super Meat Boy con algo como Unity. Podría, hasta cierto punto, pero debido a las limitaciones no sería el mismo juego, no se controlaría igual y no tendría el mismo aspecto. La esencia estaría ahí, pero el juego tal como lo conocemos no. Pero de ti depende. De nuevo, se trata de que estés cómodo. Se hacen juegos tremendos con UDK, Unity y similares… y también se hacen sin ellos. Desarrollo con Visual Studio, pero podría igualmente usar Eclipse, Code Warrior, XCode o el Bloc de Notas y un compilador. Es igual que  elegir un lenguaje de programación, no importa lo que uses. Yo estoy acostumbrado a Visual Studio. No uso ninguna de las funciones molonas que incluye, sino que lo uso para mantener mi código fuente organizado, compilar y depurar. Miles de editores hacen esto también. Para el arte y la animación, Ed usa Flash. Desarrollé una herramienta para exportar las animaciones desde Flash porque era más fácil que crear herramientas nuevas para Edmund y, de nuevo, Edmund está más cómodo con Flash, así que para qué luchar. Escribir esa herramienta significaba aprender JSFL y trabajar en Flash, pero era lo que funcionaba mejor para Ed y para mí con Super Meat Boy. No necesitas mi exportador de animaciones para hacer tu juego. Un día ofreceré esas herramientas a los desarrolladores, pero esto no ocurrirá en una larga temporada, así que no las esperes.

 

¿Cómo consigues mantenerte motivado para terminar lo que empiezas?

No existe un secreto para mantenerse motivado y tampoco te puedo recomendar nada para que tú lo estés. No tengo ningún truco especial, ni esquema mental, ni lista de tareas ni nada parecido. Lo único que necesito para motivarme es creer en el proyecto en el que estoy trabajando y disfrutar haciéndolo. Si no me gusta lo que estoy haciendo, lo más probable es que no lo termine. Hace mucho tiempo empecé un juego que se llamaba Goo!. Trabajé en él durante 2 años y no llegó a ninguna parte. No era mi idea, personalmente no era un juego que quisiera hacer, y por eso nunca conseguí darle el acabado que quería. Dejé de trabajar en ese juego para empezar con Super Meat Boy. El tiempo que invertí en Goo! no fue desperdiciado porque aprendí un montón sobre desarrollo, pero el juego estaba condenado a no existir porque era algo que no me entusiasmaba. Lo único que sí lo hacía era el motor de física multihilo que tenía y eso fue a lo que me dediqué casi por completo. Trabajar en ese juego fue importante para mí porque me hizo darme cuenta que amar el juego que estás desarrollando lo hace mucho más sencillo. Esa es la motivación definitiva. Cuando crees en aquello en lo que estás trabajando y lo amas al mismo tiempo, es difícil dejar de hacerlo. Te obsesiona, quieres hacerlo más grande y mejor, y realmente quieres verlo terminado. Creer en lo que haces tiende a reflejarse en el producto final. Es más probable que dediques más tiempo en pulido extra, añadir características que creas que lo hacen mejor, simplemente te empuja a ir mucho más allá y hacer el juego realmente tuyo.

 

¿Cómo hago para sacar mi juego en Steam/Xbox/PS3/WiiU/otras plataformas?

Esto es algo que nadie que esté empezando o incluso ya trabajando en un juego debería preguntar. Tu meta debería ser “voy a hacer un buen juego”, no “tengo que sacar esto en XBLA”. El camino para llevar tus juegos a cualquiera de estas plataformas es que el público los conozca. No hay una dirección de email secreta, ni un formulario mágico que rellenar, no necesitas conocer a nadie de la industria, nadie tiene un primo que trabaje en uno de estos sitios y que pueda concertarte una reunión secreta, nada de eso existe. Es muy sencillo recibir el visto bueno desde cualquiera de estas plataformas: todo lo que te hace falta es un buen juego. Ya está. Es una cruda realidad que algunos se niegan a creer. He visto gente echando las culpas a todo excepto su juego a la hora de ser aprobado por Steam/XBLA/lo que sea. Un buen juego obtendrá la atención la seria consideración por parte de las plataformas basándose en sus propios méritos y con un poquito de tu ayuda. Habla de tu juego, haz que te entusiasme y si es bueno y gusta a otros, estos se verán contagiados por tu entusiasmo. Si tu juego no es bueno, lo vas a tener muy difícil para llevarlo a las plataformas de distribución. Céntrate en hacer el mejor juego que puedas, no te obsesiones con a qué plataformas puedes hacer que llegue. La calidad de un juego puede venderlo mucho mejor que lo que podrá ningún tipo de visibilidad en cualquier plataforma.

 

¿Y si termino mi juego y nadie lo quiere? Si te lo curras y crees que tu juego es lo mejor del mundo pero aún así no has podido lanzarlo en ninguna plataforma de distribución, no te lo tomes como un fracaso o una señal de que deberías dejar de hacer videojuegos. Muy pocos han logrado el éxito con su primer juego. SMB es el primer juego que he terminado, pero hubo unos cuantos anteriores que no llegaron a ningún lado. Una vez estuve a punto de conseguir un acuerdo con Sony para el juego que mencioné antes, Goo!, idéntico a los de fl0w y Everyday Shooter. Un cambio en la organización en el último minuto (literalmente a dos días de firmar los últimos papeles) supuso la cancelación del juego y que no volviese a saber nada de Sony. El juego no era bueno e incluso con el acuerdo era probable que no llegara a terminarse nunca y bastante probable que fuese un enorme fracaso. Esto dolió y escoció, pero no me detuvo Tampoco permitas que este tipo de contratiempos destruya tu sueño. Los demás puede que piensen que tu bebé es feo… pero da lo mismo. Sigue haciendo juegos. Que los reveses sean tu inspiración y si tienes la fuerza para seguir adelante, lo más seguro es que algún día tu sueño se haga realidad.

 

Conclusión

Simplemente haz tu juego con lo que puedas, empieza por el principio y preocúpate por el resto más tarde. Los lenguajes de programación y el software que vayas a usar son irrelevantes al crear un juego, así que elige lo que te sea más cómodo de usar o aquello que quieras aprender, pero no abarques demasiado al empezar. Asegúrate de que progresas lo suficiente como para mantenerte motivado y tener la frustración a raya. Ama tu juego, habla sobre él, obsesiónate con él y te resultará difícil dejar de trabajar en él.

2 thoughts on “¿Cómo empiezo a programar videojuegos? (Parte 2)

  1. Sandy1992

    This article is on 15 spot in google’s search results, if you want more traffic, you should build more backlinks to your
    posts, there is one trick to get free, hidden backlinks from
    authority forums, search on youtube: how to get hidden backlinks from forums

    Reply
  2. ConsueloMunr

    I see your blog needs some unique & fresh articles. Writing manually is time consuming, but
    there is solution for this hard task. Just search for: Miftolo’s
    tools rewriter

    Reply

Leave a Reply to ConsueloMunr Cancel reply

Your email address will not be published. Required fields are marked *