Comience de manera simple y avance.
Introduce un nuevo aspecto al juego cada vez que lo mejoras.
Entonces, comience con un juego simple donde pueda mostrar el campo de juego usando gráficos ASCII simples, y donde sepa cómo se jugará antes de comenzar para que pueda concentrarse en escribir el software y no diseñar el juego.
Así que haga un clon de PacMan o SpaceInvaders, o algo así. Supongamos que decide hacer “PacMan”.
Puede dibujar el campo de juego sin aprender ningún software de gráficos dibujándolo con las marcas # para las paredes: ‘P’ como PacMan, ‘A’, ‘B’, ‘C’, ‘D’ para los “fantasmas”, un ” . “Para los espacios vacíos y” o “para las pastillas de poder. Olvídate de las cerezas y tal. Haz esto crudamente … vas a tirar esto muy pronto.
Su primer esfuerzo debe ser una función llamada “Pantalla” que llame con una matriz 2D que es el campo de juego, una matriz 1D con las ubicaciones de las píldoras de poder y las coordenadas de PacMan y los cuatro fantasmas. Borra la pantalla e imprime los ‘#’ y tal. Escriba este código; asegúrese de que funcione bien.
Ahora haga que lea el “tablero” del juego desde un archivo en el disco. Es un archivo de texto ASCII, y puede editarlo con “Bloc de notas” o algo así. Ahora puede cambiar el campo de juego según lo necesite sin tener que escribir software nuevo cada vez.
Ahora haga un bucle que llame a esa función de “Pantalla” una y otra vez, con un retraso de 1/10 de segundo entre llamadas. Es parpadeante, pero no nos importa en esta etapa. Ahora, cambie la posición de PacMan cada vez que se presione una de las teclas W, A, S, D. Mover arriba / izquierda / abajo / derecha respectivamente. Escriba un código que no permita que PacMan ingrese un cuadrado que tenga un “#”.
¡Ahora puedes mover PacMan por la pantalla! Está todo bien o qué.
Si puede descubrir cómo “INICIAR” el cursor en lugar de borrar la pantalla, se detendrá el parpadeo. Buscalo en Google.
Ahora verifique si PacMan ingresó a una de las celdas donde hay una píldora de energía. Si lo hace, entonces elimina esa píldora de poder de la pantalla y agrega una a la puntuación del jugador.
Muestra la puntuación como un número en la esquina superior izquierda de la pantalla.
Ahora piensa en cómo mover a los fantasmas. Una cosa simple sería hacer que siempre intenten moverse hacia el jugador, pero no a través de las paredes. Si PacMan está más a la izquierda, vaya a la derecha, pero si no puede porque hay un muro en el camino, intente subir o bajar.
Si PacMan está en la misma ubicación que el fantasma, muévelo al centro de la pantalla y quita un montón de puntos de la puntuación del jugador.
Calcule cuántos pasos de 1/10 segundos pasaron desde la última vez que el jugador comió una píldora de poder … si es lo suficientemente pronto (¿no sé 5 segundos?), Entonces, en lugar de que el fantasma mate al jugador, haga que el jugador mate al fantasma.
¡Esto es en realidad un JUEGO! ¡Puedes jugarlo! ¡Incluso podría ser divertido!
Tómate un tiempo para idear mejores estrategias para los fantasmas. Juega con la velocidad que pueden mover. Mire algunos videos de personas jugando al juego real: intente descubrir cómo los fantasmas deciden hacia dónde moverse.
Todo esto será un desafío, pero este es el primer paso. Espero que puedas escribir esto en un par de fines de semana.
Cuando tenga eso funcionando, lo primero que querrá hacer es mejorar los gráficos y reemplazar el retraso de 1/10 segundos con un retraso de 1/60 segundos.
Para eso, deberás aprender una API de gráficos, tal vez OpenGL o DirectX o algo así. Esto es algo difícil, pero encuentre un programa de ejemplo que haga gráficos 2D simples: copie el código y coloque su juego de texto ASCII en el medio.
Ahora puede eliminar la función de visualización de la pantalla y volver a escribirla en OpenGL (o lo que sea), y puede jugar animando a los personajes y haciendo que las paredes y otros íconos se vean más bonitos. Esto probablemente implicará la lectura de pequeños archivos de imagen que contienen los gráficos, y requerirá que use un programa de pintura decente.
A continuación, debe agregar sonido. Entonces, nuevamente, necesitará encontrar una API adecuada, que podría ser OpenAL o más cosas de DirectX. Nuevamente, encuentre un programa de ejemplo adecuado que haga sonidos y cópielo.
Encuentre algunos sonidos agradables para descargarlos gratis en la web, o grábelos con un micrófono y use un programa como Audacity para limpiarlos y recortarlos.
Podrías salir y descubrir cómo conectar un gamepad en lugar de usar las teclas WASD … sería bueno aprenderlo.
En este momento, tendrás un clon de PacMan bastante impresionante.
Intenta escribir otros juegos simples, similares … pero ahora intenta pensar en uno de los tuyos. Un juego de plataformas de desplazamiento lateral como Super-Mario sería bastante fácil de hacer: debe dominar la idea de dónde está la “cámara” y cómo dibujar lo suficiente del paisaje para llenar bien la pantalla.
Si todavía está entusiasmado con estas cosas, intente hacer algo similar, pero use gráficos en 3D … probablemente ya sepa lo suficiente de OpenGL o DirectX para hacerlo ahora.
Piensa en agregar música: ¿cómo continuará reproduciéndose mientras se ejecuta el juego?
Quizás eche un vistazo al software de red para poder jugar contra un amigo en una computadora que está sentada a su lado: intercambie información sobre las posiciones de sus dos jugadores entre las dos copias de su programa.
Considere usar una computadora “servidor” en la web para permitir que MUCHAS personas jueguen.
En este punto, realmente puedes escribir cualquier cosa.
Tendrá que trabajar continuamente para “mejorar su conocimiento” en gráficos, que es, con mucho, la parte más compleja de escribir juegos sofisticados … pero también lo que los hace ver súper profesionales.
Desde aquí, hay muchas vías que puedes explorar.
- Detección de colisión: ¿cómo sabe cuándo una bala 3D golpeó una forma complicada como su jugador o se perdió por completo? ¿Cómo evitas que los jugadores caminen a través de las paredes?
- Juego “AI”: ¿cómo se comportan e interactúan los personajes que no son jugadores?
- Física: los objetos pueden caer y rebotar de manera realista.
- Planificación de ruta: ¿cómo puede la IA descubrir cómo llegar de aquí para allá en una escena complicada?
- UI / UX: muestra menús, puntajes altos, pantallas de carga, animaciones de escenas de corte.
¡Esto se convierte en un GRAN proyecto!