手机版scratch下载 电脑编程软件

计算机编程软件
编程是每个游戏编程常见问题中的一个问题 。这个问题在游戏开发论坛一周问几次 。这是一个很好的问题,但是没有人能给出一个简单的答案 。在一些应用程序中,总有一些计算机语言比其他语言更好 。下面介绍几种主要的编写游戏的编程语言及其优缺点 。希望这篇文章能帮你做个决定 。1.C语言如果说FORTRAN和COBOL是第一代高级编译语言,那么C语言就是他们的孙儿 。c语言是丹尼斯里奇在20世纪70年代创造的 。它更强大,与ALGOL有更连续的继承,ALGOL是COBOL和FORTRAN的结构化继承者 。c语言被设计成一个比它的前辈更复杂更简单的版本,适合编写系统级的程序,比如操作系统 。在此之前,操作系统是用汇编语言编写的,不可移植 。c语言是第一种使系统级代码移植成为可能的编程语言 。C支持结构化编程,也就是说C的程序被编写成一个独立的函数调用(calls)的集合,从上到下运行,而不是像单个集成块代码一样使用GOTO语句来控制流程 。因此,C程序比集成的FORTRAN和COBOL“空心粉码”代码要简单得多 。其实C还有GOTO语句,只是功能有限,只有在结构化方案非常复杂的时候才推荐使用 。由于其系统的编程根源,将C语言和汇编语言结合起来相当容易 。函数调用接口非常简单,汇编语言指令也可以嵌入到C代码中,不需要连接独立的汇编模块 。优点:有利于写小而快的程序 。很容易和汇编语言结合 。它是高度标准化的,所以其他平台上的版本非常相似 。缺点:不容易支持面向对象技术 。语法有时很难理解,会导致滥用 。可移植性:C语言和ANSI函数调用的核心是可移植的,但仅限于进程控制、内存管理和简单的文件处理 。其他一切都与平台有关 。例如,为Windows和Mac开发可移植程序,用户界面部分需要使用系统相关的函数调用 。这通常意味着您必须编写两次用户界面代码,但幸运的是,有一些库可以减少工作量 。用C语言写的游戏:非常非常多 。资料:C语言经典之作《TheCProgrammingLanguage》 。经过多次修改,已经扩大到原来的三倍大小,但还是一本介绍c的优秀书籍,一个优秀的教程是《TheWaiteGroup"sCPrimerPlus》 。2.CC语言是C语言的继承者,具有面向对象的特点 。面向对象编程,或者说OOP,是结构化编程的下一步 。面向对象程序由对象组成,对象是离散的数据集和函数 。库存中有很多可用的对象,这使得编程变得如此简单,以至于只有一些程序“建筑材料”需要堆积在一起(至少在理论上) 。例如,有许多作为对象集合实现的图形用户界面库和数据库 。c一直是争论的话题,尤其是在游戏开发论坛 。虚函数等几个C函数给函数调用的决策增加了额外的一层,批评者很快指出,C程序会变得比功能相同的C程序更大更慢 。C语言的支持者认为在C语言中编写相当于虚函数的代码也会增加成本 。这将是一场持续的辩论,不可能很快得出结论 。在我看来,C语言的额外成本只是使用更好语言的一笔小开支 。同样的争论发生在20世纪60年代,当时高级编程语言如COBOL和FORTRAN开始取代汇编成为首选语言 。批评者正确地指出,用高级语言编写的程序天生比手工编写的汇编语言慢,这是不可避免的 。但是,高级语言支持者认为,这么小的性能损失是值得的,因为COBOL和FORTRAN程序更容易编写和维护 。优点:组织大型程序时比C语言好很多 。对面向对象机制的良好支持 。
【手机版scratch下载 电脑编程软件】常见的数据结构,如链表和可伸缩数组,减少了处理低级细节的负担 。缺点:非常大而且复杂 。有和C语言一样的语法滥用问题 。比c慢 。大多数编译器不能正确实现整个语言 。移植:比C语言好很多,但还是不太乐观 。因为它和C语言有相同的缺点,所以大多数可移植的用户界面库都是用C对象实现的 。用C写的游戏:非常非常多 。大部分商业游戏都是用C或者C写的信息《TheC++ ProgrammingLanguage》的最新版本很不错 。作为教程,有两个阵营 。一个假设你知道C,另一个假设你不知道 。到目前为止,最好的C教程是《Who"sAfraidofC++》 。如果你已经熟悉C,试试《TeachYourselfC++》 。3.我应该学习C还是从C开始,我不喜欢这个说法,但它是继“我应该用哪种语言”之后最常被问到的问题 。可惜没有标准答案 。你可以自己学C,用它来写程序,节省了很多时间 。然而,使用这种方法有两个缺点:你会错过面向对象的知识,因为它可能会使数据建模在你的游戏中更有效 。许多最大的商业游戏,包括第一人称射击游戏,都不使用C语言,然而,即使这些程序的作者使用旧的C格式,他们通常也坚持使用面向对象的编程技术 。如果你只想学C,至少自己学OO(面向对象)编程 。OO是模拟(游戏)的完美方法 。如果你不学习OO,你将不得不努力工作 。4.汇编语言显然,汇编是第一种计算机语言 。汇编语言实际上是计算机处理器实际运行的指令的命令形式表示 。这意味着您将处理处理器的底层,如寄存器和堆栈 。如果你正在寻找一种具有相关自我解释的类似英语的语言,这不是你想要的 。确切地说,你能用其他语言做的任何事情都可以编译,但没那么简单——当然,这就像你可以开车去某个地方或步行去那里,但这很容易或很难 。这是真的,但是新技术使东西更容易使用 。一般来说,汇编语言在游戏中不会单独使用 。旅行
戏使用汇编主要是使用它那些能提高性能的零零碎碎的部分 。比如说,毁灭战士整体使用C来编写,有几段绘图程序使用汇编 。这些程序每秒钟要调用数千次,因此,尽可能的简洁将有助于提高游戏的性能 。而从C里调用汇编写的函数是相当简单的,因此同时使用两种语言不成问题 。特别注意:语言的名字叫“汇编” 。把汇编语言翻译成真实的机器码的工具叫“汇编程序” 。把这门语言叫做“汇编程序”这种用词不当相当普遍,因此,请从这门语言的正确称呼作为起点出发 。优点:最小、最快的语言 。汇编高手能编写出比任何其他语言能实现的快得多的程序 。你将是利用处理器最新功能的第一人,因为你能直接使用它们 。缺点:难学、语法晦涩、坚持效率,造成大量额外代码 — 不适于心脏虚弱者 。移植性:接近零 。因为这门语言是为一种单独的处理器设计的,根本没移植性可言 。如果使用了某个特殊处理器的扩展功能,你的代码甚至无法移植到其他同类型的处理器上(比如,AMD的3DNow指令是无法移植到其它奔腾系列的处理器上的) 。使用汇编编写的游戏:我不知道有什么商业游戏是完全用汇编开发的 。不过有些游戏使用汇编完成多数对时间要求苛刻的部分 。资料:如果你正在找一门汇编语言的文档,你主要要找芯片的文档 。网络上如Intel、AMD、Motorola等有一些关于它们的处理器的资料 。对于书籍而言,《Assembly Language: Step-By-Step》是很值得学习的 。5、Pascal语言Pascal语言是由Nicolas Wirth在七十年代早期设计的,因为他对于FORTRAN和COBOL没有强制训练学生的结构化编程感到很失望,“空心粉式代码”变成了规范,而当时的语言又不反对它 。Pascal被设计来强行使用结构化编程 。最初的Pascal被严格设计成教学之用,最终,大量的拥护者促使它闯入了商业编程中 。当Borland发布IBM PC上的 Turbo Pascal时,Pascal辉煌一时 。集成的编辑器,闪电般的编译器加上低廉的价格使之变得不可抵抗,Pascal编程了为MS-DOS编写小程序的首选语言 。然而时日不久,C编译器变得更快,并具有优秀的内置编辑器和调试器 。Pascal在1990年Windows开始流行时走到了尽头,Borland放弃了Pascal而把目光转向了为Windows 编写程序的C++ 。Turbo Pascal很快被人遗忘 。最后,在1996年,Borland发布了它的“Visual Basic杀手”— Delphi 。它是一种快速的带华丽用户界面的 Pascal编译器 。由于不懈努力,它很快赢得了一大群爱好者 。基本上,Pascal比C简单 。虽然语法类似,它缺乏很多C有的简洁操作符 。这既是好事又是坏事 。虽然很难写出难以理解的“聪明”代码,它同时也使得一些低级操作,如位操作变得困难起来 。优点:易学、平台相关的运行(Delphi)非常好 。缺点:“世界潮流”面向对象的Pascal继承者(Mola、Oberon)尚未成功 。语言标准不被编译器开发者认同 。专利权 。移植性:很差 。语言的功能由于平台的转变而转变,没有移植性工具包来处理平台相关的功能 。使用Pascal编写的游戏:几个 。DirectX的Delphi组件使得游戏场所变大了 。资料:查找跟Delphi有关的资料,请访问:Inprise Delphi page 。6、Visual Basic哈,BASIC 。回到八十年代的石器时代,它是程序初学者的第一个语言 。最初的BASIC形式,虽然易于学习,却是可怕的无组织化,它义无反顾的使用了GOTO充斥的“空心粉式代码” 。当回忆起BASIC的行号和GOSUB命令,没有几个人能止住眼角的泪水 。快速前进到九十年代早期,虽然不是苹果公司所希望的巨人,HyperCard仍然是一个在Windows下无法比拟的吸引人的小型编程环境 。Windows下的HyperCard克隆品如ToolBook又慢又笨又昂贵 。为了与HyperCard一决高下,微软取得了一个小巧的名为Thunder编程环境的许可权,并把它作为Visual Basci 1.0发布,其用户界面在当时非常具有新意 。这门语言虽然还叫做Basic(不再是全部大写),但更加结构化了,行号也被去除 。实际上,这门语言与那些内置于TRS-80、Apple II及Atari里的旧的ROM BASIC相比,更像是带Basic风格动词的Pascal 。经过六个版本,Visual Basic变得非常漂亮 。用户界面发生了许多变化,但依然保留着“把代码关联到用户界面”的主旨 。这使得它在与即时编译结合时变成了一个快速原型的优异环境 。优点:整洁的编辑环境 。易学、即时编译导致简单、迅速的原型 。大量可用的插件 。虽然有第三方的DirectX插件,DirectX 7已准备提供Visual Basic的支持 。缺点:程序很大,而且运行时需要几个巨大的运行时动态连接库 。虽然表单型和对话框型的程序很容易完成,要编写好的图形程序却比较难 。调用Windows的API程序非常笨拙,因为VB的数据结构没能很好的映射到C中 。有OO功能,但却不是完全的面向对象 。专利权 。移植性:非常差 。因为Visual Basic是微软的产品,你自然就被局限在他们实现它的平台上 。也就是说,你能得到的选择是:Windows,Windows或Widnows 。当然,有一些工具能将VB程序转变成Java 。使用Visual Basic编写的游戏:一些 。有很多使用VB编写的共享游戏,还有一些是商业性的 。资料:微软的VB页面有一些信息 。7、JavaJava是由Sun最初设计用于嵌入程序的可移植性“小C++” 。在网页上运行小程序的想法着实吸引了不少人的目光,于是,这门语言迅速崛起 。事实证明,Java不仅仅适于在网页上内嵌动画 — 它是一门极好的完全的软件编程的小语言 。“虚拟机”机制、垃圾回收以及没有指针等使它很容易实现不易崩溃且不会泄漏资源的可靠程序 。虽然不是C++的正式续篇,Java从C++ 中借用了大量的语法 。它丢弃了很多C++的复杂功能,从而形成一门紧凑而易学的语言 。不像C++,Java强制面向对象编程,要在Java里写非面向对象的程序就像要在Pascal里写“空心粉式代码”一样困难 。优点:二进制码可移植到其他平台 。程序可以在网页中运行 。内含的类库非常标准且极其健壮 。自动分配合垃圾回收避免程序中资源泄漏 。网上数量巨大的代码例程 。缺点:使用一个“虚拟机”来运行可移植的字节码而非本地机器码,程序将比真正编译器慢 。有很多技术(例如“即时”编译器)很大的提高了Java的速度,不过速度永远比不过机器码方案 。早期的功能,如AWT没经过慎重考虑,虽然被正式废除,但为了保持向后兼容不得不保留 。越高级的技术,造成处理低级的机器功能越困难,Sun为这门语言增加新的“受祝福”功能的速度实在太慢 。移植性:最好的,但仍未达到它本应达到的水平 。低级代码具有非常高的可移植性,但是,很多UI及新功能在某些平台上不稳定 。使用Java编写的游戏:网页上有大量小的Applet,但仅有一些是商业性的 。有几个商业游戏使用Java作为内部脚本语言 。资料:Sun的官方Java页面有一些好的信息 。IBM也有一个非常好的Java页面 。JavaLobby是一个关于Java新闻的最好去处 。8、创作工具上面所提及的编程语言涵盖了大多数的商业游戏 。但是也有一个例外,这个大游戏由于它的缺席而变得突出 。“神秘岛” 。没错,卖得最好的商业游戏不是使用以上任何一门语言编的,虽然有人说“神秘岛”99%是使用 3D建模工具制作的,其根本的编程逻辑是在HyperCard里完成的 。多数创作工具有点像Visual Basic,只是它们工作在更高的层次上 。大多数工具使用一些拖拉式的流程图来模拟流程控制 。很多内置解释的程序语言,但是这些语言都无法像上面所说的单独的语言那样健壮 。优点:快速原型 — 如果你的游戏符合工具制作的主旨,你或许能使你的游戏跑得比使用其他语言快 。在很多情况下,你可以创造一个不需要任何代码的简单游戏 。使用插件程序,如Shockware及IconAuthor播放器,你可以在网页上发布很多创作工具生成的程序 。缺点:专利权,至于将增加什么功能,你将受到工具制造者的支配 。你必须考虑这些工具是否能满足你游戏的需要,因为有很多事情是那些创作工具无法完成的 。某些工具会产生臃肿得可怕的程序 。移植性:因为创作工具是具有专利权的,你的移植性以他们提供的功能息息相关 。有些系统,如Director可以在几种平台上创作和运行,有些工具则在某一平台上创作,在多种平台上运行,还有的是仅能在单一平台上创作和运行 。使用创作工具编写的游戏:“神秘岛”和其他一些同类型的探险游戏 。所有的Shockwave游戏都在网络上 。资料:Director、HyperCard、SuperCard、IconAuthor、Authorware 。9、易语言