Тим Кейн рассказал про то, как они оптимизировали Arcanum по части используемой памяти за счёт использования прототипов.
- Каждый объект имеет ссылку на прародителя, в котором хранились базовые поля (ХП, урон и т.д).
- У объекта есть битовые поля, указывающие, переопределялось ли поле.
- Если объекту, например, ножу нужно задать иное значение урона, то выставляется бит в 1 и добавляется поле.
Большая часть игровых объектов не меняет большую часть полей (для многих меняется лишь позиция в мире), что сильно экономит использование RAM и уменьшает размер сейвов.
Кейн отдельно отметил, что буквально все объекты имеют поле для здоровья: «Лучше иметь его для всех объектов, но не использовать, чем не иметь, а потом на поздних этапах разработки добавлять».
Ну и да, было много жалоб от мододелов из-за такой замудрённой структуры 😅
#кейн #Arcanum #gamedev
- Каждый объект имеет ссылку на прародителя, в котором хранились базовые поля (ХП, урон и т.д).
- У объекта есть битовые поля, указывающие, переопределялось ли поле.
- Если объекту, например, ножу нужно задать иное значение урона, то выставляется бит в 1 и добавляется поле.
Большая часть игровых объектов не меняет большую часть полей (для многих меняется лишь позиция в мире), что сильно экономит использование RAM и уменьшает размер сейвов.
Кейн отдельно отметил, что буквально все объекты имеют поле для здоровья: «Лучше иметь его для всех объектов, но не использовать, чем не иметь, а потом на поздних этапах разработки добавлять».
Ну и да, было много жалоб от мододелов из-за такой замудрённой структуры 😅
#кейн #Arcanum #gamedev
YouTube
Arcanum Prototypes & Structures
I talk about how we stored object prototypes and created building structures in Arcanum. This is a follow-up to the video on Arcanum's procedural generation, found here:
https://youtu.be/BbI7hFoT6TQ
https://youtu.be/BbI7hFoT6TQ