Cómo hacer videojuegos desde cero, con solo codificación

Obviamente, eso depende en gran medida de los tipos de juegos que desea hacer y en qué parte del proceso desea enfocarse.

Diría que si desea comenzar directamente haciendo que las cosas se muevan en la pantalla, comience con Scratch, que es algo así como Logo pero optimizado para juegos de sprites 2D. Si la creación de objetos y escenarios es más interesante, Second Life y algunos de los motores de juegos más modificados como Quake o Source te dan mucho para trabajar. (Si desea profundizar en el modelado para otros fines, el programa CAD DraftSight de Dassault es gratuito y una forma tan buena de comenzar como cualquiera; Blender y Daz3D son buenos para el modelado 3D a bajo precio, aunque puede gastar una pequeña fortuna en modelos prefabricados para Daz.)

Si desea hacer una programación más general, el dinero inteligente en estos días está en Python; es el básico del siglo XXI, pero no tan sofocante o ilegible, y hay mucho material para los autores principiantes de juegos. También es el lenguaje más popular para el desarrollo de Raspberry Pi, que puede ser de algún interés.

Notch era un programador veterano cuando hizo Minecraft, que, por cierto, cuenta como un motor de juego para todos los efectos. ¿Es un marco utilizado para hacer juegos? Es un motor de juego.

Tampoco codificó el arte desde cero. Te llevaría un tiempo irritantemente largo programar a mano el pixel art y las texturas, y no hay razón para hacerlo.

Aunque, la gente hizo eso, una vez …

Para tratar de proporcionar algún tipo de respuesta directa a su pregunta, lo que realmente está preguntando es cómo hacer un juego que funcione de manera procesal en lugar de estar hecho de contenido explícitamente construido. Los sistemas y el contenido “procesales” se crean creando un algoritmo que sigue cierta lógica para construir datos para usted.

Piensa en un juego de rol de mesa con un montón de mesas de mazmorras aleatorias en la parte posterior del libro. Tira los dados, le da una habitación de tamaño X, con características Y y tal vez un monstruo. Pasas a la siguiente habitación, vuelves a tirar los dados y obtienes una configuración diferente. Repita hasta que se haya generado un cierto número de habitaciones, sea cual sea su satisfacción.

El concepto de Minecraft no es muy diferente, excepto que en lugar de habitaciones en una mazmorra usa vóxeles. A diferentes niveles de elevación hay una probabilidad de que un vóxel esté vacío u ocupado con un cierto tipo de bloque. Del mismo modo, a gran escala, existe la probabilidad de que una gran parte del mundo sea un determinado bioma y, por lo tanto, contenga ciertos conjuntos de bloques. En principio, es un sistema que no es difícil de reproducir, al menos a un nivel básico, pero Notch ciertamente alcanzó un cierto punto óptimo al equilibrar la aleatoriedad con algunas elecciones explícitas e inteligentes.

Básicamente, sin embargo, Notch tenía un conocimiento significativo sobre estructuras de datos interesantes y experimentó con ellas a través de su programación. Minecraft fue uno de esos experimentos.

Hagamos una lista de las cosas que necesita para crear un juego genérico:

  • Física, a nivel de ingeniería.
  • Programación por computadora, en un nivel de desarrollador de sistemas en tiempo real (es difícil, mucho más difícil que la programación regular donde tienes todo el tiempo del mundo)
  • Matemáticas, en un nivel de “los vectores no me marean, pero algunas de mis visualizaciones sí”
  • Dibujo y diseño, en el nivel “Conozco mis colores y formas, y mi gente realmente se parece a la gente”
  • Escribir, en un nivel de “a otros les encanta leer mis historias”
  • Música, en un nivel de “Puedo tocar bien varios instrumentos”
  • Sound FX, en un nivel de “no suena para nada como golpear una cuchara en una mesa”
  • Interés general en el mundo, porque muchos sistemas de juegos están inspirados en la biología, las ciencias sociales, la historia, el cosmos, la mitología y prácticamente cualquier área de la experiencia humana.

Es extraño que los juegos requieran cualidades humanas aparentemente incompatibles: los trazos de un pintor y la atención al detalle de un matemático, la capacidad de pasar páginas de historias como un escritor y la concisión de un programador … Creo que si Leonardo da Vinci fuera vivo hoy, habría sido un desarrollador de juegos independiente.

Para responder a tu pregunta, no puedes hacer un juego solo con la codificación. Hay muchas otras cosas involucradas, y el código y los datos son solo las expresiones finales de esas otras cosas.

Necesitas un motor de juego para ejecutar tu juego, así que primero tendrás que codificarlo. Puedes hacer un juego de una sola vez sin un motor de juego, pero eso haría que la mayor parte de tu código sea inútil para otros proyectos después del primero.

Comience leyendo algunos tutoriales de Java para juegos 2D y 3D, busque gráficos Java 2D o 3D. C # también es una alternativa. Minecraft también se hizo con java. Recomiendo Eclipse como editor de Java, ya que ha sido el más fácil de usar en mi experiencia, pero algunas personas que conozco prefieren NetBeans.

No me gusta estudiar por mi cuenta, así que tomaría algunos cursos si estuviera en tu lugar. Aparte de eso, una vez que llegue a la mitad, no mire demasiado atrás e intente arreglar o mejorar su código. Termine el proyecto en cuestión primero y luego regrese y simplemente realice la depuración. De lo contrario, podría quedar atrapado en un bucle.

También los recomiendo para la investigación inicial sobre el desarrollo de juegos.
9 consejos para desarrolladores de juegos independientes
Juego independiente: la película (2012)