Lors de la création de prototypes rapides, est-il préférable d'utiliser le langage que vous allez utiliser à la fin?

23

Je travaille avec SFML (C ++) et Flash (AS3) et je crée généralement des prototypes pour certaines idées que j'ai.

Est-il préférable d'utiliser le langage que vous allez utiliser à la fin (C ++ généralement) ou d'utiliser quelque chose de simple et rapide (AS3, Python, etc.) pour le faire fonctionner, puis recommencer à zéro lorsque vous démarrez sur le produit principal?

Ólafur Waage
la source

Réponses:

31

Cela dépend fortement de vos objectifs.

Si vous essayez de prouver le gameplay, la vitesse d'itération est probablement votre objectif le plus important et vous devez donc choisir un langage et un environnement adaptés à cela.

Si vous essayez de prouver la technologie (en utilisant un middleware ou autre), vos objectifs consisteront également à choisir la langue à utiliser.

Tetrad
la source
6
Une chose à ajouter, l'utilisation d'un langage autre que le langage cible final empêchera votre prototype de devenir un code de production. Vous voudrez peut-être en tenir compte lorsque vous pensez à la politique de votre entreprise.
jessecurry
1
@jessecurry, j'adore la façon dont vous avez dit "aider à prévenir". J'ai vu le code Ruby prototypé prendre vie en quelques jours avec l'installation du support Ruby sur les serveurs d'hébergement.
gradbot
À moins que vous ne vouliez prouver les performances, le choix de la langue n'a pas d'importance non plus pour prouver la technologie. C'est-à-dire pour répondre à la question "Est-ce que cela fonctionnerait du tout", un prototype de script rapide peut vous donner toutes les réponses dont vous avez besoin.
Rachel Blum
@Rachel Bien sûr, c'est pourquoi j'ai préfacé toute la question par "ça dépend".
Tetrad
14

L'idée du prototypage est d'obtenir une version de travail rapide et sale de votre idée , puis de disposer du prototype afin de créer une architecture solide pour votre produit final.

Il est important de reconnaître qu'un Prototype n'est pas destiné à être (et ne devrait jamais être) refactorisé dans un produit, il n'est donc pas nécessaire de l'écrire dans la même langue que celle que vous souhaitez pour écrire votre jeu final. Il vaut mieux choisir un langage de programmation qui permet un développement rapide, comme Flash comme vous l'avez mentionné.

De par leur nature, les prototypes ne sont pas conçus pour être un code de longue durée. Les prototypes sont conçus pour être jetés. Ce sont des pièces uniques. Il est inapproprié de sur-concevoir un prototype. Un prototype est comme une ville dans un film occidental. Tout est façade. Il n'y a rien derrière ça. Vous ne pouvez pas emménager et élever une famille dans l'une de ces maisons.

Si vous voulez construire quelque chose que vous voudrez peut-être utiliser davantage, ce n'est pas un prototype mais plutôt une balle de traçage comme Andy Hunt et Dave Thomas l'appellent dans le livre The Pragmatic Programmer .

Michael Klement
la source
4

Le conseil général avec les prototypes est d'utiliser quelque chose de complètement jetable. L'objectif d'un prototype lors du développement de jeux est simplement de s'assurer que vous vous amusez. Est-ce que le principal mécanisme de jeu sur lequel votre logiciel s'appuie fait un jeu amusant? C'est une question importante à laquelle vous souhaitez répondre le plus rapidement possible. Utilisez tous les moyens nécessaires pour arriver à cette réponse.

hokiecsgrad
la source
1

Je pense que la réponse ici dépend un peu de votre niveau de confort dans les différentes langues et des besoins techniques du produit final. Avec de nombreux jeux à petit budget de nos jours, il n'est vraiment pas nécessaire de coder en C ++ - vous n'aurez jamais besoin de la vitesse qu'il vous offre.

D'après mon expérience, si vous travaillez dur pour faire fonctionner un prototype, vous avez fait toutes sortes de compromis dans la qualité de votre code pour y arriver. J'aime jeter ces prototypes et les recoder; avec les leçons que j'ai apprises de ceux-ci, coder ce que je veux à nouveau (quelle que soit la langue dans laquelle il est) sera assez rapide et aura une qualité de code beaucoup plus élevée.

CommanderTso
la source