В последнее время я много разбираюсь в гибких методологиях. Некоторые статьи, которые я прочитал на веб-сайте Мартина Фаулера, по-видимому, были для меня совершенно необоснованными, и мне было интересно, какие гибкие методы наиболее подходят для разработки игр, , особенно для малобюджетных, малогабаритных и неопытных командных проектов (жирный, потому что это действительно важно).
Концепции, такие как рефакторинг, выглядят так, как будто они могут полностью сочетаться с небольшой и неопытной командой. Идея "охватить изменение" также сочетается с неопытными командами, чьи идеи крутятся и все время поворачиваются. Но такие вещи, как TDD, довольно проблематичны.
Это сложно и субоптимально для проверки класса, который взаимодействует с Direct3D, например. Это не имеет большого смысла.
Я был бы очень благодарен, если бы вы могли перечислить множество практик, которые имели смысл для разработки игр. Одной из плюсов является помощь в организации художественного производства. Цитаты реальных случаев - еще один плюс.
Спасибо заранее.
edit -
Кроме того, моя команда состоит из 3 человек: одного программиста, одного дизайнера графики и одного программиста/графического дизайнера combomix. У нас нет клиента, поэтому мы должны принимать все решения в одиночку.
В статье Фаулера я читал, что гибкая деятельность зависит от взаимодействия между разработчиком и клиентом, но он также упомянул, что клиенты, которые неохотно придерживаются гибкости, все еще могут хорошо обслуживаться гибким развитием (статья называлась Новая методология). Как это относится к моему делу?
Выводы -
Я думаю, что вопросы в StackOverflow также могут помочь другим, поэтому я попытаюсь обобщить мои мысли по этому вопросу здесь.
-
Используя макетные объекты, даже труднодоступные элементы, такие как графические интерфейсы и их отношение к классам клиентов, могут быть управляемыми.
Например, вместо того, чтобы позволить каждому клиенту интерфейса по-настоящему проверить его использование во многих условиях (например, полноэкранный/оконный переключатель режима, который затрагивает почти все в игре), их можно было протестировать против макета, который, казалось бы, они ведут себя так же, как и исходный класс, и дополнительно проверяют верность верности оригинальному объекту.
Таким образом, медленная часть (фактически открывающая окно и прочее) выполняется только один раз, проверяя верность верности реализации, а все остальное просто работает над макетом. [спасибо Cameron]
-
A BDD mindset помогает при ослаблении параноидов искать тщательное тестирование единиц, "заменяя" тестирование по спецификации фактического поведения, а не сжатые единицы, которые во многих случаях лучше, пусть непроверенные (или только косвенно тестируемые, если вы предпочитаете его использовать), чтобы избежать слишком большого количества тестов "один-один-один" по сравнению с единицей (класс, метод, переменная и т.д.), что добавляет к тестированию (теперь "спецификацию" ) хрупкость. [спасибо Kludge]