Quel est un bon jeu Open Source à apprendre? [fermé]


15

Je souhaite télécharger le code source d'un jeu Open Source, afin de me familiariser avec l'architecture du jeu. Est-ce que quelqu'un connaît un jeu avec un code source qui est lisible et facilement compréhensible?

Edit: Après réflexion, je voudrais faire un jeu qui peut être joué sur le bureau ou un téléphone Andriod avec des graphismes 2D.


7
La plupart des jeux open source sont de grands projets anciens qui ne sont pas toujours facilement compréhensibles, des projets commerciaux qui ont été open source pour diverses raisons, ou des jeux inachevés qui ne sont pas vraiment dans un état jouable. De plus, l'architecture un peu sur le type de jeu et la langue utilisée. De quel type de jeu voulez-vous apprendre et quelles langues connaissez-vous? (les tutoriels pourraient être une meilleure option ici)
thedaian

@thedaian Je connais java, C ++, C, javascript et python
jumpnett


Je suis d'accord avec le thédaïen, au moins cela a mieux fonctionné pour moi. Il existe de très bons articles, livres et tutoriels. Vous devrez prendre le temps de choisir les bons, mais cela vous fait gagner du temps plus tard car vous saurez déjà pourquoi ils codent comme ils le font et serez en mesure de reconnaître la qualité des sources (qui sent souvent). Si vous voulez la portabilité, j'opterais pour C / C ++, mais pour ces plates-formes, vous pouvez très bien faire avec Java.
Pablo Ariel du

1
Wiki communautaire?
Jari Komppa

Réponses:


2

Je ne sais pas quel type de jeu vous demandez mais il y a un jeu open source nommé OpenTTD écrit en c ++. Je pense que vous pourriez l'utiliser comme un bon échantillon.

quelques fonctionnalités qui rendent ce jeu unique:

  • C'est un jeu de stratégie.
  • Il a un support multijoueur sur Internet et le réseau local.
  • Il prend en charge la traduction dans d'autres langues via le fichier de configuration (qui est généré à partir de fichiers texte bruts)
  • Il est compilé sur presque toutes les plateformes que je connais.
  • Son projet est toujours vivant!
  • Il a un support AI intégré.
  • Les données graphiques et musicales sont entièrement personnalisables via des correctifs.
  • Il prend en charge les langages de script pour développer une IA personnalisée. afin que vous puissiez également lire d'autres IA écrites pour ce jeu.
  • C'est un projet relativement volumineux alors qu'il est facile de lire et de comprendre son code.
  • Il est basé sur SDL, et à partir de là, ils ont tout développé à partir de zéro.

--Éditer--

Aujourd'hui même, j'ai commencé à lire leur code depuis le début. Pour comprendre ce qu'ils ont écrit, vous devez être un bon programmeur C et C ++ (bien que leur code soit bien commenté)! Je veux dire que vous devez maîtriser les deux langues car elles utilisent des structures des deux! donc si vous n'avez pas assez confiance en vos compétences en programmation, ne vous approchez même pas de ce code! c'est le code le plus sale que j'aie jamais vu! (et je suis moi-même un sale codeur mais ils sont autre chose!)

Je pense que maintenant je peux vous suggérer de vérifier le code supertux . c'est un jeu de plateforme (tout comme super mario) et jusqu'à présent, leur code semble vraiment propre (j'ai vérifié le jalon 1.3). ils ont des commentaires dans ce code, mais uniquement pour les endroits où vous pourriez être confus.


Bien qu'OpenTTD soit un jeu génial, je ne pense pas que ce soit un bon projet d'apprentissage. La majeure partie a été rétroconçue à partir de l'assemblage, et il y a encore des sections de code qui reflètent cela. De plus, c'est simplement un énorme projet, et c'est probablement trop pour un projet "d'apprentissage de l'architecture de jeu".
thedaian

@thedaian vous pouvez le dire mais de temps en temps que je dois faire quelque chose de nouveau, je viens de lire ce qui est écrit dans leur code. Jusqu'à présent, je pense que c'est le jeu open source le plus lisible qui vaut la peine d'être lu!
Ali1S232

De plus, je ne sais pas à quand
remonte

2

Je pense que peut-être une bonne approche est de choisir un jeu que vous aimez et de vérifier tous les jeux open source comme ça. La liste des clones de jeux open source pourrait peut-être beaucoup aider à la dernière étape.


1

Il y a des piliers comme Quake 3 ou si vous voulez quelque chose d'un peu plus simple (et en 2D), regardez le jeu indépendant Gish . Ils utilisent tous deux OpenGL et sont également multiplateformes.

Gish est un peu désordonné, cependant.


1

Je vous recommande d'abord de vous concentrer sur le type d'architecture de jeu que vous souhaitez apprendre: pipeline 3D, physique, IA, etc.

Avec une demande générique d'un bon exemple de programmation de jeu, je pense que les envahisseurs spatiaux gl sont difficiles à battre car ils ont un code propre et un jeu et une interface open gl tout en gardant les choses assez simples.

à votre santé


Les envahisseurs spatiaux sont-ils uniquement des fenêtres GL? Je n'ai actuellement pas de fenêtres installées sur mon PC. Non pas que je n'y ai pas accès, mais juste que ce n'est pas aussi pratique.
jumpnett

1

Même si la lecture de code peut être utile, si vous êtes un débutant dans le domaine, vous n'apprendrez rien. Surtout si vous regardez le code de grands projets comme Q3A ou OpenTTD. Celles-ci ont été faites par toute une équipe, chaque personne ayant différentes pratiques de codage, différentes idées sur la façon de faire les choses. Vous aurez seulement une vue d'ensemble, pas les petits détails qui font que tout reste collé.

Développez, échouez, essayez à nouveau jusqu'à ce que vous trouviez quelque chose qui semble être bon, échouez à nouveau, rincez et répétez jusqu'à ce que vous ayez quelque chose de bon. Différents développeurs signifient différentes idées sur la façon de mettre en œuvre des choses. Ce n'est pas parce qu'il a été codé par Carmack / Tout développeur célèbre qui a fait un bon jeu que c'est la meilleure chose depuis le pain en tranches, et une implémentation différente pourrait être plus claire et plus rapide.


1

Je pense que l'une des choses les plus importantes que vous puissiez faire est de choisir un jeu auquel vous aimez jouer. Cela vous aidera à vous y intéresser et vous familiarisera avec la façon dont le code lui-même se traduit dans la perspective des joueurs.

Une fois que vous avez choisi ce jeu, quelle que soit sa taille, vous n'avez pas à essayer de comprendre comment fonctionne chaque ligne de code. Choisissez-en un morceau et regardez-le. Par exemple, essayez de comprendre comment les données des joueurs sont stockées ou comment un élément de menu est dessiné, etc.

La prochaine chose que vous pouvez faire, qui va de pair avec mon passage précédent, est d'essayer de changer quelque chose. Pas quelque chose d'énorme (au début), juste quelque chose de simple et visible dans le jeu. Même quelque chose d'aussi simple que le texte d'un bouton d'un menu ou l'ajout d'un élément de menu ou la modification des calculs de dégâts. Vous pensez peut-être qu'ils auraient dû faire quelque chose de différent, essayez de le changer vous-même.

Quand j'ai commencé à développer des jeux, j'étais vraiment dans les RPG 2D en ligne. J'ai donc trouvé la source pour un en ligne et j'ai commencé à en tirer parti. Ajout de mes propres fonctionnalités et ajustements, correction de bugs, etc. C'était dans VB6 il y a quelques années et maintenant j'utilise C # et XNA et j'écris mon propre jeu à partir de zéro. Parce que j'aimais les jeux, cela m'a motivé à vouloir y travailler, à l'améliorer. Par coïncidence, c'est aussi ainsi que j'ai appris beaucoup de techniques de programmation, de débogage et de résolution de problèmes que j'utilise aujourd'hui dans mon travail de jour non lié à gamedev.

Il est également très utile que le jeu dispose d'une communauté de moddeurs sur lesquels vous pouvez poser des questions et obtenir de l'aide et des exemples. Mais là encore, même si cela n'existe pas, vous êtes déjà là et nous sommes prêts à vous aider.




0

Le Scrolling Game Development Kit 2 vous permet de créer des jeux 2D et de les jouer à l'aide d'une interface graphique sans écrire de code. Mais cela vous permet également de voir et de modifier le code intégré au projet qui représente le framework / moteur derrière le jeu. La majeure partie du code est exposée via l'interface graphique, bien qu'une petite partie de celui-ci soit du code généré en fonction de l'endroit où vous placez les sprites et des cartes que vous créez. Cependant, même ce code est visible si vous générez le projet, puis ouvrez les fichiers résultants dans Visual C # Express. L'ensemble du programme (IDE) lui-même est également open source. Il s'appuie sur la bibliothèque OpenTK (qu'il utilise pour s'interfacer avec OpenGL à partir de C #), qui est également open source.


Je vais y jeter un œil, mais je suis un programmeur, donc écrire du code n'est pas un gros problème.
jumpnett
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.