
简介
很多人根本不知道或不了解如何以及为什么Source的地图需要编译。有些人甚至不知道自己的地图"正在"编译。在这篇文章中,我将试着描述一个编辑器文件到一张可玩的地图的整个过程。虽然在编译过程的某些方面我会讲得深入些,但是请记住这不是一个教你如何编译的教程。它将帮助你理解发生了什么,而为什么其他事(像防止泄露)是重要的。
创建一张可玩的Source地图是从一个编辑器文件开始的。此文件包含所有的多边形数据(又名固体),实体数据以及贴图数据,这些定义了你完成的地图的外观和行为。所有的编辑器,基本上都要达到同样的目的---去定义一个地图是怎么出现的。这是你要理解的关键概念:所有的编辑器都是这样做的。它们并没有完成地图。他们所做的,只是给你一个方便的方式来为以后的过程准备多边形,光照,和实体数据。
一旦你已经在你的编辑器里建立了一个地图,并且已经将其保存到磁盘,你就会想要在Source里进行测试,来看看它是如何横空出世的。要确保你所有实体都正常工作,光照正确,而且没有坏的"固体"。在Hammer里,很多人都只是"运行(Run)"地图,在一段时间的"思考"之后,他们的计算机打开了半条命2,然后"砰"的一下将他们带到地图中。这个简单的事情,隐藏着许多复杂的操作和设定。
现在,问题的核心是,在那有时候奇慢无比的"思考时间"里,到底发生了什么?即便是一张中等大小的地图,大多数人都会注意到,在此期间他们的硬盘在疯狂地读取和写入数据。那么,你的计算机在做什么?是在编译你的地图!你的编辑器会调用一个脚本(.bat),然后做下面所有的事:
读取.vmf文件。
针对.vmf文件执行BSP程序
针对新的.bsp文件执行VIS程序
针对.bsp文件执行RAD程序来添加光照信息
移动你新完成的.bsp到你的模组/maps目录
带参数执行游戏来运行你的地图
你可能会想:"该死的,原来有这么多事要做。一切都是为了什么?"。嗯,那就是我在这里要解释的东西。
很多人根本不知道或不了解如何以及为什么Source的地图需要编译。有些人甚至不知道自己的地图"正在"编译。在这篇文章中,我将试着描述一个编辑器文件到一张可玩的地图的整个过程。虽然在编译过程的某些方面我会讲得深入些,但是请记住这不是一个教你如何编译的教程。它将帮助你理解发生了什么,而为什么其他事(像防止泄露)是重要的。
创建一张可玩的Source地图是从一个编辑器文件开始的。此文件包含所有的多边形数据(又名固体),实体数据以及贴图数据,这些定义了你完成的地图的外观和行为。所有的编辑器,基本上都要达到同样的目的---去定义一个地图是怎么出现的。这是你要理解的关键概念:所有的编辑器都是这样做的。它们并没有完成地图。他们所做的,只是给你一个方便的方式来为以后的过程准备多边形,光照,和实体数据。
一旦你已经在你的编辑器里建立了一个地图,并且已经将其保存到磁盘,你就会想要在Source里进行测试,来看看它是如何横空出世的。要确保你所有实体都正常工作,光照正确,而且没有坏的"固体"。在Hammer里,很多人都只是"运行(Run)"地图,在一段时间的"思考"之后,他们的计算机打开了半条命2,然后"砰"的一下将他们带到地图中。这个简单的事情,隐藏着许多复杂的操作和设定。
现在,问题的核心是,在那有时候奇慢无比的"思考时间"里,到底发生了什么?即便是一张中等大小的地图,大多数人都会注意到,在此期间他们的硬盘在疯狂地读取和写入数据。那么,你的计算机在做什么?是在编译你的地图!你的编辑器会调用一个脚本(.bat),然后做下面所有的事:
读取.vmf文件。
针对.vmf文件执行BSP程序
针对新的.bsp文件执行VIS程序
针对.bsp文件执行RAD程序来添加光照信息
移动你新完成的.bsp到你的模组/maps目录
带参数执行游戏来运行你的地图
你可能会想:"该死的,原来有这么多事要做。一切都是为了什么?"。嗯,那就是我在这里要解释的东西。