25
\$\begingroup\$

I have been working with SFML(C++) and Flash(AS3) and usually creating prototypes for some ideas I have.

Is it better to use the language you are going to use in the end (C++ usually) or use something simple and quick (AS3, Python, etc) to get it working and then start from scratch when you start on the main product?

\$\endgroup\$

4 Answers 4

31
\$\begingroup\$

It heavily depends on what your goals are.

If you're trying to prove gameplay, speed of iteration is probably your most important goal and therefore you should pick a language and environment to suit that.

If you're trying to prove tech (using middleware or otherwise), then your goals would also include choosing what language to use.

\$\endgroup\$
4
  • 6
    \$\begingroup\$ One thing to add, using a language other than the final target language will prevent your prototype from becoming production code. You may want to take that into consideration when thinking of the politics of your company. \$\endgroup\$
    – jessecurry
    Commented Jul 14, 2010 at 19:23
  • 1
    \$\begingroup\$ @jessecurry, I love how you said "help prevent." I've seen prototyped Ruby code go life in a few days along with installing ruby support on the hosting servers. \$\endgroup\$
    – gradbot
    Commented Jul 14, 2010 at 19:31
  • \$\begingroup\$ Unless you want to prove performance, language choice doesn't matter for proving out tech, either. I.e. to answer the question "Would this work at all", a quick scripted prototype can give you all the answers you need. \$\endgroup\$ Commented Jul 14, 2010 at 21:33
  • \$\begingroup\$ @Rachel Well sure, which is why I prefaced the entire question with "it depends". \$\endgroup\$
    – Tetrad
    Commented Jul 14, 2010 at 21:52
14
\$\begingroup\$

The idea of prototyping is to get a quick and dirty working version of your idea and then to dispose the prototype in order to create a solid architecture for your final product.

It is important to acknowledge that a Prototype is not meant to be (and should never be) refactored into a product, so it is not necessary to write it in the same language you want to write your final game. It's better to choose a programming language that allows for fast development, like Flash as you mentioned.

Prototypes by their nature are not designed to be long lasting code. Prototypes are designed to be thrown away. They're one-offs. It is inappropriate to over-engineer a prototype. A prototype is like a town in a western movie. It's all facade. There's nothing behind it. You cannot move in and raise a family in one of those houses.

If you want to build something that you may want to further use, this is not a Prototype but rather a Tracer Bullet as Andy Hunt and Dave Thomas call it in the book The Pragmatic Programmer.

\$\endgroup\$
0
4
\$\begingroup\$

The general advice with prototypes is to use something that's completely throw-away. The goal for a prototype when developing games is to simply make sure you're brining the fun. Does the main game mechanic that your software relies on actually make for a fun game? That's an important question, and one that you want answered as quickly as possible. Use whatever means are necessary to get to that answer.

\$\endgroup\$
1
\$\begingroup\$

I think the answer here depends somewhat on how comfortable you are in the various languages, and on the technical needs of the final product. With many small-budget games these days, there really isn't any need to code in C++ - you're never going to need the speed it affords you.

My experience has been that if you are jamming hard to get a prototype to work, you've made all sorts of compromises in your code quality to get there. I like to throw out those prototypes and recode them; with the lessons I've learned from those, coding what I want again (regardless of the language it is in) will be pretty fast & have a much higher code quality.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .