Quels sont les bons jeux pour "gagner vos ailes" avec? [fermé]

305

Je crois que pour devenir un bon développeur de jeux, il faut créer des jeux.

Du point de vue du programmeur , quels sont les bons jeux d'entrée de gamme pour vous salir les mains? Quelles compétences et quels défis chacun de ces jeux t'enseigne-t-il?

dessiné
la source

Réponses:

217

Éclater

C'est un jeu facile, car vous n'avez pas à vous soucier de l'état (c'est un tableau de valeurs de briques - si vous n'avez qu'une couleur de brique, c'est un tableau de drapeaux), il n'y a pas d'IA, et vous devez faire une un peu de physique pour faire rebondir le ballon correctement.

Solitaire

Les règles sont un peu plus complexes que Breakout et son interface est très différente. Cela vous oblige à réfléchir à différentes méthodes pour implémenter un jeu. C'est-à-dire que ce qui fonctionne dans un jeu n'est pas nécessairement ce que vous utiliseriez dans un autre.

Pac-Man

Celui-ci est agréable parce que vous travaillez sur un petit peu d'IA. Si les fantômes suivent le joueur (mais pas trop bien - vous voulez que le joueur ait une chance) peut être rapidement mis en œuvre et vous aurez un petit jeu amusant que vous pourrez modifier et montrer à vos amis et à votre famille (les commentaires positifs sont toujours positifs). une bonne chose quand vous débutez).

Je trouve que si vous cherchez de l'inspiration dans les premiers jeux vidéo, vous pouvez trouver des tonnes d'idées relativement simples à mettre en œuvre. De plus, vous pouvez vous en tirer avec des illustrations et des sons super simples, car vous copiez quelque chose d'aussi simple. Cela vous permet d’abord de vous concentrer sur les éléments de base: faire fonctionner votre jeu en boucle, déterminer comment afficher vos pixels à l’écran, jouer un son, conserver le pointage, obtenir l’introduction du joueur dans le jeu.

Peu importe le jeu que vous choisissez en premier, assurez-vous simplement de choisir quelque chose de simple avec lequel vous obtiendrez des résultats rapides, ainsi vous pourrez vous déplacer le lendemain et en créer un autre. Et un autre. Et un autre - plus vous en gagnez, plus vous vous repoussez, et vous finirez par créer des jeux complexes avant de vous en rendre compte.

Dennis Munsie
la source
49
+1 en évasion. De nombreux développeurs de jeux PRO m'ont dit que lorsqu'ils apprennent une nouvelle technologie, ils l'apprennent en faisant d'abord Breakout.
Jeff
2
+1 Breakout était le premier jeu que j'ai fait =). De plus, je suis d'accord pour essayer de recréer les premiers jeux vidéo (avec vos propres rebondissements!). Concentrez-vous sur des concepts et non sur des atouts.
user384918
16
@PhillC, non, ça ne vaut pas la peine de se séparer
Simurr le
13
Vous avez oublié Tetris: c'était le deuxième jeu que j'ai mis en place à l'école haute :)
Emiliano
2
Pourriez-vous tous s'il vous plaît donner des liens vers vos discussions? J'ai adoré ce jeu et j'aimerais essayer tous les remakes
fent
256

Je recommanderais fortement aux programmeurs débutants de commencer par le jeu le plus simple qu'ils souhaitent réellement écrire . Comme mentionné par Matt Rix, une grande partie de l' écriture d' un jeu par rapport à une démo pousse la fichue chose jusqu'à la fin - des crédits, des menus, des tests de jeux, des scores élevés, une pause, jouer les tests, les niveaux de difficulté, propres transitions d'état de jeu, jeu tests, etc. Ce genre de choses prend au moins la moitié du temps que vous allez mettre et ce n'est tout simplement pas amusant. Ce n'est pas. Donc, à moins que vous n'aimiez le concept et que vous ne soyez vraiment motivé, vous abandonnerez et passerez à autre chose avant que le jeu ne devienne un jeu .

Si vous voulez écrire un RPG, déterminez le concept de RPG le plus simple et le plus facile à gérer que vous puissiez trouver et que vous voulez faire. Idem si vous voulez faire un jeu de tir de science-fiction, ou un jeu de plateforme sur le thème de l'horreur, ou autre chose. Choisissez quelque chose que vous allez finir, que vous voudrez quand même finir après que tout soit amusant, mais que vous ayez encore du temps devant vous, des dizaines d'heures de travail avant d'avoir vraiment terminé.

Le meilleur jeu pour "gagner ses ailes" avec? Celui que vous avez complété. Peu importe le nombre de démos PONG / Breakout / Galaga / Tetris que vous avez écrites, vous n'êtes pas un développeur de jeu jusqu'à ce que vous ayez sorti un jeu réellement terminé.

De plus, personne ne veut jouer encore une autre version de ces jeux de 40 ans, et au moins une partie de l’écriture de jeux est que les gens jouent , non?

Bob Montgomery
la source
3
Je veux voter trois fois cette réponse!
Iain
2
+1 pour le commentaire sur la sortie d'un jeu. Obtenir un jeu opérationnel ne représente que 30% environ du processus, IMO. Constamment itératif de la mécanique, peaufinant tout pour le rendre présentable, traquant ces vilains bugs qui ne se produisent que dans des scénarios très spécifiques et capable de se concentrer uniquement sur ce qui doit être fait est les 70% restants.
Dennis Munsie
1
+1 pour avoir dit ce que je voulais dire. Mon premier jeu était palmgadget.com/palmgo.html Cela pourrait être fait car j'aime le jeu Go et je l'utilise vraiment pour enregistrer mes matchs en club. "Grattez vos propres démangeaisons" en premier.
ohho
16
J'aime ce conseil, mais cela peut être dangereux. Après tout, cette mentalité est précisément la raison pour laquelle tant de gens vont sur les forums de développement de jeu et disent "Je n'ai jamais créé de jeu auparavant, je vais créer un MMORPG." Je dirais que vous devriez commencer avec un jeu que vous appréciez parmi une sélection limitée de bons projets de démarrage. Donc, si vous détestez vraiment Tetris, alors ne faites pas ça. Mais faites plutôt Breakout, pas n'importe quel jeu aléatoire qui vous intéresse.
route le
185

J'ai posté cette échelle chez TIGsource il y a quelque temps. Cela commence du très basique au très complexe.

  • "Devinez le nombre" / Pendu (interface de base, sélection de données dans une base de données)
  • Tic-Tac-Toe / Rock-Paper-Scissors (jeu au tour par tour, IA adverse)
  • Arkanoid / Pong (collisions, cadence stable, score, niveaux)
  • Tetris (structures de données et leur relation avec les jeux)
  • 1942 / Shoot-em-up (ennemis, balles)
  • jeu de plateforme simple / jeu de flipper si votre moteur effectue des jeux de plateforme (collisions par gravité)
  • Bomberman / Pacman (mouvement basé sur des tuiles, IA complexe ennemie)
  • Jeu à deux joueurs de l'un des types ci-dessus (entrées à deux joueurs)
  • Roguelike / Diablo (Gestion des stocks, IA multiples, sauvegarde et chargement d’états complexes)
  • Faceball / Wolfenstein 3D (mouvement et rendu 3D de base)
  • Jeu au tour par tour (réseau de base)
  • Plate-forme 3D à la troisième personne Gimmicky (physique, mouvement complexe en 3D)
  • Jeu en temps réel sur le réseau (synchronisation client-serveur, décalage)
  • MMORPG (monde persistant)
zaratustra
la source
7
Vous pourriez mieux expliquer ce que vous êtes censé apprendre ici. Vos notes succinctes ne sont pas très descriptives / utiles.
SpoonMeiser
57
Même si c'est la dernière, je pense que les MMORPG doivent aller plus bas. Liste impressionnante. +1
mardi
6
Grande liste, même si je pense que tout l’aspect de l’échelle tombe après Pacman. À ce stade, vous en savez suffisamment pour aller jouer à tout type de jeu; Je ne pense pas que vous ayez besoin de développer Diablo avant de développer Wolfenstein. Jusqu'à Pacman, vous devriez tout faire dans l'ordre.
route le
5
"Monde persistant" sous-estime réellement les différences entre un MMORPG et les options précédentes.
Malabarba
1
Vous pouvez également gérer "Monde persistant" dans un non-MMORPG (par exemple, un rogue).
cendres999
64

La règle la plus importante de l'apprentissage de la programmation de jeux: l'apprentissage de la programmation est difficile. Apprendre à concevoir un jeu est difficile. Il est difficile d’apprendre à faire du bon art de jeu ou de l’audio. Essayer de faire toutes ces choses en même temps est une recette d'échec. Apprenez une chose à la fois.

Corollaire: programmez un jeu où la conception, l’art et le son sont déjà terminés. Faites des clones, pas des jeux originaux.

Dans mes cours, je recommande toujours ces jeux pour commencer, dans l'ordre:

1) Tetris. L’art est constitué de rectangles colorés que même un klutz total peut dessiner dans Microsoft Paint. Vous n'avez pas besoin de son. La programmation est relativement simple, mais nécessite tout de même quelques éléments clés: comprendre la différence entre l’état interne du jeu et ce qui est dessiné à l’écran; être capable de dessiner sur l'écran, période (probablement impliquant sprites et blitting); pouvoir accepter les entrées de l'utilisateur en temps réel plutôt que d'utiliser simplement getch () ou scanf () où vous devez les attendre.

2) Breakout / Arkanoid. L'art est toujours des rectangles colorés et vous n'avez toujours pas besoin de son. Utilise tous les concepts de base de Tetris, ainsi que des techniques de base de détection de collision et de physique 2D, car la balle doit pouvoir bouger et rebondir sans à-coups.

3) Gradius / R-Type. Vous pouvez probablement trouver quelques tuiles gratuites pour le faire. Ici, l’arrière-plan défile, vous devez donc en apprendre un peu plus sur le fonctionnement de la mémoire graphique, en utilisant des techniques telles que le retournement de page, la double mise en mémoire tampon et le tracé en dehors des limites de l’écran visible. Vous avez également tendance à avoir des ennemis dynamiques et à générer des balles. Vous devrez donc apprendre à nettoyer après vous-même (c'est-à-dire à vous débarrasser des ennemis et des balles qui quittent l'écran pour que votre jeu ne perde pas de mémoire comme un tamis).

4) Super Mario Bros. Semblable au projet de défilement précédent, sauf que le défilement est maintenant sous le contrôle du joueur et non automatique. Vous devez également faire face à la gravité et à tous les trucs amusants sur les collisions qui vont avec (par exemple, ne pas tomber à travers le sol simplement parce que vous étiez quelques pixels au-dessus dans la dernière image et que vous souhaitez passer à quelques pixels en dessous dans l'image suivante. ). Notez également que la gravité est conditionnelle: elle affecte le joueur et certains ennemis, mais généralement pas les plates-formes, les pièces flottantes ou autre chose, ce qui est un peu différent du monde réel.

Si vous pouvez faire ces quatre tâches, vous devriez être capable de faire à peu près n'importe quel jeu en 2D de votre choix. tous les outils sont là. Si vous voulez créer un jeu en 3D, commencez par apprendre la 2D parce que c'est beaucoup plus facile et que vous n'avez pas besoin de comprendre les calculs en profondeur, mais vous devez comprendre les éléments en 2D de toute façon. à l'aise avec cela, commencez à travailler avec des outils 3D de base (des bibliothèques telles que Torque ou Unity, ou des jeux à code source ouvert comme Doom et Quake d'origine).

Bonne chance!

Ian Schreiber
la source
39

Maintenant, c'est une bonne question. Je ne sais pas où vous êtes, alors je vais me tourner vers le ciel et je suppose que vous n'avez jamais écrit une ligne de code dans votre vie. Coupez toute partie du nez qui vous offense, pour abuser d'une phrase.

Je pense en fait que je vais répondre à une question légèrement différente de celle que vous avez posée, et je vais donner des exemples pour répondre à la question que vous avez posée in situ. La raison pour laquelle je le fais de cette façon est une légère mais je crois que la différence de point de vue est importante: ce ne sont pas tant les jeux spécifiques qui importent que la mentalité que ces jeux apportent à un concepteur.

Vous savez comment les gens parlent de ce que vous êtes censé apprendre une variété de langages de programmation, afin de manger leur état d'esprit, leur cœur et leur foie, et ainsi de gagner leur pouvoir? La vérité est que, après votre premier langage de programmation pur ou presque pur, même dans des langages impératifs, vous allez finir par écrire des fonctions largement sans effets secondaires car elles sont tellement mieux définies et tout ce que vous écrivez. même dans des langues qui ne sont pas de cette forme, ce sera mieux. Quelle que soit la langue utilisée (haskell, ml / ocaml / smlnj, formulaONE, modèles c ++, peu importe), vous apprendrez toujours à effectuer de nombreuses classes de travail sans recourir à l'état de l'effet. La première fois que vous apprenez un langage de programmation robuste et proche de la machine, vous ' re va en apprendre davantage sur l'abstraction de type de taille. La première fois que vous apprenez un langage déclaratif ou un langage de contrainte, vous allez apprendre à utiliser les limites comme outil discrétionnaire. La première fois que vous apprenez un langage de recherche en marche arrière, vous allez apprendre à prier Ia! Ia! C'thulhu F'tagn Nagn !, et alors nous revenons à manger des coeurs et des foies, et le cercle de la vie est accompli.

La conception du jeu n'est pas différente. Vous n'avez pas nécessairement besoin d'apprendre un jeu spécifique, en parallèle avec une langue spécifique, mais plutôt un jeu représentatif emblématique qui gère cet état d'esprit, comme les familles caractéristiques de la langue. En outre, il y a beaucoup de foies et de cœurs mangeurs. Obtenez un biscuit au poivre.

Le bâillon ici (du moins, à mon avis) est que vous souhaitez couvrir une longue liste de sujets. C'est comme si vous mettiez des compétences sur une feuille de personnage - vous vous mettez à la disposition de plus de mécanismes pour gérer une situation donnée. Oui, ils sont à niveau, mais avoir un point ou deux dans autant de choses que vous le pouvez signifie que lorsque vient le temps d’en utiliser un, vous ne partez pas de zéro et vous savez quelles tactiques sont disponibles. pour que vous puissiez passer à la vitesse supérieure.

Alors regardez.

D'abord, vous voulez couper les dents. Celles-ci sont également utiles lorsque vous apprenez à cibler une nouvelle plate-forme ou lorsque vous vous remettez d'une amnésie. Celles-ci sont censées être rapides, pas géniales.

En ordre:

  1. Contrôle de l'écran. L'écran bleu est idéal pour cela, car vous avez alors des raisons convaincantes de croire que vous êtes sur le point de devenir Microsoft.
  2. Validation d'entrée. Fooscreen, où foo est bleu pour le haut, rouge pour le bas, etc. Vérifiez toutes vos clés; il y a plus qu'assez de couleurs, ou vous pouvez utiliser une carte à quatre couleurs si vous devez absolument enregistrer Crimson pour des tâches plus importantes.
  3. Rendu de texte et de sprite. Puisque vous avez également la validation des entrées, un jeu de mémoire tuile n’est pas une mauvaise idée.
  4. Minuteries. Temps pour un clone de Mario ou un Arkanoid.
  5. Son et musique. Améliorer le clone mario. Pas grand chose cependant.

Une fois que vous en avez connaissance, vous êtes prêt à cibler une plate-forme et l'apprentissage peut commencer.

Il n'y a pas d'ordre particulier. Vous pouvez les réorganiser comme bon vous semble. Je vais donner une poignée d'exemples avec chacun, mais ils ne sont pas normatifs; Si un jeu différent vous donne la même expérience et est suffisamment petit pour faire partie d'une série de leçons, n'hésitez pas à l'échanger. Pour des raisons pratiques, il est bon de maîtriser le rendu et la saisie de l'écran assez rapidement. vous allez les utiliser beaucoup. Attendez quelques jeux avant d’essayer d’écrire des classes d’abstraction; vous ne voulez pas être pris dans une abstraction naïve.

  • Animation. Presque tout ce que vous faites peut faire appel à des sprites animés. Obtenez un moteur d'animation indépendant à votre ceinture, même s'il s'agit d'un art de programmeur. Faire un simple jeu de puzzle dont les tuiles palpitent suffisent.
  • Scoring complexe. Obtenez tous les cinq ennemis dans une aile? Prime. Atterrir trois coups de poing d'affilée? Prime. Passer à travers tout le niveau sans manquer une balle? Énorme bonus.
  • Trouver son chemin. Beaucoup de jeux en ont besoin, mais un jeu de tower defense est le plus simple. Vous pouvez commencer avec largeur en premier et profondeur en premier si vous ne l’avez jamais fait auparavant, mais vous n’avez terminé que si vous avez implémenté A * à partir de rien (CODE NON COPIÉ) au moins une fois.
  • Comportement ennemi. Les comportements automatisés stupides seront couverts par votre Mario, mais les comportements réactifs sont également importants. C’est une bonne excuse pour créer un jeu de tactique ou un jeu de dupes. (Attention: vous travaillerez sur le roguelike pour le reste de votre vie.)
  • Éclairage 2D dynamique. C'est aussi une bonne raison d'écrire un roguelike. Le «shadowcasting» basé sur les arcs est un moyen important de regarder les bandes et la séparation, ce qui est également important pour de nombreuses infrastructures de données.
  • 2D Physique. Cela se retrouve dans beaucoup de jeux, à beaucoup de niveaux de détail. Essayez un jeu de plateforme (mario-ish) qui peut être super simplifié; un jeu de chars (terre brûlée) qui peut être également simplifié; et finalement, un jeu comme N the Ninja, qui vous oblige à courir sur des angles, une quantité de mouvement, etc. (vous pouvez le faire avec un système de collision de boîtes englobantes aligné sur l'axe). La physique et la collision sont intimement liées.
  • Détection de collision. Il existe des cas ridiculement simples, comme les Arkanoids et les clones de Mario grid, des cas moyennement complexes comme N the Ninja et des cas véritablement complexes comme des jeux de physique en bac à sable (la machine incroyable, les arkanoïdes modernes comme BreakQuest, etc.). Dans de nombreux cas, vous pouvez vous en tirer avec quelque chose comme AABB , mais si vous êtes enclin aux mathématiques, il pourrait être utile de mettre en œuvre quelque chose de complet. Au minimum, familiarisez-vous avec une bibliothèque complète, telle que APE ou Box2D.
  • Relations risque / récompense dans la satisfaction du jeu. Les jeux de dés simples (aller fouiller autour de quelque chose appelé "Skunk" datant des années 50) et les jeux de société à risque (vie, bonbon) sont d'excellents exemples de moyens simples et rapides pour apprendre cela par la pratique.
  • Variation expressive en mécanique. Clouez-vous à un petit nombre de règles, puis apprenez à en tirer beaucoup de variations. Les jeux de cartes personnalisés sont un excellent moyen de travailler avec cela. Jetez un coup d'œil aux decks Dvorak et aux jeux du monde réel tels que Mille Bornes, Rage et Uno, puis créez-en quelques-uns. Ils ne deviennent pas semblables.
  • Contenu généré. Les jeux de stratégie simples basés sur des cartes, les roguelikes et certains types de jeux de réflexion sont d'excellents moyens d'apprendre à le faire. Des points bonus s'il s'agit d'une sorte de jeu qui n'est généralement pas connu pour avoir généré du contenu.
  • Style. Ne vis pas: c'est un gros problème. Faire un jeu, puis peau pour qu'il soit quatre jeux complètement différents. Vraiment différent. Un jeu pour enfants, même. (Pensez-y: Mega Man a tout son sens pour une aventure sorcière en enfer, ou en tant que Voleur de X-Men, ou ...) Maintenant, demandez à quatre groupes de personnes de marquer un de vos jeux. Après cela, demandez-leur de marquer le prochain match, dans le sens anti-horaire, autour du ring, etc. Notez à quel point leur notation change radicalement en fonction du thème et des attentes préalables.
  • Faire que le joueur planifie des séquences. Les jeux de réflexion sont en quelque sorte les moyens les plus propres d’agir.
  • La gestion des ressources
  • Mises à niveau
  • Augmentation de la pression temporelle

... eh Je me ennuyais.

John Haugeland
la source
11
Excellente réponse. Vraiment décevant la fin là. Ce serait génial si vous pouviez revenir sur cette question et la lier d'une manière ou d'une autre pour lui donner une fin cohérente.
Ricket
1
Pour une finale, que diriez-vous des instructions de cuisson du foie ? giantitp.com/comics/oots0738.html
Cyclops
4
C’est une leçon de vie fantastiquement déguisée en article sur la programmation de jeux.
Sdasdadas
30

Tetris

Jeu très courant, beaucoup de clones open source à déchirer si vous êtes bloqué. Enseigne les bases des graphiques 2D, du traitement des entrées, de la notation, etc.

Ensuite, prenez cette idée originale et mettez-la en vrille. J'ai appris les bases du graphisme 3D / opengl en écrivant une version 3D de Tetris pour mon cours d'infographie au collège.

Bryan Denny
la source
2
Ou "Colonnes" si vous êtes un gars de Sega;)
Andrew Russell
Cue Tetris thème ...
Nick Bedford
3
qntm.org/hatetris (d'accord, il manque le thème de la musique, mais je voulais juste le lier ...)
user384918 le
1
wow, c'est mauvais
Bryan Denny le
Woot! voici mon site .
Steven Lu
25

GameDev.net a un bon article qui recommande une progression des jeux pour en apprendre davantage sur le développement de jeux. Mon conseil préféré de la liste est de réellement polir ces jeux. Complètement terminer, à un état libérable.

La liste est la suivante (certaines d’entre elles ont été données dans d’autres réponses):

  1. Tetris
  2. Éclater
  3. Scroller / Plateforme latéral
Colin Gislason
la source
Vous avez manqué Pac-Man, Galaga et Gauntlet de l'article que vous avez lié
Adam Harte
15

J'aime commencer tous mes gars avec Monopoly. J'utilise habituellement le code kata de Monopoly de Brett Schuchert comme base de l'exercice, mais j'y ajoute beaucoup. Il y a plusieurs raisons pour lesquelles j'aime vraiment faire cela.

  1. Je tiens beaucoup aux bonnes pratiques de codage (modèles de conception, TDD, SOLID, intégration continue, etc.) et impose beaucoup de contraintes à mes développeurs lorsqu'ils effectuent cet exercice.

  2. Presque tout le monde connaît les règles du Monopoly et le jeu entier peut être complété en une seule journée. Cela donne une victoire rapide aux nouveaux développeurs et leur permet de mieux s’engager.

  3. Les exigences initiales commencent avec les commandes du clavier, mais j'ajoute ensuite une exigence pour les commandes de la souris plus tard. Cela amène les développeurs à réfléchir à plusieurs choses, à la refactorisation du code existant, à la programmation de parties changeantes du système pour créer des interfaces au lieu de classes concrètes, à des abstractions meilleures / appropriées, aux tests unitaires, aux tests unitaires, aux raisons de testeurs unitaires et aux contenus. fait de bons tests unitaires.

Parfois, nous connectons une IA plus sophistiquée, parfois non. Parfois, nous travaillons avec d’autres jeux de société avec une logique un peu plus complexe, comme des chutes et des échelles. Parfois, nous rompons complètement avec les jeux de société et faisons un jeu de poker ou de black jack.

Ce qui est vraiment important pour moi, c’est que les gens gagnent rapidement, et ils voient à quel point vous pouvez faire des logiciels avec souplesse lorsque vous respectez de bonnes normes de programmation. Ces exercices développent la confiance très rapidement. Parfois, les développeurs les plus expérimentés aiment les faire eux-mêmes, simplement pour faire une pause dans des projets plus complexes ou pour mettre en pratique une nouvelle technique qu’ils viennent d’apprendre (loi de Demeter?).

hokiecsgrad
la source
6
Comment implémentez-vous Monopoly en une journée? Cela semble être un projet beaucoup plus vaste que cela.
Michael Kristofik
Si vous avez les ressources artistiques prêtes à être utilisées par les développeurs et que vous suivez le guide que j'ai lié à ci-dessus, c'est assez simple. Il n'inclut pas de multiples stratégies d'IA, ni certains des aspects les plus compliqués de l'animation et de la musique, mais c'est un jeu entièrement jouable qui se fait facilement en une journée. C'est vraiment faisable et c'est vraiment amusant.
hokiecsgrad
Le n ° 3 donnerait également l'expérience concrète de clients qui modifient leurs exigences une fois que vous avez déjà commencé.
Jarett Millard
Malheureusement, le lien Monopoly est mort :(
Casey
La machine à remonter le possède toujours. web.archive.org/web/20090919075257/http://…
hokiecsgrad
15

Choisissez votre aventure

Vous avez eu ce conseil d'un ami qui a commencé à programmer en créant un jeu ressemblant beaucoup à choisir votre livre d'aventures . Il s’agit d’un simple jeu d’aventure textuel avec une sortie comme celle-ci:

You are standing in a forest clearing in the middle of the night. You hear
some wolves howl in the distance. Should you:
a) make camp for the night
b) go further north
> _

Faire un tel jeu devrait vous apprendre à faire un gameloop, une entrée de base sur la console et un script de base. Il est assez simple à mettre en œuvre et facile à utiliser pour les débutants, car vous n'avez pas besoin d'un moteur graphique pour écrire le jeu. Les débutants expérimentés écriraient probablement un moteur de script.

Spoike
la source
7
+1 mais UNIQUEMENT si vous apprenez juste à programmer. Si vous connaissez déjà la programmation, je ne commencerais pas par ceci.
Jeff
1
@ Jeff: Oui, si vous êtes un débutant complet, alors c'est un bon projet pour commencer. Si vous avez programmé pendant un certain temps, optez pour les autres projets mentionnés afin de pouvoir vous amuser avec des graphiques et autres.
Spoike
8
En fait, c’est un très bon moyen d’en savoir plus sur les scripts et le développement piloté par les données. Créez le "moteur" pour cela et écrivez le reste dans des scripts.
Nick Bedford
1
@ Jeff nah, s'ils sont des programmeurs expérimentés, ils finiront en 2 heures. Demandez-leur d'ajouter quelques éléments, portes, combats de boss
bobobobo
13

D'après mon expérience avec les programmeurs débutants, la progression semble généralement aller comme ceci:

  1. Pong
  2. Tetris
  3. 50 super heures de gameplay RPG 3D incroyables (note: la plupart des gens abandonnent la programmation en cours de route)
davr
la source
4. MMORPG Fantastique: P
Nick Bedford
12

Breakout, Pong ou Astéroïdes.

Il y a une énorme différence entre un jeu et un prototype de jeu . Si vous êtes sérieux au sujet de finir votre jeu de rêve, alors vous devriez finir vos jeux de "niveau d'entrée" le long du chemin. Créer la partie gameplay du jeu n’est que la moitié de la bataille. Tous les éléments supplémentaires tels que les menus et les scores élevés sont souvent négligés ou ignorés, mais ils prennent beaucoup plus de temps que prévu.

Matt Rix
la source
4
+1 pour mentionner les détails prend beaucoup plus de temps que prévu.
mardi
11

Il y a de bonnes suggestions dans les autres réponses, mais je veux simplement lancer mon vote pour: Commencez par quelque chose qui semble trop chétif pour être traité.

Pong est un bon exemple.

L’objectif est de: rendre la conception du jeu et le jeu de règles suffisamment déconcertants pour que vous puissiez concentrer toute votre attention sur l’apprentissage de la nouvelle chose que vous apprenez (un langage, une plate-forme, une API) et ne pas avoir à en permanence faites des pauses pour comprendre le fonctionnement du jeu.

Une fois que vous y allez, vous constaterez que le pong est en réalité un peu plus compliqué qu'il n'y parait à première vue. (J'enseigne la programmation à un gars et il utilise pong comme projet d'apprentissage. Nous avons ajouté quelques fonctionnalités et maintenant, il est distrait d'apprendre à programmer en apprenant à faire toutes ces fonctionnalités intéressantes :)

Une fois que vous avez terminé avec l’application n ° 1 jusqu’à ce qu’elle soit prête à être donnée / vendue à d’autres, ALORS prenez quelque chose d’un peu plus compliqué (Tetris, aventure ou tout ce que vous voulez), mais pour commencer à apprendre une nouvelle technologie, la chose que vous programmez cerveau-mort simple.

Autres exemples:

  • Devinez le nombre (entre 1 et 1000)
  • Mastermind (avancé devinez le nombre.)
  • SimplePaint
  • Serpent / ver / peu importe comment vous l'appelez.

Mais, encore une fois, commencez avec quelque chose qui est trop facile, de sorte que vous puissiez réellement compléter quelque chose et regarder en arrière et voir ce qui est impliqué. La différence entre avoir écrit UNE application dans une langue / plate-forme / SDK / moteur et avoir écrit des applications ZERO est énorme . La différence entre 1 et 2, ou 2 et 5, beaucoup moins, afin que vous puissiez faire des pas plus grands, mais que le pas de 0 à 1 soit un tout petit; ce sera plus gros que vous ne le pensez!

Olie
la source
2
+1 pour "Commencez par quelque chose qui semble trop chétif à traiter" et pour "La différence entre avoir écrit UNE application ... et avoir écrit ZERO apps est énorme"
Luc125
1
Mise à jour de 2014: Une autre bonne application pour "apprendre le langage / la technologie" est Flappy Birdsimilaire. En tant que programmeur professionnel, c'est un travail d'après-midi (enfin, un week-end pour que ça soit "sympa"), mais, tout en enseignant à un autre programmateur, nous avons appris qu'il y avait beaucoup de petites complications. Encore une fois, on a beaucoup plus d'expérience que zéro et, une fois que vous en avez une, vous aurez une bien meilleure idée de la façon d'aller de l'avant.
Olie
9

Visitez ce site: 12 idées de projets de jeux informatiques

Certains de ces jeux incluent ce que d’autres ont dit:

  1. Pac-Man
  2. Tetris
  3. Pong

Mais il est également question de quelques autres jeux que vous pourriez essayer de réaliser, tels que:

  1. Tic-Tac-Toe
  2. Qui veut gagner des millions?
  3. Et un clone de Mario.

En outre, cela donne une idée de ce que vous devriez essayer de faire en premier car cela donne une impression de difficulté pour chaque jeu (et donc un plan de la façon dont vous devriez aborder les jeux):

  1. Débutant
  2. Intermédiaire
  3. Avancée
  4. Meilleur
Thyrgle
la source
2
+1, aimer ce lien. "RPG - si vous détestez votre vie (et certains apparemment), cette tentative de dernière année de gloire à la programmation de jeux vidéo risque fort de ne pas aboutir. Le moteur de jeu lui-même est souvent assez étendu (voyages dans le monde, voyages en ville, boutiques, combats) , etc.) et nécessite une somme impie d'effort "
Cyclops
5

Beaucoup de gens commencent par Breakout car il comporte:

  • Entrée: déplacer une raquette d'avant en arrière
  • Collision simple: la balle rebondit sur la pagaie, les briques et le mur
  • Modification de "l'état du jeu:" Mise à jour du score lorsque la balle frappe des briques et suppression des briques, décrémentation du nombre de balles lorsque la balle frappe le bas de l'écran, perte du jeu lorsque le nombre de balles == 0, etc.
  • Il s’agit également d’une introduction assez douce au graphisme, car il s’agit d’un rectangle et d’un cercle.
Sean James
la source
5

La partie la plus difficile de l’écriture d’un jeu - ou de tout logiciel - consiste à déterminer quoi faire. Vous avez absolument besoin d'une spécification! C'est la partie amusante de faire un clone d'un jeu existant: la spécification existe déjà. Votre spécification est "Le produit doit faire tout ce que l'autre produit fait", et si vous avez une copie de l'autre jeu sous la main, il est assez facile de vérifier cela.

Une fois que vous avez déterminé ce que vous devez faire, il n’est vraiment pas si difficile de savoir comment le faire si vous êtes un programmeur compétent. Je ne parle pas d'un programmeur qualifié ou expérimenté; cela impliquerait que vous savez déjà comment faire la plupart de ce que vous essayez de faire. Mais vous devez comprendre comment penser dans les abstractions et avoir les compétences de résolution de problèmes et de pensée logique qui sont fondamentales pour la programmation. Si vous pouvez le faire, vous pouvez faire n'importe quoi.

Cela dit, je suis en désaccord avec ce que la plupart des gens disent à propos d’essayer d’apprendre à écrire des jeux en écrivant quelque chose de très simple. La récompense est directement proportionnelle à l'effort que vous y avez mis. Si vous apprenez à écrire des jeux en écrivant un jeu vraiment simple, tout ce que vous saurez à la fin, c'est comment écrire des jeux très simples, et cela ne vous fera pas beaucoup de bien.

D'un autre côté, si vous commencez par quelque chose d'énorme, vous ne le finirez jamais. Commencez donc avec quelque chose de modérément difficile qui vous fera traiter de problèmes graves. Construire un RPG de style console 2D ou un jeu de plateforme à défilement horizontal est un très bon moyen d’apprendre des concepts de programmation de jeux réels.

Maçon Wheeler
la source
5

Cela dépend vraiment de vos compétences actuelles. Si vous êtes relativement nouveau en programmation, optez pour l'un des jeux spécifiques suggérés par les gens. Sinon, vous devriez réfléchir au type de jeu (x) qui vous permettrait de tirer le meilleur parti de votre expérience.

Lorsque j'ai commencé mon premier jeu, je n'avais aucune expérience en développement de jeu, mais je développais des applications pour entreprises / secteurs d'activité depuis quelques années. Mon premier projet de jeu était un jeu de stratégie au tour par tour et, d’un point de vue architectural, il n’était pas si différent d’une application d’entreprise. Il utilisait un système client / serveur et la communication était établie via un canal de service WCF en duplex. La plupart des opérations des joueurs ont été mises en file d'attente en tant qu '"ordres" et envoyées au serveur à la fin du tour. Tous les tours de jeu ont eu lieu sur le serveur, après quoi les mises à jour de l'univers du jeu ont été envoyées à chaque client.

Ce premier projet m'a permis de me familiariser avec le développement de jeux tout en me faisant connaître un territoire familier. Au fur et à mesure de l'évolution du projet, j'ai appris à penser davantage comme un développeur de jeux et moins comme un développeur d'applications d'entreprise. Le résultat final a plutôt bien fonctionné et était un peu plus impressionnant que Battleship ou Tic-Tac-Toe :).

Mike Strobel
la source
4

Grignotines et Space Invaders

Une AI relativement simple, des graphismes, un gameplay, des contrôles, et ils ne doivent pas avoir d’effets sonores ni de musique à moins que vous ne vouliez les ajouter. sont d'excellents premiers jeux. Pac-Man serait mon autre choix.

Steve Tranby
la source
Je n'avais jamais entendu parler de Nibbles auparavant, mais j'ai voté positivement contre Space Invaders.
route le
3

Les jeux de style Moonlander sont excellents (lorsque vous avez un vaisseau spatial affecté par la gravité, la direction et la poussée des joueurs, le carburant limité lors de l'utilisation de la poussée). Acquérir de l'expérience en implémentant une physique très simple et le système de collision peut être assez primitif. Pas d'IA à craindre et surtout son amusement et addictif :)

Allan
la source
2
Convenu, les jeux de style Thrust / Lunar Lander sont d'excellents projets initiaux. Le traitement de la rotation et de la vélocité / accélération révélera les mystères du sinus / cosinus (pour quiconque ne s’y occupant pas pendant un moment). Vous pouvez utiliser une mappe de mosaïque statique ou défilante et utiliser la détection de collision sans avoir à recourir à une réponse de collision complexe (touchez quelque chose -> exploser). C'est aussi un bon moyen de réfléchir au réglage des systèmes de commande - d'obtenir un bon équilibre entre poussée, gravité et vitesse de rotation pour que tout se passe bien
bluescrn
@bluscrn en fait c'est un bon commentaire. Après avoir fait tester ma version flash aux gens, j'ai remarqué que les gens avaient des opinions différentes sur ce que cela devrait être. Une partie de ceci a été attribué aux jeux précédents expérimentés par l'utilisateur. Ce n’était pas une chose à laquelle j’avais particulièrement pensé avant de la développer.
Allan
2

Un jeu de tir spatial de haut en bas comme Galaga est assez facile et enseigne assez bien la détection de collision! Il peut également varier en difficulté, d'un niveau avec des ennemis stationnaires à de multiples niveaux, en fonction des améliorations d'armes et des ennemis se déplaçant selon des schémas particuliers.

Rachitisme
la source
1

Quelque chose comme Gauntlet, parce qu'il vous faut un système d'entités, une intelligence artificielle ennemie, des pickups, des cartes de tuiles, une détection de collision, des scores, etc. Tout y est, mais pas d'une manière qui écrase.

Iain
la source
Je dirais que l'IA ennemie et la détection de collision avec une disposition arbitraire de tuiles EST écrasante si vous avez peu ou pas d'expérience, surtout compte tenu de la physique que vous devez également faire - frottement entre le joueur et le sol, etc. Cela peut être un bon défi après quelques parties cependant
Sean James
D'accord, un peu écrasant pour les débutants. Trop de concepts en même temps. Commencez avec quelque chose qui ne fait que marquer et entrer. Créez ensuite une ou deux nouvelles choses, comme la détection de collision et les ennemis. Choisissez des jeux qui s'appuient sur des concepts que vous connaissez mais introduisez quelque chose que vous ne connaissez pas; si vous n'en connaissez pas, vous ne devriez pas l'essayer. Rester simple.
user384918
Honnêtement, je pense qu'il y a trop de choses dans un clone de Gauntlet pour pouvoir être considéré comme un jeu "d'entrée de gamme".
PhillC
Honnêtement, je pense qu'il est plus facile de coder Gauntlet que Tetris, car il est très difficile de comprendre comment les blocs s'empilent, si une ligne est complète et comment supprimer des lignes. Gauntlet peut être codé en moins de 1 000 lignes sur n’importe quelle plate-forme 2D moderne, et s’il ne le peut pas, vous pouvez en trouver une autre. Quoi qu’il en soit, je l’ai suggéré précisément parce que cela demande l’apprentissage de tous les éléments d’un jeu moderne.
Iain
Vous obtenez des points supplémentaires si vous faites la voix correctement: "Elf a tiré la nourriture!" "Le magicien est sur le point de mourir!" ou mon préféré: "Vous avez trouvé mon espace de rangement!"
Rtperson
1

Un mini clone de Zelda est bon et exerce des compétences qui n'ont pas été beaucoup mentionnées ici. Il est bon de savoir faire défiler une grande carte de tuiles et de simples commandes de déplacement à 8 directions. Points bonus si vous pouvez faire des ennemis, mais je ne m'inquiéterais pas trop à ce sujet.

coderanger
la source
1

J'ai fait plus que quelques clones de Tetris. Chaque fois que je l'ai fait, je l'ai fait légèrement différent cependant. De nos jours, je fabrique généralement un type de clone d'astéroïdes. J'ai également fait plus que quelques retombées du Missile Command.

J'ai commencé avec le jeu de base et ensuite ajouté d'autres éléments, power-ups, etc.

Casey
la source
1

J'ai toujours commencé avec un jeu Tanks / Gorillas / Worms. Il vous permet de faire de l’exercice sous forme d’affichage graphique simple, de lecture des entrées de l’utilisateur, plus une boucle de jeu appliquant la gravité au projectile et testant la détection de collision.

Après cela, viendrait un jeu comme un jeu de plateforme très simple ou un shoot-em-up où vous devez lire les entrées de l'utilisateur en temps réel, plutôt que les déclarations INPUT qui fonctionnent pour Gorillas :)

AlexC
la source
1

Solitaire (ou vraiment n'importe quel jeu de cartes) est un bon jeu pour vous salir les mains avec un nouveau système d'interface utilisateur, car il exerce un grand nombre de mécanismes de rétroaction d'interactions de contrôleurs et de widgets que vous devez utiliser. De plus, la logique est simple et sans ambiguïté, vous pouvez donc vous concentrer sur l’apprentissage plutôt que sur la conception du jeu.

Pour les jeux de simulation en temps réel, je recommanderais toujours Pong comme un bon point de départ, encore une fois, car la conception est simple, de même que l'interface du contrôleur, de sorte que vous puissiez accéder à l'essentiel du système: la simulation physique.

MrCranky
la source
1

J'ai toujours affirmé que si vous êtes un programmeur de jeu, vous devriez être capable de créer une sorte d' envahisseur spatial . Heck, le jeu est assez simple pour que vous puissiez également faire les graphiques vous-même.

Avoir une sélection de petits jeux de votre portefeuille comme avantage supplémentaire, par exemple, si j'apprends un nouveau langage de programmation ou un nouveau cadre de programmation, je porterai souvent l'un de mes jeux simples pour voir comment la nouvelle façon de faire les choses correspond à la façon dont ils ont été écrits.

JSmyth
la source
1

Cela dépend vraiment de vos compétences en tant que programmeur habituel. Vos calculs ont-ils besoin de travail? Vos connaissances graphiques? Avez-vous les deux sous le voile?

Bien qu'en général, je pense que Tetris et Breakout seraient aussi mes deux partants. Rien de plus facile que cela n'offre pas assez de stimulation. Tetris est un bon test pour la mise en page de vos données, mais l’évasion en est un exemple mathématique simple. Je dis toujours aux gens de viser haut, le but est de rester bloqué et de trouver une solution.

Après cela, le ciel est la limite. Encore une fois, visez haut. Essayez un jeu de plateforme avec un terrain en pente, parralax et vous avez un bon sac de technologie 2D à portée de main. Ajoutez un flipper (préparez-vous à être frustré) et votre calcul s'améliorera.

À partir de là, passez à la troisième dimension, acquérez des compétences de base (animation, rendu) et vous devriez être relativement bien équipé pour faire face à une bonne variété de jeux.

Kaj
la source
0

Je dirais qu'un type de jeu Tower Defense est le meilleur endroit pour commencer. Vous pouvez également commencer par modifier les jeux / moteurs existants (WarCraft III / HalfLife2 SDK / etc.) afin de comprendre la logique globale nécessaire, puis passer à l’utilisation de votre propre base de code.

Gootik
la source
0

Mon premier match ressemblait à Super Mario.

Se déplacer, éviter les obstacles, sauter. Et toutes ces tâches peuvent facilement être accomplies sans aucun calcul physique.

Son idéal pour prendre une simple chose en 2D, car vous ne comptez pas beaucoup sur une implémentation / framework / moteur spécifique.

SwissCoder
la source