Показать сообщение отдельно
Старый 03.05.2012, 13:54   #3
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,371
Написано 2,477 полезных сообщений
(для 6,865 пользователей)
Ответ: Готовим строки вкуснее (или почему std::string не такой вкусный в геймдеве)

Сообщение от jimon Посмотреть сообщение
Потому что любое имя файла, ресурса, объекта и тд можно представить в виде цифрового индекса, например просто занеся имена в табличку и записать вместо имени индекс.
Такой подход вполне работает в data-driven дизайне, игра состоит из движка, ресурсов и скриптов, мы эти ресурсы и скрипты "готовим" простой заменой текстовых идентификаторов на цифровые, а потом только уже отдаём их движку.
В code-driven подходе (большинство инди движков, даже блиц3д) такой подход вводится более болезненно, но вполне реально, например вместо :
Model * model = new Model("test.3ds");
пишем
#define MODEL_TEST 1
Model * model = new Model(MODEL_TEST);
Дак это же DarkBasic стайл! Я помню как там все делали. Заводили массивы на текстуры модели и тд.
Dim Models(9999)
Dim Textures(999)
Чтоб не плодить константы. Честно говоря после этого B3D казался куда разумнее.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
HolyDel (03.05.2012)