Question

Je voudrais écrire quelques simples Mario comme jeu à partir de zéro en utilisant le langage C. Mais honnêtement je ne sais pas comment le faire, et je ne peux pas trouver un bon tutoriel pour ce qui est gratuit.

Mais à la question de actuall, je n'ai écrit des programmes WinAPI à ce jour, de sorte que tous gestion des événements et l'entrée utilisateur a été pris en charge par OS, avec le travail minimum, mais à develope jeu, avec par exemple des menus avec des boutons non-rectangulaires, animations et, je suppose, il n'y a pas une telle chose dans WinAPI taht pourrait me aider plus que certaines routines de base emplacement du pointeur de la souris et pressions sur les touches.

Alors, est la bonne façon d'écrire votre jeu pour écrire toute la partie de tirage du moteur de jeu en manipulant des objets pour le joueur, les ennemis, et arrière-plan vous-même, et que juste utiliser DirectDraw pour la sortie à l'écran?

EDIT: Je veux vraiment apprendre à écrire des jeux à partir de zéro, becouse il doit être une grande expérience de la programmation, et si l'on considère les jeux comme Commander Keen sur DOS, créé sans cadre ou les bibliothèques, mais encore si grand.

Était-ce utile?

La solution

Une bonne approche serait de jeter un oeil à la bibliothèque SDL. Je ne dis pas qu'il est nécessairement la meilleure bibliothèque pour les jeux en 2D, mais il est facile de démarrer avec et le web est inondé avec des tutoriels et des exemples de code open source pour de simples homebrew 2D jeux utilisant SDL.

Autres conseils

Je ne vous recommande aussi la SDL, mais vous devriez certainement jeter un oeil sur lazyfoo tutoriel , ce qui est tout simplement génial.

J'ai aussi utilisé SDL, mais essayez de regarder HGE . Il faut au moins DirectX 8.0 pour que vos applications ne fonctionnent que sur Windows, mais sur leur forum, vous trouverez de nombreux sujets sur la façon de le porter à OpenGL. À mon avis HGE sera plus facile à apprendre que SDL, SDL car est une bibliothèque de bas niveau et vous devrez apprendre à gérer beaucoup de choses par vous-même. HGE est plus prêt à commencer juste de sortir de la boîte.

Quand je l'ai commencé à programmer je commencé à faire avec Allegro, dans le bon vieux temps du DOS. Ce fut la première bibliothèque utilisable qui a travaillé avec des bibliothèques SVGA, et avait un bon support de sprite. Puis version3 venus et ils ont ajouté le support pour Windows (en utilisant GDI et directy X, vous pouvez choisir lors de l'exécution qui moteur à l'utilisation). Le port linux est venu à la vie, et tout est bon.

Il est une bibliothèque 2D très basique, et il vous apprendra les bases de graphiques et d'animations. Maintenant, il contient même support audio qui est très nécessaire addition (bien, je me souviens encore V 2,9X ...). Ils sont dans les bêtas pour la version 5, et je pense que cela est un projet intéressant pour vous de regarder dans.

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

Qu'est ce que vous les gars parle, le WinAPI a des routines de dessin bas niveau.

Bien que l'utilisation d'une bibliothèque établie comme SDL est probablement une meilleure idée que vous pouvez créer vos propres abstractions à des routines de dessin WinAPI sans trop de difficulté.

Ensuite, il est juste une question de la création de la boucle while qui a toutes les instructions et l'interprétation de dessin d'entrée. Pour les jeux en 2D ce n'est pas trop difficile.

En bref, oui - il n'y a rien dans le WinAPI qui vous aidera beaucoup. Cependant, il y a des dizaines de moteurs de jeu que vous pouvez construire votre jeu sur cela prendrait une énorme quantité de gruntwork sur la création du jeu lui-même. Un peu de recherche sur Google vous aidera.

(recommandation personnelle: bien qu'il soit techniquement un moteur 3D, quelque chose comme unité est un excellent moteur qui comprend des tutoriels pour la création 2D jeux. L'unité est pas C, mais fait vous rendre la vie beaucoup plus facile ...)

  

EDIT: Je veux vraiment apprendre à écrire des jeux à partir de zéro, becouse il doit être une grande expérience de la programmation, et si l'on considère les jeux comme Commander Keen sur DOS, créé sans cadre ou les bibliothèques, mais encore si grand

Ceci est en fait pas tout à fait raison. Commander Keen (et tous les jeux DOS) font les bibliothèques d'utilisation: celles fournies par le DOS, BIOS, etc. Sans bibliothèques d'une forme ou une autre, vous ne seriez pas en mesure de faire quoi que ce soit utile avec C. Pour la programmation de jeux, vous faites vraiment veulent laisser tous les détails de bas niveau à quelqu'un d'autre.

Je vous recommande Allegro comme une bibliothèque de programmation de jeux début.

Consultez ci jeu dev à partir

Ils ont vraiment une grande ressource liée à la programmation de jeux et beaucoup de choses de débutant. SDL est bon, mais vous devriez considérer au sujet de l'apprentissage des techniques de jeu de base commencent avant le codage et avant même commencer à réfléchir sur les api / libs que vous utilisez.

Effacer combien « l'intelligence » dont vous avez besoin (Ki), considérer au sujet de chargement / enregistrement d'une bonne heure, ... tellement de choses que vous devez garder à l'esprit si vous voulez terminer votre projet. Avez-vous besoin d'un éditeur de jeu? (Also..work) Qu'en est-il du son / graphiques? Écrire tout ce genre de choses sur votre propre prendra beaucoup de temps (si vous n'avez pas l'expérience). La création du contenu est un autre gros problème qui peut consommer beaucoup de temps, si vous faites du tout.

Peut-être vous aider à avoir un regard sur certains enfants dev, parce que vous donnera l'idée comment fonctionne leur moteur. Comme celui-ci (obsolète) Dev kid

Je viens de commencer il y a quelques jours un projet similaire, vous pouvez le vérifier sur GitHub .
Il devrait vous donner quelques idées sur la façon dont le jeu est structuré. Ainsi que quelques détails sur une carte 2D scrolling avec collision (qui se révèle être assez compliqué si vous voulez obtenir 100% sans bug). Oh, et il utilise SDL comme beaucoup ici ont déjà suggéré.

Quant à moi, ceci est mon premier projet C. Mais je dois admettre que je l'ai fait des choses similaires en Java et Python avant, donc ce fut une bonne façon pour moi d'apprendre rapidement C. Et depuis sa formation et aucune substance productive, j'utilise C99 plaine, ce qui rend la tâche encore « plus drôle ».

Mais revenons au jeu, vous avez vraiment besoin de penser à votre conception avant commencer à coder, écrire sur une feuille de papier, ou si vous êtes comme moi et que vous ne ont des choses d'arbres à portée de l'écrire dans pseudocode.

Pensez à autant de possibles états de jeu que vous pouvez, pire que d'avoir à re-mettre en œuvre l'ensemble lecteur / carte / whatever choses à partir de rien de rien juste parce que vous ne pensiez pas sur la fonction XYZ avant.

Le design est très important, si vous ne disposez pas d'un objectif pour commencer, votre projet atteindra un point où il échoue, tout comme mon Tuff a fait, bien il a également échoué en raison du manque de la musique et quelqu'un qui aurait conçu des ennemis, etc.

En parlant de graphiques et autres, gardez à l'esprit que le jeu sera composé de beaucoup plus que juste le code simple. Si vous n'êtes pas bon dans les graphiques puis prendre cela en compte lors de la conception. Parce que vous allez rapidement perdre votre motivation lorsque les seules choses sur l'écran sont des rectangles colorés.

Action Arcade Jeu Aventure (à l'origine publié comme un livre) est probablement l'un des plus complets des tutoriels sur la façon d'écrire un jeu 2D side-scrolling. Bien qu'une référence plus, de nombreux éléments fondamentaux pour le développement d'une 2D à défilement horizontal n'a pas changé.

exemples de code source et des outils pour développer un défilement horizontal sont fournis comme téléchargements . Il n'y a qu'une bibliothèque externe utilisée pour gérer des primitives graphiques. Comme il est un programme DOS plus, vous pouvez avoir à utiliser un émulateur DOS comme DOSBox ou modifier les exemples pour des environnements plus modernes.

Je vous suggère de écrémez chapitres 1 à 9 et de se concentrer sur les chapitres 10 à 17.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top