在开发和发行中存储3D模型,纹理,声音和脚本(例如Lua文件)的常用方法是什么?我正在和朋友一起主要使用C ++开发游戏;在原型设计阶段,我们只有一个纹理被GIMP保存为C头文件,但是,当然,这种方法的伸缩性不好,并且大大增加了编译时间。
在Windows下,通常的做法是将它们转储到%PROGRAMFILES%
游戏可执行文件所在的子目录中,也许将它们安排在适当的树形结构中。但是,在Linux上,情况似乎要复杂得多。可执行文件通常驻留在中/usr/bin
,而应用程序将其其他文件存储在中/usr/share
,我认为将非可执行文件放入中是极差的做法/usr/bin
。但是,开发过程中的目录结构完全不同。
我可以提出两种不同的可能解决方案:
- 让可执行文件找到相对于自身的资产文件,然后将游戏安装到
/opt
。然后将符号链接放置到/usr/bin
。在开发期间,资产到二进制文件的相对路径与部署期间相同。 - 使用定义为预处理器符号的绝对路径访问文件。让构建过程(在我们的示例中为raw
Makefile
)负责适当定义它。
在一方面或另一方面,这两种方法对我来说似乎都很微不足道。在游戏开发行业中是否有与此相关的惯例?
我能找到的唯一相关问题是,确定磁盘游戏资产上已安装/在磁盘上的资产的位置以及资源和资产的目录路径,但是这些并没有解决“从源代码树”运行的问题。