tutorial_vercontrol - seraph526/godot-se GitHub Wiki

版本控制&项目管理 (Version Control & Project Organization)

介绍 (Introduction)

这个教程是为了建议一种管理项目的工作流程。因为Godot允许程序员以他/她喜欢的方式使用文件系统作,在开始使用引擎前指出一个管理项目的方法是有一点挑战性的。因此,这里描述了一个简单的工作流程,可以使用,也可以不使用,但是可以作为一个开始点。

另外,使用版本控制也是个挑战,所以建议也包含了这些内容。

管理 (Organization)

其他的游戏引擎通常包含一个资源数据库,你可以用它来浏览图片,模型和声音等等。Godot是更多的基于自然场景的,所以大部分时间,资产是绑定到场景内部的,或者以文件的形式存在,但是从场景中关联访问。

导入 & 游戏目录 (Importing & Game Folder)

通常Godot中都要使用资产导入。因为导入资产的原始资产也会被引擎作为资源识别,这会导致两种资产都在项目文件夹当中,当导出时,导出器会识别出这两种文件,两种文件都会被导出。

为了解决这个问题,一个好的方法是让你的游戏目录处在另一个目录下(真正的游戏目录)。这使得游戏中使用资产和原始资产可以分离开,也或以允许使用版本控制(如svn或git),以下是个示例:

myproject/art/models/house.max
myproject/art/models/sometexture.png
myproject/sound/door_open.wav
myproject/sound/door_close.wav
myproject/translations/sheet.csv

然后,本例中,游戏目录在一个game/文件夹下:

myproject/game/engine.cfg
myproject/game/scenes/house/house.scn
myproject/game/scenes/house/sometexture.tex
myproject/game/sound/door_open.smp
myproject/game/sound/door_close.smp
myproject/game/translations/sheet.en.xl
myproject/game/translations/sheet.es.xl

按照这个布局,有很多事情可以做:

*所有的项目都一直处于一个目录内(myproject/). *导出项目不会导出已经导入过的.wav和.png文件. *myproject/目录可以直接放到VCS(如.wav或git)下进行版本管理,游戏素材和源素材都可以作版本控制。 *如果一个小组致力于一个项目,资产可以被其他的项目成员再次导入,因为Godot跟踪源资产使用的是相对路径。

场景管理 (Scene Organization)

在游戏文件夹中,另一个常出现的问题是如何在文件系统中管理场景资源。许多开发者尝试基于资产类型的管理方式,最终,经过一段时间后,文件会很混乱,所以,最好的方法是基于游戏的工作方式管理,而不是基于资产类型。以下是一些示例:

如果你是基于资产类型管理你的项目,它看起来会是这个样子:

game/engine.cfg
game/scenes/scene1.scn
game/scenes/scene2.scn
game/textures/texturea.png
game/textures/another.tex
game/sounds/sound1.smp
game/sounds/sound2.wav
game/music/music1.ogg

上述通常是一个坏主意。当一个项目成长到一定程序时,会变得难以管理。很难说清哪些是属于哪些。 基于内容管理是个好的方案,如下:

game/engine.cfg
game/scenes/house/house.scn
game/scenes/house/texture.tex
game/scenes/valley/canyon.scn
game/scenes/valley/rock.scn
game/scenes/valley/rock.tex
game/scenes/common/tree.scn
game/scenes/common/tree.tex
game/player/player.scn
game/player/player.gd
game/npc/theking.scn
game/npc/theking.gd
game/gui/main_screen/main_sceen.scn
game/gui/options/options.scn

这种或类似的模式可以允许项目变得很大,并且可以以很好的管理。注意所有的事情都是基于游戏中可以命名和描述的部分,如设置屏幕和山谷。因为Godot中的每样东西都是由场景制作的,每个种可以命名和描述的东西都可以是场景,这种工作流程很舒服,而且易于管理。

缓存文件 (Cache Files)

Godot中在项目的最高层级使用隐藏文件".fscache"。它用来缓存项目文件,以便快速的知道什么时候文件被编辑过。确保不要上传此文件到git或svn,因为它包含有本地信息,可以会影响到其他其他电脑上的编辑器。