Comment apprendre le développement de jeux? [fermé]


Je suis programmeur Web depuis un moment et je peux également programmer en Java. J'ai une idée pour un petit jeu RPG multijoueur sur lequel je veux travailler. Il sera joué via une applet java dans le navigateur Web de l'utilisateur.

J'ai écrit le document de conception et les spécifications du gameplay. Ce que j'aimerais savoir maintenant, c'est comment je peux développer le jeu? Je n'ai travaillé qu'avec des applications professionnelles de type Windows dans le passé, avec des widgets intégrés pour les zones de texte, les listes déroulantes, etc. Avec la programmation de jeu il il semble que je devrais construire mon propre widget / contrôles pour l'interface utilisateur du jeu.

Ce sont les questions spécifiques que j'ai en tête:

1) Comment afficher un 'chargement...'message avec une barre de progression pendant le téléchargement des images, du son, etc. du jeu. (Utilisation de l'applet java)

2) Comment créer l'interface utilisateur du jeu avec son propre menu, contrôles, etc. Comme en cliquant sur l'icône de la carte, il afficherait une carte pour eux. Cliquer sur l'icône amis leur permettrait de discuter avec leur amis, etc.

3) Et d'autres problèmes généraux de développement de jeux que je devrais connaître, comme si je devrais utiliser des graphismes 2D ou 3D, la physique dans les jeux, etc.

S'il y a une bonne recommandation pour un livre qui m'aidera, partagez-le.

Author: Click Upvote, 2009-05-22

13 answers

  1. La voie la plus simple consiste à tout empaqueter dans un fichier Jar. L'écran par défaut affiche une barre de progression avec une petite capacité de personnaliser. Vous pouvez écrire du code personnalisé pour suivre, gérer et télécharger des fichiers, mais je déconseille personnellement cette route. Si vous recherchez des chargeurs d'applet, vous trouverez plus d'informations.

  2. Je ne suis pas sûr à 100% de ce que vous voulez dire, mais vous pouvez utiliser Swing components de la même manière que vous pouvez les utiliser dans des applications. Utiliser un JButton avec une image est assez trivial, puis accrocher le code d'événement dans la méthode actionPerformed.

  3. Le plus gros problème que vous rencontrerez probablement est l'animation et le EDT . J'ai posé des questions sur ce plus tôt.

Cette page contient tout un tas de liens utiles pour le développement de jeux. Pulp core {[4] } est un framework open source qui mérite d'être vérifié-même si vous n'utilisez pas le framework, vous pouvez enquêter sur code.

Que vous utilisiez ou non des applets Java semble hors de portée de cette question, mais beaucoup des réponses ci-dessus donnent des raisons objectives (ou aucune raison du tout) d'utiliser ou non des applets Java. Si c'est un jeu pour un exercice personnel d'apprendre Java, alors c'est une bonne approche. Si vous souhaitez le rendre public, vous devez déterminer si les niveaux d'adoption actuels sont suffisamment élevés pour vos besoins.

Les choses ont changé dans le monde des applets récemment. Depuis 1.6 mise à jour 10 il est beaucoup plus compétitif avec Flash - la taille de téléchargement est plus petite (généralement inférieure à 4 Mo), le temps de démarrage est réduit et unnouveau look and feel de mise à l'échelle a été introduit.

 1
Author: Pool, 2017-05-23 12:26:17

Si c'est votre premier jeu, un projet multijoueur pourrait être trop ambitieux.

Les écrans de chargement ne sont pas terriblement difficiles - je les implémente en comptant le nombre de fichiers que je dois "charger", puis en avançant la barre de progression (et en actualisant l'écran) chaque fois qu'un autre fichier a été chargé avec succès. Vous pouvez le faire avec autant de granularité que vous le souhaitez - cela pourrait compliquer votre code de chargement pour ajouter le composant d'interface utilisateur. Je ne m'en inquiéterais pas pour l'instant; peut-être juste jeter un basique "Chargement..."cadrez puis implémentez une barre de progression complète plus tard lorsque le jeu est plus solide. J'ai également vu de bonnes implémentations avec le multithreading.

Les deux autres viendront avec l'expérience; Je pense que ce dont vous avez besoin plus est un tutoriel général pour le développement de jeux que les réponses spécifiques. Vous devriez certainement commencer plus petit. Une fois que vous comprenez la structure et les problèmes d'un petit jeu, il sera plus facile de les appliquer à des jeux plus grands.

Jeu le plus raisonnable les livres de programmation vont sur la structure de base du jeu; J'aime le codage de jeu complet mais c'est assez compliqué pour un débutant (il couvre des façons plus complexes d'aborder de grands projets). L'architecture et la conception du jeu sont similaires, mais pourraient mieux convenir à ce que vous recherchez, car elles couvrent également certaines pratiques de gestion de projet mineures."

Il y a beaucoup de façons différentes de faire l'interface utilisateur, de l'utilisation des types d'interface utilisateur primitive Java (en fonction des autres bibliothèques que vous utilisez) à auto-écriture de votre propre implémentation " HUD " avec exactement ce dont vous avez besoin.

 3
Author: ravuya, 2009-05-22 18:26:34

Une chose qui vaut probablement la peine d'être familière est le multi-threading. Par exemple, avec l '"écran de chargement", vous pouvez avoir un thread affichant la barre de progression, tandis que d'autres threads chargent simultanément des données.

De même, une grande partie de l'interactivité se produira en répartissant plusieurs threads pour faire beaucoup de choses en même temps (déplacer différents caractères à l'écran) ou pour gérer les interruptions par entrée utilisateur.

 2
Author: poundifdef, 2009-05-22 18:14:48
 2
Author: NoahD, 2009-05-22 18:19:12

Http://nehe.gamedev.net/

A des tonnes de tutoriels de base à avancé en utilisant OpenGL de divers langages et systèmes, de C à C# et Python à Java.

J'ai trouvé cela très très utile et est une excellente ressource à mettre en signet. Il devrait vous aider à démarrer avec les bases de la programmation de jeu/3D sur votre plate-forme/langue de choix.

Bonne chance!

 1
Author: Aiden Bell, 2009-05-22 18:04:29

Comme d'autres l'ont dit d'une applet java est probablement pas le support sur lequel vous souhaitez présenter votre jeu. La deuxième plupart des gens voient une applet commencer à charger, ils courent dans la peur.

Si vous n'avez aucune expérience de conception de jeu, vous mettez la barre très haut avec un RPG multijoueur. Vous voudrez peut-être commencer par un projet plus simple tel que recréer quelque chose comme tetris, pacman ou même pong afin que vous puissiez avoir une idée de tout ce qui entre dans la création d'un jeu.

Flash est génial si vous êtes mis sur faire un jeu en ligne, Java plus les emballages Jogl open-gl sont également une excellente option.

Personnellement, je suggérerais d'utiliser Microsoft Xna. C# est assez similaire à Java que vous devriez pouvoir le ramasser assez rapidement et Xna fait un bon travail d'abstraction de certains des détails de niveau inférieur impliqués dans la programmation graphique. La communauté est également très active et serviable.

 1
Author: DMMcKinnon, 2009-05-22 18:14:08

Ne suivez pas la route de l'applet java.

Si vous voulez faire un jeu occasionnel rapide, faites-le Flash; sinon, développez une application java complète et exécutez-la via java web start.

EssayezTower pour voir jusqu'où vous pouvez aller en utilisant java comme plate-forme, et aussi comment fonctionne Java Web Start.

En ce qui concerne la chose progress-bar, je vous recommande d'implémenter le chargement de ces fichiers et de les utiliser avant de passer à progress-bar eye-candy:)

 1
Author: alamar, 2009-05-22 18:19:20

Réponse à la question 3. Si vous êtes vraiment désireux de commencer à développer des jeux, je vous recommande de lire ce court article de Jeff Howland.

 1
Author: Willem, 2009-05-23 08:11:25

T1 = 1% de votre temps.

T2 = 40% de votre temps.

Q3 = 59% de votre temps.

Vous pourriez aussi bien demander comment pourrais-je écrire Halo3 pour un navigateur Web.

Visez un peu plus bas pour commencer....

 0
Author: cjk, 2009-05-22 18:02:31

Classe Opencourseware surthéorie des jeux et conception . Il est également livré avec une liste de lecture .

 0
Author: z -, 2009-05-22 18:04:31

Puisque je ne peux pas ajouter de commentaire, j'ajouterai une réponse. Je recommanderais de NE PAS utiliser de threads pour déplacer des caractères, etc. Pour le chargement de fichiers, la lecture de sons et même la mise en réseau côté serveur, cela fonctionne bien, mais toute sorte d'IA/graphiques a tendance à causer des maux de tête sans fin.

De plus, comme d'autres personnes l'ont mentionné, Java n'est peut-être pas le meilleur choix. La simple raison pour laquelle les gens disent cela est que c'est difficile. La quantité de soutien/tutoriels pour le développement de jeux Java est plutôt insuffisante par rapport en C++ (GameDev.net est une excellente ressource, mais elle s'est davantage concentrée sur le développement professionnel au fil du temps), Flash (tutoriel décent sur Kongregate en plus d'être un endroit qui pourrait héberger le jeu pour vous), ou même C# (en utilisant XNA). Le développement de jeux Java s'est amélioré au fil des ans et vous pouvez faire des choses incroyables avec, mais il peut finir par être plus difficile de suivre cette voie. Peu importe la langue que vous choisissez, regardez certainement dans l'utilisation d'un moteur graphique / jeu comme il réduira la quantité de travail de votre côté et vous permettra, espérons-le, de créer un meilleur jeu.

 0
Author: JaCraig, 2009-05-22 19:18:06

Si vous recherchez un chemin d'entrée en douceur vers le développement de jeux et que cela ne vous dérange pas d'apprendre le C#, XNA a toute une communauté construite autour de l'apprentissage de l'écriture de jeux. Il a des exemples de toutes sortes de choses -- l'exemple Game State Management montre un bon moyen d'implémenter les transitions d'écran et le chargement, et il existe un exemple similaire Network Game State Management pour les choses de réseau. Ils ont également des jeux entiers disponibles en tant que code source à télécharger.

Si ou pas vos objectifs à long terme sont de faire une applet Java, un jeu Flash, ou vous voulez travailler en C/C++ avec OpenGL, XNA est un excellent moyen d'ignorer tous les détails d'implémentation poilus du rendu/son/etc. C'est très très utile quand vous essayez juste de faire votre premier jeu, croyez-moi.

 -1
Author: ojrac, 2009-05-22 18:40:59

N'allez pas avec l'approche des applets java; les applets sont généralement ennuyeux et lents.

Si vous voulez vraiment qu'il soit jouable à partir du navigateur, pensez à Flash (actionscript), ou peut-être silverlight (je ne connais pas grand-chose aux jeux dans silverlight).

Gamedev est une excellente ressource pour la programmation générale de jeux

Et ...

Je vais voler sans vergogne le lien de la réponse de yx:

MIT Open Course Ware: Théorie des Jeux et mécanisme Conception

 -1
Author: hasen, 2009-05-22 19:26:10