Je construis moi-même des jeux indépendants, mais lorsque je mets un jeu nouvellement développé à un niveau où il est possible de jouer avec le comportement, je n’ai plus d’énergie, alors je me contente de raffinement plutôt que d’exploration. Avec des résultats affreux.
(image du blog Intercom )
Par exemple, je trouve que les cycles d'itération pour modifier le comportement (c.-à-d. Relier et redémarrer une application C ++) sont si longs qu'ils tuent toute créativité. Je construis un outil pour faire face à cela.
Quels autres moyens existent pour explorer rapidement le comportement du jeu? Je m'intéresse aux méthodologies utilisées par les développeurs indépendants ainsi que par les grandes entreprises.
c++
game-design
prototyping
Jonas Byström
la source
la source
Réponses:
Comme vous l'avez noté, lorsque vous travaillez sur les mécanismes de jeu, la vitesse d'itération est essentielle. Plus le temps qui s'écoule entre penser à une modification et pouvoir tester avec cette modification est long, moins vous serez productif et plus vous deviendrez distrait. En conséquence, vous voulez vraiment gérer votre temps d’itération.
Pour moi, ma productivité commence vraiment à baisser lorsque le temps nécessaire pour tester un simple changement dépasse environ cinq secondes. Ainsi, lorsque vous essayez de perfectionner le jeu, l'un de vos objectifs doit être de déterminer "comment puis-je effectuer un changement puis jouer en utilisant ce changement en moins de cinq secondes". La façon dont vous le faites importe peu, tant que vous pouvez réduire le temps d'itération à peu près à ce niveau.
Beaucoup de gros moteurs modernes (Unity, Unreal, etc.) ont tendance à le faire en plaçant leur éditeur dans le moteur du jeu, afin que vous puissiez effectuer la plupart des modifications en direct, sans jamais redémarrer le jeu. Les moteurs / jeux plus petits concentrent généralement le travail dans l'autre sens; faites que le jeu soit compilé et lancé si rapidement que peu importe si vous devez le redémarrer à chaque changement; vous serez toujours là et vous testerez avant la fin de cette période de cinq secondes.
Dans mon projet actuel, il me faut environ dix secondes pour effectuer une petite recompilation, lier, lancer le jeu, puis atteindre le gameplay (la plupart de ces opérations génèrent une géométrie du monde restituable lors du chargement d'une partie sauvegardée). Et c'est beaucoup trop long. J'ai donc créé des modes de jeu "tests" distincts qui me permettent de tester différentes parties du jeu sans charger tous les actifs réels du jeu, ce qui me permet d'entrer et de sortir beaucoup, beaucoup plus rapidement; généralement en environ deux à trois secondes. Si je veux tester une interface utilisateur, je peux le faire sans charger le vrai jeu. Si je veux tester le rendu, j'ai un autre mode où je peux le tester, encore une fois sans charger tout le système de jeu.
J'ai vu d'autres personnes qui ont abordé le problème en plaçant la logique du jeu dans une DLL et en laissant l'exécutable du jeu déjà en mémoire recharger la DLL pendant l'exécution du jeu. Vous pouvez ainsi reconstruire la DLL et la recharger à l'intérieur d'un fichier. exécutable déjà chargé, vous n'avez donc pas besoin de recharger / reconstruire les ressources artistiques de votre jeu. Cela me semble une folie, mais je l’ai vu faire.
Il serait bien plus simple de spécifier les comportements de jeu et / ou la configuration dans des scripts ou des fichiers de données et de permettre à votre système de recharger ces fichiers, soit à la demande, soit simplement en les surveillant à la recherche de modifications, sans qu'il soit nécessaire de les fermer. le jeu vers le bas, reconnectez-le, puis redémarrez-le.
Il y a beaucoup d'approches. Choisissez ce qui fonctionne le mieux pour vous. Mais une des clés du raffinement réussi du mécanisme de jeu est une itération extrêmement rapide. Si vous n'avez pas cela, peu importe ce que vous faites d'autre.
la source
IF DEBUG
directives de compilation littérales ) qui vont directement à mon état "test" (en sautant le menu du jeu). etc.), qui est juste une aire de jeu nue avec tous les actifs que je teste à l’époque. Donc, en gros, je compile un autre exécutable qui charge automatiquement un niveau très réduit (moins d’actifs à charger + aucun fouillis avec le menu du jeu à chaque fois).Pour bien prototyper, réduisez le coût des idées de test.
Mon flux de travail est adapté aux petits jeux, mais j'ai trouvé ces choses utiles:
Makefile
unemake watch
cible qui tourneinotifywait
en boucle, réagissant aux modifications de fichiers en compilant / exécutant automatiquement le jeu. Dans un langage interprété ou compilé par JIT , c'est instantané.la source
En tant que développeur spécialisé dans le prototypage, voici quelques conseils tirés de mon expérience.
Regardez combien de temps votre prototypage nécessite. D'après mon expérience, vous voulez avoir une version jouable de n'importe quoi en deux jours maximum - à partir de zéro; et vous voulez tester une ou deux nouvelles fonctionnalités chaque jour. Si vous n'atteignez pas ces objectifs, cherchez des moyens d'être plus rapide.
la source
On peut répartir le développement du jeu entre ces quatre phases:
Je pense que l'exploration du gameplay se produit principalement lors de la phase de prototypage et voici quelques conseils que j'essaie de suivre:
Commencez à concevoir avec un prototype en papier. Une fois que vous avez une idée précise de ce que le jeu pourrait être, commencez à le coder afin que vous puissiez réellement ressentir les interactions. C'est peut-être inutile pour les jeux 3D mais personnellement cela m'a beaucoup aidé dans le passé.
Code sachant que vous allez jeter votre code une fois que vous avez terminé. Cela vous permettra d’être libéral quant au choix du moteur de jeu.
Les cycles d'itération rapides sont importants (comme d'autres l'ont souligné précédemment). Choisissez un moteur de jeu basé sur sa capacité à vous montrer rapidement ce que vous avez codé. Vous n'avez pas non plus à vous soucier de la performance ou de la fidélité graphique à ce stade.
Limitez votre portée. Si le jeu est en 2D (jeu de stratégie habituel, JRPG), prototype en 2D. Dans cette phase, vous ne vous souciez que des commentaires sur le gameplay .
Ne perdez pas de temps à polir ou à rechercher des actifs. Gribouillez quelque chose sur un papier, prenez-en une photo, coupez-la dans Photoshop, colorez-la et utilisez-la comme sprite. Allumez votre microphone et dites "pew pew". Assemblez deux cubes et une sphère et vous obtenez un robot. N'oubliez jamais que l'exploration des possibilités de jeu est votre première et unique priorité.
Après avoir choisi un prototype amusant, commencez à le peaufiner. Je ne pense pas qu'il y ait encore une raison de changer de technologie, sauf si un élément de jeu en a besoin.
Plus tard au cours de la phase de développement, vous garderez le prototype raffiné sous la main tout en développant un nouveau jeu beaucoup plus esthétique, avec un son bien meilleur et avec de meilleures sensations. Ici, vous devez choisir le moteur de jeu à utiliser.
En fin de compte, prenez ce que vous avez et accordez-le pour utiliser moins de ressources.
La plupart de ce que je décris ci-dessus est de notoriété publique, mais le mettre sur une liste, en compartimentant tout le processus de développement, m'aide à mettre chaque étape en perspective. J'espère que cela vous aide aussi.
la source
Je souscris à la réponse de Trevor Powell selon laquelle la vitesse d'itération est essentielle pour que vous restiez créatif au lieu de simplement polir. Le discours de Bret Victor intitulé "Inventer sur le principe" est une grande source d’inspiration pour moi . Malheureusement, il est difficile de trouver de vrais outils à ce niveau. J'ai essayé d'en construire un moi-même pour le développement Python, ce qui me permet d'exécuter mon code Python pendant que je le saisis. Cela s'appelle Live Coding in Python .
la source
J'ai construit un outil de prototypage appelé Trabant qui:
J'ai construit 30 prototypes de test pour vérifier ce qui précède.
Comme Trevor Powell l'a souligné, les itérations doivent durer moins de 5 secondes et je trouve celles-ci presque cinq fois plus bonnes.
:)
Anko a mentionné qu'utiliser un langage dynamique est une bonne idée, j'ai choisi Python, car c'est l'un des plus utilisés . En ce qui concerne l'automatisation de la construction, tester dans Trabant est aussi rapide que d'appuyer sur F5 dans l'IDE (ou sur F6 pour le tester sur votre iPad). Etant donné qu'il n'y a pas d'étape de construction impliquée, cela ne devient pas plus instantané que cela.
Le code Throwaway était l'un des plats à emporter de Nevermind . Je suis tout à fait d'accord et Trabant l'applique.
la source
Outre la vitesse d'itération de Trevor Powell, qui est vraiment importante, voici d'autres considérations utiles:
C'est comme un bon code ...
Il y a beaucoup de FI dedans.
Plus le concept est solide, moins vous avez besoin de jouer. Si vous savez ce que vous tentez de faire, le prototypage devient ce qu'il faut mettre et comment arranger les choses par rapport au pilier central (votre chose principale).
Si vous débutez comme beaucoup d'autres - vous ne savez pas vraiment ce que vous voulez faire, vous vous dirigez dans une direction et explorez beaucoup de choses à la manière de l'image que vous avez montrée.
Dans les deux cas, l’engagement dans une technologie n’est pas pertinent si vous pouvez simuler ce que vous recherchez sans trop de profondeur - protégez-le sur ce que vous voulez / pouvez.
Ne perdez pas une seconde supplémentaire en ressources. Téléchargez tout sur Internet. Propriétaire ou non. Vous cherchez à avoir une idée de votre concept au travail - à moins que le graphisme ne soit votre principale caractéristique, personne ne vous poursuivra pour avoir expérimenté les sons, les textures et tout le reste, vous ne le mettez pas pour le moment dans le magasin. À moins que vous ne soyez déjà financé - convaincre les gens que le concept en vaut la peine, c'est ce qui vous donnera l'argent pour obtenir les ressources que vous souhaitez. J'ai vu des personnes de studio de jeu présenter des concepts de jeu avec des versions modifiées de jeux propriétaires sur lesquels ils n'ont aucun droit.
C'est comme si vous construisiez un modèle réduit. Bien que ce soit génial d’avoir une réplique miniaturisée de la vie de ce que vous voulez. Parfois, il suffit de le découper dans des magazines, de fabriquer à la main et de coller les morceaux ensemble. Tous ceux qui ont un peu d'imagination ne vont pas présumer que vous construirez le gratte-ciel avec le même carton que celui avec lequel vous avez montré la maquette. Et dans les industries créatives, il est préférable de travailler avec des gens avec une certaine imagination. S'ils ne peuvent pas ignorer certains problèmes de rédaction pour voir le potentiel de tout un concept, ils apprécieront rarement, voire jamais, un produit. Aucune appréciation ne signifie qu'ils sont moins disposés à s'engager et c'est une spirale descendante. C'est la différence entre définir l'attitude de votre enfant pour conquérir le monde et lui dire à la place: "Tu ne peux même pas attacher tes chaussures correctement, petit dipshit,
Quoi que vous fassiez, souvenez-vous toujours que seule une attitude suffit largement à tout gâcher, quel que soit son potentiel technologique ou économique.
J'ai déjà créé un prototype de jeu utilisant exclusivement des images gif et leur donnant un petit quelque chose à voir avec javascript. Ce n'est pas éblouissant mais il a servi à montrer ce que je voulais montrer. Peu importe si par la suite vous le développez exclusivement pour Xbox.
Si votre idée est plus complexe qu'un simple prototype, vous devrez alors mettre la recherche sur la technologie que vous utiliserez, car le prototype sera l'échafaudage du dernier élément (simplement parce que beaucoup est investi dans et il ne peut pas être jeté à la légère) - si vous le faites approuver de toute évidence.
la source