Diseñador de juegos desde cero: cómo comenzar a hacer juegos sin experiencia

Golubev Nikita, autor comercial y traductor, especialmente para el blog de Netology, tradujo un artículo de la desarrolladora de juegos Angela He sobre cómo crear su primer juego sin habilidades de programación.

Hace solo 2 años, era una colegiala de 17 años y no sabía nada sobre programación. Esto no me impidió comenzar a aprender y después de unos meses lancé mi primer juego en Steam. Hoy tengo más de 10 juegos para PC, Internet y dispositivos móviles y más de 1.9 millones de jugadores.

No importa lo que pueda hacer ahora; si lo desea, también puede hacer juegos. Hace dos años, esto parecía imposible: fue lo más difícil que hice en mi vida, y valió la pena. Ahora entiendo que en el desarrollo de juegos, como en cualquier otro negocio, solo creces cuando lo intentas, cometes errores y mejoras.

Aprendí todo lo que sé yo mismo, y ahora te enseñaré.

Para hacer el juego, debes pasar por 6 etapas:


  • Concepto
  • Gráficos
  • Programacion
  • Sonido
  • Preparación para publicación
  • Publicar

En el artículo para cada etapa destacaré:
- Consejos que aprendí de mi propia experiencia y la de otras personas.
- Las herramientas que me parecen más útiles.

imagen

Concepto


Propina


Tienes una idea genial Pero, ¿cómo dibujarlo en papel?

Todos tienen su propio camino. Algunos componen documentos de diseño de 60 páginas, otros escriben una hoja de notas ilegibles. No sé qué tan conveniente para usted, pero asegúrese de arreglar lo siguiente:

  • Chips ¿Qué hace que tu idea sea genial? Esta es la pregunta más importante. Tan pronto como pueda atraparlo y arreglarlo, los pasos restantes parecerán más fáciles. ¿Su juego está generando temas candentes? ¿Se convertirá en un nuevo clásico? ¿O será diferente de todo lo que era antes?
  • La mecanica. ¿Qué hace un jugador y por qué? Esta es tu jugabilidad. Puede ser simple, como presionar las teclas Q, W, O, P en un juego QWOP , o complejo, como combinaciones en Dwarf Fortress.
  • Leyenda ¿Cómo recuerdan los jugadores tu juego? ¿Con qué emociones la dejarán? Cada juego tiene una historia. Si la historia no es obvia, el jugador mismo la creará. La historia puede ser diferente: un aumento en los números en el juego 2048, el surgimiento de imperios en Civilization o interacciones silenciosas en Monument Valley. Piensa qué leyenda estará detrás de tu juego.
  • Estado de ánimo ¿Qué impresión hace el juego? ¿Qué efectos visuales y música contribuirán a esto? Lo que importa es la primera impresión que puede enganchar al jugador y luego hacer que regrese al juego nuevamente. Es posible que desee un efecto retro con gráficos de píxeles y música de 8 bits o un aspecto moderno con geometría plana : piénselo.
  • Participa en hackatones. Usted y otros participantes deberán realizar el juego en el tiempo asignado. Como mínimo, se sentirá inspirado y conocerá personas de ideas afines. Prueba Ludum Dare , uno de los gamejams más grandes.
  • Crea una lista de ideas. Registre cada nuevo pensamiento. En momentos de estupor, siempre puedes mirar la lista y encontrar algo interesante. Se parece a mis ideas y notas personales de Google Doc .

Cuando llegue la inspiración, suelta todo y escribe. La próxima vez que el pensamiento desaparezca, no necesita extraer ideas de su dedo.

Las herramientas


Manteniendo notas:

  • Notas sobre Mac OS.
  • Google Docs.
  • Trello

Trabajo en equipo:

  • Google Drive
  • Github Requiere git y Unity .gitignore.
  • Unidad Collab. La herramienta más fácil, pero con limitaciones en la versión gratuita.

Hago juegos en Unity. Más adelante hablaremos de ello, pero no tenga miedo de usar otro motor.

Inspiración


Gráficos


Propina


Si no sabe programar, lea primero la sección "Programación". Es poco probable que desee pasar tiempo en el horario y tirarlo a la basura porque no puede escribir código para él.

Incluso si no sabes cómo dibujar, el juego se puede embellecer con tres principios visuales: color, forma y volumen.



Thomas Was Alone - Un juego simple y hermoso

Interfaz


Piensa en cómo hacer que el juego sea único con su combinación de colores, fuentes e íconos sin perder la comodidad del jugador. ¿La información importante es comprensible y legible?


Fuente mala y exitosa

Animación 2D


La animación se puede implementar de dos maneras:

  • Animación cuadro por cuadro. Cuando dibujas cada cuadro. Para hacer esto, usa las tablas de sprites y Sprite Packer en Unity.
  • Animación esquelética. Se dibuja cada miembro móvil, luego su posición y giros se animan. Es más rápido, más liviano y gasta menos RAM. Para la animación 2D en Unity, use pivotes (puntos de anclaje) o el complemento Anima 2D .



¿Qué más podría ser útil?


Consejos que se aplican no solo a los gráficos del juego, sino también a otros programas:

  • Los objetos de mosaico se utilizan para crear mosaicos y requieren menos espacio en el disco duro.



Sin azulejos y con un azulejo

  • Los objetos de 9 divisiones con bordes no escalables y un centro escalable le permiten ampliar imágenes sin llenar memoria.



El punto se expande, pero los ángulos siguen siendo los mismos.

  • Resuelve cada objeto de modo que se divida por 4 o sea una potencia de 2.
  • En Photoshop, puede guardar cada capa en un archivo separado a través de Archivo> Exportar> Exportación rápida a [formato de imagen].

Las herramientas


Creación de interfaz:

  • Photoshop
  • Bosquejo

Los principios de creación de la interfaz:


Crear objetos 2D:

  • Photoshop
  • Gimp.
  • Paint Tool SAI: para gráficos de estilo anime.

Crear objetos 3D:

  • Blender es un poderoso software con entrenamiento sofisticado.
  • Maya: para animación.
  • Max: para renderizar.

Recursos del juego gratis:

  • Behance : fuentes, iconos y más.
  • KennyNL : objetos de alta calidad, listos para usar en juegos.
  • Open Game Dev Art es una gran biblioteca de gráficos creados por otros usuarios.

Inspiración

  • Dribbble es una comunidad cerrada de diseñadores.
  • Behance es una comunidad de diseñadores a la que cualquiera puede unirse.
  • itch.io es una comunidad independiente de creadores de juegos.

Programacion


Propina


Elija un motor de juego, un entorno de desarrollo y comience a sumergirse en el código.

El siguiente conocimiento es suficiente para comenzar. Todos los ejemplos están escritos en C ++, uno de los lenguajes de programación en Unity3D. ( Nota del traductor: de hecho, Unity usa C #, que es similar a C ++ ).

  1. Tipos de datos y variables. El código se basa en datos almacenados en variables. Puede declarar una variable como esta:

    int i = 0; 

    int - tipo de datos, i - nombre de la variable, = 0 - valor de la variable.

    Tipos de datos de uso común:
    int y long - para enteros,
    flotante y doble : para números de coma flotante,
    cadena : datos de cadena.
  2. Condiciones. Usando la instrucción if, puede crear condiciones para la ejecución del código:

     if (true){ //   !   doThings(); //   ,   ! } 

    Usando la instrucción else , puede expandir la condición y mostrar qué hacer si la condición no es verdadera:

     int i = 1; if (i == 0){  doThings(); } else if (i == 1){  doOtherThings(); //   ! } 

  3. For / while bucles. Los bucles while repiten partes del código mientras la condición sigue siendo verdadera. Tan pronto como la condición deja de ser cierta, el ciclo se rompe.

     while (someBool == true){ //   doThings(); //  ,    } 

    Los bucles For son similares a los bucles while. Mientras escribimos así:

     int i = 0; while (i < condition){   doThings();   i++; // ,     } 

    Un equivalente para loop sería:

     for (int i = 0; i < condition; i++){   doThings(); } 

  4. Estructuras de datos. Tenemos datos para interactuar. Además, se pueden almacenar en una estructura especial: una matriz, una lista, una cola, una pila o un conjunto.
    Un simple ejemplo de matriz:

     /* ,      0  9.     ! */ int[] arr = new int[10]; /*  []    .     10   arr.    : arr = [ 0 0 0 0 0 0 0 0 0 0 ] */ for (int i=0; i<10; i++){   arr[i]=i; //    i  i. //,     ? } /*       : arr = [ 0 1 2 3 4 5 6 7 8 9 ] */ 

  5. Funciones y excepciones. Una función es una línea corta de código que reemplaza una gran cantidad de líneas de código. Por ejemplo, genere la función EatBread () , que contiene lo siguiente:

     void EatBread(){ //<---   breadAte=true;  printf("  ,    "); } 

Luego, cuando se emite la función, se ejecutan dos expresiones dentro de ella.

Si algo sale mal en el código, las excepciones vienen al rescate. Como que dicen: "Espera un minuto, aquí hiciste algo ilógico. Comprueba de nuevo.

Qué más necesitas saber:

  1. Idioma. ¿En qué idioma programarás? Muy a menudo, los juegos se escriben en C ++, JavaScript o C #. Los idiomas difieren en su sintaxis y alcance.
  2. API (interfaz de programación de aplicaciones). Una vez que se haya familiarizado con la base, comience a estudiar la interfaz del software de la aplicación para un motor de juego específico. Son una colección de herramientas útiles empaquetadas en clases y funciones simples. API simplifica enormemente la vida de un programador.
  3. Vea ejemplos de proyectos en el motor de juego seleccionado. Puedes encontrar muchos ejemplos gratuitos de juegos en los motores Unreal y Unity. Esto te permitirá ver el resultado y todo el proceso de trabajo, así como dibujar ideas para tu futuro juego.

Un poco de inspiración Sé que la programación da miedo al principio. Todo parece no tener sentido, constantemente tropiezas y ante los constantes errores que quieres abandonar, pero esto no significa que la programación no sea para ti.

El código es un desafío para uno mismo. Y no entender nada al principio es normal.

Como cualquier habilidad, la programación necesita ser aprendida. Y tal vez sea bastante interesante.

Otros conceptos básicos de programación importantes:

  • Programación Orientada a Objetos. Hace que el código sea más natural.
  • Convención de nomenclatura. Nombra clases, métodos y variables para que tú y otros programadores entiendan su propósito. Por ejemplo, nombre la función de ataque cuerpo a cuerpo,

     meleeAttack () 

    no

     mA() 

    o

     protecbutalsoattac() 

  • Descomposición Realice una función a partir del código repetido y llámelo en lugar de copiar las líneas repetidas.
  • Patrón de diseño Singleton ("Loner"). Una plantilla de programación que permite almacenar datos en un solo lugar.
  • Evitación de variables estáticas. Además de usar singletones, evité las variables estáticas: viven solo durante la duración del juego, son lentas y pueden comportarse de manera impredecible.
  • Design Pattern Observer ("Observador"). Permite que un objeto descubra el estado de otros objetos sin perder tiempo de computadora para verificar.

Cosas específicas de la unidad:

  • Corutinas Le permiten comenzar a realizar una acción, continuar por el momento adecuado y luego detenerse. Los uso para los efectos visuales de explosiones, movimientos bruscos.
  • Clase ScriptableObject. Almacena datos a un costo menor que la clase base MonoBehaviour.

Las herramientas


Motores de juego:

  • Motor personalizado en C / C ++. Umbral de entrada bajo. ( Nota del traductor: de hecho, crear su propio motor requiere mucho esfuerzo y un profundo conocimiento de los principios de programación ).
  • Unidad Soporta 2D / 3D. Requiere conocimiento de JavaScript / C #. Umbral de entrada promedio. Desarrollo para múltiples plataformas.
  • Irreal Soporta 2D / 3D. Requiere conocimiento de C ++. Umbral de entrada promedio. Desarrollo para múltiples plataformas.
  • pixi.js. Solo 2D. Requiere conocimiento de JavaScript. Umbral de entrada promedio. Desarrollo para el navegador.
  • GameMaker Studio. Soporta 2D / 3D. Requiere el conocimiento de un motor de lenguaje especial GML (Game Maker Language). Para principiantes Desarrollo para múltiples plataformas.
  • Corona Solo 2D. Requiere conocimiento de Lua (similar a JavaScript). Para principiantes Desarrollo para múltiples plataformas.

Entorno de desarrollo:

  • Visual Studio Code (para MacOS): no se congela, tiene información de ayuda incorporada y teclas de acceso rápido convenientes.
  • Visual Studio (para Windows).
  • MonoDevelop : instalado con Unity, a veces se congela.

Activos de unidad libre:

Hay muchos activos gratuitos en Unity Asset Store, bitbucket y GitHub. En mis proyectos uso al menos dos. Simplifican la vida, pero lejos de ser ideales. Notamos un error: corríjalo y dígaselo al desarrollador.


¡Una fuente importante, incluso la principal, para resolver problemas con el código es Google!

Sonido


Propina


El audio es capaz de crear un ambiente y sumergirse en un juego, pero necesita memoria.

Primero decide: ¿quieres un sonido? Si es así, ¿habrá música, efectos de sonido, actuación de voz o narración en el juego?

En cualquier caso, se requiere grabación y mezcla para que el sonido coincida con el estado de ánimo del juego. Por ejemplo, Bastion usa sonidos orgánicos e instrumentales que se combinan bien con el juego. Crypt of the Necrodancer incluía una mezcla de ritmos electrónicos y rock de ocho bits para transmitir el ritmo y el brillo del juego.
La inmersión decide. Si los sonidos no coinciden con el estado de ánimo del juego, será difícil para el jugador sumergirse en su mundo.

Las herramientas


Aplicaciones de audio:

  • Logic Pro (solo MacOS). El precio es de $ 200.
  • FL Studio. El precio es de 99-899 $. Hay una versión de prueba gratuita.
  • Segador El precio es de 60-225 $.
  • Audacia Programa gratis Tiene pocas características, pero es útil para limpiar el audio.

Crear efectos retro:


Sonidos gratis:


Preparación para publicación


Propina


Hay una pequeña probabilidad, al 99.99 por ciento, de que el juego tenga errores. Y esto significa que es hora de hacer una prueba de error.

¿Cómo probar el juego en busca de errores?


  1. Deja que otros jueguen el juego. Es aconsejable con usted, en caso de que encuentren un error y no puedan entenderlo o explicarlo.
  2. Echa un vistazo al juego en diferentes plataformas. El editor puede no ser un problema, pero ¿funciona donde se lanzará? Tenga especial cuidado con Linux y Android.

Entonces, se encuentra el error. Que ahora



  1. Verifique la consola para ver las excepciones. Si encuentra una excepción, busque el archivo y la línea donde ocurrió la excepción. Si suena marciano, busque una solución en la red y piense por qué se lanza una excepción en esta línea.
  2. Escribe a la consola. Intente mostrar registros (archivos del sistema) en las supuestas ubicaciones de error. Ingrese diferentes variables y compare los valores obtenidos con los esperados. Si hay una falta de coincidencia, corríjala.
  3. Revisa los registros. Los registros del sistema de su proyecto le darán más información que la consola. Lea las líneas donde ocurrió la excepción. Busca en Google todo lo que no sabes.
  4. Dormir Todo se arreglará por la mañana. Esto es solo un mal sueño :)

Errores comunes


  • NullReferenceException.

     var.doThing(); //throws NullReferenceException: Object reference not set to an instance of an object 

    Cuál es el problema: la función se ejecuta con una variable inexistente (nula).
    Solución rápida: verifique si la variable es nula.

     if(var != null)   {       var.doThing(); //   !   } 

  • SyntaxErrorException.
    Cuál es el problema: errores de sintaxis.
    Solución rápida: el mensaje indica qué personaje generó el error. Encuéntralo y arréglalo.

    Nota: Verifique qué citas está utilizando.
    "// comillas válidas;
    "// citas innecesarias, te traerán muchos errores.
  • Pantalla rosa o negra.
    Posible problema: el sombreador no fue procesado.
    Posibles razones: está utilizando sombreadores 3D en un juego 2D o sombreadores que no son compatibles con el sistema operativo. Asegúrate de usar sombreadores móviles para juegos móviles.

A medida que termine con los errores, comience a optimizar el rendimiento y el uso de la memoria. Los usuarios podrán ejecutar el juego más rápido y no experimentar problemas con los dispositivos de calefacción.

Consejos de optimización


  • Establezca la velocidad de fotogramas deseada. 20 fotogramas por segundo son suficientes para una novela visual, pero se necesitan 60 para un tirador. Una velocidad de fotogramas baja gasta menos tiempo en renderizar.
  • Animación / sistema de partículas / procesamiento selectivo. Los objetos invisibles para la cámara del jugador no se procesan. Los personajes están animados, las partículas se actualizan, los modelos 3D se procesan solo en el campo de visión del jugador.
  • Compresión de texturas y sonidos. Usa Crunch para comprimir texturas. La transmisión de música y el desempaque de efectos de sonido sobrecargan el juego. Intenta reducir la calidad del audio. La compresión puede reducir significativamente la calidad de los objetos.
  • No permita que Raycast toque objetos innecesarios. Los Raycasts son como pequeños rayos que salen de tus dedos o mouse cuando tocas la pantalla o haces clic. Encuentra objetos que no deberían reaccionar a las acciones del jugador y retíralos de los cálculos de Raycast.
  • Usa el grupo de objetos. La creación y eliminación frecuentes de una gran cantidad de objetos reduce el rendimiento. En cambio, combínelos en una lista, cola u otra estructura. Por ejemplo, las viñetas deben combinarse en una sola matriz.
  • Optimizar los sombreadores. Definir material para cada visualizador. El juego no tiene que crear nuevos materiales al comienzo del juego, lo que ahorrará recursos. Deje que el visualizador incluya solo lo que es funcionalmente necesario.
  • Utilice AssetBundles (literalmente "paquetes de activos") en lugar del antiguo sistema de Recursos en Unity. AssetBundles exporta sus archivos de Unity y los coloca en un solo archivo, ahorrando RAM.

Herramientas (solo Unity)


Guiones


Gráficos:


Memoria:


Optimización de plataforma:


Publicar


Propina


Es hora de mostrarle al mundo tu creación.

La promoción es la etapa más emocionante. En caso de duda, la comunidad de diseño del juego te ayudará. Recuerde que no está solo, y dado que tantos han pasado, debe completar el trabajo hasta el final.

No sabrás si el juego se convertirá en un éxito hasta que lo publiques.

  1. Descripción

    Tome capturas de pantalla de las páginas "Acerca del juego" y cree descripciones para cada plataforma en la que planea lanzar el juego.
  2. Redes

    Si quieres que todos aprendan sobre el juego, escribe anuncios para medios de juego, participa en festivales y conferencias.

    Envía una descripción del juego a la prensa una semana antes del lanzamiento; dale a la gente tiempo para escribir sobre él. Puede suceder que no escriban sobre eso, pero recuerde: a los periodistas les encantan las bellas historias sobre desarrolladores, una idea única o conflictiva y un kit de medios.

    ¿Dónde obtener las direcciones?
    • Encuentra en línea los contactos de los autores que te gustan: correo, LinkedIn, Twitter.
    • Encuentre el correo de la publicación en la sección Acerca de nosotros o en la parte inferior de la página.

    No escriba en publicaciones de juegos que no cubran su género o plataforma de juegos de destino.

  3. Streamers y video bloggers

    Harán un video del juego si:
    • El juego se hará popular en las plataformas.
    • Escribirás directamente. No hables de ti mismo, habla brevemente, hermosa y convincentemente sobre el juego. Usa gifs y capturas de pantalla para llamar la atención.

    Por lo general, las direcciones de los bloggers se enumeran en la página. Si no, intente encontrar contactos en Internet.



    Una carta al video blogger Markiplier, cuyo canal tiene más de 21 millones de suscriptores



    Video del juego por Markiplier
  4. Redes sociales

    Esta es una gran herramienta para la promoción: Agar.io ganó popularidad en 4chan, Butterfly Soup saltó en las descargas después de seguir en Twitter.

    Lo mejor: publicar a través del editor o usted mismo. ¿Desea seguir el camino de Hotline Miami lanzado por Devolver Digital, o aprender de Farmville y el Doki Doki Literature Club?

    Para colaborar con un editor , primero debe encontrarlo. Después de eso habrá un pequeño montón de papeleo, pero recibirás fondos suficientes para el desarrollo del juego.

    Si tiene la intención de publicar usted mismo , prepárese para pasar mucho tiempo estudiando marketing. Puede fallar la campaña de promoción, pero en el proceso obtendrá un conocimiento valioso y ahorrará dinero.



    El número de configuraciones de juego está creciendo

    Prefiero publicar juegos yo mismo. Me gusta estudiar y creo que un juego realmente bueno tendrá éxito independientemente del progreso.
  5. ¡Haga clic en el botón "Publicar"!

    Resultó! Ahora relájate, toma algo sabroso y relájate. Trabajaste incansablemente y te lo merecías.

    No tengas miedo si el juego no ha recibido la atención esperada, esto es normal. Mi primer juego tiene solo 255 descargas en Steam.

Lo principal es que hiciste el juego y aprendiste mucho. Ahora esto es suficiente, y siempre existe la oportunidad de volver a intentarlo con nuevos conocimientos.

Las herramientas


El servicio presskit () ayuda a los desarrolladores a escribir una descripción del juego para la prensa.

Plataformas para publicación:

  • Steam (PC): $ 100 por publicación.
  • Origen (PC).
  • GOG (PC): publicación gratuita con permiso.
  • Mac App Store (MacOS): $ 100 por año, requiere una cuenta de desarrollador de Apple.
  • itch.io (PC / Web) es una publicación gratuita.
  • Game Jolt (PC / Web) es una publicación gratuita.
  • Armor Games es una publicación gratuita.
  • Kongregate (Web) es una publicación gratuita.
  • Newgrounds (Web) es una publicación gratuita.
  • GitHub (Web) es una publicación gratuita en un sitio que termina en ___.imtqy.com .
  • Amazon (Web / Mobile) es una publicación gratuita.
  • Google Play (móvil): $ 25 por publicación.
  • iOS App Store (móvil): requiere una cuenta de desarrollador de Apple.

Registros de juego:


Festivales:


Conferencias de juego:


Conclusión


No hay una manera fácil de crear un juego. Solo existe tu determinación y esfuerzo.

Detrás de cada Half-Life, Minecraft y Uncharted hay océanos de sangre, sudor y lágrimas.
Ken Levin, creador de Bioshock

Cometerás errores, te sentirás estancado y llorarás. Esto es normal, significa que estás creciendo por encima de ti mismo.

De los editores


Source: https://habr.com/ru/post/es420689/


All Articles