Gamedev LectureСтатьи

Лекция #33. Плюсы и минусы игровых "орхетектур". [Лектор - dDIMA] (6 стр)

Автор:

[23:34] <dDIMA> Второй вариант особенно эффективен для больших файлов данных, где собрана вся информация по уровню
[23:34] <dDIMA> Т.е. он представляет из себя список данных, которые могут быть как то объединены друг с другом
[23:35] <dDIMA> Система (асинхронно) грузит этот файл (с распаковкой?) и передает на загрузку в соответствующие компоненты движка и локального игрового кода
[23:35] <dDIMA> Обидно только, что недавно модный memory map, к сожалению, изживает себя с next gen :-(
[23:35] <dDIMA> А так было хорошо - положил все в память, настроил ссылки, а потом все снем при помощи одного free()
[23:35] <dDIMA> *снес
[23:36] <dDIMA> самый главной момент, о который я спотыкаюсь на каждом нашем проекте:
[23:36] <dDIMA> это время загрузки
[23:36] <dDIMA> впрочем, я об этом говорил на КРИ, но минимально повторюсь
[23:36] <dDIMA> процессинга данных во время загрузки должны быть минимальное количество
[23:37] <dDIMA> Т.е. все должно быть подсчитано на препроцессе, обработано, запаковано и положено на диск
[23:37] <dDIMA> еще желательно в правильном порядке с минимальным seek
[23:37] <dDIMA> вариант, который часто используется в шароварных движках
[23:37] <dDIMA> загрузка из XML файлов
[23:38] <dDIMA> Zeux, прости меня, но при реальной работе парсинг подобных штук должен быть сведен к минимуму
[23:38] <dDIMA> :)
[23:38] <dDIMA> В общем, основная идея такова:
[23:38] <dDIMA> - ресурс система не должна ничего знать о природе загружаемых данных
[23:39] <dDIMA> - конкретные обработчики долдны располагаться в своих подсистемах (текстуры, модели и т.п.)
[23:39] <dDIMA> - процессинг на загрузке должен быть сведен к минимуму
[23:39] <dDIMA> в приват поступил протест по поводу XML (впрочем, не от Zeux) :-)
[23:40] <dDIMA> естественно, речь идет об 100% эффективности загрузки, а о приемлемой
[23:41] <dDIMA> если у вас есть XML layout для диалога, который грузится за 0.001 секунду и парсится примерно столько же, можно его не оптимизировать
[23:41] <dDIMA> Но если у вас грузится 10000 диалогов (с парсингом - 20 секунд), то это уже может напрягать
[23:42] <dDIMA> предлагаю про ресурсы на этом завершить, если что, на вопросы еще отвечу.

[23:46] <IronPeter> >Второй вариант особенно эффективен для больших файлов данных, где собрана вся информация по уровню
[23:47] <IronPeter> вот только некоторые игры без уровней
[23:47] <kas> ммо пади какиенить
[23:47] <IronPeter> скажем, бегают тыща персонажей с тыща монстрами и арморами.
[23:48] <dDIMA> Ну, в MMO есть еще нюансы
[23:48] <dDIMA> Например, как сделать load on demand, чтобы оно было хорошо
[23:49] <IronPeter> dDIMA, мне удалось только задизайнив очень странную систему.
[23:49] <dDIMA> Ну я примерно представляю ту систему :)
[23:49] <IronPeter> где все файловые запросы за кадр собираются и сортируются по смещению в ресурсном файле.
[23:50] <IronPeter> просто боюсь, что тут есть вещи, специфичные для жанра и так далее.
[23:50] <IronPeter> при дизайне любой низкоуровневой системы.
[23:50] <dDIMA> Но и в этом случае ресурс-менеджер не должен знать про внутренность вещей
[23:50] <dDIMA> Т.е. он конечно может знать, и мы даже можем перформанс на этом поиметь,
[23:50] <dDIMA> но ценой потери универсальности этого манагера
[23:50] <IronPeter> ну ессно, важна только локальность в ресурсном файле.
[23:51] <IronPeter> Дима, он универсален - сортирует смещения и мержит.
[23:51] <IronPeter> просто непонятно, зачем такое в другой игре.
[23:51] <IronPeter> в игре про другое.
[23:51] <dDIMA> Ну, если оно есть такое, то чем оно повредит?
[23:51] <IronPeter> да ничем особо :)
[23:51] <IronPeter> никакого вреда окромя пользы.

[23:52] <dDIMA> Я еще пару лет назад приводил пример на КРИ:
[23:52] <dDIMA> был проект на PS2, который занимал 52 Мб.
[23:52] <dDIMA> Без шансов его сжать
[23:52] <dDIMA> Потом его заморозили и начали чоппер
[23:53] <dDIMA> В чоппере изворачивались по всякому, но запихнули его в 32 Mb
[23:53] <dDIMA> Потом (через год) пересобрали замороженный проект
[23:53] <dDIMA> Запустили - а он занимает уже 42 Mb
[23:53] <dDIMA> Нет :)
[23:54] <dDIMA> Кто то [освободил] излишне занятую оперативку
[23:54] <dDIMA> В принципе, PC проекты сжимали с 500 до 200Mb
[23:54] <dDIMA> Причем достаточно спокойно
[23:55] <dDIMA> Это просто как пример того, сколько можно найти ненужной памяти, если подумать несколько минут
[23:55] <dDIMA> Вообще под XP не стоит вылезать за пределы 500 Mb - уже становится больно

Окончание лекции опять не влезло в лимит, оно здесь: http://www.everfall.com/paste/id.php?wpt5svcoggxw

Страницы: 1 2 3 4 5 6

15 июня 2007 (Обновление: 13 ноя 2009)

Комментарии [10]