开发是一门技术,编程是一种艺术

游戏老手,编程新手
随笔 - 11, 文章 - 0, 评论 - 58, 引用 - 0
数据加载中……

虚幻3引擎 - 如何用VS来制作一个简单的Game Mod

摘要:使用VS建立UnrealScript工程,用此工程来修改和编译script文件(即是生成一个game mod)。不需使用unreal frontend软件就可以编译.u文件。

开发环境:XP 64bit;VS 2008;UDK beta2;

其他需求:1. 安装了nFringe。可参考 这里

2. 如果要用自制的UDK地图。可参考 这里

实现:

首先用VS新建一个UnrealScript工程,名字可随意(这里叫MyFirstGame,如有更改,在稍后配置时自行做相应修改),但是路径必须是如下图(否则有可能出现编译后文件丢失的问题,具体后述)。同时去掉"Create directory for solution"的勾。

然后开始配置MyFirstGame的属性,具体如下:

General的配置:

Target Game: 选UE3 Mod。

UCC Path: C:\UDK\UDK-2009-11-2\Binaries\UDK.exe

Reference Source Path: C:\UDK\UDK-2009-11-2\Development\Src

Build Events不用配置,默认就行。

Build的配置:

勾上全部的勾,路径设置:C:\UDK\UDK-2009-11-2\UTGame\Script(如果不放这里,游戏启动后就无法读取我们修改的mod,这个是默认路径,暂时还不知道如何改)。

Debug的配置(懒得写了,见图吧):

说明几点:

Load map at startup选项,输入的是地图名字,而地图位置默认是自动读取C:\UDK\UDK-2009-11-2\UTGame\Content\Maps下的文件。这个TestMap是之前一片bolg建立crowd system时创建的地图,也可以使用任何在前述文件夹下游戏自带的地图。

禁用声音和禁用开头动画选项可以不勾(我是嫌声音太吵)。

Start with specified game type选项,这里就是指定游戏要载入我们修改的这个mod(这个mod稍后建立)。

完成以上的属性配置后,保存工程,关闭再重新载入。这样做的目的是让工程载入我们设定的Reference。这时Reference Source前面应该就有+号,可以展开。此时,在MyFirstGame的根目录下新建一个文件夹,命名为Classes(必须是这个名),在此文件夹里面新建一个UnrealScript文件,命名为GameInfo.uc。大概就是下面这个样子(你的Reference Source下应该没有CluOne,因为这是另一个mod):

现在我们添加UTEngine.ini到Classes文件夹下(如上图所示)。右键选Add-> Existing Item,位置在C:\UDK\UDK-2009-11-2\UTGame\Config\UTEngine.ini。注意要以link的方式添加。打开UTEngine.ini,找到ModEditPackages(用查找),把它前面的;去掉,把=后面改成MyFirstGame。就是这个样子:

这样做就是表示我们要使用的game mod是MyFirstGame。当编译时,就会把MyFirstGame下Classes文件夹下的uc文件一起编译。

好了,最后一步就是修改GameInfo.uc文件。把原来的程序全部删掉,改成以下:

class GameInfo extends UTDeathmatch;

//这里就是一个开始Deathmatch的函数,即当我们启动游戏以后就会自动开始一个Deathmatch

function StartMatch()

{

    super(UTGame).StartMatch();

    TestFunction();

}

//使用`log()函数把一句话输入到控制台

function TestFunction()

{

    `log("This is my first mod game!");

}

现在,我们已经完成了全部的编码和配置工作。选Build->Build MyFirstGame

稍等片刻,便显示编译成功。此时会生成一个MyFirstGame.u文件:

我在这里遇到一个很奇怪的问题,就是无论如何配置Build的输出路径,在运行Build后显示的输出路径都是以上(即是工程保存的路径),而实际上你在那个文件夹下是找不到MyFirstGame.u这个文件的。真实输出的路径则为:

C:\UDK\UDK-2009-11-2\UTGame\Script(即便我在build选项里面设置别的路径也如此)。

注:这个问题,或者说类似的情况,在UDK论坛上也有很多人遇到,但是具体的原因和解决方法暂时还没有发现。如果你也不幸出现了这种情况,则去C:\UDK\UDK-2009-11-2\UTGame\Script查看是否有MyFirstGame.u生成,如果有,就表示编译成功。目前不少人都能成功得到MyFirstGame.u的办法是在建立工程时位置一定要是我建立工程用的路径。如果无法解决,可能只能使用unreal frontend来编译了。

好了, 现在可以测试我们的mod了。点击start debugging按钮(F5)游戏就会启动,在控制窗口中,就会出现我们输入的log:

而游戏窗口如下,可以看到我们设置的crowd在自动生成。

posted on 2009-12-02 13:42 54sun 阅读(3352) 评论(0)  编辑 收藏 引用 所属分类: UDK


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理