Но в геймдеве,
любое отхождение от концепта игры — это прежде всего сложность для программистов-инженеров. Приходится менять архитектуру приложения. Это как начать перестраивать дом, когда уже построен первый этаж. Если бы был только фундамент — то проблем почти никаких. Но первый этаж приходится либо полностью сносить, либо «импровизировать», встраивая в него новые конструкции.
Еще сложнее — когда построен второй этаж… А Вам нужно что то поменять в архитектуре первого!
По опыту нашей собственной разработки, изменения в концепте — один из краеугольных камней для большинства разработчиков, который пожирает временной ресурс.
К тому же, это плодит количество ошибок и не состыковок в коде, что еще больше удлиняет процесс разработки.
Придерживаться первоначального концепта, ничего в нем не изменив — значит заранее сковать себя и свой продукт оковами, и как следствие — выпуск игры, которая может просто не «зайти». Т.к. концепт на бумаге и готовое приложение — это небо и земля.
Игра должна развиваться вместе с работой над ней. Если же без конца менять концепт в процессе разработки, совершенствуя игру — срок разработки может превысить все разумные рамки. И компромисс, кажется, совсем невозможен.
Какие решения выработали мы в процессе работы над Plutocracy: - Двигаться небольшими итерациями (версиями), применяя принципы Agile-разработки (гугл в помощь, кому интересно)
- Не перестраивать «первый этаж», когда уже есть «второй».
- Не всегда новое — лучше чем старое. Иногда можно и промахнуться с новым решением. Поэтому собираем небольшую фокус группу и критически оцениваем каждое изменение.
- Даем устояться новой идее 1-2 недели, оставив ее в покое. Если после этого срока она не утратит актуальности — вперед!
Это позволяет нам не увязать в реализации новых идей, изначально не заложенных в концепт. Тем не менее, лучшие идеи высеваются и прорастают, позволяя совершенствовать игру.
2. Баги (ошибки в коде) Как и все разработчики, мы регулярно сталкиваемся с багами (ошибками), на которые приходится убивать время порой больше, чем на сам процесс разработки нового функционала. Например, вот как видит свои ошибки в коде старший программист — Андрей, в нашей системе контроля задач — Redmine: