Par où commencer avec le développement de jeux? [fermé]

65

Je l'ai demandé plus tôt dans ce fil à stackoverflow.com. L'un des premiers commentaires m'a redirigé ici vers gamedev.stackexchange.com, donc je republie ici.

En cherchant des questions connexes, j'ai trouvé un certain nombre de questions très spécifiques, mais je crains que les détails ne se soient révélés vains pour moi. Après 4 heures sur Google, je ne suis pas plus près que je l'avais commencé. en ordre.

Premièrement, mon objectif: je n’avais jamais fait de partie auparavant, même si je me suis trompé à plusieurs reprises. J'ai finalement décidé de m'asseoir et de commencer à apprendre à coder des jeux, à utiliser des moteurs de jeu, etc. Tout cela pour qu'un jour (j'espère bientôt) je sois capable de créer des jeux fonctionnels (bien que simples). Je peux commencer à ajouter de la complexité plus tard. Pour le moment, je serais heureux de disposer d’une caméra contrôlée par le clavier évoluant dans un monde en 3D sans interaction au-delà.

Mon parcours: J'ai travaillé dans PLUSIEURS langages de programmation allant de PHP au C ++ en passant par Java et ASM. Je ne crains aucun des défis liés à l'apprentissage de la nouvelle syntaxe ou des limitations inhérentes à une nouvelle langue. Cependant, toutes mes expériences de programmation antérieures étaient strictement non graphiques et ne comportaient généralement que peu ou pas d'interaction simple lors de l'exécution. J'ai créé des algorithmes complets et brillants pour résoudre des problèmes logiques et mathématiques, ainsi que des problèmes graphiques. Cependant, dans tous les cas, l'entrée a été définie dans un fichier, passée sous une forme HTML ou entrée dans la console. L'interaction en temps réel avec l'utilisateur est quelque chose avec lequel je n'ai aucune expérience.

Ma question: Où devrais-je commencer à essayer de faire des jeux? Mieux encore, par où dois-je commencer pour essayer de créer un environnement 3D navigable au clavier? En cherchant en ligne, j'ai trouvé plusieurs ressources liées aux moteurs de jeu, aux moteurs graphiques et aux moteurs physiques. Voici un bref résumé de mes expériences avec quelques moteurs que j'ai essayés:

Unreal SDK: les vidéos de didacticiels supposent que vous possédez déjà une connaissance approfondie de la modélisation 3D, des moteurs graphiques, des animations, etc. êtes déjà familier avec. Après avoir téléchargé et lancé le SDK pour voir si les outils étaient aussi intuitifs qu'ils le prétendaient, j'ai été accueilli avec environ 60 boutons et un vide vide pour ma modélisation 3D. En cliquant sur "ajouter un volume" (pour tenter d'ajouter un cube de base), un menu de 30 options m'a été présenté. Pris de panique, j'ai fermé l'éditeur.

Crystal Space: le site Web semblait plutôt informatif, expliquant que Crystal Space était réservé aux graphiques et que le logiciel associé, CEL, fournissait une logique d’entité pour la création de jeux. Un jeu de démonstration a été créé à l’aide de "CELStart", leur outil simple destiné aux personnes non familiarisées avec la programmation de jeux. J'ai lancé le jeu pour voir ce que je pourrais espérer créer. Il a gelé plusieurs fois, les menus étaient bogués, il y avait des milliers de problèmes graphiques, les ennemis ne réagissaient pas aux dégâts, et quand j'ai fermé le jeu, tout a été verrouillé. Abandonné sur ce moteur.

IrrLicht: le tutoriel suppose que j'ai Visual Studio 6.0 (j'ai Visual Studio 2010). À la suite de leurs instructions, je ne pouvais pas importer correctement la bibliothèque dans Visual Studio et je ne pouvais appeler aucune des fonctions qu’ils utilisaient. Copier manuellement les fichiers d'en-tête, les fichiers de classe et les DLL dans le dossier de mon projet - la compilation du projet a échoué.

Clairement, je ne suis pas un bon début et je tourne en rond. Quelqu'un peut me diriger dans la bonne direction? Devrais-je commencer par télécharger un programme tel que Blender et apprendre la modélisation 3D, ou devrais-je apprendre à utiliser un moteur graphique? Devrais-je chercher un moteur de jeu tout compris, ou est-il préférable d'essayer de coder ma propre logique de jeu? Si quelqu'un a réellement créé ses propres jeux, je préférerais savoir comment ils ont commencé.

Suivre des cours à mon école n'est pas une option. Rien n'est offert.

stevendesu
la source
3
+1 Bon fond de programmation à la recherche de besoins spécifiques.
Will Marcouiller
6
+1, c’est une question bien pensée et bien documentée sur la façon de commencer le développement de jeux. De plus, je ressens votre douleur concernant le SDK Unreal.
James
Je recommande de consulter les tutoriels de Raven67854 pour l'UDK. Ils sont répertoriés sous vidéos, les gens semblent les aimer.
Jesse Dorsey
Mon conseil est de commencer à faire quelque chose. Habituellement, les personnes qui ont posé ce genre de questions veulent se frayer un chemin de manière linéaire (parce que j’ai une fois posé la même question). Cependant, d'après mon expérience passée, la courbe d'apprentissage du développement de jeux est une courbe non linéaire. Je passe généralement de problème en problème - si je suis bloqué, je demande / cherche une réponse. Par conséquent, essayez juste des trucs, apprenez des essais et des erreurs. D'habitude, je commence par les tutoriels. Cependant, ces tutoriels n’ayant jamais donné assez de détails, je dois donc demander / chercher / expérimenter des réponses.
user1542

Réponses:

38

J'ai posé une telle question lorsque j'ai rejoint GD. Voici quelques liens qui pourraient vous intéresser et qui, je l’espère, vous guideront vers votre objectif.

En bref, je préférerais XNA Game Studiomaîtriser le développement de jeux. Ensuite, passez à ce que vous souhaitez atteindre en tant que connaissance / technologie. XNAm'a appris à travailler avec des sprites et m'a permis d'appliquer certaines de mes connaissances dès le début de ma courbe d'apprentissage, de sorte que j'ai été en mesure de saisir assez rapidement pour comprendre comment je dois concevoir mon jeu pour utiliser des cours tout en travaillant avec injection de dépendance et ainsi de suite. Alors, je ne vous fais plus attendre.

  1. Où commencer à écrire des jeux, des tutoriels ou autres?
  2. Quels sont les principes fondamentaux du développement de jeux? (Question intéressante, IMHO)
  3. Séparer la physique et la logique de jeu du code d'interface utilisateur
  4. Déplacement de mon sprite dans XNA à l'aide de classes

Pourquoi XNA allez-vous demander? Tout simplement à cause de votre arrière-plan Java. XNA utilise C #, qui est similaire à Java de multiples façons, et constitue également un cadre simple à utiliser qui résume la boucle de jeu et d'autres éléments afin que vous puissiez vous concentrer sur ce qui est important.

J'espère vraiment que cela vous aidera à commencer. =)

Will Marcouiller
la source
1
Désolé pour la réponse différée =) Je lisais chacun des articles que vous m'aviez redirigés (un des articles liés à une page MSDN sur la création de jeux 3D avec XNA, qui m'intéressait depuis la page du moteur de jeu XNA qui lui ressemblait à l'origine était strictement réservé aux jeux 2D). Je pense vraiment que c'est un bon point de départ. Je vous remercie. Je vais télécharger XNA ce soir et me coucher, puis j'espère que demain je pourrai essayer de faire Pong ou quelque chose du genre.
Stévendesu
@ Steven: Pas de problème! J'ai posté cette réponse dans le but d'aider un développeur enthousiaste, comme moi, qui a demandé conseil! J'espère vraiment que vous apprécierez le faire! Mon premier et toujours défi est de développer un simple jeu d’Arkanoid dans lequel je dois travailler à la détection des collisions tout en écrivant mes cours une pour chacun des vaisseaux spatiaux, de la boule d’énergie et de la brique. Ensuite, ma Game1classe est utilisée en tant que contrôleur de jeu, qui est à mon avis la classe qui doit contrôler et dire aux autres classes quoi faire, etc. J'explique un peu cet aspect le lien # 4 et # 5.
Will Marcouiller
Je poserai peut-être une autre question très bientôt (demain). Xx Téléchargé XNA Game Studio 4.0, il est installé .... et il n’y avait pas d’instruction évidente sur ce qu’il fallait faire par la suite. Tout le site Web officiel de XNA indique simplement "créer des jeux pour Windows Phone 7" - rien sur la création de jeux pour Windows. Je vais le résoudre le matin ou demander ici si je ne peux pas. Heure du
coucher
1
Créez un nouveau projet à l'aide de Visual Studio, puis choisissez XNA à un endroit où vous pouvez choisir le type de projet. Ensuite, commencez à créer des jeux pour Windows! Votre modèle de projet de jeu XNA (nouveau projet) sera compilé et exécuté sous Windows de manière native. XNA est la bibliothèque Microsoft pour le développement de jeux. Vous pouvez donc développer des jeux pour Windows et XBox.
Will Marcouiller
1
Pour des raisons d’avenir, il convient de souligner que XNA est essentiellement obsolète, mais Monogame perdure. Pour la plupart, le même code fonctionnera.
Magus
8

Vous pouvez essayer Unity 3D , car

  • il peut être programmé en JavaScript, C # ou Boo
  • il y a un bon tutoriel ici
  • sa courbe d'apprentissage n'est pas aussi raide
  • il y a Unity Answers , où vous trouvez encore plus de ressources.

(Avertissement: je n'ai aucun lien avec les créateurs d'Unity, je l'ai simplement utilisé moi-même et l'ai trouvé un excellent outil pour apprendre les bases.)

Mais oui, vous vous êtes donné beaucoup de travail. Je suis maintenant dans mon 6ème semestre à étudier le design de jeu et je n'ai toujours pas l'impression de gratter plus que la surface. Il n’ya donc rien d’étonnant à ce que l’industrie emploie des spécialistes pour pratiquement tous les aspects du processus de création d’un jeu.

Edit: Il y a eu un commentaire sur le fait qu'Unity n'est pas considéré comme un "moteur" de jeu approprié, ce qui pourrait être mal interprété si je le disais - ce qui engendre les commentaires ci-dessous. Je n’avais pas l’intention de suggérer que Unity ne pourrait pas être utilisé pour concevoir correctement le jeu, au contraire. Je l'utilise moi-même et je l'aime bien. ;)

xéophine
la source
3
Quoi de mal à ce sujet?
Lathomas64
Je suis curieux aussi.
Jesse Dorsey
Peut-être le fait que (comme Flash ou Java) nécessite un programme conteneur pour s'exécuter, il le considère donc "impropre" en ce sens qu'il ne peut pas simplement être compilé et distribué à un public énorme sans tracas? De toute façon, je suis en train de regarder XNA en ce moment. Je pourrai consulter Unity3D si XNA s'avère trop difficile.
Stévendesu
Eh bien, j'ai entendu des gens dire que pour une conception de jeu "correcte", Unity ne doit pas être pris au sérieux. Comme je l'ai déjà dit, je l'utilise moi-même et j'en suis plutôt content. Dans certains cas, Unity rend les choses incroyablement faciles, je suppose…;) Je ne faisais que me couvrir, car je ne savais pas comment les gens réagiraient ici en mentionnant Unity. Peut-être que cela a provoqué le vote négatif?
xeophin
@steven_desu: En fait, vous n'avez besoin que d'un programme conteneur pour le joueur Web. Les jeux compilés pour fonctionner sous Windows ou Mac sont entièrement autonomes.
xeophin
2

Eh bien, si vous avez des problèmes avec irrlicht, vous devriez également essayer Ogre3D; ce n'est pas plus facile, mais cela fonctionnera peut-être mieux si vous y consacrez un peu de temps. La chose importante que vous devez comprendre est ce qu’est un anticalcaire, comment obtenir le temps écoulé depuis la dernière image affichée, et c’est à peu près la seule chose que vous devez comprendre si vous voulez créer cette application dont vous parlez.

J'ai également eu quelques difficultés avec irrlicht, les tutoriels ne sont pas très à jour, mais vous devriez avoir essayé les échantillons!

J'ai aussi beaucoup tourné en rond au début, jouant avec panda3d et d'autres choses comme pygame, etc. Essayez de vous concentrer sur une idée de jeu et de mettre en œuvre une chose à la fois.

Et essayez de vous rappeler certaines mathématiques matricielles, cela aura une certaine utilité en 3D!

jokoon
la source
2

J'ai récemment commencé la même poursuite que toi. Je suis tombé sur un moteur java pur appelé jMonkeyEngine qui m'a conduit à travers un ensemble fantastique de tutoriels. Je ne sais pas si cela explique vraiment énormément la conception du jeu, mais cela vous permet de vous lancer sur le plan graphique.

Il suggère / des liens vers des outils que vous pouvez utiliser pour la modélisation et propose des exemples bien décrits copiables et collables pour vous guider dans la création d'un cadre à l'écran afin de configurer le moteur physique.

Vaut vraiment la peine d'être lu. J'avais une bonne idée de ce que je faisais après seulement quelques heures.

Brian
la source
Les tutoriels valent la peine d'être lus même si vous n'utilisez pas le moteur. Il existe également de bons tutoriels sur certaines mathématiques en 3D.
DMan
2

Vous devriez vraiment essayer Flixel http://flixel.org/ J'ai fait mon premier jeu "démo" en utilisant flixel. Belle communauté, bons tutoriels.

Ce n'est pas de la 3D, mais il possède de nombreuses fonctionnalités qui facilitent vos premiers pas dans l'environnement de programmation de jeux.

Tel que: Affiche des milliers d'objets en mouvement les
collisions entre les objets de base des
objets Regrouper pour la simplicité
générer facilement et émettent des particules
Créer des niveaux de jeu à l' aide tilemaps
affichage de texte, enregistrez les jeux, le défilement de la
souris et entrée clavier
Math & utilitaires couleur

Et c'est gratuit pour un usage commercial, ce qui est génial.

utilisateur9471
la source
1

Si vous n’avez pas travaillé avec des graphiques du tout avant d’apprendre tout simplement open gl ou x direct, c’est un début. J'ai programmé mon premier jeu de cette façon. Les moteurs de notre société sont internes et la plupart des systèmes prennent en charge l’ouverture sous une forme ou une autre. J'ai appris pendant mon travail en parcourant le code écrit avant de commencer à travailler. Vous voudrez peut-être jeter un coup d'œil à certains projets open source pour voir comment une structure de jeu est configurée et commencer à les modifier jusqu'à ce que vous soyez à l'aise avec le démarrage de votre propre projet. Je suggère également "Codage du jeu complet" comme une excellente référence à toutes les petites choses de programmation que vous ne réalisez pas, comme la structure de fichier et la gestion des ressources appropriées.

utilisateur5877
la source
1

Essayez le moteur source . Il est facile de développer des jeux sur ce dernier. Vous pouvez obtenir une plate-forme de distribution (Steam) et vendre votre jeu gratuitement si vous signez un contrat avec Valve Corportaion.

Triang3l
la source
1

Je recommanderais de commencer par les jeux flash, car vous avez vraiment tout ce dont vous avez besoin dans un seul paquet pour créer des jeux simples. Il y a des tonnes de blogs avec des procédures pas à pas, Emanuele Feronato par exemple. Il a même un livre avec 10 jeux complets ou plus.

J'utilise FlashDevelop, ce qui est suffisant pour le développement.

"Créer un jeu flash Asteroids" de Chris Moeller est un excellent exemple, avec une approche complète étape par étape utilisant le développement flash.

Ironcoding propose un excellent tutoriel pour les jeux basés sur les tuiles .

Armé de tout cela, ma recommandation est de trouver un endroit où il y a un défi de jeu vidéo, avec une communauté de personnes qui construisent des jeux. Construisez un jeu vidéo par mois en vous concentrant sur quelque chose de petit que vous pouvez finir, peaufiner et présenter avant de passer à votre prochain projet. Je participe à un défi de jeu vidéo mensuel ici .

Gardez-le petit pour pouvoir le finir et le relâcher.

NetSquirrel
la source