— 献给资深玩家和想要从事游戏研发行业的DDMM们
什么?你现在才开始尝试用计算机写程序?哇!那你太幸运了,现在是32bit甚至64bit高性能操作系统应用程序开发的鼎盛年代!什么你怎么没有感觉?那么我们就来回顾这段发展历程把,你就会明白原来自己是生活在蜜罐子里的人…
1995年以前:纯真的DOS年代:
我算是个幸运的程序员,学编程的时候都有MS-DOS 3.1系统了。不用像60-70年代的程序员们痛苦的用打孔纸的方式来告诉方头方脑的计算机做一点傻傻的工作…纯真的DOS年代有什么呢?咳,鼎鼎大名的东西太多了,当时如:Basic,GWBasic,QBasic,TurboC/C++,TPascal,FoxBase,Debug,MASM, DOS4GW 等等无数的好东东。虽然现在看起来他们是那么的弱小可爱…在这个时代里面计算机屏幕一片漆黑,闪动的几个白色的字符(80X25个字符每屏),这就是我们编程的全部了,尽管如此我还曾经用字符画图乐此不疲…越是初期发展越快,计算机分辨率从CGA(320 x 200)到VGA(640×480),SVGA(1024×786,1600×1280)仅仅经历了3年。
回顾计算机发展史上一个值得永远铭记的时刻1995年8月24日,微软公司在这一天发布了具有里程碑意义的Windows 95操作系统。
幸运的时代:Windows 95 的推出…
那时我第一次体验计算机开机二话不说直接就进入Windows系统的震撼,然后再看到Win95的Beta2 安装盘居然有23张3寸软盘?又惊讶了一番…带着无数惊讶和兴奋,还是学生的我厚着脸皮向当时在计算机公司工作的哥哥的同学借了软盘带回去安装… (也许是因为兴奋,23张软盘在路上不小心撒了一地,狼狈的我在大马路上捡了半天)
那时Win95刚刚推出,我就给她总结出三大特点:1、BUG 巨多,2、功能太少,3、速度太慢。我第一次安装是在当时486DX 80MHZ 8MB内存的计算机上,装好后觉得不好用,然后卸载掉,就用去整个下午的时间…但是后来还是坚持使用了Win95一次次崩溃,一次次的重新安装,不完全统计我安装Win95的次数在2000次以上,唉,她太不稳定了…(不过可能要谢谢Windows95的不稳定,让我锻炼出来了不怕麻烦不怕崩溃的性格?),Win95毕竟是革命性产品。当Visual Basic 4.0推出我就再也离不开她了,迷恋于体验 32Bit 操作系统“搭积木”似的编程。那时候感觉写Windows程序太简单了,后来用了一段时间才发现只会“搭积木”的方法无法写大型高效率游戏软件因为底层对开发者来说是不可见的,控件给你什么功能你就只能用什么没有发挥的余地,我只好又整天泡在新华书店整天的免费看书继续“研究”了…
Windows™ 95 自从有了你我就放弃了DOS 编程。不怕被上喜新厌旧的名头,因为那是未来必然的方向…
Windows 经过11年的发展,现在已经有 NT / 2000 / 2003/ XP 和很快要推出的Vista ,版本越来越稳定。以前神秘“NT”和Sever的新工艺,都用到普通的家庭版本中来了。当然在这个发展期间软件开发工具也更新换代好多次。下面来看:
游戏软件开发工具 TOP 8
第一名: Microsoft® Visual C++ 系列:
经典版本:VC++ 6.0 最新版本 VC.Net 2005
VC是当今世界上最强大的游戏软件开发工具之一,用它开发的游戏比天上的星星还多…
代表作: “Diablo 暗黑破坏神系列”、“魔兽争霸系列”、“星际争霸系列”、“模拟人生系列”、“帝国时代系列”等等等,几乎所有的大作都有VC的功劳;这是因为早期的DirectX 仅支持 C++ 所以大型游戏无疑都是C++编码的了。另外分析调研公司IDC指出,到2005年,使用C和C++语言的专业编程人员仍将是世界上最大的开发者群体。
Visual C++ 8 IDE 开发环境界面: (笔者还是怀念VC6那不花哨的界面,操作好像更有效率)
Visual C++ 2005 中的 C++ 编译加入了很多增强功能,其中之一便是 Profile Guided Optimizations (POGO)。POGO 技术使编译器能够测量应用程序的各种数据,并收集有关应用程序在运行时使用方式的信息。这些信息使 Visual C++ 能够基于真实的应用程序使用模式进一步优化生成的代码。Platform SDK (PSDK) 中附带有 64 位 POGO 技术的版本。
优点:功能强大,应用范围广泛,底层控制力强,据说Windows 系统80%的代码也是用C++完成的。
缺点:Visual C++ 是最复杂开发工具的代表。上手难,门槛高,做任何应用必需从较底层开始一点一点的逐步实现。
第二名:RAD 无罪,轻松有理: Borland® Delphi
经典版本:Delphi 3.0(被誉为VB杀手) 最新版本 Delphi 2006 (DeXter)
Borland 公司为参与游戏开发打开了方便之门,让更多原桌面应用程序员和游戏爱好者大胆的进入游戏开发者的行列中来…由于韩国的网络游戏大作:《千年》、《传奇》都是用Delphi 开发完成的让Delphi成为了专业游戏开发工具。所以有越来越多的人运用Delphi写大型游戏了。 RAD 的开发工具确为程序员省下大量做界面的时间,降低程序开发的成本和调试难度。
其实这么多的韩国游戏占领中国市场,中国的程序 “大师们”就别去炫耀自己的技术了,脚踏实地的开发一些东西。不要觉得Delphi 如何不如 VC,可是自己用了这么久的VC和其他复杂无比的高级工具,又都开发出来些什么呢?
建议初学者可以考虑使用类似Delphi这样的RAD开发工具,加入到游戏开发中来。让我们把更多的时间花在游戏程序本身算法和可玩性的制作中,而不是浪费在程序框架和界面实现中… Delphi是很多聪明程序员的选择,人气决定一切,偶就不多唠叨了。
Delphi 最新版本IDE界面
优点:快速开发,功能完备,VCL控件比OCX控件功能强且更好用。
缺点:Pascal 语言限制等。
第三名: Microsoft® Visual C#
在微软的不懈努力下,Visual C# 终于打败BCB 获得第3名:
Visual C# 是 Visual Studio.net 首次推出时的最大更新点。被誉为是VC和VB完美结合的产物,是Java虚拟机架构的C++编译器的结合,推出的目的就是打击JAVA市场。受够了MFC繁琐的程序员可以考虑用用。DirectX 8.0和后续所有版本里面已经加入了C# 的支持和示例程序、并有Pocket PC的应用程序开发支持等。现在 C# 的用户越来越多…
Visual C# 为Pocket PC 的Windows CE 平台提供了开发支持IDE(笔者用C#写了个简单的PPC事件提醒应用程序,感觉调试直观,可惜操作响应速度慢了点)
在 VC# 2005中还注入了语言和代码编辑器功能,这些功能将为 C# 开发人员提供“专注于代码的 RAD”,从而提高创建业务框架和可重用的面向对象组件的工作效率。这些功能包括泛型、迭代器、匿名方法、不完全类型以及重构。Visual C# 2005 还使 C# 开发人员能够使用不完全类型将包含大量源代码的类型分割到多个不同源文件。不完全类型提供更方便的开发和代码维护,使开发人员能够分隔计算机生成和用户编写的类型部分,以便更有效地补充或修改由工具生成的代码。
这些新特性和方便的Visual C# 集成开发环境,让老程序员们看到了都有相见恨晚的感觉,为啥当初的开发工具要做的那么变态的复杂呢…
优点:保持C++语法和特点,支持类RAD轻松界面实现,对微软各项功能组件支持完备。
缺点:推出较晚,编程资料和示例都比较缺少,有类似虚拟机的中间层,编译后的执行文件相对较大。
第四名:Borland® C++ Builder系列产品
经典版本:Borland C++ Builder 3.0 & 6.0 最新版本:Borland C++ Builder 2006
看透传统开发工具和RAD开发工具,摸穿MFC和VCL两套应用程序框架,他们只是包装一个薄一个厚,用法各异罢了!不记得在那看过:“真正的程序员用C+ +,聪明的程序员用 C++ Builder!”好像不是没有道理的!BCB优势还在于Visual Studio只支持 Windows 系统而 C ++ Builder 的工程则可以轻松的移植到其它的操作系统上!
Borland® C++ Builder 5 IDE界面 (笔者用来做过精灵编辑器,的确方便快捷)
用BCB 编程能引用DX和MFC等诸多资源, 个人认为用BCB来开发游戏编辑器和界面都是非常完美的选择…
优点:功能完备,兼容VC资源,传承TC,BC++ 经典强大的C++语言体系;
缺点:自身过于庞大,相对大型应用编译速度和调试不如VC方便;
n多大型小型游戏都有她默默无闻支持的身影…
Borland® 新作 C++ Builder X 和 C# Builder
C++ Builder X 和 C++ Builder是两个不同系列的产品,绝不是C++Builder6的续作
1、IDE是用JAVA制作的,速度上应该比现在的BCB慢。
2、支持100%的C++标准,应可以使用ACE、Loki和Boost库。
3、支持mobile开发的专门向导界面,这个非常新鲜。
C# Builder 2006 也是 Borland Developer Studio的组件,其功能为J2EE程序员所熟悉,如开源对象关系映像、透明对象永续性、UML 建模、交易处理和 ALM 支持,明显降低了开发和转换的复杂性。这样,C# 用户便可透过状态图进行设计,减省了花时间的低层次编程。因为C# Builder是最新推出的开发工具,目前对游戏方面的运用前景尚且不清楚。
我想 Borland C++ Builder 系列产品肯定是逼微软推出 Visual C# 的强大压力之一…
Borland® 是唯一能和微软在程序语言开发领域竞争的公司,有竞争才有发展,希望她一路走好…
第五名:Microsoft® Visual Basic® 系列:
经典版本:Visual Basic 4.0 & 6.0 最新版本: VB 2005
VB是号称世界上使用者最多的开发工具… 也是微软最早支持“拖拉点拽”来进行开发的程序语言。
VB程序员总是受到一定的压力,很多人认为VB是“玩具语言”但是VB程序员应该坚持:“不要为别人的眼神陶醉(VC),不要为别人的眼神卑微,我们知道自己是谁,不知道就洗洗睡!”的精神去认真运用自己喜爱的VB。
《Bill Gates 传记》里记载了当年盖茨和保罗一起开发了“4K Basic”销售成功后才建立了后来的微软公司,在微软创立初期还流传着一句话“凡是程序员搞不定的功能和算法,盖茨总能在周末用Basic实现出来”, Basic语言是微软的发家之宝,也是盖茨的最爱… Basic也是我的启蒙语言,也是我印象最好的程序语言。(用起来挺舒服的,大宝天天见?)
Visual Basic 6.0 IDE开发环境:(笔者的第一个游戏DEMO就是用VB写地)
无数中小型游戏都是VB开发的,代表作品如:日本KOEI的《水浒英雄传》等;
DirectX SDK 7.0 及以后的版本都提供了 Visual Basic的链接库和示例程序。以后用VB 开发的游戏一定会越来越多了。
Visual Basic 2005代码编辑器中的新功能可以通过提供与 Microsoft Word 拼写和语法检查类似的功能,将提出对常见语法错误的纠正。Visual Basic 2005 将与很多常见编程任务相关联的编码数量至少减少 50%。新的对象和方法将提供对 .NET Framework 中最常用功能的有效访问,这些功能包括与项目有关的资源(如窗体、数据源和 Web 服务)以及计算机级别组件(如打印机、文件系统和注册表)。
该示例对VB扩展显著简化常见操作所需的代码进行说明。
Visual Basic .NET 2003
Const GreetingName As String = "Greeting"Dim sDisplay As ObjectDim ResMgr As ResourceManagerResMgr = New ResourceManager("ResourcesSample.MyStrings",_Me.GetType.Assembly)sDisplay = ResMgr.GetString(GreetingName)
Visual Basic 2005
My.Resources.MyStrings.Greeting
优点:微软强力支持,入门简单,对理解Windows窗体编程和面向对象编程很有帮助。
缺点:底层控制能力不够,大型项目制作相对吃力;大量业余人员使用VB制作了n多低品质产品给VB用户带来一些不好印象。
随着Visual C# 的热门(VB的优点VC#都有了,并且更加强大),竞争使Visual Basic受到不少冷落…
PS:编程主要是看程序员,程序员本身有条理有算法基础,编写的程序自然优秀。VB经常做出一些相对低质量的应用是和它的门槛低有关,而不是VB本身不够强大。
第六名 Visual J# & Borland® JBuilder
Java到底是一种什么样的语言呢?Java是一种简单的面象对象的分布式的解释的健壮的安全的结构中立的可移植的性能很优异的多线程的动态的语言。好累的一句话…
Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。Java语言的简单性主要体现在以下几个方面:
1) Java的风格类似于C++。从某种意义上讲,Java语言是C及C++语言的一个变种,因此,C++程序员可以很快就掌握Java编程技术;
2) Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理;
3) Java提供了丰富的类库;
4) “移植性好的Java语言已成为移动平台的标准在手机游戏等领域大行其道”,这句话一直是Java程序设计师们的精神指标,也是Java之所以能够受到喜爱的原因之一,最大的功臣就是JVM的技术。其他程序语言如果需要在三种CPU( 如x86、SPARC 和MIPS)上运行同一程序,都必须编译三次和做很多针对性的代码调整。而JAVA完全的克服了这个问题,一次代码一次编译适合全部的架构。
Borland® JBuilder 是最早一批拥有手机等移动设备的JAVA开发环境。而微软又落后了,MS Visual J# 是在 Visual Studio.net 2003 才出现的新语言;
第七名 J2EE Web游戏服务创建的支持平台
J2EE 是一种利用Java语言的标准体系结构定义,如今,利用它,各公司可以更为方便地在中间层加速分布式部署。在企业开发工作中利用这种体系结构,开发者将不必担心运行关键商务应用所需的“管道工程”,从而可以集中精力重视商业逻辑的设计和应用的表现。更加适合动态网络平台方面的开发,可以用于构件网络. net客户端可以学做《可乐吧》那样的Web游戏门户站点,基于IE发行,降低门槛,让游戏成为随时随地的休闲产品。
第八名 Macromedia® Flash Action Script
虽然严格的说Flash不算开发语言,但是我想大家都应该玩过Flash 制作的游戏吧,他的图形处理能力变态的丰富,让传统程序开发人员羡慕不已,特别是Flash的传播优势是任何语言都望尘莫及的。
如今Flash Action Script 语言越来越强大,已经可以写出高水准的算法甚至AI,再结合Socket技术可以完成网络积分上传和对战的功能要求等。
优点:资源压缩能力强,IE支持播放,发行无障碍,不需安装;
缺点:独立的脚本语言体系,代码执行效率低,不能调用DX等底层组件。
主流的开发工具排行出来,其实游戏开发工具和其他应用软件开发工具一样都是标准的程序语言,只不过游戏开发的乐趣可能比传统软件来得多些而已…
PC游戏开发共用资源:DirectX™ SDK
Direct X的前身是Windows 3.1 下面的WinG 游戏API库,到了Windows 95改名DX,有了更强大的功能:著名的《Diablo》就是用DX3.0 版本为基础开发的,让全世界了解了DX的能力,微软的“X”标致着4个触角伸向游戏开发的方方面面。
http://msdn.microsoft.com/directx/ 微软DX开发者资讯中心页面
DirectX 包括:DirectDraw, DirectShow,DirectSound,DirectPlay,Direct3D等。支持了游戏的开发必需的各项技术,允许程序调用硬件底层,大大提升游戏执行效率和表现力。
DirectX 9.0c 代表游戏画面:《帝国时代3》和《魔戒:中土战争2》
如今DX9.0c开放了对 Visual Basic,Visual C# 和Borland® 系列开发工具的支持。又一次降低了游戏开发的门槛,让程序员有“更多选择,更多欢笑”…
不得不说的OpenGL:
大多数玩家真正认识到OpenGL应该从Quake Ⅱ及其一系列衍生游戏开始。其实,自1991年起,OpenGL就是一个专业3D图形API,只不过它更多的应用于专业设计领域,如CAD和虚拟现实等。有意思的是,OpenGL的原始开发者和支持者是微软和SGI。微软还曾想将OpenGL并入DirectX中,但最后未能如愿。从此以后,微软将全部精力都放到了开发和完善DirectX中。而OpenGL的发展则由几个厂商共同把持,这些厂商为了各自的利益(包括知识产权和竞争关系)均不愿为 OpenGL的发展提供技术,因此OpenGL的发展也慢了下来,唯一的改进就是时不时会推出一些针对专用软件的扩展指令集,而彼此又互不兼容。随着 DX9的越来越普及OpenGL应用受到冷落。
网络游戏开发离不开的数据库的支持:排名Top 3
Top 1、SQL Server 已经被集成进Visual Studio® 2005 大家庭成为其标准组件,从而使开发人员能够使用其目前用于编写托管组件和应用程序相同的工具来生成和部署数据库对象。SQL Server 支持C/S模式功能强大价格相对合理,《传奇》系列网游就采用了SQL Server;
Top 2、My SQL 速度和效率都不错,功能也足够完善。基本可以免费使用,足够满足大型网游服务器的数据库要求。
Top 3、Oracle号称最牛的数据库,据说全球最大的“亚玛逊”网上书店超大流量就是Oracle数据库底层的支持,但是维护和授权成本都过高。
更多的支持:
1、8X86汇编语言
如果有团队用全汇编开发大型游戏的话,那么估计会加大10倍的开发时间,获得2倍的程序执行效率。所以汇编语言仅仅用于辅助游戏开发和为游戏引擎提供底层支持服务比较合适。
2、MSDN
微软提供的开发者帮助文档,现在发展到 4CD 的容量,里面的资料和文字可能一辈子也看不完…并且VB和VFP有全中文帮助哦。(传说MSDN出了完美简体中文版本,但偶不是很相信,这么多资料翻译下来要多么的恐怖呀)
3、Internet:
微软在Internet领域早期比较滞后,直到1997年才开始醒悟,当微软副总裁对盖茨说:“我们是不是应该成立一个互联网部门?”盖茨回答到:“说的很对,这个部门就叫做微软公司”。网络对游戏的影响是革命性的,国内游戏研发完全进入网游时代… Internet成为了游戏的最主要载体和发行平台。
开发资源总结完了,最后看看软件领域的竞争,这些竞争将决定未来:
1、开发工具领域的竞争
Borland® 公司成立于1993年,曾经是世界第三大软件公司。在软件开发公司领域 Borland 公司几乎是高品质软件代名词!DOS时代 Borland Turbo C/C++ 独领风骚,风靡全球。当时 Borland 和 Microsoft 在开发工具领域好比电影里面:“周星驰”和“吴孟达”的主配角地位关系,Microsoft 公司的员工们都认为公司里面最笨的人都在 C/C++ 开发组里了。
DOS时代最强大的开发工具:由Borland公司推出的Turbo C/C++ 2.0 IDE 开发环境界面
DOS时代PC游戏的代表作品:C&C 开发环境:DOS4GW
即使在Windows 3.x 流行的年代 Borland C++ 仍然占据上风,但是 Microsoft 毕竟财大气粗,开始挖 Borland 公司的墙角,据说后来 Visual C++小组 60% 的人员都是从Borland 挖来的。商业竞争就是这样残酷的…从 Windows 9x 推出,Visual C++ 逐渐的抬头,毕竟没有谁能比 Microsoft 自己更好的利用 Windows® 系统的特性。Microsoft® 的操作系统主场优势又一次被发挥出来。(上一次是微软用IE掐死Netscape的故事)
Borland®公司也只好无奈的安慰自己,唱着“不做大哥好多年”。但是 Borland 还有自己绝对的优势和 Microsoft 抗衡着。据说 Microsoft 曾经多次召安 Borland 公司都被拒绝了。如果真的连 Borland 公司的属于 Microsoft 了,就真没有竞争了,那么软件工具舞台就无趣的多了。
Borland 的开发工具从技术上讲的确称得上是无与伦比的卓越。在 Microsoft 开发工具的巨大压力下,一样保持有拳头产品并且亭亭玉立。有人说这场 C++的战役是圣战,“虽然已经过去许久的时间,但是我们仍然忘不了这个商业需要的惨烈战役”。
Borland® 和 Microsoft® 开发领域的战争仍在继续…
微软最新作品:Visual Studio 2005简体中文版安装界面 (越来越人性化了,你看都出现人的照片了)
Visual Studio 推出以后,明显超越Borland 公司产品,对于国内程序员来说VS2005的简体中文版本更加有优势:出错提示,帮助文档都汉化的很彻底。并且加入了“代码语句提示”系统让程序员可以减少50%的代码语句输入和记忆工作(但建议机器配置不高者勿体验VS2005)
Borland 最新作品:全平台语言Borland® Enterprise Studio 2006 是 Borland® Kylix™ 的革新产品,吸取了VS2005的IDE集成操作优点。
Borland® Enterprise Studio 2006 IDE界面
这个开发工具支持在 Windows,Linux X-Windows平台下开发应用程序,并首次提供了对 UNIX 平台的支持…
有人说: Microsoft 和 Borland 的产品好比一个是“倚天剑”一个是“屠龙刀”。如果给不会“武功”的人,无论那把都是发挥不出战斗力。
2、操作系统的竞争:MAC OS X VS Windows Family
Microsoft® Windows Vista™ 目前是万众瞩目的焦点,她将代给用户新体验从而刺激硬件出现新发展生机。期待理由:支持32Bit和64Bit 双模式和集成了DX 10 (当初win95就是支持 16bit 和 32 bit 双模式过渡,最终带领大家走到了32bit时代)
强大的竞争对手:Apple Mac OS X (终于登陆X86架构的PC市场)
Mac OS X 是Macintosh操作系统的简称,是由Apple公司开发图形操作系统。传说Windows 当年抄袭了OS的创意。许多媒体程序,如Adobe Photoshop、Macromedia Flash、Author Ware、Director都是从Mac OS上移植过来的。因此,Mac OS可以吸引大批多媒体和Web内容开发者来投入其中。可惜的是,很多人没有见过Mac OS,因为它主要用于苹果机上(PowerPC),对机器的要求比较高,在个人电脑X86架构无法安装。
在Mac OS中的许多操作和Windows中完全一样,也有桌面、程序组、双击打开等等概念。如今,Apple公司推出了在X86 PC架构运行的Mac OS,就意味着您的电脑可以像安装Windows那样安装苹果操作系统了。2个伟大的操作系统终于出现在同一个平台,开始了竞争,对于用户来说实为幸甚。
无论是程序语言还是操作系统都在风云变换,很多人感叹:程序员的前途何在? “三十岁还能编程么,程序员淘汰率高么?”。偶个人认为程序语言和操作系统的发展趋势反而使得程序员越来越好做了,写程序越来越简单了。就像如今还是汇编代码的效率最高一样,以前学了的知识总是有继承性的。把程序员职业进行到底,就是永远有价值的程序员;只要我们可以在编程中找到乐趣,感受到一种平常生活中无法找到的成就感就可以了。何必在乎其他的?
作者注:本文参考作者于2002-10-18 写的《游戏开发工具小检阅》一文
原创文章,转载请注明出处。
转自:npc6.com