ФлеймФорумПрограммирование

STL. Использовать или нет? (2 стр)

Страницы: 1 2 3 482 Следующая »
#15
17:06, 15 сен 2008

viv
Динамический массив юнитов на карте, например, ты как реализуешь?

#16
17:10, 15 сен 2008

viv
>Вы же игры пишете
So what?

В "играх" активно использую контейнеры: std::vector, std::map, std::string. Без stl лично мне жить было бы тяжко.

#17
17:10, 15 сен 2008

viv
> Особенно всякие мапы и хеши, очереди, строки и другой говномусор больного мозга. Вы же игры пишете
У меня map в ResourceManager'е используется.

#18
17:21, 15 сен 2008

NightmareZ
Нахера мне динмаический массив юнитов. Я юнитов еще на этапе компиляции посчитать могу и сверху ограничить.
San
Игры требовательны к производительности. Перечисленные тобой контейнеры живут на куче маллоков в кривых руках, и не кривыми исправить этот недостаток нельзя полностью
Nighthunter
Нафик вообще нужен твой ресурс менеджер?

#19
17:23, 15 сен 2008

Любой мэп в игре — скорей всего, ошибка проектирования. Ресурс менеджеры тем более.

#20
17:31, 15 сен 2008

viv
Есть аллокаторы. Вообще, стл штука очень гибкая и конфигурируемая. Опять же, не буду говорить за других, у меня пока что из-за стл никаких проблем с перфомансом не было. Профайлер, кстати, ругался как раз на самописные велосипеды :)
Единственно, могу предположить, что стл может оказаться боттлнеком в игрушках под мобильники и pocketPC. Да и то вряд ли.

cppguru
Обоснуйте (с) :)

#21
17:35, 15 сен 2008

viv
>Нахера мне динмаический массив юнитов. Я юнитов еще на этапе компиляции посчитать могу и сверху ограничить.
Из-за таких как ты я не мог больше двухсот юнитов в старкрафте создать и шестидесяти тысяч в казаках.

#22
17:37, 15 сен 2008

San
Как раз аллокаторы в STL через задницу спроектированы и прилеплены как бантик сбоку. В родном стандарте даже узаконеный хак ввиде rebind висит, allocate выделяет на size байт а size * (sizeof(T) байт и т.д.
И великолепные аллокаторы не отменяют того факта, что тотже map на каждый чих маллок зовет

#23
17:40, 15 сен 2008

viv
Я к тому, что аллокаторы можно напейсать самому и полностью контролировать процесс. Например взять с кучи сразу много памяти и реюзать ее. Никаких маллоков.

#24
17:44, 15 сен 2008

San
А когда ты выйдешь за пределы своей взятой памяти? Возьмешь еше больше памяти, скопируешь, пофиксишь поинтеры, освободишь старую? Или просто вообще засрешь и задефрагментируешь весь хип?

#25
17:45, 15 сен 2008

NightmareZ
Из-за таких, как ты, игры грузятся по пять минут.

San
Приведи пример, где мапа необходима и её нельзя устранить более аккуратным дизайном, и я предложу альтернативное решение.

Ну обычно - в мапах хранится соответствие неких строковых имён каким-то пачкам байт. И по этим именам радостно делается поиск. Отсюда вопрос, почему бы не делать это где-то в тулзе и в коде прошивать сразу адреса этих структур вместо строковых имён?

#26
17:45, 15 сен 2008

San
Ты кстати вообще писал эти волщебные аллокаторы?

#27
17:48, 15 сен 2008

cppguru
Для прикола спроси где ему std::string нужен. Еще веселее, чем мапа

#28
17:49, 15 сен 2008

cppguru
>Из-за таких, как ты, игры грузятся по пять минут.
Лучше подожать пять минут, чем обламаться в игре на самом интересном месте.

#29
17:54, 15 сен 2008

NightmareZ

За такое QA отсылает. Не жить тебе на консолях..

Страницы: 1 2 3 482 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.

Тема закрыта.