`
ideage
  • 浏览: 326372 次
社区版块
存档分类
最新评论

D语言脚本引擎简单比较

阅读更多

经过长期的测试,使用,扩展代码编写,比较了D中可以使用的几种脚本语言。

 

MiniD:

 

协议 宽松,自由,商用免费。

语法 简单,类似D

效率 较高 素数例子:69ms (用的是MiniD 0.06,Phobos,2.0bate没有测试)

稳定性 一般,没有连续升级,结局已经和MiniD1.0一样。

扩展性 高

Unicode支持:支持

基本库:仅Tango,Tango太不稳定。

文档,例子:较少,不过容易理解

 

 

DMDScript,Rooscript,Walnut V1.1:

 

协议 GPL,商用999$。

语法 JavaScript,兼容ECMA v3

效率 一般 素数例子:123ms

稳定性 较高

基本库:仅Phobos,D1

Unicode支持:支持

扩展性 高

文档,例子:最少,不过可以看看其他JavaScript的书籍和文档。

 

另外的选择是Walnut v1.9 基于BSD协议,却没有测试通过。Walnut1.1效率比较低,还不如Jscript。

 

LUA:

 

协议 宽松,自由,商用免费。

语法 简单,类似Basic

效率 高 素数例子:32ms

稳定性 高

扩展性 高

Unicode支持:支持,dofile中C运行库中用fopen不能直接用Unicode文件。

基本库:Phobos 和 Tango,D1,D2

文档,例子:较多,中文,易理解,交互性好

 

基于比较,只能使用Lua了。虽然很想使用MiniD。太老的版本v1倒是可以用Phobos,但稳定性差。

 

目前的状况,我们只能使用稳定的版本了。不能选择Tango和D2的也是这个原因。

 

 

 2.19日发表 

 2.20日修订,增加测试结构,文档比较。

 

 (待续,完善中)

 

分享到:
评论
8 楼 ideage 2009-02-20  
hurd 写道

汉字,大陆电话,手机,邮编,身份证。 美国的才有个邮编和电话。 不知道作者那里来的这些信息。


最早的MiniD的regexplib是我写的。
7 楼 hurd 2009-02-20  
			pushString(t, "^[\u4e00-\u9fa5]+$");                   newGlobal(t, "chinese");
			pushString(t, r"\d{3}-\d{8}|\d{4}-\d{7}");             newGlobal(t, "cnPhone");
			pushString(t, r"^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$"); newGlobal(t, "cnMobile");
			pushString(t, r"^\d{6}$");                             newGlobal(t, "cnZip");
			pushString(t, r"\d{15}|\d{18}");                       newGlobal(t, "cnIDcard");

			pushString(t, r"^((1-)?\d{3}-)?\d{3}-\d{4}$");         newGlobal(t, "usPhone");
			pushString(t, r"^\d{5}$");                             newGlobal(t, "usZip");



汉字,大陆电话,手机,邮编,身份证。 美国的才有个邮编和电话。 不知道作者那里来的这些信息。
6 楼 hurd 2009-02-20  
看到Minid的pcre扩展里的这个
86 	            pushString(t, "^[\u4e00-\u9fa5]+$");                   newGlobal(t, "chinese");
87 	            pushString(t, r"\d{3}-\d{8}|\d{4}-\d{7}");             newGlobal(t, "cnPhone");
88 	            pushString(t, r"^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$"); newGlobal(t, "cnMobile");
89 	            pushString(t, r"^\d{6}$");                             newGlobal(t, "cnZip");
90 	            pushString(t, r"\d{15}|\d{18}");                       newGlobal(t, "cnIDcard");
5 楼 ideage 2009-02-19  
看了下Gpl3协议和monster ,monster代码结构还真不错。与D的相互调用非常简单。也比较活跃:2.18日发布了0.11版本。monster雄心勃勃啊!
4 楼 tomqyp 2009-02-19  
monster 也不错的说,GPL3 协议 ,支持tango phobos 也支持c++,与D的相互调用也比较简单。不过没有在自己的程序使用过,稳不稳定不好说。

但是之前用D写过一个协议分析工具到是用过lua,由于封装比较简单,涉及到与D的通信部分写起来还是比较痛苦的。老实说,要还是考虑到扩展性,有些地方真是恨不得全部用D来写。



3 楼 ideage 2009-02-19  
用lua的binding,封装了5.13版本,很方便的
2 楼 Colorful 2009-02-19  
没怎么研究过脚本语言,呵呵。
1 楼 Colorful 2009-02-19  
使用 Lua 的话,是不是要做一定的封装啊?

相关推荐

    Lua2D游戏脚本引擎(渲染OpenGL)

    Lua2D游戏脚本引擎是一款专为2D游戏设计的轻量级开发工具,它充分利用了Lua语言的灵活性和简洁性,使得游戏逻辑编写更为直观易懂。引擎的核心特点是与C++紧密绑定,通过OpenGL进行图形渲染,为开发者提供了高效、低...

    hgelua脚本引擎

    hgelua脚本引擎是将高效的游戏引擎HGE(Harnessing Great Energy)与强大的脚本语言Lua相结合的产物,为2D游戏开发提供了全新的可能性。这个引擎的出现,使得开发者能够更便捷地创建动态且互动性强的2D游戏,而无需...

    脚本语言做的Game

    4. Unity的C#:Unity是一款广泛使用的跨平台游戏引擎,它支持C#作为主要的脚本语言。C#语法接近C++,拥有强大的面向对象特性,使得开发者可以构建复杂的游戏系统。 脚本语言的使用让游戏开发变得更加灵活和高效。...

    U3D常用脚本

    Unity3D(简称U3D)是一款广泛应用的游戏开发引擎,以其高效、跨平台的特性深受开发者喜爱。在Unity3D的开发过程中,编写脚本是不可或缺的部分,它能实现游戏逻辑、交互以及各种功能。"U3D常用脚本"集合了在开发过程...

    游戏引擎实现c++调用c#脚本功能mono.rar

    游戏引擎在现代游戏开发中扮演着至关重要的角色,它们提供了高效、便捷的工具来构建复杂的交互式3D或2D游戏。Unity游戏引擎是其中的佼佼者,它支持多种编程语言,包括C#,而C#脚本的运行正是通过Mono框架实现的。这...

    SnakeScript Java游戏脚本引擎 v1.1

    SnakeScript Java游戏脚本引擎 v1.1 是一个专为Java游戏开发设计的脚本引擎,它允许开发者使用一种特定的脚本语言,名为SnakeScript,来编写游戏逻辑和交互。这种引擎通常用于提高游戏的灵活性,使得非程序员的游戏...

    基于Java的实例源码-SnakeScript Java游戏脚本引擎 v1.1.zip

    在实际应用中,SnakeScript Java游戏脚本引擎 v1.1可以广泛应用于各种游戏类型,从简单的2D游戏到复杂的3D游戏。它允许开发者快速迭代游戏逻辑,同时保持游戏性能的优化,因为脚本执行是在Java虚拟机(JVM)中进行的...

    Go-Tengo是Go的可嵌入脚本语言

    Go-Tengo是Go语言的一个重要扩展,它提供了一种可嵌入的脚本语言能力,使得开发者能够在Go程序中执行动态脚本。这种特性在许多场景下非常有用,比如游戏开发、数据分析、自动化任务处理或者作为配置语言等。Tengo的...

    visual c++ HGE游戏引擎+Lua脚本的结合使用.zip

    在游戏开发领域,高效的游戏引擎和灵活的脚本语言是不可或缺的工具。Visual C++作为一款强大的编程环境,常常被用于游戏的底层系统构建,而HGE(Happy Game Engine)则是一款基于C++的开源游戏开发框架,它提供了...

    u3d常用脚本

    在提供的文件列表中,我们可以看到一系列与Unity3D脚本相关的资源,包括C#和JavaScript语言的示例。以下是这些脚本和概念的详细解释: 1. **Application.CaptureScreenshot方法**:这是Unity3D引擎提供的一个内置...

    基于Lua脚本开发的GGELUA简易2D游戏引擎设计源码

    该项目为GGELUA简易2D游戏引擎的设计源码,采用C语言编写核心,并集成了Lua、C++、Java等多种编程语言。该引擎包含738个文件,其中C源文件166个,头文件131个,Lua脚本79个,用户自定义文件66个,项目配置文件65个,...

    D语言的中文文档

    由于其强大的元编程能力和丰富的库支持,D语言也被用于编写编译器、脚本工具以及自动化测试框架。 **D_program.doc文档内容预览** 该文档可能是D语言的编程教程或参考手册,涵盖了D语言的基础语法、核心概念、标准...

    2D游戏引擎采用SFML C++库和Lua脚本语言.rar

    本资源"2D游戏引擎采用SFML C++库和Lua脚本语言"着重介绍了一种基于C++的开源框架——SFML(Simple and Fast Multimedia Library),以及如何结合Lua脚本语言来构建一个2D游戏引擎。 SFML是一个用于创建多媒体应用...

    演示如何使用 Dash 引擎 的示例 游戏_D语言_代码_下载

    同时,对于初学者来说,这是一个很好的起点,通过阅读和分析代码,可以深入理解D语言和游戏引擎的内部工作原理。此外,通过修改和扩展示例游戏,开发者还可以提升自己的编程技巧和创新能力。 总之,"Sample-Dash-...

    APPLEM2-2.5D引擎源码编译教程

    APPLEM2是一款开源的2.5D游戏引擎,其核心功能包括图形渲染、物理模拟、音频处理和脚本支持。它的源码通常由C++编写,可能还包含一些如Lua或Python这样的脚本语言,用于游戏逻辑和交互。 编译源码的第一步是确保你...

    hge.zip_2D游戏_HGE 引擎1.81_hge_hge 引擎_游戏引擎

    3. **物理引擎**:虽然HGE的物理模拟功能相对简单,但对于2D游戏来说已经足够,可以实现物体碰撞检测和简单的物理行为。 4. **资源管理**:HGE有强大的资源管理机制,能有效地加载、卸载和管理游戏中的图像、音频和...

    脚本化Java

    `ScriptEngine`是这个包中的核心类,代表一个脚本引擎实例,可以执行脚本并处理脚本的输入输出。`ScriptEngineManager`则用于获取特定类型的脚本引擎,比如通过文件扩展名`.js`来获取JavaScript引擎。`Bindings`接口...

    关于脚本的808个简易代码教程

    Unity和Unity3D是全球广泛使用的跨平台游戏引擎,它们支持多种脚本语言,如C#、JavaScript(UnityScript)和Boo。这个名为"关于脚本的808个简易代码教程"的资源显然为学习者提供了丰富的实践示例,帮助他们理解和...

    E3D引擎代码

    6. **脚本系统**:E3D引擎可能会集成一种或多种脚本语言,如Lua或Python,以便非程序员也能通过脚本控制游戏逻辑。 7. **用户界面(UI)**:可能包含创建和管理2D用户界面的代码,用于显示菜单、提示信息和游戏状态。...

    游戏脚本高级编程附带资料.7z

    2. **C#与Unity**:Unity引擎广泛使用C#作为其主要脚本语言,它的脚本系统允许开发者快速构建游戏逻辑。Unity提供了丰富的API和可视化编辑器,使游戏开发更加直观。C#的特性如事件处理、委托和异步操作在Unity中尤为...

Global site tag (gtag.js) - Google Analytics