Empecé a programar hace muchos años. Ahora estoy tratando de hacer juegos. He leído muchas recomendaciones para comenzar a clonar algunos juegos conocidos como galaga, tetris, arkanoid, etc. También he leído que debería ir a por todo el juego (incluidos menús, sonido, puntuación, etc.).
Ayer terminé la primera versión completa de mi clon Arkanoide. Pero está lejos de terminar. Todavía puedo trabajar en él durante meses (programo como un pasatiempo en mi tiempo libre) implementando un conmutador de resolución de pantalla, reasignación de las teclas de control, potenciadores que caen de ladrillos rotos y un enorme etc.
Pero no quiero estar aprendiendo para siempre cómo clonar UN juego. Tengo la urgencia de llegar al siguiente clon para aplicar algunas ideas de diseño que encontré al desarrollar este clon Arkanoid (al mismo tiempo que leo el libro GoF y mucho código fuente del concurso de juegos Ludum Dare 21).
Entonces la pregunta es: ¿Debería seguir mejorando el clon Arkanoid hasta que tenga todas las características que tenía el juego original? ¿O debería pasar al siguiente clon (hay casi infinitos juegos para clonar) y comenzar a reparar las cosas que hice mal con el clon anterior?
Esta puede ser una pregunta muy subjetiva, así que por favor restrinja las respuestas a la forma más efectiva de aprender a hacer mis propios juegos (no clonar ideas de alguien). ¡Gracias!
ACLARACIÓN
Para aclarar lo que he implementado, hago esta lista:
Características implementadas:
- Capacidades de rebote (la pelota rebota en paredes, ladrillos y en la barra).
- Suena cuando rebota en ladrillos y en la barra, y cuando el jugador gana o pierde.
- Menú de título básico (nuevo juego y solo salida). También menú en el juego y menús de ganar / perder.
- Solo tres niveles, pero el sistema de mapas es tan fácil que no creo que me enseñe mucho (¿me equivoco?).
Características no implementadas:
- Potenciadores al romper los ladrillos.
- Ladrillos complejos (con más de un "punto de golpe" e invencible).
- Mejores gráficos (no soy realmente bueno en eso).
- Pulido de programación (use más intensamente los patrones de diseño).
Aquí hay un enlace a su página web (mínima): http://blog.acamara.es/piperine/ Me da vergüenza mostrarlo, así que no me pegues demasiado :-)
Mi pregunta estaba relacionada con las características no implementadas. Me preguntaba cuál era el camino más rápido (óptimo) para aprender. 1) implementar las características no implementadas en este proyecto que se está haciendo grande, o 2) hacer un nuevo juego que probablemente me enseñe esas lecciones y otras nuevas.
RESPONDER
Elijo @ ashes999 answer porque, en mi caso , creo que debería pulir más y tratar de "enviar" el juego. Creo que todas las otras respuestas también son importantes a tener en cuenta, así que si viniste aquí con la misma pregunta, antes de tomar una decisión apresurada, lee toda la discusión.
¡Gracias a todos!
fuente
Respuestas:
No estoy de acuerdo con la respuesta de Patrick por completo. Si desea tener éxito como desarrollador de juegos, la habilidad número uno que necesita aprender es cómo tomar una idea y enviar un juego completo y pulido.
Lo que se dará cuenta con el tiempo (que es lo que me di cuenta después de varios años) es que la programación es solo una pequeña parte de su juego. Es fácil porque es divertido. Pero seguir solo con la programación te dejará con un rastro de pruebas de conceptos y demostraciones incompletas.
En su lugar, sugeriría encarecidamente que coloque un sitio web y un blog (Wordpress es ideal para este tipo de cosas), termine sus juegos (comenzando con Arkanoid) y libérelos en la naturaleza.
Además, es clave darse cuenta de que si haces esto, controlas cuándo se termina el juego. Si quieres 1000 niveles con 10 características principales, está bien. Si quieres 10 niveles con 3 características principales, está bien. (De hecho, recomiendo proyectos más pequeños con mayor frecuencia, porque aprende más y se enfoca mucho en pulir de esa manera).
Editar: En respuesta a las personas que no están de acuerdo, siento que necesito aclarar. Si creaste un juego solo para un propósito / experimento (que hago todo el tiempo), por supuesto, corta el alcance y envíalo. Nadie dijo que Arkanoid necesita 1000 niveles para ser un juego pulido; solo crea niveles suficientes para que sea, en tu opinión, divertido y sigue adelante.
ES posible pasar años en un juego y nunca enviar. Pero siento que es mucho más fácil caer en el otro agujero de solo hacer demostraciones técnicas y prototipos para siempre. Me llevó más de 10 años dejar de hacerlo yo mismo.
fuente
Sugeriría una síntesis de las dos respuestas anteriores. Básicamente, estoy de acuerdo en que es enormemente importante aprender cómo tomar una idea y enviar un juego completo y pulido. Internet está plagado de proyectos a medio terminar que alguien comenzó y luego se aburrió. La capacidad de seguir un proyecto de principio a fin, lo que yo llamo "capacidad de finalización", es rara y preciosa, y se obtiene al obligarse a practicarlo.
Sin embargo, todavía no estás en esa etapa de tu aprendizaje; No recomendaría hacer esto con su primer juego, sino que haga algunos juegos más pequeños para aprender antes de trabajar en su primer proyecto completo.
(aparte: nunca antes había señalado esto, pero ahora que lo estoy pensando, creo que la capacidad de acabado es lo principal que veo separando a los desarrolladores experimentados de los novatos)
ADICIÓN: Creo que muchos de los desacuerdos entre las respuestas se reducen a diferentes suposiciones sobre dónde se encuentra en su proceso. Por ejemplo, cuando dijo "Terminé la primera versión completa de mi clon de Arkanoid" que podría significar muchas cosas diferentes. En mi caso, dado que antes dijo "También he leído que debería ir por todo el juego (incluidos menús, sonido, puntaje", entonces asumo que realmente implementó esas cosas y me pregunta si debería continuar aún más. caso, diría que no; llame a este proyecto terminado y pase al siguiente proyecto.
Sin embargo, eso es solo una suposición de mi parte; en realidad no dijo que había hecho eso, solo que lo había leído. Si él no ha hecho eso, entonces diría que no sigas adelante hasta que hayas hecho eso.
fuente
Creo que tienes la idea correcta de que debes pasar al siguiente proyecto ahora. ¡Creo que esto es porque ya aprendiste de tu primera y quieres aplicar lo que has aprendido! Una vez que disminuya la velocidad para aprender los conceptos básicos, entonces ese sería el momento de clonar características más profundas de las que puede seguir aprendiendo.
Recuerda que estás trabajando en habilidades de programación, no en diseño de juegos, por lo que quieres poder programar cualquier diseño de juego cuando hayas terminado de aprender.
fuente
¿Por qué no hacer que el clon sea "tuyo"? Agregue algunos nuevos giros interesantes que lo mantendrán interesado.
Hay una ventaja al iniciar "su propio" proyecto, usted siente que nunca se había hecho antes. La realidad es que alguien probablemente ya tenga algo similar. A menos que planees inventar un nuevo género de juegos, te sugiero que hagas tuyos estos "clones".
Ejemplo, mi amigo en la universidad creó un "clon" de pong. Lo hizo suyo, agregó un tipo de juego completamente nuevo en el que un encendido le permitía conducir un dulce tanque durante unos 15 segundos y destruir la mayor cantidad de ladrillos posible.
La mejor manera de aprender el desarrollo del juego (arte, código, diseño) es simplemente hacerlo. Puede que no lo hagas bien al principio, ¡pero la clave es seguir y escribir más código, dibujar más animaciones y diseñar más niveles! En mi opinión, no importa si estás "clonando" algo siempre que lo hagas tuyo, lo sigas haciendo, lo hagas interesante y ¡diviértete!
fuente
Para responder tu pregunta, sí , pulir su proyecto actual será una mejor experiencia de aprendizaje que comenzar uno nuevo.
1) Necesitas acostumbrarte a terminar las cosas. Eso en si mismo es una experiencia de aprendizaje.
2) Las tareas que eres "demasiado flojo para agregar" (por falta de un término mejor) pueden tener un montón de lecciones de desarrollo de juegos incrustadas en ellas, que simplemente estás omitiendo por completo.
3) Si estás aburrido de Arkanoid, siempre puedes dejarlo de lado y trabajar en otra cosa por el momento. No hay nada de malo en ello.
1) Demasiadas cosas sin terminar es malo. Realmente no puede usar su producto inacabado para mostrar sus habilidades de manera efectiva.
Esto se debe a que tener una variedad de cosas sin terminar es como tener un armario lleno de basura. Algunos de ellos parecen útiles, pero en realidad todo es muy inútil, y la realidad de la industria del juego es que pocos apreciarán su "basura" (juegos sin terminar).
Los juegos sin terminar son demasiado comunes. La gente los saca y dice, "duh, este juego fue sapposa ser StreetFighter ... ahora puedes moverte de un lado a otro ..." Impresionante . Nadie puede ver en tu cabeza cómo fue el juego "sapposa". Solo lo ven por lo que es, sin terminar.
Un juego inacabado es como una tarta a medio cocer. Algunas personas pueden apreciarlo, pero en realidad tiene un sabor desagradable, y 20 minutos más en el horno podrían hacer que lo que ya has hecho a medias sea delicioso para todos.
2) Las características en las que está evitando trabajar pueden tener algunas lecciones muy valiosas.
Las cosas que te resiste a terminar:
Características no implementadas:
Algunas de estas cosas se pueden omitir. Por ejemplo, "Use más intensamente los patrones de diseño". Refactorizar de esta manera es una pérdida de tiempo para un proyecto favorito, para aplicar esto solo debe comenzar un nuevo proyecto.
Algunos de estos son fáciles. Por ejemplo, ladrillos complejos. Algunos de estos son en realidad mucho trabajo . Los potenciadores no son fáciles, requieren que incluyas elementos de construcción como pistolas, balas, requerirían la adición de un código de intersección de rayos.
Creo que lo que estás viendo es "poner el andamio en su lugar fue muy fácil ... y mira que casi está hecho. Terminar sería mucho trabajo, bien podría parar ahora". Sí, erigir el marco de madera para una casa también es "fácil", y puede ser la mitad del trabajo. Paneles de yeso, electricidad, fontanería, son todos "detalles". Pero al no terminar la casa, nadie "comprará" lo buena que sería la casa , si tan solo la hubieras terminado.
3) Si estás aburrido de lo que estás trabajando, no hay nada de malo en comenzar algo más.
Esto no significa basura en lo que estás trabajando, pero no hay nada malo en pasar un mes o dos pensando en otras cosas o comenzar un nuevo juego. Puede volver a Arkanoid con una nueva perspectiva.
También un punto final. Además de desarrollar todas las características esperadas de Arkanoid, es aún más interesante darle su propio toque. Entonces, en lugar de detenerte en tu clon, debes ir un paso más allá e innovar en el juego original.
fuente
La respuesta correcta realmente depende de lo que quieras hacer a continuación. Si pasa a algo nuevo, puede arriesgarse a encontrarse resolviendo los mismos viejos problemas una vez más y sin extender realmente sus habilidades, pero puede pasar a algo nuevo. Si continúa puliendo, hay cosas útiles que aprender de la breve lista que dio, y lo mantendrán bien en el futuro, pero aún está trabajando en la misma base de código anterior.
Lo que recomendaría, y esta es una opinión puramente personal, es pasar a algo nuevo y guardar el esmalte para eso. Al mismo tiempo, intenta estirarte con algo nuevo. Entonces, si actualmente no está utilizando una API 3D, aprenda una y úsela. Si está usando uno, aprenda el otro y úselo. O suba a un nivel más avanzado en el que está utilizando. Incluya un mejor sonido, física o motor de entrada desde el primer momento. Lo que sea, lo que veo como lo importante es salir un poco de tu zona de confort actual y desarrollar más habilidades y conocimientos, mientras te diviertes haciéndolo.
fuente