¿Cuáles son los peligros del desarrollo de juegos de autoaprendizaje? [cerrado]

58

Estoy a punto de emprender un viaje hacia el desarrollo del juego. Después de las respuestas a mi última pregunta, usaré C # y XNA.

Sin embargo, personalmente no conozco a ningún otro desarrollador de juegos y no trabajo en la industria, por lo que será autodidacta. La excepción a esto es obviamente la realización de preguntas y la lectura de información en línea / impresa, pero todavía clasificaría esto como autodidacta.

Con eso, quiero estar preparado para los problemas que pueda encontrar al no tener a alguien que me "mantenga bajo su protección".

Como analogía, cuando aprendí por mi cuenta a tocar la guitarra, toqué el acorde A mayor de tal manera que hizo que pasar a un acorde que aprendí más tarde fuera más difícil.

Si pudieras compartir tus lecciones aprendidas y consejos sobre lo que podría salir mal en mi aprendizaje del desarrollo de juegos, te lo agradecería.

Soy consciente de que cometer errores es la mayor parte del aprendizaje, pero si hay errores para los que puedo estar preparado, entonces estaría más feliz con eso.

Ste
fuente
Eche un vistazo, lo de compartir lecciones puede convertir la pregunta en abierta e invalidarla, por lo que puede cerrarse.
Gustavo Maciel
Ese es un buen punto. Para cualquier visitante, planeo aceptar una respuesta integral.
Ste
Ste, tenga en cuenta que puede mover una marca de verificación a otra respuesta, si cree que una nueva es mejor. Mis disculpas a Gustavo, por no tratar de costarle reputación :) Pero el objetivo de estos sitios, y la votación y la verificación, es resaltar la mejor respuesta a una pregunta. Además, aunque es muy bueno que se hizo aceptar una respuesta, no es necesario aceptar que rápido - una hora después de su pregunta publicada, es un poco pronto. Por lo general, espero al menos un día, tal vez más, antes de aceptar una respuesta. Mira lo que aparece.
Cyclops
@ Cyclops: sí, no esperaba que la pregunta fuera tan popular. Lo revisaré la próxima semana. Gracias a todos por las excelentes respuestas hasta ahora.
Ste
Gracias por todas las excelentes respuestas. He movido la respuesta aceptada a la que tiene más votos a favor. He hecho esto para reflejar la opinión de la comunidad. Espero que entiendas @Gustavo
Ste

Respuestas:

54

El desarrollo del juego es como la ingeniería estructural.

Hay requisitos mínimos para la funcionalidad. Los requisitos mínimos no son excepcionalmente desafiantes y muchas personas pueden aprender a cumplirlos. Esa es la parte funcional . Es la parte pequeña. Aquí es donde entran las decisiones de qué lenguaje usar, plataforma para desarrollar o qué bibliotecas utilizar.

La siguiente parte es la gran parte. La parte de la forma . La forma es lo que realmente distingue a los buenos juegos de los grandes juegos. Esta es la parte que es el arte del desarrollo del juego. No estoy hablando solo de los activos sensoriales (gráficos, sonido, etc.). Estoy hablando de crear una experiencia. Esta es la parte difícil.

La parte de la función proviene de tutoriales, bibliotecas y un poco de tiempo. Cualquiera lo puede hacer.

La parte de la forma proviene de ti. Es la pasión que te hizo querer hacer juegos en primer lugar. Es como contar una historia, una historia inventada (o una historia real que embelleces, mucho). Cuanto más cuentes la historia, mejor será. En desarrollo de software lo llamamos iteración. Tu historia es tu código. La primera vez que lo cuentes, no será muy bueno. Las cosas estarán fuera de lugar, te darás cuenta de que esta parte debería ir allí y esa aquí. Descubrirá que las cosas probablemente fluirán mejor si organizó las cosas de esta manera o se expandió en este bit. Entonces, al igual que una buena historia, la contará, medirá qué tan buena es y luego la modificará. Esto requiere dedicación y esto lleva tiempo. No se preocupe si lo primero que produce no es oro. He trabajado mucho en muchas partes de mi juego solo para eliminarlas más tarde porque pensé en muchomejor forma de hacerlo. No se preocupe por esto, todo es parte del proceso de aprendizaje. Siempre aprendes de tus errores y, a menudo, cometer esos errores es lo que te lleva a la mejor manera de hacer las cosas.

Entonces, lo que debes sacar de esto es esto:

  • Juega la prueba a menudo.
  • No se deje atrapar por la función en este momento. No se preocupe demasiado por la optimización, o qué biblioteca será la mejor a largo plazo. Simplemente obtenga la funcionalidad mínima, luego repita.
  • Una vez que se realiza la función, felicítese, está una pequeña fracción de la forma en que se hace.
  • Usar protector solar
  • Esta es una habilidad que lleva tiempo desarrollar, sabes que al aprender un instrumento musical, esto no es diferente, mejorarás.
  • ¡Recuerda para qué estás en esto, la alegría de crear! Si las cosas se ponen aburridas, cambie a otra cosa (pruebe algunos atascos de juego para romper su tiempo de desarrollo). Pero no renuncies solo porque es difícil.
  • La comunidad de desarrollo de juegos aquí en SE es genial. Encontrarás todo lo que necesitas aquí. Puede publicar una pregunta o entrar al chat y discutir sus ideas.

Internet está lleno de plumas de información en publicaciones de blog, tutoriales y comunidades como esta. Colectivamente, diría que es un ala bastante buena para estar debajo. Básicamente los peligros no son severos. Puede hacer las cosas de la manera "incorrecta" o difícil por un tiempo, pero eventualmente aprenderá. Parece que tienes mucha experiencia en programación, así que creo que aprenderás la parte de la función rápidamente. Los errores cometidos en el desarrollo del juego y el desarrollo "regular" se superponen mucho. Tu experiencia te ayudará a evitar muchos de los problemas comunes que le ocurren a los nuevos desarrolladores de juegos. Creo que lo harás bien. Buena suerte.

MichaelHouse
fuente
66
+1 por genialidad, todo lo que falta en mi publicación se encuentra aquí: D
Gustavo Maciel
1
"Use protector solar" ¿Qué quiere decir con eso? un modismo "Use protector solar"?
Lukasz Madon
44
Esa es una broma basada en un artículo "Wear Sunscreen" de Mary Schmich . Básicamente, "los científicos han demostrado los beneficios a largo plazo del protector solar, mientras que el resto de mi consejo no tiene una base más confiable que mi propia experiencia serpenteante". Quizás más popularmente conocido en la forma de esta canción .
MichaelHouse
44
Bueno, el protector solar no es tan bueno en realidad 2 . Solo quédese adentro y siga programando.
bobobobo
28

Sí, no tener a alguien que haya estado allí antes para que te diga qué hacer, cómo solucionarlo, etc., puede ser lo peor que pasarás. ¡Pero sin miedos! Todavía puede leer MUCHOS blogs de personas que han estado allí, comparten sus experiencias en la industria, cómo llegaron al éxito, cómo falló un juego anterior y por qué, etc.

Buenos ejemplos son:

¡Y mucho más!

Mis últimos dichos son: no temas. Soy autodidacta también, hace 4 años que me presentaron al desarrollo del juego, vienen muchas barreras, pero nada que no puedas resolver buscando en Google y leyendo algunos textos. Buena suerte en tu viaje :)

Gustavo Maciel
fuente
3
Para agregar a esto, incluso los profesionales tienen este problema a menudo. Mientras puedas aprender, y Google, puedes descubrir casi cualquier cosa.
cenizas999
Extraño que vincules 2Dboy. Hasta donde sé, han hecho pocas cosas, pero puertos de World of Goo para todas las plataformas que existieron en los últimos años. Ha pasado mucho tiempo desde que leí algo relacionado con gamedev allí.
TravisG
@TravisG El proceso del releasejuego no solo está relacionado con el desarrollo después de todo. Es una buena lectura de todos modos. Publiqué los enlaces más como referencia, para no seguir el blog. Si regresa al archivo, hay algunos ejemplos de prototipos y todo lo que los ayudó con el mundo de goo y otros prototipos "menos pequeños": D
Gustavo Maciel
18

Esta actitud. Esta actitud de "no lo toques, hasta que sepas cómo hacerlo perfectamente". Eso realmente te detendrá.

Sin embargo, ves esta actitud entre los desarrolladores principiantes de todo tipo, no solo los juegos. Sitios web también. Hola, un sitio web es una base de datos con un front-end html con algunos javascript. Aprendes las tecnologías de cualquier manera que puedas, juntas tu primer sitio. ¡No va a ser fantástico, pero después de hacer las cosas de una manera subóptima no es un gran problema ! Si lo hace "a la larga" la primera vez, siempre puede hacerlo mejor la segunda vez. Mi punto es que no hay peligro. Excepto esta actitud, tal vez. Esta actitud es la que se le impida a tener que hacer nada, ya que siempre se resisten a la tarea y decir "No sé cómo hacer eso todavía."

La actitud de que hay una "forma correcta" de hacer las cosas. No hay Las cosas son exactamente como parecen. Tienes que poner píxeles en la pantalla y hacer sonidos cuando las cosas suceden.

bobobobo
fuente
3
Tan verdadero. Esto todavía me frena mucho. Aunque no estoy de acuerdo de alguna manera, en términos hay más "formas correctas" de hacer y muchas más "formas incorrectas", pero la parálisis del perfeccionismo y el análisis puede ser un problema. ¡Gran respuesta!
Petr Abdulin
6

Dependiendo de si quieres o no hacer de esto tu profesión más adelante (solo voy a asumir que estás pensando en eso y esto no es solo un pasatiempo), esto es lo que encontré que es extremadamente efectivo:

  1. Empieza pequeño

Se ha dicho antes, pero lo diré de nuevo: comience con pequeños fragmentos, familiarícese con un motor, un marco, una herramienta o programa. Una vez que tenga lo básico abajo -> vaya más grande.

  1. Aprende TODO

Esto puede parecer un poco extremo, pero lo que quiero decir es aprender todo lo que puedas sobre CADA aspecto del desarrollo del juego, sin importar si eres o no un programador, artista o diseñador. Conocer la tubería es clave para construir cosas de la manera más eficiente. Si está implementando un arma -> diseñarlo, diseñarlo, modelarlo, implementarlo, codificarlo! Obviamente, no necesita ser un artista conceptual, diseñador y empollón de Pipeline de grado A, pero debe estar familiarizado con todas las herramientas del proceso y comprender cada paso de la creación. Además, visite los sitios web del juego para obtener noticias y actualizaciones en el negocio: gamasutra.com, kotaku, etc., todos tienen excelentes artículos sobre temas comerciales y técnicos. No se limite a un solo campo de desarrollo: absorba TODO el conocimiento que pueda obtener :)

  1. Falla a menudo, falla mucho.

Te apestará lo que estás haciendo. Al principio. Siempre es así (créeme, lo sé: D), pero mejorará si sigues adelante y NUNCA dejas de buscar formas de mejorar tu trabajo. Internet es una gran fuente de tutoriales, referencias y ayuda. Nunca estarás realmente atrapado, así que embarca en las ideas más locas, fracasa, aprende de tus errores y sé más rudo con ese proceso.

  1. ¡Hablar con las personas!

Si bien Internet es una gran fuente, obtener comentarios en persona es algo con lo que tendrá que lidiar MUCHO en el trabajo. Así que también es importante mejorar tus habilidades blandas. Si aún no tienes un mentor, o en general no conoces a demasiadas personas que trabajan en la industria, entonces deberías buscar reuniones independientes en tu área, ir a convenciones y buscar otros eventos donde puedas comenzar a construir Una red personal de conocimiento y contactos. También ayuda a construir algo con otras personas: autodidacta es genial, pero el desarrollo del juego es un juego basado en el equipo, así que revisa los foros para proyectos de pasatiempos, por ejemplo, el Foro épico para proyectos UDK, foros de Unity o incluso los foros de CryEngine. -los tres motores están muy extendidos, hay un montón de personas con talento trabajando en proyectos paralelos allí, y ellos '

Creo que ese es prácticamente todo el consejo que puedo dar. Espero que esto te haya ayudado de alguna manera :)

Nils Diefenbach
fuente
¡Todos sus puntos son tan importantes que son el número 1 en esta lista! :)
bobobobo
3

No tengo experiencia en C # y XNA en absoluto, pero creo que no me equivocaré en la siguiente declaración:

Está perfectamente bien aprender programación sin un maestro. Si su código funciona *, realmente no importa cómo fue codificado. Bueno, lo hace para la programación colaborativa, pero entonces ya no codificarás solo, ¿verdad? También puede hacer que su código sea menos legible para usted en el futuro, lo que dificultará el uso de componentes antiguos o la depuración de nuevos errores, pero a la larga todos sus errores serán sus puntos fuertes. Lo más difícil en el aprendizaje del diseño de OOP y MVC es entender por qué debería hacer "esto" de "esa manera". Si ya tiene experiencia haciendo programas malos, conocerá las fortalezas de los patrones y los utilizará para su ventaja. Si siempre hiciste buenos programas siguiendo patrones que alguien te enseñó, entonces seguirás haciendo buenos programas (en el sentido de un código válido), pero en lugar de aprovechar los patrones, estará limitado por ellos, ya que no los comprenderá lo suficiente como para realizar modificaciones útiles. Al final, es más importante que practiques, no cómo, así que en ambos casos tarde o temprano obtendrás una experiencia bastante similar.

* ¡ una cosa es importante sin embargo! En caso de seguridad, realmente debería preguntarle a alguien con experiencia si su código está bien hecho, ya que los agujeros de seguridad no muestran alertas de error emergentes.

Markus von Broady
fuente
3

De alguna manera esta es una gran pregunta! :-)

Comencé mi actividad de gamedev no hace mucho tiempo, y será la segunda vez, por lo que puedo compartir mis pensamientos. De hecho, tienes razón en que es bueno tener un mentor. Este mentor será internet. Entonces, mientras más información se comparta en Internet, más fácil será aprender por usted. Es por eso que XNA / C # es una excelente opción para comenzar. Hay muchos gamedevs independientes tanto aficionados como profesionales que comparten artículos y en la web. Otras cosas para mencionar:

  1. Ir a código abierto! Codeplex, GitHub, Google.Code, Bitbucket. Hay MUCHAS cosas valiosas allí.
  2. ¡Ve a la comunidad! Estás aquí, y es algo bueno. Pero también hay una gran comunidad de Microsoft XNA con algunas buenas cosas oficiales . Codeproject también es un buen recurso (sin embargo, la actividad de gamedev es bastante baja allí).
  3. Probablemente necesite leer / mirar mucho. Ya mencionado antes. El desarrollo del juego no es solo codificación. El diseño del juego también es importante. El entusiasmo es importante.
  4. Como de costumbre, no intentes morder demasiado a la vez, escribir tu propia copia de tetris o breakout es realmente una buena idea.
  5. Podría ser difícil al comienzo, el desarrollo de juegos no solo es realmente difícil, sino que también es muy diferente de las aplicaciones "empresariales". Hay muchos aspectos nuevos, gráficos, sonido, etc. Cuanto más avanzas, más fácil se vuelve (como siempre).
  6. Escribe un blog. Exprese su proceso de desarrollo (en este proceso encontrará respuestas a sus propias preguntas), almacene enlaces con comentarios a artículos valiosos.
  7. No pienses que tu código es lo peor que has visto. El código del juego es más difícil de controlar, siempre es de alguna manera un poco más sucio que el bonito código "empresarial". Pero te aseguro que he visto algunas creaciones terribles (en términos de calidad del código fuente y organización del juego) que fueron juegos independientes exitosos. Entonces, no seas duro contigo mismo, especialmente. al principio.
Petr Abdulin
fuente
1

Esto se aplica a cualquier disciplina relacionada con una industria creativa:

El mayor peligro es tratar de construir algo 'demasiado grande' o 'épico' fuera de la puerta.

Por ejemplo, si comienzas a hacer algo de música, no comenzarías tratando de hacer una sinfonía de 50 piezas de 2 horas.

En el diseño de niveles, esto se manifiesta como tratar de hacer el 'mapa más grande de la historia', o usar el sistema de juego para construir la cosa más compleja y más grande que el motor del juego es capaz de manejar. En la programación esto puede caer en 'hacer un juego completo por ti mismo' comenzando con el código fuente cero. Realmente necesita mucha experiencia y disciplina para comenzar con cero fuentes, e incluso entonces es increíblemente difícil, y tomar decisiones de diseño sobre todo es difícil todo el tiempo que está trabajando en el diseño de todo. Incluso un juego simplista requiere una cantidad bastante grande de programación en un SO y lenguaje modernos en estos días. Además, si comienza con el código de otra persona, puede aprender qué funciona y qué no funciona tan bien, por lo que trabajar con tantos motores como sea posible también es una gran ventaja.

Comenzando, recomendaría algo como los siguientes planes:

  • Diseño de niveles: construye una habitación pequeña, construye medio edificio, construye un edificio completo, etc.
  • Arte: haga un sombrero para TF2 o algo similar simple, o algunos reemplazos de textura para Skyrim o alguna otra tarea de tamaño de mordisco para comenzar, antes de meterse en mallas esqueléticas o morfos y descubrir cómo animarlas o pintarlas bien.
  • Programación: tome un motor de juego móvil o de código abierto existente, y modifique alguna parte del mismo (como un arma), luego cree una nueva arma. Si no te gusta el código de juego, puedes comenzar a hackear el motor de gráficos.

Lo mejor que puede hacer es tomar un motor terminado existente (ya sea móvil o uno de código abierto) y comenzar a piratearlo, y hacerlo varias veces en varios motores diferentes hasta que encuentre uno que le guste.

Zoner
fuente