На этапе предварительного отбора мы подготовили несколько вариантов возможных решений, провели анализ преимуществ и недостатков каждого из них, разобрались в их внутренней логике и механике их взаимодействия с остальным программным кодом. Таким образом, теперь мы готовы выработать оптимальное решение и разработать на его основе полный архитектурный проект. Для этого, в случае необходимости, можно применить синтез нового решения на основе уже имеющихся частных решений (например, из одного решения взять какой-то вход, а из другого — выход). Синтезировав модель и получив архитектуру проектируемой системы, можно приступать к формальному описанию ее технической реализации. В том случае, если это ваша первая разработка, вам придется все создавать "с нуля". Если же проект не первый, можете облегчить работу, воспользовавшись уже имеющимися "заготговками".
По завершении стадии формализации должен быть разработан технический проект, готовый к официальному утверждению. В нем должна быть полностью описана выбранная архитектура системы с обоснованием принятых решений по поводу выбранного ЯПЗ, а также должны приводиться форматы данных входов, выходов и контекста. После утверждения архитектурной части технического проекта на его основе можно создать технические задания и план-график выполнения работ, а также другую необходимую документацию (например, требования по оформлению и документированию программного кода, методики тестирования и т.п.). Все эти документы являются неотъемлемой частью технического проекта и должны храниться вместе с вносимыми дополнениями и изменениями до завершения всего проекта по созданию игры.