Guía de desarrollo de juegos Indie

GreyShock

¡Aviso!

Nos hemos mudado a la Taberna de Desarrollo Indie :)

¿De qué va esto?

Cada vez más está en auge el desarrollo de juegos independientes. No paran de aparecer casos de éxito de personas que, gracias a los medios de difusión actuales, consiguen abrirse un sitio en el mundo del entretenimiento electrónico, el cual actualmente estaba devorado completamente por las grandes productoras. Y es que para divertir no son necesario gráficos de última generación ni ocho núcleos de potencia. Sólo se necesita algo muy básico, la esencia de todo juego: Capacidad de divertir, entrener. Ocio.

Podemos ver casos como el del archiconocido y magnífico Minecraft (o su clon 2D: Terraria) o juegos de la talla de Supermeat Boy o Binding of Isaac, que han conseguido triunfar con conceptos de juego divertidos y buenas dosis de jugabilidad y rejugabilidad.

O también, por no irnos tan lejos, poner ejemplos más locales como el Unepic, claro caso éxito para mí y desarrollado por un único y heroíco creador.

Presenciando todo lo que ocurre, llega un momento en el que todo desarrollador con un mínimo de inquietudes se plantea...

¿Y por qué no hacerlo yo?

Una opción tan atractiva como ganarse la vida haciendo lo que te gusta, y poder hacerlo de forma digna es demasiado tentadora. Alguno de nosotros incluso puede que ya hayamos hecho un par de amagos de desarrollar algún jueguecito por nuestra cuenta o con amigos y que la cosa haya acabado en agua de borrajas, ya sea por falta de voluntad, implicación, tiempo, o excusa X.

El caso, es que el sueño de "hacer videojuegos" ya no es tan intangible como lo era años ha. Lo único necesario es contar con algo muy importante: Fuerza de voluntad. O en su defecto: Dinero. Todo es cuestión de evaluar de qué tenemos más. Lo que está claro, es que sin una inversión seria, sea cual sea nuestro recurso, nunca lograremos hacernos un sitio en este olimpo virtual de los desarrolladores indie.

¿Para qué sirve este hilo?

Fruto de experiencias en diferentes empresas, crisis de la edad, y demás factores aleatorios de la vida, he llegado a la determinación de que quiero tirarme a la piscina. Ya tengo acumulados mis proyectos fallidos en cuando a desarrollo independiente, y el problema siempre ha sido el mismo: La vida real. Sobrevivir, trabajar, mantenerse... formar parte de la maquinaria social, por así decirlo, siempre termina sustituyendo tus sueños por cualquier trabajo estable que te permita mantenerte y darte tus caprichos y repetirte día a día "No vivo mal"...

Pero qué cojones. Al menos una vez en la vida todos tenemos que jugarnos el todo por el todo. Personalmente, tengo pensando empezar esta aventura muy en serio e incluso tengo pensado invertir pasta, la necesaria: ya sea pagando alquiler de estudio, artistas freelance, herramientas de desarrollo.. lo que haga falta. Porque tengo fe en mí mismo y bla bla bla. Supongo que no será la primera vez que viene alguien motivado a decir como va a molar su juego y tal.

El caso, es que a parte de compartir mi reflexión sobre el lanzarse o no a emprender una aventura como esta, pretendo crear este hilo para que todos podamos compartir esa experiencia, compartir recursos, manuales, estrategias y entre todos hacernos fuertes. Yo personalmente, aportaré mi experiencia y -si lo quiere el destino- mi éxito, y si no, mi fracaso, para que todos podamos enriquecernos. Así como quien quiera compartir sus experiencias, aconsejar, trollear, o lo que bien guste. Hay que estar a las duras y a las maduras.

Muy bien, ¿Por dónde empiezo?

EDIT 29/01/2013: Buffocente ha compartido este FAQ que resuelve muchas de las preguntas típicas cuando te decides a meterte en el desarrollo de juegos. Échale un vistazo.

Esta es una pregunta muy importante. Me encantaría que alguien viniera y me iluminara y yo editaría el post encantado. Pero por el momento, mi opinión personal es que lo más importante es conocer las bases, los métodos y los fines. Todos tenemos nuestra idea de chupijuego que nos hará millonarios en la mente. Pero lo importante es que ese juego cobre vida.

Ojo, no le resto importancia al Game Design, pero creo que es muy importante saber con qué herramientas podemos contar antes de empezar a construir castillos en el cielo.

Lo más sensato, en mi opinión, es indagar un poco sobre como se desarrollan los juegos indie hoy en día, y veremos que hay una amplia selección de motores/engines que nos resuelven la vida en cuanto a las mecánicas más básicas que suelen incluir los videojuegos. Es importante no reinventar la rueda -a no ser que nos veamos capaces de ello- como en el caso del creador de Unepic, que utilizó un motor desarrollado por él mismo.

Lista de Game Engines

Wikipedia reúne un compendio bien clasificado de motores tanto gratuitos como de pago que nos permitiran asentar unas buenas bases para nuestro proyecto.

Engines/Librerías

OpenGL Superbible 5th edition (Aporte por aitorman)
Esta bastante bien para iniciarse, porque al principio usa unas librerías que ofrecen alternativas a las funcionalidades que se han quitado de OpenGL 3 para arriba, pero mas adelante tambien explica como funcionan y como independizarse de estas librerías.

El motor tal es mejor por tal cosa

Genial. Soy un principiante en cuanto al desarrollo de juegos, cualquier experiencia que podáis aportar sobre engines de desarrollo será recopilada en este apartado.

Manuales y recursos

Un libro de desarrollo como compañero de autobús/metro/ratos muertos me ha enriquecido siempre como desarrollador y mantener nuestros horizontes en continua expansión es algo muy importante. Estreno el apartado con dos libros que recomiendan los chicos del estudio Wolfire.

Manuales

Listado de manuales

Si conocéis más manuales no dudéis en recomendarlos. A mí personalmente me encantaría encontrar uno que hablara sobre la aventura de meterse a desarrollar en este mundillo. No tan práctico si no a nivel de "¿Qué tengo que hacer?¿Hacia dónde voy"... basado en experiencias de gente que ya se haya hecho su sitio.

Recursos online

Tutorial para hacer un Space Invaders en Java (aporte por flopi01)

The Java Hub (aporte por Wasd)
Videotutoriales de desarrollo en Java. Tiene su sección orientada a videojuegos.

thenewboston (aporte por Wasd)
Más videotutoriales. Estos cubriendo más lenguajes y plataformas y también con alguna sección orientada a videojuegos.

Documentales

Una gran recopilación de todos los documentales que existen sobre el mundillo de los videojuegos, muy bien ordenada y clasificada, además.
http://www.pixelprospector.com/the-big-list-of-video-game-documentaries/

Artículos de interés

Top Indie Game Development Blogs
Listado de blogs que hablan sobre la aventura de desarrollar juegos sin el respaldo de grandes empresas.

Terminar un juego
Un artículo más de filosofía que técnico, pero estos artículos sobre cómo encarar las cosas me molan mucho y me parecen muy importantes. Echadle un ojo.
(original en inlgés)

Five Foundational Steps to Surviving as a Game Developer
Filosofías de vida a adoptar de cara a este reto.

Control de FPS, importante para que tus juegos se vean a la misma velocidad independientemente de la máquina sobre la que se ejecute. Dos enfoques diferentes:

Webs

Listado de webs

Posts interesantes

Hay algunos aportes que no son dignos de ser destripados, así que los citaré aquí directamente :P

MarioRomero, sobre OGRE3D, la experiencia de desarrollar juegos, y algunos otros consejos
#87

Potito nos recomienda una competi que se celebrará del 20 al 23 de Abril sobre desarrollo de juegos independientes en tiempo record :)
#133

Masked Games
Post en Mediavida sobre un estudio independiente del cual seguiremos de cerca su trayectoria. Por cierto, están reclutando :3

Crowdfunding
Una vez nuestro proyecto esté a punto de caramelo, una alternativa a percibir ese empujón financiero final que nos falta podría ser el crowdfunding. Os sorprendería los resultados que se pueden obtener con un buen planteamiento y una presentación atractiva.

#1762 aitorman nos habla sobre la portación de juegos desarrollados con ImpactJS a iOS

Epílogo

Y esa es mi idea. Espero que tenga buena acogida y entre todos hagamos un poco de comunidad desarrolladora y compartamos nuestros avances :) ¡ÁNIMO!

82
HeXaN

Muy buen aporte, seguro que a Midgard le viene bien.

64 3 respuestas
charlesmarri

Eres grande, Grey.

1 respuesta
Sergeon

Bueno yo aporto mi granito de arena con este libro:

http://fivedots.coe.psu.ac.th/ad/jg/

que es sobre desarrollo de juegos usando Java. Es gratuito y se puede descargar entero desde la página, aunque está también a la venta en O'reilly.

1 respuesta
GreyShock

#3 Vienes aquí a engalanarme, truhán? xD

#2 Uuuf.. buscando en el foro para ver si ya se había abierto un hilo como éste me he encontrado con todas las aventuras de Midgard xD El chico por lo menos es insistente, algo de experiencia desarrollando historias habrá conseguido. Su idea de World of Minecraft parecía chula, pero se notaba que era muy bestia para desarrollarla uno sólo.

Siguiendo por el tema del hilo, estudiando las posibilidades de introducirse en este mundillo me han surgido algunas dudas.

¿Merece poner toda la carne en el asador con una buena/gran idea? ¿O sería más recomendable intentar acerse notar con pequeños juegos (para PC o plataformas móviles) como entrenamiento y antesala al gran proyecto?

Tengo varias ideas para juegos hardcore pepin (aunque 2D), con esos elementos que dan tanto jugo como generación de mundo aleatorio, planteamiento infinito y rejugabilidad a cascoporro. Que no comentaré en detalle hasta que no estén más desarrolladas, que nunca se sabe xD

Y no sé si entrar dando una patada a la puerta con eso, o intentar desarrollar otros conceptos de juego más simples pero con menos coste de desarrollo para tantear el terreno y quizá, con mucha suerte, incluso generar algo de beneficio para el proyecto tocho.

:wtf:

2 1 respuesta
Spank

Muy grande GreyShock, tus aportes siempre son bienvenidos, favoriteado.

1 1 respuesta
darkblade60

mola, aunque tengo conocimientos de programación en varios lenguajes etc, programar un juego es algo que se me escapa totalmente, que recomiendas que sea lo mas sencillo?, algo para monos.

1 respuesta
GreyShock

#7 Yo probaría a descargarme el Game Maker, a ver que tal es la versión de prueba. Según lo venden, es a prueba de "monos" como tú dices xDD Y luego si empiezas a darle forma a algo pepin, tiene la opción de meter código.

#6 Muchas gracias! :D

Estaba informándome un poco por la red, buscando guías y consejos sobre el indie game developming y he encontrado algunas cosas interesantes.

Top Indie Game Development Blogs
Listado de blogs que hablan sobre la aventura de desarrollar juegos sin el respaldo de grandes empresas.

Me gustaría destacar este artículo sobre filosofías a adoptar de cara a este reto:

Five Foundational Steps to Surviving as a Game Developer

Gusete

#0 En motores aniade Unity3d, UnrealEngine, CryEngine, Torque3d y Trinigy Vision Engine. En general para un indie cogeria Unity3d aunque todos los que he puesto tienen licencias "gratuitas" para indies.

Ademas, como plataformas para indies en consolas aniade Wiiware, Psn y XBLA/XBLIG. No estoy seguro si para WiiWare y Psn necesitaras un kit de desarrollo.

#5 Tienes alguna experiencia desarrollando juegos? Estas solo o con un grupo de gente? Eres programador o artista?

1 respuesta
Soltrac

Añado XNA como framework para desarrollar, eso sí, windows only.

2 respuestas
GreyShock

#9 cuales de esos me recomiendas que incluya en la lista, es para que sea una selección y no un chorro de nombres, que para eso está la tabla que he enlazado con wikipedia :P ¿Qué virtudes tiene Unity3d?

Mi experiencia desarrollando juegos es muy limitada. Estudié sobre game designing y desarrollé algunos mierdijuegos en flash durante mi último año en la universidad. También me adentré en el mundo de XNA con un equipo que se formó en una empresa en la que estuve currando, pero la cosa quedó en nada por dispersión y desmotivación del personal. Así que de cara a "he desarrollado tal, mira cómo mola" no tengo nada... pero creo que dispongo de las capacidades y las ideas necesarias para ello.

Actualmente estoy solo. Soy programador y mi idea es ir dándole forma a algún juego con estética rudimentaria hasta que pueda considerar pagar a algún artista para que lo haga bello, o consiga asociarme con uno en el que pueda confiar.

Me encantaría formar un equipo, ya que ahí reside la auténtica fuerza, pero estoy bastante receloso por varios fiascos del pasado... que es muy jodido ir tirando de la gente y notar como se va perdiendo la motivación inicial. Cuando no hay pasta de por medio, tienen que alinearse muchos factores para que un equipo se mantenga unido y todo llega a buen puerto.

#10 Yo me metí un tiempo con XNA y no pintaba mal la verdad, además el soporte para detectar el gamepad de xbox y manejar tus juegos con eso molaba bastante xD Lo añado a la lista.

2 respuestas
Wasd

Buenas! Me gusta el hilo, ya lo tengo en favoritos. Yo estoy estudiando desarrollo de aplicaciones web. Este año estoy dando java y el año que viene es probable que estudie C++ o C#. Yo por mi parte me voy mirando programación de videojuegos, es algo que me atrae, al igual que el diseño. Por el momento soy un poco escéptico a utilizar motores gráficos (he tocado varios, Source SDK, Blender, Unreal, Unity3D, y algo he hecho con el ya citado Game Maker, RPG Maker). Sin embargo por el momento prefiero hacer juegos cutres siendo todo puro código y diseños simples hechos por mi, para aprender realmente como se desarrolla un videojuego, desde la instrucción de aceleración de la física del personaje hasta el diseño o la entidad de iluminación general.
Cuando sepa programar (calculo que unos 2 o 3 años echando unas cuantas horas todos los días) ya me miraré seriamente motores que me permitan hacer maravillas, pero de momento en mi mente solo tengo la palabra "código". Hacer código, comprender código, poder modificar el aspecto del juego que te venga en gana porque es tú código y lo conoces a la perfección, etc...
No puedo aportar información acerca de libros, pero os dejo un par de canales de youtube que tienen muchísimos tutoriales de distintos lenguajes, y dentro de esos lenguajes, distintas áreas de programación (entre ellas videojuegos):

Thenewboston, tiene tutoriales de Programación en Java desde cero, programación para videojuegos, 3DS Max, HTML 5, y mil millones de cosas mas: http://www.youtube.com/user/thenewboston?ob=4&feature=results_main
TheJavaHub: Programación en Java, os dejo el primer video de programación para videojuegos. Lo explica todo muy bien: http://www.youtube.com/watch?v=PopdTUzizDA&context=C4fb638aADvjVQa1PpcFPzviR35bTymkzPLvfJRIuv6FBdACO6s8Q=

Un saludo hermanos del código xD

2 1 respuesta
LoBezNo

#12 Yo ando como tu, pero en dam. Y como dices, por ahora piano piano e intentar entender el codigo como si fuese castellano.
Lo que no tengo claro es lo que voy a hacer cuando acabe el superior.. Tengo 2 opciones: hacer un master de un año en desarrollo de videojuegos cuando acabe esto ó tirar a por el grado nuevo de videojuegos que han implementado hace poco.
Por ahora tengo muchas dudas, me lo tengo que mirar muy bien, pero bueno, todavia me queda un año para ello =]

Ah y #1 muy grande el hilo, a favoritos que va :)

B

Para 2D en java tambien estan las librerias Slick, muchos tutoriales y viene todo bastante masticadito para empezar, es similar al XNA.
http://slick.cokeandcode.com/

De XNA me pille este libro, aprendes a hacer un juego en 2D muy basico pero tocando un poco de todo, colisiones, controles (incluidos los sensores del windows phone, aunque no conozco a nadie con uno XD), multijugador... ademas la otra mitad del libro introduce las 3D con otro jueguecillo aunque parece bastante tedioso, por eso nunca he ido mas alla de las 2D que ya son complicadas de por si...

http://www.amazon.co.uk/Learning-XNA-4-0-Development-Windows/dp/1449394620/ref=sr_1_1?ie=UTF8&qid=1331657295&sr=8-1

1
anikex

este hilo no lo deberia de haber hecho midgard?

Gusete

#11 Lo bueno de Unity3d es que te abre muchas opciones: pc, mac, consolas, ipad, web, etc... y tiene una licencia gratuita. Puedes hacer algun juego para ipad/iphone o para pc pequenin y ver como va. Si usas xna, te limitas a publicar en xbla/xlig, que son bastante jodidas para plantearse un modelo de negocio pero para empezar esta bien.

Depende mucho de como te lo quieras plantear. Si te lo quieres montar como modelo de negocio serio una opcion es tirar por Wiiware (aunque necesitaras titulos publicados para que te den el kit), publicar un juego para hacer ruido y que te paguen para hacer ports de juegos rollo harry potter para despues tener una mejor posicion para hacer algo propio. Esto es lo que estan haciendo por ejemplo "Over the top games"(http://www.overthetopgames.com/ ). Echale un ojo a su historia a ver si te ayuda.

Si no lo tienes claro, descartaria hacer nada para consolas, por los rollos de los kits y los canales de distribucion. Empezaria con Unity3d. Haria algo pequenio, con su arte y sonido comprados a un freelance y lo publicaria en algun lado. Posiblemente un juego para ipad/iphone. El objetivo de esto seria tener la experiencia de publicar un titulo en el que haya invertido pasta para arte y sonido aunque sea pequenio.

Algunas paginas web:

1 respuesta
MrNulo

El game maker no cuesta 100 $, cuesta 40 $.

Lo que sí cuesta 100 $ es su versión para hacer juegos en html5 y también tendrá una versión más avanzada y más cara para producir en varios formatos.

La verdad es que os lo recomiendo usar, al menos la versión gratis. Es muy simple hacer cosillas y está entretenido.

1 respuesta
BISON

Mil gracias GreyShock.

X-Crim

grande #1 a favoritos.

setinf0

Buenas! yo os recomiendo BennuGD, que es un lenguaje basado en SDL (C). Si no recuerdo mal este lenguaje era el proyecto fin de carrera de un español, que luego abandonó y que lo ha seguido desarrollando un tal "SplinterGU" (que creo que es latinoamericano). Hay muchooo material en castellano y de hecho hay una "Biblia de BennuGD" creada por osk, que explica el lenguaje muy a fondo con ejemplos.

web: http://www.bennugd.org/es

En los foros hay muchísima información también y suelen ayudar en todo lo que pueden.

PD: El lenguaje es MUY fácil y con paciencia y un buen grafista puedes hacer cosas impresionantes..

2 respuestas
GreyShock

Geniales los aportes que estáis haciendo, chicos! No me da tiempo a ir actualizando el post xD Gracias a todos!

Creo que voy a dejar que se acumule y mañana actualizo, que me estoy volviendo loco cada 20 minutos editando xD

#20 La web es horrible xD, pero no tiene mala pinta, lo investigaré a ver :D

#17 Corregido :)

GoTcHe

Mi aportación aunque más concreta es Wintermute Engine. http://dead-code.org/home/

Es básicamente un soft con el que crear de forma bastante intuitiva aventuras gráficas 2D o 2.5D.
Yo lo probé y me gustó mucho, aunque para innovar no sea adecuado, imagino.

Me hubiera gustado empezar algo si no fuera porque no tenía ningún artista que pudiera ayudarme.

-Crack-

Igual no encaja con la temática del thread, pero por si a alguien le interesa:

Estoy desarollando un juego web por mi cuenta, que al fin y al cabo es una aplicación web, y lo estoy haciendo con Spring + Hibernate, os dejo una guia: http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=desarrolloRapidoJava

Yo no he usado la guia porque la encontré cuando ya estaba el proyecto más que trabajado, pero la he mirado y está muy bien para alguien que no tenga ni idea de estas tecnologías (como yo cuando empecé). Acelera mucho el proceso de diseño y estructurización del proyecto :)

Otra cosa: Es prácticamente imprescindible tener un artista en el grupo de desarrollo. Las cosas primero entran por los ojos!

RoDRa

Yo recomiendo a la gente que se mire la libreria allegro

http://alleg.sourceforge.net/

http://es.wikipedia.org/wiki/Allegro_(biblioteca_de_programaci%C3%B3n)

http://www.allegro.cc/

1 respuesta
elkaoD

Yo recomiendo GameDev@StackExchange como fuente INFINITA de información. Lo mejor de lo mejor de lo mejor: lo superior.

Y como librería alternativa a SDL (que no sé si la habéis nombrado ya), SFML. Es como SDL pero moderno y actualizando habitualmente (no sé cuanto llevo esperando SDL1.3)

3 2 respuestas
The-Force

Simple DirectMedia Layer ok repe (toy ciego)
Open Dynamics Engine

GreyShock

#25 Ole, paginón que no conocía. Aporte brutal. ¿Te dicas al desarrollo de juegos o tienes alguno lanzado por ahí? :O

1 respuesta
elkaoD

#27 digamos que me dedico al desarrollo mental de videojuegos. Ah, y también al desarrollo de proyectos a medias ;)

Tetris, ajedreces, matamarcianos y demás del estilo, pues sí, pero nada realmente enseñable. Me faltan grafista y tiempo como para acabar algo gordo :)

1 1 respuesta
Gusete

#28 manita por mencionar stackoverflow! ;)

r2d2rigo

#10 #11 #16 MonoGame es un port multiplataforma GPL de XNA, no va nada mal. Eso si, el soporte 3D aun esta en desarrollo.

#25 tu tambien por SO? Me vas a hacer la competencia? :clint:

1 respuesta
Tema cerrado