“我该选择何种语言编程呢?”这个问题在游戏开发论坛上着实屡见不鲜,OGDEV上也不少。问题的本身不错,只是不容易回答罢了。有些计算机语言对于某些应用软件来说比其它语言更为适用些,在本文中,我将列出一些用于开发游戏的编程语言,并描述他们的特点,以及各自的优缺点,希望本文能对各位有用。
C
如果说FORTRAN和COBOL是第一代编译性(与之相对就是解释性的,比如ASP)高级语言,那么C就是他们的子孙辈了。C语言是由Dennis Ritchie在70年代发明的,它不但继承了ALGOL紧密连贯的特点,同时也从COBLO和FORTRAN中继承了结构化的特点。与它的前辈们相比,它更小巧、简单,适合编写诸如操作系统之类的系统级程序。而在C语言发明以前,操作系统是用汇编程序来写的,它的代码不可移植。C语言是第一个让系统级代码的可移植性成为现实的编程语言。
C语言支持结构化编程,这就是说,用C语言写的程序中的一些函数调用都是很严谨的,而不是简单的通过GOTO这样的流程控制语句的代码集合。因此,C语言比FORTRAN和COBOL的那种长而复杂的编程方式更容易掌握。实际上C仍旧有GOTO语句,但它的功能被限制了,人们通常只有在被逼无奈(结构化方案极其复杂)的时候才会选择使用它。
当然,它能轻易地与汇编语言相衔接,而且它的函数回调界面也相当简单,汇编语言指令可以与C代码相嵌,因此没有必要在独立的汇编语言模块中进行连接。
优点:在编写短小的程序时具有优势,能驾轻就熟地与汇编语言相衔接.由于它已非常地标准化,因此在其它平台上的版本都是类似的。
缺点:它并不是非常方便地支持面向对象技术。而且它的语法也难,常常让人云里雾里的不知所措。
可移植性:虽然此语言代码和ANSI函数调用都是可移植的,但是它局限于流程控制,内存管理,和简单的文件操作。其它的一切都是基于用户平台的。例如,如果想编写一个Windows和Mac之间可以互相移植的程序,那用户界面部分就得用基于系统的函数调用,也就是说你得写两次用户界面代码。当然各种库将会使此操作变得简单一点。
用C语言写的游戏是不尽其数的。
资源:关于C语言的教材最为经典的版本是《C语言编程》,此书已再版多次,其书本内容已扩充了三倍之多,但它仍是C语言入门的一本好书。另外,还有一本书叫作《The Waite Group"s C Primer Plus》,它也是学习C语言的一本不错的入门教材。
C
如果说FORTRAN和COBOL是第一代编译性(与之相对就是解释性的,比如ASP)高级语言,那么C就是他们的子孙辈了。C语言是由Dennis Ritchie在70年代发明的,它不但继承了ALGOL紧密连贯的特点,同时也从COBLO和FORTRAN中继承了结构化的特点。与它的前辈们相比,它更小巧、简单,适合编写诸如操作系统之类的系统级程序。而在C语言发明以前,操作系统是用汇编程序来写的,它的代码不可移植。C语言是第一个让系统级代码的可移植性成为现实的编程语言。
C语言支持结构化编程,这就是说,用C语言写的程序中的一些函数调用都是很严谨的,而不是简单的通过GOTO这样的流程控制语句的代码集合。因此,C语言比FORTRAN和COBOL的那种长而复杂的编程方式更容易掌握。实际上C仍旧有GOTO语句,但它的功能被限制了,人们通常只有在被逼无奈(结构化方案极其复杂)的时候才会选择使用它。
当然,它能轻易地与汇编语言相衔接,而且它的函数回调界面也相当简单,汇编语言指令可以与C代码相嵌,因此没有必要在独立的汇编语言模块中进行连接。
优点:在编写短小的程序时具有优势,能驾轻就熟地与汇编语言相衔接.由于它已非常地标准化,因此在其它平台上的版本都是类似的。
缺点:它并不是非常方便地支持面向对象技术。而且它的语法也难,常常让人云里雾里的不知所措。
可移植性:虽然此语言代码和ANSI函数调用都是可移植的,但是它局限于流程控制,内存管理,和简单的文件操作。其它的一切都是基于用户平台的。例如,如果想编写一个Windows和Mac之间可以互相移植的程序,那用户界面部分就得用基于系统的函数调用,也就是说你得写两次用户界面代码。当然各种库将会使此操作变得简单一点。
用C语言写的游戏是不尽其数的。
资源:关于C语言的教材最为经典的版本是《C语言编程》,此书已再版多次,其书本内容已扩充了三倍之多,但它仍是C语言入门的一本好书。另外,还有一本书叫作《The Waite Group"s C Primer Plus》,它也是学习C语言的一本不错的入门教材。