При создании быстрых прототипов лучше ли использовать язык, который вы собираетесь использовать в конце концов?

23

Я работал с SFML (C ++) и Flash (AS3) и обычно создавал прототипы для некоторых моих идей.

Лучше ли использовать язык, который вы собираетесь использовать в конце (обычно C ++), или использовать что-то простое и быстрое (AS3, Python и т. Д.), Чтобы оно заработало, а затем начать с нуля при запуске основного продукта?

Олафур Вааге
источник

Ответы:

31

Это сильно зависит от ваших целей.

Если вы пытаетесь доказать игровой процесс, скорость итерации, вероятно, является вашей наиболее важной целью, и поэтому вы должны выбрать язык и среду, подходящие для этого.

Если вы пытаетесь доказать свою технологичность (используя промежуточное программное обеспечение или иное), то ваши цели также будут включать выбор языка, который вы будете использовать.

тетрада
источник
6
Следует добавить, что использование языка, отличного от конечного целевого языка, не позволит вашему прототипу стать рабочим кодом. Возможно, вы захотите принять это во внимание, думая о политике вашей компании.
jessecurry
1
@ jessecurry, мне нравится, как ты сказал «помоги предотвратить». Я видел, как прототипный код Ruby начал работать через несколько дней вместе с установкой поддержки ruby ​​на хост-серверах.
gradbot
Если вы не хотите доказать производительность, выбор языка также не имеет значения для проверки технологий. То есть, чтобы ответить на вопрос «Будет ли это вообще работать», быстрый прототип с сценариями может дать вам все ответы, которые вам нужны.
Рэйчел Блум
@Рэйчел Хорошо, конечно, именно поэтому я поставил перед вопросом весь вопрос "это зависит".
Тетрад
14

Идея создания прототипа состоит в том, чтобы получить быструю и грязную рабочую версию вашей идеи, а затем утилизировать прототип , чтобы создать надежную архитектуру для вашего конечного продукта.

Важно признать, что прототип не предназначен (и никогда не должен) быть реорганизован в продукт, поэтому нет необходимости писать его на том же языке, на котором вы хотите написать финальную игру. Лучше выбрать язык программирования, обеспечивающий быструю разработку, такой как Flash, как вы упоминали.

Прототипы по своей природе не предназначены для длительного использования кода. Прототипы предназначены для выбрасывания. Они одноразовые. Неуместно перегружать прототип. Прототип похож на город в западном фильме. Это все фасад. За этим ничего нет. Вы не можете переехать и создать семью в одном из этих домов.

Если вы хотите создать что-то, что, возможно, захотите использовать в дальнейшем, это не прототип, а скорее Tracer Bullet, как Энди Хант и Дейв Томас называют это в книге «Прагматичный программист» .

Майкл Клемент
источник
4

Общий совет с прототипами заключается в том, чтобы использовать что-то полностью выброшенное. Цель создания прототипа при разработке игр - просто убедиться, что вы получите удовольствие. Является ли основная игровая механика, на которую опирается ваше программное обеспечение, действительно забавной игрой? Это важный вопрос, на который вы хотите ответить как можно быстрее. Используйте все необходимые средства, чтобы получить этот ответ.

hokiecsgrad
источник
1

Я думаю, что ответ здесь зависит в некоторой степени от того, насколько комфортно вы говорите на разных языках, и от технических потребностей конечного продукта. В наши дни во многих малобюджетных играх нет нужды кодировать на C ++ - вам никогда не понадобится скорость, которую он вам дает.

По моему опыту, если вы стараетесь изо всех сил заставить прототип работать, вы пошли на компромиссы в качестве своего кода, чтобы добиться этого. Мне нравится выбрасывать эти прототипы и перекодировать их; с учетом уроков, которые я извлек из них, кодирование того, что я хочу снова (независимо от того, на каком языке он находится), будет довольно быстрым и будет иметь гораздо более высокое качество кода.

CommanderTso
источник