Pregunta

Me gustaría escribir algo sencillo Mario-como juego desde cero utilizando el lenguaje C. Pero honestamente no tengo ni idea de cómo hacerlo, y no puedo encontrar ningún buen tutorial para esto, que es gratis.

Pero a la pregunta Actuall, sólo he escrito programas WinAPI hasta el momento, por lo que todas las entradas de control de eventos y el usuario fue manejado por el sistema operativo, con el mínimo de trabajo, pero para desarrollar el juego, por ejemplo, los menús con los botones no rectangulares, animaciones , y así, supongo, no hay tal cosa en WinAPI taht me podría ayudar con esto más que un poco de posición del puntero del ratón rutinas básicas y las pulsaciones de teclas.

Por lo tanto, es la forma correcta de escribir su juego para escribir toda parte sorteo del motor de juego mediante la manipulación de objetos para el jugador, los enemigos, y de fondo, incluso a sí mismo, y que el uso justo directdraw para la salida a la pantalla?

EDIT: De hecho, me gustaría aprender cómo escribir juegos desde cero, lástima pues tiene que ser grande experiencia en programación, y si se tiene en cuenta juegos como Commander Keen en DOS, creado sin un marco o bibliotecas, pero sigue siendo tan grande.

¿Fue útil?

Solución

Una aproximación buena a esto sería a echar un vistazo a la biblioteca SDL. No estoy diciendo que sea necesariamente la mejor biblioteca de juegos en 2D, pero es fácil de empezar a trabajar con la web y se inunda con tutoriales y ejemplos de código de fuente abierta para caseros simples 2D juegos escritos usando SDL.

Otros consejos

Yo recomiendo hacer la SDL también, pero que sin duda debe tener una mirada en lazyfoo tutorial , que es simplemente genial.

También utiliza SDL, pero tratar de buscar en HGE . Se requiere al menos DirectX 8.0 por lo que sus aplicaciones funcionarán sólo en Windows, pero en su foro se pueden encontrar muchos temas sobre la forma de portarlo a OpenGL. En mi opinión HGE será más fácil de aprender que SDL, SDL, porque es una biblioteca de bajo nivel y que tendrá que aprender a manejar muchas cosas por sí mismo. HGE es más listo para comenzar justo fuera de la caja.

Cuando empecé a programar empecé a hacerlo con Allegro, de vuelta en los viejos días del DOS. Fue la primera biblioteca utilizable, que trabajó con bibliotecas SVGA, y tenía un buen apoyo sprite. Luego vinieron version3 y añadieron soporte para Windows (usando GDI y Directy X, se puede elegir en tiempo de ejecución, que el motor de su uso). El puerto Linux llegó a la vida, y todo está bien.

Es una biblioteca muy básico 2D, y se le enseñará los conceptos básicos de gráficos y animaciones. Ahora incluso contiene soporte de audio que es una adición muy necesaria (bueno, todavía recuerdo V 2.9x ...). Se encuentran en las versiones beta de la versión 5, y creo que esto es un proyecto interesante para que investigue.

http://www.talula.demon.co.uk/allegro/

Lo que están hablando acerca de ustedes, la API de Windows tiene rutinas de dibujo bajo nivel.

A pesar de que el uso de una biblioteca establecida como SDL es probablemente una mejor idea de que podría crear sus propias abstracciones a la API de Windows dibujo rutinas sin demasiada dificultad.

Entonces es sólo una cuestión de crear el bucle while que tiene todas las instrucciones de dibujo y entrada de interpretar. Para los juegos en 2D esto no es demasiado difícil.

En resumen, sí - no hay nada en el API de Windows que le ayudará mucho. Sin embargo, hay docenas de motores de juego que se puede construir un juego en que llevaría una enorme cantidad de gruntwork de crear el juego en sí. Un poco de google le ayudará.

(Recomendación personal: aunque es técnicamente un motor 3D, algo así como Unidad es un excelente motor que incluye tutoriales para crear juegos 2D. la unidad no es C, pero hace hacer su vida mucho más fácil ...)

  

EDIT: En realidad, quiero aprender cómo escribir juegos desde cero, lástima pues tiene que ser grande experiencia en programación, y si se tiene en cuenta juegos como Commander Keen en DOS, creado sin un marco o bibliotecas, pero sigue siendo tan grande

Esto es en realidad no está muy bien. Commander Keen (y ningún juego DOS) hacen uso de las bibliotecas: los proporcionados por el DOS, BIOS, etc. Sin bibliotecas de una forma u otra, no sería capaz de hacer algo útil con C. Para la programación de juegos, realmente quieren dejar todos los detalles de nivel bajo a otra persona.

Allegro como una biblioteca de programación de juegos principio.

Salida éste Juego dev partir

Tienen realmente un gran recurso relacionado con la programación de juegos y un montón de cosas principiante. SDL es buena, pero se debe tener en cuenta sobre el aprendizaje de las técnicas básicas del juego antes de empezar a programar e incluso antes de empezar a pensar acerca de la API / libs que utiliza.

Claro cuánto "inteligencia" que necesita (Ki), cuenta acerca de la carga / Guardar un un tiempo temprano, ... tantas cosas que usted debe tener en cuenta si se quiere terminar su proyecto. ¿Necesita un editor de juego? (Also..work) ¿Qué hay de sonido / gráficos? Escribir todas estas cosas por su cuenta tendrá una gran cantidad de tiempo (si usted no tiene experiencia). La creación del contenido es otro gran problema que puede consumir una gran cantidad de tiempo, si lo hace en absoluto.

Tal vez pueda ayudar a tener una mirada en algunos niños dev, porque eso le dará la idea de cómo funciona su motor. Al igual que éste (obsoleta) Dev niño

He empezado un proyecto similar hace unos días, se puede comprobar a lo largo de la dirección GitHub .
Se le debe dar algunas ideas sobre cómo el juego está estructurado. Así como algunos detalles sobre un mapa en 2D con desplazamiento de colisión (que resulta ser bastante complicado si se quiere conseguir que el 100% libre de errores). Ah, y se trata de utilizar SDL como muchos aquí ya se han sugerido.

En cuanto a mí, este es mi primer proyecto C. Pero voy a tener que admitir que he hecho cosas similares en Java y Python antes, así que fue una buena manera para mí de aprender rápidamente C. Y ya que es el aprendizaje y no cualquier cosa productiva, estoy usando C99 normal, lo que hace la tarea aún "más divertido".

Pero de nuevo al juego, que realmente necesita pensar en su diseño antes de de empezar a programar, escribirlo en una hoja de papel, o si eres como yo y no lo hace tienen cosas en el árbol alcance de escritura en pseudocódigo.

Piense en tantos estados posibles del juego como sea posible, de nada peor que tener que volver a aplicar el conjunto de DVD / mapa / lo que sea la materia a partir de cero simplemente porque no se piensa en función XYZ antes.

El diseño es muy importante, si no tiene una meta en primer lugar, el proyecto llegará a un punto en que falla, al igual que mi Tuff hizo, así que también fracasó debido a la falta de música y alguien que habría diseñado enemigos, etc.

Hablando de gráficos y tal, tenga en cuenta que el juego consistirá en mucho más que el código normal. Si usted no es bueno en los gráficos a continuación, tomar esto en cuenta al diseñar. Dado que va a perder rápidamente su motivación cuando las únicas cosas en la pantalla son rectángulos de color.

Acción Arcade Aventura Set (originalmente publicado como un libro) es probablemente uno de los más completos tutoriales sobre cómo escribir un juego de desplazamiento lateral en 2D. Aunque una referencia más antigua, muchos fundamentos para el desarrollo de un juego de desplazamiento lateral en 2D no han cambiado.

ejemplos de código fuente completo y algunas herramientas para desarrollar un juego de desplazamiento lateral se proporcionan como descargas . Sólo hay una biblioteca externa utilizada para manejar gráficos primitivos. Como se trata de un programa de DOS mayores, puede que tenga que utilizar un emulador de DOS como DOSBox modificar los ejemplos de ambientes más modernos.

Le sugiero que leerlo a los capítulos 1 a 9 y se centran en los capítulos 10 a 17.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top