Upload
devgamm-conference
View
392
Download
1
Embed Size (px)
DESCRIPTION
От примитивных «Японских Кроссвордов» в 1998 до хардкорных «Легенд Эйзенвальда» в 2014. Как был выбран путь использования собственных движков, сколько их было создано, через какие стадии и сложности разработки пришлось пройти, какие выгоды были получены и каким именно решениям они обязаны. Максимальная скорость ближе к процессору, гибкость к внезапным изменениям, кроссплатформа, собственные скрипты и утилиты для контента — когда всё свое, родное, работает только на благо разработки.
Citation preview
Собственный движок как способэкономной и эффективной
разработки
Об авторе
Николай Армоникоснователь и технический директор
Aterdux Entertainment
Первый движок написал на ассемблере под VESA для DOSПервая игра с использованием авторского движка – Japan Riddles, 1998, shareware, Win95/DirectXРаботаю исключительно в индустрии видеоигр с 2000 годаДвижок для Эйзенвальда – 9-й по счёту, написанный с нуля
Разница между написанием движковв древности и сейчас
Объемы обрабатываемого контента в играх существенно возросли, в отличие от принципов организации архитектуры игр.
1998
2004
2014
Что такое «Legends of Eisenwald»?
Инди-проектБольшой замыселМаленькая команда, мало (или вообще нет) денегТворческий подход к разработке (частые изменения плана)
Сделать всё с минимумом человеко-часовМинимальные требования к оборудованиюПолучить высоко управляемую визуализациюДостичь специфических технических требованийНе зависеть от чужого закрытого оплачиваемого кодаИметь гибкость для постоянного развития/апгрэйда
Зачем проекту свой движок?
Зачем изобретать велосипед?
Самый популярный вопрос-аргумент в пользу отказа от разработки собственного движка.
Правильный ответ:Незачем изобретать.Выгоднее использовать чужие решения, а не целиком чужую архитектуру.
Подробности создания движкадля «Legends of Eisenwald»
Движок был написан одним человекомПриблизительно год разработкиОбъем кода ~20 тысяч строк (в Эйзенвальде всего ~100 тысяч)Собственные вспомогательные утилиты (конвертирование текстур, моделей, редактор арен, редактор скриптов GUI)Освоенный функционал: (3D-рендеринг во всех вариациях, подключение любых собственных шейдеров, упрощенный уровень для 2D, мультимеши, скелетные анимации с блендингом через двойные кватернионы, автоматическая оптимизация рендер-конвейеров в сцене, GUI на собственных интерпретируемых скриптах, и многое многое другое)Отсутствие собственной архитектуры! (framework-style)
Доля кода движка в коде проекта
Доли различного кода в проекте
Рост кода движка
List 1List 2List 3List 4
engine
Рост кода проекта(не учитывая движок)
game
Сравнение роста объемов кода во времени
game
engine
Свой движок: принципы эффективности
Игра стоит свеч.
Эффективность своего движка зависит от навязываемых им ограничений.
Создавать фреймворк, а не движокНе закладывать жесткую архитектуру
Использовать автономные решения из open source.
Контакты
Skype: nikolay.armonikE-mail: [email protected]: /nikolay.armonikTwitter: @Morgerion
Благодарности
Рессе Шварцвальд за помощь в подготовке данных для диаграммВсем смельчакам, кто делает свой движок
Анонс
Переработанный для кроссплатформы движок Эйзенвальда будет доступен в OpenSource.