我正在开发一些可在 Windows 和 Mac 上运行的游戏,并且正在使用 Visual Studio 2010 和 Xcode 4.3。
对于使用多个 IDE 的开发人员,您的组织在主要项目文件、资源文件(声音、纹理、设置)和平台特定文件方面是什么样的。
谢谢!
我正在开发一些可在 Windows 和 Mac 上运行的游戏,并且正在使用 Visual Studio 2010 和 Xcode 4.3。
对于使用多个 IDE 的开发人员,您的组织在主要项目文件、资源文件(声音、纹理、设置)和平台特定文件方面是什么样的。
谢谢!
大多数开发人员使用相同的 IDE 和版本(例如 VS2010),但对于其他人和使用不同工具的人来说,维护自己的项目文件是他们的责任(好吧,VS2008 和 VS2010 可以共享 *.csproj 文件,但他们有不同的 *.sln文件,所以这不是一个大问题)。
项目以通常的方式布局:根目录中的解决方案文件(根据 IDE 命名,例如“Foobar-VS2008.sln”和“Foobar-VS2010.sln”),然后每个项目都存在于根目录下和根目录中每个项目的 *.csproj 文件在 IDE 之间共享。
然而,我从事过更复杂的项目,尤其是大型和流行的开源项目,人们喜欢在 vim 和 VC 中破解 C。在这些情况下,项目和解决方案文件实际上存在于它们自己的根目录下,并且和以前一样,每个 IDE 的开发人员都负责维护他们的项目文件。结构如下所示:
PopularProject (Empty)
PopularProject\src (Root for all the *.c and *.h goodness)
PopularProject\bin (Where the myriad build systems dump their output in a suitable subdirectory (e.g. \bin\VC9\IA-64 or \bin\gcc\x86)
PopularProject\prj\VC9 (Where VC9 project and SLN files go)
PopularProject\prj\gcc (Where GCC makefiles and other files go)
PopularProject\prj\Eclipse (Ditto, but for Eclipse)
它使项目井井有条,但它只适用于大型项目。对于小型的来说,这太过分了,通常只有一个项目和 *.sln 文件更容易,如果有人想添加自己的,那么他们可以这样做,但只能在他们自己的机器上(即不要让少数群体添加自己的文件,不是歧视性的,而是为了让事情变得简单和易于管理)。
对于使用平台特定代码的项目,源代码中定义了#if WIN32 或#if LINUX 预处理器的自由应用程序。
所有第三方或导入的库都倾向于放在项目根目录之外的“lib”或“ref”子目录中。
我没有直接参与过游戏,但资产存储在文件系统的另一棵树中。开发人员不希望在本地机器和源代码控制之间进行差异时包含它们(二进制文件也是差异的婊子)。毕竟,他们是(应该是)不同团队的艺术家的责任。