Мне нравится думать, что все вокруг нас может быть представлено, так или иначе, через диаграмму. Даже если это просто линейная диаграмма, представляющая переход между состояниями определенного объекта во времени (например, живое существо, проходящее через ряд состояний от рождения до смерти). Я использую диаграммы, чтобы изложить свои мысли и идеи для фактической реализации. Я импровизирую довольно много.
Поэтому мои диаграммы большую часть времени находятся на очень высоком уровне и чувствуют себя как карты разума .
Чтобы добавить некоторые примеры, это на самом деле карта наследования классов (которая была вырезана) в моей игре, где Interactive Object является базовым типом.
Это диаграмма FSM ( конечного автомата ) для ловушек с шипами (эти удивительные ловушки, на которые вы наступаете, и шипы с дураками появляются с земли).
Это диаграмма руководства (названная так, потому что она предназначена для того, чтобы вернуться к ней часто ), которую я нарисовал недавно. Он описывает компоненты игры, а также помогает собрать необходимые ресурсы, так как вы можете сразу увидеть, что нужно, а что нет. Я рекомендую их для небольших проектов, так как они очень велики для больших. Они могут быть расширены дальше, так что это может исправить положение.
Когда я перехожу на более низкий уровень, это обычно потому, что мне нужно спланировать самые сложные аспекты моей архитектуры, и я обычно имею дело с UML. Я никогда не концентрируюсь на выводе абсолютно чистого и правильного UML. Я принял то, что мне больше всего понравилось в соглашении UML, и превратил его в приятный UML-шаблон mindmap-ish. Это просто и делает эту работу за меня, но я бы не стал заниматься этим в среде, где ожидается настоящий UML по понятным причинам.
Другая ситуация, когда мне приходится переходить на более низкий уровень, - это когда мне приходится описывать реальные алгоритмы. Я использую то, что я называю блок-схемами . Это формат, основанный на диаграммах, используемых при тестировании белого ящика .
Образец ловушки с шипами, который я нарисовал прямо сейчас, будет выглядеть так:
Обычно это последний уровень между диаграммами и фактическими реализациями алгоритма. Если возникает необходимость, я дополнительно детализирую блок-схемы (с дополнительными выполненными инструкциями), определяю или оцениваю сложность и строю точные контрольные примеры. Я также предпочитаю диаграммы над псевдокодом.
Это не связано с разработкой игр, у меня также есть хороший формат для описания экранов в многоэкранном приложении, функциональности, которую пользователь может запускать на каждом экране, и взаимосвязи между экранами. Я обычно создаю их перед началом фактической разработки, и они действуют как карта на протяжении всего процесса разработки. Если это для клиента, диаграмма экрана еще более полезна! Это помогает мне пройти весь проект от начала до начала и принять во внимание все функциональные возможности, которые ему понадобятся. Поэтому, это неоценимо для предоставления точной оценки стоимости и времени.
Так что да, я определенно все и все. Если у меня есть идея, я могу и обязательно нарисую для нее схему. Если я каким-то образом начинаю проект без хотя бы очень широкой диаграммы, чтобы поддержать меня, я чувствую себя инвалидом.