虚幻引擎3是由C++和UnrealScript类共同组成的一个庞大的复杂的系统。
在使用虚幻引擎3创建的游戏中的大部分游戏性都是使用UnrealScript进行编程的。UnrealScript语言是专门针对游戏性编程而设计的,考虑到了事件、计时器和状态的处理。这些使得创建构成游戏中动作的元素更加简单。
UnrealScript的设计目的是为开发团队以及第三方Unreal开发人员提供了一个强大的内置编程语言,它满足了游戏编程的要求与细节。
UnrealScript的主要设计目标有:
- 支持主要的概念:时间、状态、属性及网络,这些概念是传统编程语言没有强调的。这将大大地简化UnrealScript代码。基于C/C++的AI和游戏逻辑编程的主要复杂性是处理要花费一定量的游戏时间来完成的事件以及处理依赖对象状态的各个方面的事件。 在C/C++中,这将会导致冗长的混乱的代码,使代码难于书写、理解、维护和调试的。UnrealScript包含了对时间、状态和网络复制的内部支持,这大大地简化了游戏编程。
- 提供一种像Java类型编程语言一样简单的、面向对象的并在编译时进行错误检查的语言。就像Java为Web开发人员提供了一个干净的开发平台,UnrealScript为3D游戏提供了一个同样干净的、简单的、强大的编程语言。UnrealScript从Java语言中衍生的主要编程观念有:
- 没有指针并自动进行垃圾回收的环境;
- 一个简单的单继承类图;
- 编译时进行强类型检查;
- 安全的客户端执行的"sandbox(沙箱限制)";
- 像C/C++/Java代码一样熟悉的外观和感觉。
- UnrealScript为了在游戏对象和交互方面而不是位和像素方面提供丰富的高层次的编程语言。UnrealScript在设计上必须有一些妥协,我们为了获得开发的简单性和强大性,从而牺牲了执行速度。毕竟, Unreal的底层的、对性能起重要作用的代码是使用C/C++书写的,在那里所获得的性能提高的价值超出了所增加的复杂性。UnrealScript是在那个层次的基础上进行运作的,在物体和交互性的层次上而不是位和像素的底层上。