Comment créer un prototype de jeu en ligne? [fermé]

8

J'aimerais savoir si vous connaissez des bibliothèques, des moteurs ou même simplement des modèles de conception qui simplifient considérablement la tâche de partage d'informations et d'envoi de messages entre les programmes en réseau, de sorte que l'on peut se concentrer sur peaufiner le gameplay au lieu de réécrire le code de réseau, tout en prototypage de jeux en réseau. Étant donné que cela est destiné aux prototypes, la facilité d'utilisation et la flexibilité sont beaucoup plus importantes que la vitesse et la sécurité.

Pyjama Panda
la source
1
Eh bien, j'ai entendu dire que Unity est capable de créer des jeux de style MMO, mais c'est un moteur qui se concentre sur la 3D, vous pouvez faire de la 2D mais il vous suffit d'être un peu créatif (comme faire un avion contenant le sprite 2D comme une texture et régler la caméra pour regarder vers le bas.) Je sais que le buzz 3D a fait un tutoriel sur la programmation MMO Unity, mais je ne pense pas qu'il soit disponible pour le public. Je vous suggère d'être avec Paper Prototyping, c'est là que vous essayez de créer un jeu en utilisant des découpes de papier et de déplacer les choses par vous-même, c'est un bon moyen d'obtenir des commentaires sans créer le jeu complet, il suffit de gérer les événements en ligne vous-même.
Benjamin Danger Johnson
1
ZMQ est génial pour réduire le passe - partout de mise en réseau.
Anko
@BenjaminDangerJohnson J'ai utilisé Unity, mais leurs composants réseau sont trop spécifiques pour partager les positions des objets. Vous devez écrire votre propre moteur par-dessus si vous voulez l'utiliser pour autre chose, et cela va à l'encontre de l'objectif du prototypage.
Panda Pyjama du
@Anko 0MQ semble intéressant, et je vais l'essayer. Je crains qu'il essaie de simplifier la couche de transport , ce qui signifie très probablement que vous devrez éventuellement écrire votre propre protocole d'application, ce qui est précisément ce que je veux éviter pour la phase de prototypage.
Panda Pyjama
2
Basé sur la réécriture, 0MQ (ou RabbitMQ) fonctionnera correctement. Aucun système de messagerie ne peut automatiser la réplication des données de votre jeu, le contenu du message sera toujours à vous de créer et d'interpréter. Heck, sur un réseau local, vous pouvez simplement spammer des diffusions et quiconque écoute peut choisir des paquets qui leur sont destinés, les données peuvent être XML ou JSON ou un flux de paires de texte clé-valeur facile, car pour le prototypage local, vous êtes assuré d'avoir des tonnes de bande passante. Mais vous devez encore faire du code.
Patrick Hughes

Réponses:

4

Le moyen le plus simple de prototyper un jeu en ligne, qui vous permet de changer rapidement presque n'importe quoi dans le jeu (même des facteurs tels que le temps réel ou au tour par tour), est d'implémenter le prototype comme un jeu physique. Rassemblez tous les concepteurs dans une pièce, obtenez un tas de cartes ou de dés, ou des composants de jeux de société, ou tout ce qui est nécessaire pour prototyper les interactions générales du jeu. Jouez ensuite le jeu.

Vous pouvez le faire sans avoir à payer des programmeurs ou des artistes. Essayer différentes variantes des règles du jeu ne prend qu'une minute ou deux au lieu de nécessiter des heures ou des jours (ou des semaines!) De travail de programmation, et vous pouvez savoir si votre jeu fonctionne ou non en le jouant réellement, au lieu d'avoir à concevoir avant le mise en œuvre et faire des suppositions sur ce qui fonctionnera ou ne fonctionnera pas. De plus, vos programmeurs vous aimeront toujours à la fin du processus. :)

  • Pour ce faire, je recommande d'avoir au moins une personne agissant en tant qu'observateur; ne pas participer au jeu lui-même, et une autre personne dont le travail consiste à prendre des notes sur qui a fait quoi et quand. Ces données sur ce qui s'est réellement passé pendant chaque jeu peuvent devenir extrêmement utiles tout en ajustant l'ensemble de règles entre les jeux.

Stylo, papier, dés, cartes, planches, jetons. C'est vraiment tout ce dont vous avez besoin. Et pour prototyper une conception de jeu, c'est mieux qu'autre chose.

Trevor Powell
la source
6
Au contraire. Si vos collègues refusent de faire ce qui est manifestement le moyen le plus rapide et le plus économique pour l'entreprise de répéter rapidement un prototype de jeu, alors vous n'êtes pas dans un environnement professionnel.
Trevor Powell
2
Ne transformons pas cela en une discussion sur le lieu de travail. Certes, le prototypage physique est très bon, mais ce n'est pas toujours possible, et tous les jeux ne sont pas physiquement jouables de manière triviale. Je peux généralement pirater des idées de jeux 2D en solo en quelques heures et les modifier pour voir si elles sont intéressantes. Je veux juste pouvoir faire de même pour les jeux multijoueurs.
Panda Pyjama
5
Vous êtes celui qui a évoqué les environnements de travail, pas moi. Si vous ne voulez pas en parler, c'est bien. Mais ne vous attendez pas à ce que je reste silencieux pendant que vous prétendez que le prototypage physique ne peut en quelque sorte pas fonctionner dans des environnements de travail "professionnels". Parce que ce n'est tout simplement pas vrai.
Trevor Powell
2
De plus, tous les jeux ne sont pas physiquement prototypables. Les jeux de puzzle et de stratégie sont faciles à faire avec votre proposition, mais les jeux d'action, de musique, de course, de sport et de simulation peuvent ne pas l'être.
Panda Pyjama
1
Aucune méthode ne rendra magiquement le prototypage «trivial» pour n'importe quel type de jeu (et encore moins pour chaque type de jeu). Doublement lorsque les réseaux sont impliqués. Que c'est « non trivial » n'est pas une raison de rejeter toute méthode de prototypage, parce que vous ne réussirez jamais à trouver une méthode qui est trivial.
Trevor Powell
2

relatively simple rule changes such as "let's try this in real time instead of turn-based"Cela me semble être un changement assez fondamental, pas un simple changement de règle. Je pense que des choix de conception fondamentaux comme celui-ci doivent être faits avant même d'écrire un code de réseau, que ce soit avec des prototypes hors ligne ou même des prototypes papier.

Autrement dit, prototyper le gameplay sans faire de réseautage. Cela signifierait écrire localement un jeu multijoueur (c'est-à-dire que les deux joueurs sont sur le même ordinateur) afin de tester des idées de gameplay.

Je veux dire, à mon travail, nous avons une fois pris un jeu qui était déjà à mi-chemin développé au tour par tour et l'avons converti en temps réel, et oui, cela impliquait une réécriture massive du code réseau. Rétrospectivement, c'était une façon vraiment inefficace d'aborder les choses, et nous avons à peu près décidé "plus jamais".

jhocking
la source
Pas vraiment, s'il n'est pas en réseau, changer un jeu au tour par tour en temps réel n'est pas très difficile. Le problème avec essayer sur le même ordinateur est que vous êtes limité à deux ou peut-être jusqu'à quatre utilisateurs en même temps. Quoi qu'il en soit, c'était un exemple, mais il y a beaucoup d'autres choses que je veux tester qui peuvent certainement être rendues plus faciles à tester si elles sont en réseau ...
Panda Pyjama
Ne pas comprendre le point de votre première phrase. C'est exactement ce que je veux dire, que faire ce changement de gameplay est facile si le jeu n'est pas en réseau. Et s'il y a d'autres choses qui ne peuvent être testées qu'une fois le réseau en place (par exemple, la synchronisation sur Internet), alors prenez autant de décisions que possible avant de commencer à vous en préoccuper.
jhocking le
0

Je ne peux pas imaginer un besoin pour un tel outil parce que je crois que la logique de réseau est mieux faite à travers une analyse solide de quelles informations doivent aller où.

Mais, si j'étais obligé de créer une telle chose pour quelqu'un qui en voulait, j'utiliserais:

  • le langage de programmation Python
  • 0MQ pour la messagerie (via pyzmq )
  • le module pickle pour envoyer des données arbitraires (comme indiqué dans un exemple ici )

Cela couvre tous les problèmes de transport fiable, de délimitation des messages et de sérialisation / désérialisation. (Cependant, Pickle n'est pas sûr pour autre chose que l'utilisation de l'intranet.)

Vous devrez toujours configurer la logique pour décider quoi faire avec les données, prendre et implémenter la décision de quels ordinateurs se connecter à quels autres ordinateurs, etc. Et il ne prend pas en charge la messagerie non fiable, ni les appels de procédure à distance, ni la réplication d'état automatique, etc. C'est pourquoi il est généralement préférable de planifier ce que vous voulez et de l'écrire de cette façon.

Kylotan
la source