Ответ: Готовим строки вкуснее (или почему 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
|