Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Используйте пространства имен на C# и разбивайте свой код на ассемблеры на ранних этапах. Это обеспечивает более чистое разделение архитектуры и сокращает время компиляции в долгосрочной перспективе.А можно в числах? А то везде про это пишут, но я в своих проектах не вижу прям большой разницы при использовании Assembly Definitions.
Напишите в Unity плэймод-тесты игры и тесты интеграцииВот про это бы поподробнее.
Начните разработку игру с последней бета-версией UnityОчень спорный совет.
Не полагайтесь на PlayerPrefs. Сериализуйте вашу игровой конфиг со всеми настройками в простой текстовый формат.А что не так с PlayerPrefs?
Если вы не знаменитость с >10К фанатов, то спам об игре в Твиттере будет бесполезен. Хэштег #gamedev движется со скоростью несколько сообщений в секунду — скорее всего никого не будет волновать ни ваша игра, ни то, что вы недавно сделали#screenshotsaturday для некоторых весьма хорошо работает.
А что не так с PlayerPrefs?
Размер?Оно точно также хранит в текстовом формате.
Удобство редактирования?В редакторе? Там много лет назад был удобный плагин для этого. Или можно самому за несколько часов накидать.
Оно точно также хранит в текстовом формате.
А можно в числах? А то везде про это пишут, но я в своих проектах не вижу прям большой разницы при использовании Assembly Definitions.
разбивайте свой код на ассемблеры
Попробуйте делать меньше ООП. Держите все в изоляции, имейте меньше состояний. Обменивайтесь данными, а не объектами с состояниями и иерархиями.
А как надо?
Entity Component System, полагаю. Например, в таком стиле https://habr.com/ru/post/343778/
Думаю, что тут про принцип "composition over inheritance"
Постарайтесь определить как можно больше в коде, а не полагаться на Unity Editor или предварительную сериализацию. Когда вам понадобится что-то рефакторить, наличие множества вещей, соединенных в единые YAML-файлы, добавит вам проблем. Используйте редактор, чтобы быстро найти хороший набор значений в рантайме, затем впишите его в код и удалите [SerializeField].
Избегайте 2D физики Unity даже для 2D-игр. Постройте ее с 3D, и вы получите многопотоковый Nvidia Physx вместо менее производительного Box2D.
Используйте редактор кода, который показывает ссылки на классы, переменные и методы. Например, Visual Studio Code — он великолепен.
- Хорошо подумайте над финальным названием игры. Переименование позже может превратиться в полный кошмар.
- Назовите ваш проект кодовым именем. Не начинайте с именования, покупки доменов, настройки аккаунтов, покупки приложения Steam и т.д. Это можно сделать намного позже.
Постарайтесь определить как можно больше в коде, а не полагаться на Unity Editor или предварительную сериализацию. Когда вам понадобится что-то рефакторить, наличие множества вещей, соединенных в единые YAML-файлы, добавит вам проблем. Используйте редактор, чтобы быстро найти хороший набор значений в рантайме, затем впишите его в код и удалите [SerializeField].
Подумайте о моддинге на ранней стадии. Разложите начальную архитектуру проекта так, чтобы вы могли построить ядро игры в виде мода или набора модов. Игровой контент должен быть «мягкой» архитектурой, он должен легко модифицироваться.
Никогда не подключайте кнопки пользовательского интерфейса к редактору Unity Editor. Вместо этого используйте onClick.AddListener из кода.
Вещи, которые я бы хотел знать до начала разработки собственной игры