¿Cómo codificar Un juego de video?
Elegir un motor
Aprende sobre los motores de juego. Considera la posibilidad de utilizar programas simples de creación de juegos. Intenta utilizar interfaces de desarrollo más profesionales. Elige una herramienta para construir tu propio motor. Construye tu propio motor.
La mayoría de los videojuegos se crean utilizando un motor especializado que te permite realizar una "secuencia" de eventos, personajes, y así sucesivamente, sin tener que codificar cada uno desde cero. Crear un motor de juego completo desde cero puede tomar años, por lo que la mayoría de los desarrolladores independientes utilizan un motor existente. Solamente tendrás que seguir uno de los siguientes pasos de esta sección, dependiendo de lo cómodo que te sientas programando y cuánto tiempo desees ocupar en los pequeños detalles. Estas herramientas requieren de muy poco conocimiento en programación, por lo que quizá no sean adecuadas para ti si te interesan los aspectos de codificación involucrados en la creación de juegos. Por otro lado, un enfoque simple de inmersión inmediata podría enseñarte mucho acerca del juego, y permitirte experimentar con el concepto de nivel superior antes de pasar a trabajar en un prototipo más grande. Aquí tienes varias opciones gratuitas:  Para juegos móviles, prueba a utilizar MIT App Inventor o Game Salad. Para juegos de navegador, prueba a utilizar Scratch, o la versión más formal ¡Snap!, la cual está diseñada como herramienta de programación introductoria. Para juegos de aventura, utiliza Visionaire. Si deseas un programa donde solo tengas que arrastrar y soltar, además de contar con la opción para profundizar también en la codificación, prueba a utilizar la versión gratuita de Gamemaker. Esta es una excelente opción para ensuciarte las manos, acumular experiencia en la codificación de juegos sin tener que empezar completamente desde cero. Muchos desarrolladores profesionales de juegos independientes comienzan en este nivel. Aunque existen muchos motores y entornos de desarrollo integrado (IDEs) disponibles, los siguientes son gratuitos y relativamente fáciles de aprender:  Para juegos móviles: ProjectAnarchy. Para juegos 3D en cualquier plataforma: Unity. Para programadores más avanzados: LWJGL (basado en Java), SFML (basado en C++). Si ya tienes algún conocimiento en programación y estás decidido a construir tu propio motor, aquí tienes algunos lugares para empezar. Si este es tu primer intento, probablemente necesitarás ver tutoriales.  ActionScript le permitirá crear un motor basado en Flash. Este es un buen lugar para empezar si eres un programador de nivel intermedio. Java es relativamente fácil de aprender. Necesitarás un Kit de Desarrollo Java (JDK según siglas en inglés), además Eclipse o algún otro Entorno de Desarrollo Integrado (IDE) para Java, en el caso de que no sepas cómo empezar. Si ya conoces algún lenguaje de programación (especialmente un lenguaje C o Python), busca un IDE para ese lenguaje. Este deberá incluir un compilador y la capacidad de trabajar fácilmente con gráficos, audio y algún otro código dentro del mismo proyecto. Si estás a la altura del reto y has elegido alguna de las herramientas avanzadas mencionadas en el paso anterior, lo más probable es que tengas que encontrar un tutorial, un foro de ayuda, o un desarrollador de juegos experimentado para recibir asesoramiento específico en tu idioma. Si no estás seguro de por dónde empezar o qué cosas preguntar, aquí tienes algunos componentes básicos que tendrás que construir desde la fase temprana:  Un servidor de lado del cliente, el cual interprete la entrada del usuario y procese el resultado. Haz que el sistema de entrada responda de manera correcta antes de trabajar seriamente en los gráficos y el juego. (Si te encuentras estancado, trata de investigar sobre los "oyentes de acción", o “action listeners” en inglés). Inteligencia artificial para los otros personajes, de manera que reaccionen frente a las acciones del usuario. Si se trata de un proyecto más simple, simplemente haz que los personajes se muevan y actúen según una ruta establecida. La capacidad para renderizar gráficos (agrupar y enviar instrucciones a la tarjeta gráfica). Un bucle de juego que se ejecute constantemente mientras el juego esté en marcha. Este deberá aceptar la entrada del usuario, procesarla, procesar otra lógica de juego (tal como el movimiento del enemigo, animación de fondo, y eventos desencadenados), calcular lo que necesite dibujarse (mostrarse en la pantalla), y enviar la información a la tarjeta gráfica. Ejecuta esto a un mínimo de 30 veces por segundo (30 frames per second, en inglés) en el caso de que tu sistema lo permita.
Choosing an Engine