¿Por qué parece que desarrollar un videojuego es mucho más fácil de lo que parece?

Creo que hay algunas cosas en el trabajo aquí.

Probablemente no hayas probado nada realmente complicado. Si realmente quiere empujarse por una desafiante madriguera de conejos, intente descubrir cómo hacer formaciones de unidades de diferente tamaño y velocidad que se muevan como un grupo en un mapa de estilo RTS complejo.

La otra cara de la moneda es que probablemente no aprecies la cantidad de trabajo que las herramientas están haciendo por ti. Simplemente puede colocar texturas y animaciones de modelos 3D y construir máquinas de estado para animarlas. Intente comenzar simplemente con OpenGL y descubra cómo analizar un archivo FBX para texturas y animaciones de modelos usted mismo. Me sorprendería si tuvieras un sistema que apenas funciona en un mes.

Parece fácil porque las herramientas son mucho mejores que cualquier otro punto en la historia, la gente ha trabajado increíblemente duro para poner esas herramientas avanzadas en tus manos, y aún no has descubierto cómo llevarlas a sus límites.

Todo se reduce a la complejidad. Hay un mundo de diferencia entre algo simple como Flappy Bird y algo complejo como Assassin’s Creed.

Se estima que cada tres líneas de código contienen un error (incluso el suyo). La mayoría de ellos no son serios, o incluso notables, por lo que cuando su base de código es de unos cientos de líneas, no es un gran problema, cuando su base de código tiene muchos millones de líneas de código con miles de funciones y clases, obviamente es un problema mayor.

Eso es solo código, por supuesto, también tiene objetos de polígono y sus sombreadores y texturas asociados. Un objeto simple tiene un puñado de archivos asociados, un objeto complejo puede tener cientos, cualquiera de los cuales puede causar una falla gráfica o problemas inesperados o incluso un bloqueo. Arreglarlos no siempre es tan sencillo como podría parecer.
He tenido un objeto con una textura mal manchada en un polietileno grande, el problema fue causado por una mala coordenada UV en un polivinílico único en otro lugar del objeto que no era visible a la vista o ninguna de las comprobaciones automáticas habituales . Era un gran objeto con miles de polys y tomó horas rastrearlo y descubrir cuál es exactamente el problema.

No es raro que un juego AAA de un gran equipo tenga una base de datos de errores con más de 20,000 errores abiertos enumerados (que está abierto / no corregido en cualquier momento, no total) y aunque un equipo de 200 personas puede corregir 2000-4000 errores al día, también es No es raro terminar con más errores abiertos al final del día que al principio, porque obviamente el control de calidad está tratando de encontrar todo lo que está mal.

Hay un viejo chiste en informática acreditado a Tom Cargill. “El primer 90 por ciento del código representa el primer 90 por ciento del tiempo de desarrollo. El 10 por ciento restante del código representa el otro 90 por ciento del tiempo de desarrollo “.

La respuesta directa es que hacer cosas nuevas / inusuales es difícil. No sé lo que has hecho: he tenido que crear sistemas de animación para mezclar coreografías complejas de varios grupos: sabes como tener una pelea de 3 personas y poder patear y golpear a ambos a la vez o hacer tira la cadera y lanza al matón A a B, y haz que se vea bien. Sin animación apareciendo o deslizándose. Mezcla correcta. Las manos que agarran el modelo no solo flotan en el espacio. Polaco.

Eso ni siquiera entra en estúpidas pruebas de casos extremos y problemas de hardware.

De nuevo, no tengo idea del alcance de sus proyectos. La mayoría de nosotros podemos lanzar un clon de pájaro enojado juntos en un día o dos (dependiendo de los activos e intereses). Los front-end no son demasiado difíciles cuando estás usando el móvil. Hay toneladas de tareas más difíciles por ahí.

Aquí es fácil: simplemente elige cualquier juego en red y escribe un clon. Móvil o pc. No importa Simplemente haga algo y luego cargue, pruébelo y vea si puede simular 1000 usuarios simultáneos.

Me sorprende que nadie haya mencionado esto todavía:

Hora.

Cuando era adolescente, tuve tiempo de dedicar grandes cantidades de tiempo a mis pasiones. Podría trabajar sin interrupciones en lo que quisiera. Ahora, como padre de dos hijos, no puedo evitar reír cuando mis amigos solteros de 20 y 30 años dicen cosas como: “Dios mío, tengo fiestas los viernes y sábados, uno de ellos es una barbacoa, y tengo tres juegos nuevos en mi PlayStation. Simplemente no hay forma de que pueda ver Transformers 8 esta semana. Estoy abrumado “.

Hora. Los adolescentes lo tienen. Yo no.

Porque cuando eres joven e inexperto, tiendes a fijarte metas y estándares más bajos, y a veces tu ego te impide evaluar con precisión la calidad de tu propio trabajo. Sobreestima su propia competencia y subestima el tipo de desafíos involucrados en la producción de trabajo de calidad profesional.

Hasta cierto punto, esto es necesario para estar motivado para aprender nuevas habilidades y no ver la verdadera extensión del camino por delante, para que no se desanime y se dé por vencido sin intentarlo.

Cuando estaba en cuarto o quinto grado, comencé a cambiar de QBASIC a Visual Basic. Hice docenas de programas y juegos de juguetes con interfaces de texto y gráficos y animaciones simples. Todavía no había aprendido animación en 3D o estaba al tanto de los principios básicos de ingeniería de software. No había aprendido a hacer programación de sockets. Utilicé técnicas de animación muy rudimentarias que eran completamente poco prácticas para producir juegos de calidad comercial y usé un lenguaje que no era muy adecuado para la mayoría de los desarrollos de juegos.

Pero cuando un nuevo compañero de clase me describió MUDs, tratando de impresionarme con la genialidad de la experiencia de juego, me burlé, “¿Qué? ¿Sin gráficos? Eso es fácil. ¡Podría escribir un juego así!”

Mi compañero de clase no era programador. Supuse que se impresionaba fácilmente por su ignorancia. Y cuando él me apostó a que no podía construir un MUD por mi cuenta, felizmente acepté la apuesta y fui a su casa después de la escuela para ver de qué se trataba todo este disparate “MUD”.

Ahora, había jugado un juego de aventura de texto para un jugador antes. Sabía que implicaba analizar el lenguaje natural y rastrear la posición del jugador en un mapa vasto y complejo. Y me dijo muy claramente desde el principio que los MUD eran juegos multijugador que permitían a los jugadores interactuar entre sí a través de Internet. Realmente, debería haber sabido que esto estaba más allá de mi escasa capacidad de programación en ese momento. Pero me concentré solo en las partes que describió, que se superponían con mi limitada experiencia en programación. Después de todo, un juego basado en texto es claramente tan difícil de escribir como otro, ¿verdad? Todo es solo aceptar texto del usuario y generar dinámicamente más texto en respuesta, después de todo.

No fue hasta que llegué a su casa y lo vi jugar mientras intentaba descubrir cómo replicar cada detalle de la experiencia que la realidad eventualmente estableció. Todos esos detalles sin importancia, como cómo hacer que se ejecuten múltiples programas diferentes computadoras para hablar entre sí o cómo permitir que el mapa se extienda continuamente o solo la gran cantidad de planificación, escritura y codificación requeridas de repente parecían mucho más desafiantes de lo que había imaginado.

Baste decir que fue un momento bastante vergonzoso cuando tuve que comer mis propias palabras antes de escribir una sola línea de código. Afortunadamente, mi compañero de clase fue muy amable y me permitió retirarme de la apuesta.

Cuando eres joven e inexperto, es fácil engañarte a ti mismo pensando que la experiencia limitada que tienes te da una imagen precisa de la gama completa de desafíos y habilidades necesarias para trabajar en un campo en particular. Cada pequeño logro que logra se infla en su mente (a menudo con la ayuda de familiares y amigos aduladores). Del mismo modo, eres rápido para extrapolar de tus experiencias.

Ahora, esto definitivamente puede causar vergüenza y se vuelve más problemático a medida que envejece. Pero todavía hay algún valor en este tipo de comportamiento desde el principio.

Quiero decir, bajo diferentes circunstancias, si no me hubiera desanimado tan fácilmente, tal vez habría hecho un intento respetable de crear mi propio MUD. Quizás me hubiera llevado un par de años completarlo. O incluso si intenté y fracasé en construir mi propio MUD, no creo que haya sido necesariamente un peor resultado desde una perspectiva educativa.

Esto me recuerda el efecto Dunning-Kruger.

No lo sé con certeza, podrías ser muy inteligente y esto te resulta natural. Pero lo más probable es que, como adolescente, tengas poco conocimiento sobre cuánto realmente se necesita para hacer videojuegos. Al estar acostumbrado a estar en el lado del consumidor de los videojuegos, los ves aparecer de izquierda a derecha, a veces de 1 a 5 desarrolladores que lo hacen todo por sí mismos. Esto puede distorsionar la visión de lo difícil que es hacer juegos.

Hacer un juego pequeño realmente puede aumentar la confianza. Has adquirido muchos conocimientos y has hecho algo que puedes presumir. Pero a medida que empiezas a hacer un juego más complejo, el diseño del juego y la IA, comienzas a ver que la complejidad puede aumentar exponencialmente. Después de comenzar, cuanto más aprenda, más se dará cuenta de lo poco que sabe y la confianza disminuirá junto con eso.

Después de un tiempo, comienzas a desarrollar tus habilidades y te das cuenta de cómo armar todo el proyecto para juegos más complejos.

Cuando tenía 15 años, saqué un juego simple en una sola sesión de 5 horas: ¡un simple juego Defender de 8 bits con gráficos y sonido! Sin diseño, sin arquitecto, sin estrategia de prueba, simplemente todo sobre la marcha. Todavía podría hacerlo, probablemente incluso más rápido y mejor. ¿Lo haría yo? no, no puedo soportarlo, porque sería un desastre y lo que salga sería una pérdida de tiempo. Todavía hago juegos, pero requiere un diseño cuidadoso del juego / comerciabilidad / capacidad de juego / plataforma / arquitecto de código / … etc. para un final. Incluso si se ignoran los contenidos gráficos y el sonido / la música (que por cierto lleva más tiempo desarrollar que la base de código completa), la codificación requiere un arquitecto cuidadoso que lleva mucho tiempo planear. Aunque publiqué el clon “Flappy Bird” en menos de 24 horas: (10 horas para pixel art y efectos de sonido, 12 horas para programación, 2 horas de prueba y depuración), sin embargo, este fue un caso especial en el que ya tenía un arquitecto de vista de modelo en lugar de mis otros juegos y toda la idea era simplemente estúpida simple.
Cuando era adolescente no tenía concepto de diseño o arquitecto. ¡Era como un hombre ciego describiendo un elefante tocando parte de él, pensando que no hay mucho en él! Por supuesto, esto no se debe a que seas adolescente sino a la ignorancia. Si no sabes lo que se necesita, solo ves la punta del iceberg pensando que es fácil. Esto no es optimismo sino ceguera.

Buena pregunta. Casi recuerdo haber sido un adolescente, y mis primeros recuerdos estaban escribiendo código de ensamblaje en el Atari 800XL y ZX81, páginas y páginas, con 1 error tipográfico que significa que todo no funcionó, después de eso fue vagando (pre web) grandes volúmenes de libros de programación que intentan dar sentido a cómo llevar una nave espacial de un lado a otro de la pantalla en el Atari ST y el Amiga 500.

En comparación con esos días, hacer un juego para cualquier grupo de edad es mucho más fácil de lo que solía ser, pero el problema de ser financieramente “exitoso” con los juegos es en realidad mucho más difícil, esa es la ironía de la situación.

La codificación es la parte fácil ahora. Gráficos algo duros, dependiendo de lo bien que los quieras, pero ¿vender? eso es extremadamente difícil, y se debe en parte a que la codificación es tan fácil, las herramientas son gratuitas y los mercados están completamente abiertos, lo que lleva a la saturación y a muchos más juegos de los que la gente tiene tiempo para jugar.

En cuanto a los detalles específicos de la pregunta, la experiencia solo viene con la experiencia. Nadie se convierte en un gurú de diseño de juegos de la noche a la mañana. ¿Por qué la gente en Internet hace que parezca fácil? 1: experiencia, como muchas de las otras respuestas afirman. 2: es Internet TODO lo que la gente hace en Internet debe hacer que parezca fácil. De lo contrario, la gente no estaría asombrada.

Si quieres más experiencia en el diseño de juegos rápidamente, te sugiero que ingreses a Ludum Dare u otro juego de atascos. Mi experiencia con Unity ha aumentado exponencialmente debido a Ludum Dare. Hay tres por año, y creo que el próximo es en diciembre.

Y recuerda, nunca te rindas. Además, si nunca aprendes algunas cosas (o las olvidas), siempre está Google.

No está hecho para parecer fácil. No sé de dónde sacaste esta impresión. Nunca he visto el diseño del juego demostrado como lucrativo o incluso una opción de carrera viable. Tienes algunos hijos en la universidad que piensan que el trabajo duro convertirá esto en una carrera. No, también necesitas humildad hacia la realidad; los trabajos son muy escasos.

Desarrollar un videojuego se siente como una tortura, si alguna vez lo has pasado. Estaba diseñando el nivel como un aficionado de muy bajo nivel.

Solo el 10% donde cocina ideas es divertido.

Seguir adelante con el otro 90%, es horrible.

Los verdaderos aspectos horribles aparecen cuando intentas probar el juego. Lo peor es cuando intentas * romper * el juego, haciendo sistemáticamente las cosas más mundanas y aturdidoras de la historia.

Es una de las cosas más difíciles que puedes hacer en este planeta. El diseño del juego está allí (sí, hay personas que no estarían de acuerdo conmigo) con la física, la epistemología, la neurociencia y esas ciencias arcanas en las que supuestamente trabajan los “supergenios”.

El pago es atroz, las horas son sensatas, el estrés es insoportable. Ni siquiera tienes mucho prestigio. Incluso hace que la gente piense que “juegas videojuegos para vivir” o “son videojuegos, por lo que no es un interés intelectual real por lo tanto inmaduro”.

Las habilidades tampoco se transfieren a otras áreas de CS tradicional tan bien.

Ni siquiera es ético; la mayoría de las veces está diseñando una caja skinner para juegos móviles para que los niños ricos en los EE. UU. se vuelvan adictos utilizando principios de diseño muy cuestionables.

5 formas espeluznantes de videojuegos están tratando de hacerte adicto

Decida qué quiere del diseño del juego y qué tan en serio quiere tomarlo. Entonces vive a la altura. Solo date cuenta, puedes arruinar tu propia vida.

5 razones por las que perdí $ 9,000 en un juego de iPhone

Personalmente, dejaré esto como un pasatiempo y solo niveles de diseño para compartir con mis compañeros creadores de mapas.

Este es el mejor momento para ser un diseñador de juegos amateur; Todas las herramientas son gratuitas o parcialmente gratuitas. Muchos títulos se han incorporado en editores de mapas. Source SDK es gratuito junto con Team Fortress 2. Existen innumerables tutoriales, hay recursos allí y hay comunidades para apoyar a los aficionados.

Simplemente no tiene sentido entrar en la industria. Mantenlo como un pasatiempo.

No creo que esto se limite al conjunto de adolescentes. Me encuentro con adultos adultos todo el tiempo que tienen una idea muy sesgada de lo que se necesita para hacer un videojuego.

Dicho esto, creo que la clave es que las computadoras son mucho más estúpidas de lo que una persona promedio entiende.

Incluso con los motores de juegos modernos disponibles, la mayoría de las personas desconocen el hecho de que tienes que gestionar un mundo de juegos, debes detallar todo lo que sucede, desde la cantidad de cuadros de animación en una explosión hasta la velocidad a la que cae un huevo. cuando caído de un edificio. Existe la presunción de que esas cosas ya están construidas de alguna manera (y, es cierto, hay motores de física y paquetes de activos, etc., pero esas son solo piezas de rompecabezas, no hacen un juego simplemente al unirlas).

Porque “como un adolescente” es lo que parece ser toda la vida por delante.
Mucho más fácil, mucho menos complejo de lo que está “hecho para ser”.

El “besarse para ser” podría tener múltiples connotaciones,

  • Aquellas personas que “han estado allí haciendo eso” están orgullosas de sus logros y quieren darse un poco de caricias.
  • También es una advertencia para los adolescentes que no tomen las cosas a la ligera y deberían beneficiarse de esa precaución, nada más.
  • También podría significar que estás parado sobre los hombros de otra persona y que lo tienes fácil, como lo destacó Daniel Super.
  • También podría significar que la situación ha mejorado mientras tanto.

Así es como la vida no es solo hacer videojuegos.

“Así que estaba depurando este error de pantalla azul en el interior de Unity, así que entré en el binario ‘jodido’ y reescribí el controlador de gráficos desde cero, ves después de que realicé ingeniería inversa del funcionamiento interno que pude …”

Me reí mucho de esto. A muchas personas les encanta hablar por el culo, especialmente cuando no tienen idea de lo que realmente están hablando. Esa afirmación es simplemente ridícula.

La cita que publicaste tiene poco o ningún sentido.

Y no, desarrollar juegos no es más fácil de lo que parece, es más fácil con ciertas herramientas y marcos, que algunos programadores incondicionales rechazarán debido a preocupaciones de rendimiento o limitaciones inherentes del marco, y tiene más sentido cuando realmente lo estás haciendo.

Ignorancia.

Cualquier cosa parece fácil si no tienes una idea real de cómo se hace o qué trabajo implica.

Como ha dicho Daniel, probablemente presionó algunos botones en Unity o alguna otra herramienta de alto nivel y escupió lo más simple y fácil que hizo. Ya no hiciste un juego, luego presionar el botón de expulsión en el reproductor de DVD significa que hiciste una película. Los chicos que construyeron esa herramienta hicieron el juego.

El desarrollo de un juego real significa ir más allá de lo que es como comparar jugar con un camión volquete de juguete con conducir uno real.

¿Por qué diablos estás viendo otros problemas cuando el tuyo está funcionando bien?

Solo agradece que tu código no esté en llamas y funcione según lo previsto. Como programador, si algo funciona, mantente a 10 pies de distancia y no te metas con él 🙂

Pero cuando se incendia sin embargo … Apuesto a que serás ‘ese’ tipo que reescribió sombreadores y motores de juegos de ingeniería inversa.

Felicidades y buena suerte en tu juego por cierto.

Creo que es porque, como adolescentes, solo podemos hacer mucho. Cuando hacemos juegos, estamos limitados principalmente a lo que ya sabemos (que no es mucho). Creo que cuando estás creando un juego sofisticado puedes encontrarte con problemas mucho más complejos.

Incluso cuando estoy construyendo juegos simples, me he encontrado con problemas que son un poco altos y he tenido muchos problemas para resolverlos. Los peores problemas que he enfrentado generalmente están relacionados con un motor de física o gráficos de representación, etc.

Cualquier producto debe ser elegante, lo que generalmente significa que funciona bien y es intuitivo de usar. ESO requiere mucho diseño, reiteración y depuración.

Cualquiera que haga algo bien hace que parezca fácil.

La mayoría de las cosas que hacen los profesionales es algo fácil o al menos parece serlo.

Podría trabajar directamente con un carpintero, por ejemplo. Solo necesitas a alguien que te diga qué hacer. Y ese es el punto. Necesita años de experiencia para saber cómo abordar problemas y tareas en un nivel más amplio.

Necesita saber qué salió mal la última vez que tuvo esa tarea. Necesita saber qué se verá afectado por sus acciones.

La mecánica de juego complicada y la profundización en un motor de juego a menudo te dan los errores que quieres ver.

He roto el motor irreal muchas veces. Simplemente porque algunas de sus características no funcionaban como quería que funcionara y cómo quería que funcionara, no era lo que el motor pretendía hacer con él.