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.
Respuestas:
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:
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.
fuente
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 :)
fuente
release
juego 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": DEsta 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.
fuente
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:
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.
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 :)
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.
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 :)
fuente
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.
fuente
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:
fuente
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:
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.
fuente