游戏编程语言的介绍及openGL与directX的区别

2022-07-15 12:14:24   第一文档网     [ 字体: ] [ 阅读: ] [ 文档下载 ]
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。下载word有问题请添加QQ:admin处理,感谢您的支持与谅解。点击这里给我发消息

#第一文档网# 导语】以下是®第一文档网的小编为您整理的《游戏编程语言的介绍及openGL与directX的区别》,欢迎阅读!
编程语言,区别,directX,openGL,介绍

游戏编程语言的介绍及openGLdirectX的区别

一、游戏编程语言的介绍及其优缺点

游戏编程语言包括:C语言,C++,汇编语言,Pascal语言,Visual BasicJava等,在某些应用程序中,总有一些计算机语言优于其他语言。下面是几种用于编写游戏的常用的编程语言的介绍及其特点。 1C语言

与第一代高级编译语言相比,C语言被设计成更精巧、更简单的版本,它适于编写系统级的程序,比如操作系统。而且它第一个使得系统级代码移植成为可能的编程语言。C语言支持结构化编程,也就是说C的程序被编写成一些分离的函数呼叫(调用)的集合,这些呼叫是自上而下运行。因此,C程序比起集成性的FORTRANCOBOL的“空心粉式代码”代码要简单得多。事实上,C仍然具有GOTO语句,不过它的功能被限制了,仅当结构化方案非常复杂时才建议使用。正由于它的系统编程根源,将C和汇编语言进行结合是相当容易的。函数调用接口非常简单,而且汇编语言指令还能内嵌到C代码中,所以,不需要连接独立的汇编模块。

优点:有益于编写小而快的程序。很容易与汇编语言结合。具有很高的标准化,因此其他平台上的各版本非常相似。

缺点:不容易支持面向对象技术。语法有时会非常难以理解,并造成滥用。

移植性:C语言的核心以及ANSI函数调用都具有移植性,但仅限于流程控制、内存管理和简单的文件处理。其他的东西都跟平台有关。比如说,WindowsMac开发可移植的程序,用户界面部分就需要用到与系统相关的函数调用。这一般意味着你必须写两次用户界面代码,不过还好有一些库可以减轻工作量。

C语言编写的游戏:非常非常多,如半条命等。 2C++

C++语言是具有面向对象特性的C语言的继承者。有许多可用的对象库存在,这使得编程简单得只需要将一些程序“建筑材料”堆在一起(至少理论上是这样)C++总是辩论的主题,尤其是在游戏开发论坛里。有几项C++的功能,比如虚拟函数,为函数呼叫的决策制定增加了一个额外层次,批评家很快指出C++程序将变得比相同功能的C程序来得大和慢。C++的拥护者则认为,用C写出与虚拟函数等价的代码同样会增加开支。

John Hattan(德克萨斯州的Watauga里最大的软件公司的主要负责人)认为,C++的额外开支只是使用更好的语言的小付出。批评家正确的指出使用高级语言编写的程序天生就比手写的汇编语言来得慢,而且必然如此。而高级语言支持者认为这么点小小的性能损失是值得的,因为COBOLFORTRAN程序更容易编写和维护。

优点:组织大型程序时比C语言好得多。很好的支持面向对象机制。通用数据结构,链表和可增长的阵列组成的库减轻了由于处理低层细节的负担。

缺点:非常大而复杂。与C语言一样存在语法滥用问题。C慢。大多数编译器没有把整个语言正确的实现。

移植性:比C语言好多了,但依然不是很乐观。因为它具有与C语言相同的缺点,大多数可移植性用户界面库都使用C++对象实现。

使用C++编写的游戏:非常非常多。大多数的商业游戏是使用CC++编写的。最大的商业游戏,包括第一人称射击游戏很多并没有使用C++。但是,这些程序的作者即使使用老C的格式,他们通常坚持使用面向对象编程技术。 3Java

Java是由Sun最初设计用于嵌入程序的可移植性“小C++。事实证明,Java不仅仅适


于在网页上内嵌动画 它是一门极好的完全的软件编程的小语言。“虚拟机”机制、垃圾回收以及没有指针等使它很容易实现不易崩溃且不会泄漏资源的可靠程序。它丢弃了很多C++的复杂功能,从而形成一门紧凑而易学的语言。要在Java里写非面向对象的程序就像要Pascal里写“空心粉式代码”一样困难。

优点:二进制码可移植到其他平台。程序可以在网页中运行。内含的类库非常标准且极其健壮。自动分配合垃圾回收避免程序中资源泄漏。网上数量巨大的代码例程。

缺点:使用一个“虚拟机”来运行可移植的字节码而非本地机器码,程序将比真正编译器慢。有很多技术(例如“即时”编译器)很大的提高了Java的速度,不过速度永远比不过机器码方案。

移植性:最好的,但仍未达到它本应达到的水平。低级代码具有非常高的可移植性,但是,很多UI及新功能在某些平台上不稳定。

使用Java编写的游戏:网页上有大量小的Applet,但仅有一些是商业性的。有几个商游戏使用Java作为内部脚本语言。(据说,暴雪的魔兽世界服务端是JAVA开发的) 4、结论(Conclusion

C适于快而小的程序,但不支持面向对象的编程。C++完全支持面向对象,但是非常复杂。Java有很多简洁的功能,但是慢。创作工具可以以最快的速度产生你的程序,但是仅对某一些类型的程序起作用。(来自:游戏开发资源网) 二、openGLdirectX的区别 1、概念:

OpenGL最初是由Silicon图形公司开发的底层图形库规范。它允许你使用几何集合(点,线,多边形,图像等等)来描述你希望表现的场景。让肉眼观察起来较为舒适的中等规模场景,通常在毫秒级的速度上实现,这意味着该库文件有足够的能力来支持你创建一个生机勃勃的虚拟世界。www.weste.net

DirectX(简称:DX)是微软推出的一套基于Windows系统的多媒体应用程式接口APIs函式。它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计人员一个共同的硬件驱动标准,游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。www.weste.net 2、区别:

OpenGL 只是图形函数库。

DirectX 包含图形, 声音, 输入, 网络等模块。 单就图形而论, DirectX 的图形库性能不如 OpenGL

OpenGL稳定,可跨平台使用。但 OpenGL 多需要显卡支持.

windows平台上的游戏,当然是DX。想跨平台、做科学计算程序、做CAD 、做分布计算、做工业级应用,最好用OpenGL

当然你要是对COM不感冒,或是想活得轻松一点,还是OpenGL吧。

其实DX之所以是游戏首选平台是因为它速度快,在过去支持OpenGL加速的家用卡 游戏卡很少,而软件计算很慢。但从TNT2/Voodoo3开始,OpenGL已经是非常理 想的游戏平台了,而在geforce256savarage2000+为代表的四代卡上OpenGL已经 是极为理想的游戏平台了:够快,够眩!另一方面到DX7这套东西质量已经相当不 错了,与OpenGL差距已经很小了,而且是M$的东西„„就看你怎么想了,如果想 学得快,用得爽,调试方便,就选OpenGL,如果已经适应COM体系的思想那当然是 DX自然。




本文来源:https://www.dywdw.cn/1a05b0ebb8f67c1cfad6b8f7.html

相关推荐
推荐阅读