📄 index.html
字号:
我生气是因为我知道,无论我花多少钱,无论我如何不惜血本追求最高的性能。无论我把多顶级的硬件塞入我的机箱内,我的投资还是会在几个月之内贬值。Intel(或者AMD,或者Cyrix,或者其它什么公司)很快就会拿出更便宜更快的CPU;3DFX(或者nVidia,或者S3,或者其它什么公司)又会推出更快的图形加速卡,Aureal(或者Creative
Labs,或者......)又会展示出性能更诱人的声卡,如此这般,不一而足。绝望的铁杆玩家恨不能干脆买个游戏站回家算了。<br>
我知道,与我同舟的还有千千万万其它玩家。这并未使我感到有所安慰。相反,我感到脊梁发冷。<br>
别误会,我不是那种惧怕新事物把头埋进沙里的火鸡,我热爱新技术。不过有一点要搞清楚,电脑业过去几年的科技浪潮究竟给我们这些玩家带来了什么好处?游戏开发者又在何种程度上利用了这些新科技呢?不错,1997年的《雷神之锤II》的确比1996年的《雷神之锤》中好看些,而《雷神之锤》又比《毁灭战士》光洁些,《毁灭战士》又比《狼穴》漂亮些。不过除却增加了因特网多人联机功能外,许多人认为玩《雷神之锤II》并不比玩《狼穴》更有乐趣,更多的人认为它不如《毁灭战士》。而后又有了1998年的《虚幻》,要想玩转这个游戏,Epic
MegaGames公司“推荐”玩家使用奔腾200MHz MMX机型,可实际上用如此“低档”配置玩这款游戏可谓苦不堪言。尽管还有不少人争辩说《虚幻》作为单人冒险游戏要比《雷神之锤II》好,可《虚幻》作为多人游戏,在因特网上的表现却实在让人不敢恭维。<br>
不仅单人冒险游戏如此,其它的各种游戏(包括角色扮演和即时战略游戏)也都无一例外。想想Blizzard公司的《魔兽争霸》吧:当它刚刚问世时,它对机器的配置要求仅为20MHz的80386处理器,4MB内存,DOS
5.0平台,和一块普通的VGA显示卡。噢,假如你还想看过场电影的话,还得配一个光驱。当时仍守卫着80286的玩家可能会发出惊呼,坦率地说,我不记得了。可如今Blizzard公司的《星际争霸》的日子仅仅才过去了4年,可如今Blizzard公司的《星际争霸》所要求的最低配置便是奔腾90MHz,16MB内存,Windows95平台,与DirectX兼容的SVGA显示卡,还有一个高速光驱以便能欣赏过场电影。你用386玩《魔兽争霸》的日子仅仅才过去了4年,而今你要买一台新电脑时,别人会劝告你说不要把速度低于400MHz的奔腾II的东西抱会家,否则你前脚刚迈进门坎,那东西就过时了。<br>
倘若电脑的升级确实便宜而又简单,那情况也不算太坏。尽管ISA,PCI,还有AGP插槽使用调制解调器、声卡、以及图形加速卡的安装变得十分简便,但CPU的升级(他们说插上就行)却有些误导的成份。要想充分发挥一个新CPU的性能,你还得配上相应的芯片,那就意味着换一块新的主板。这对于“惜板如命”的玩家来说是件要命的事,就我了解的一些玩家看来,要他们升级时连板带CPU一起换掉,门都没有。<br>
有句老话说:“当心你所期望的东西,因为有朝一日你会拥有它。”可怜,这句话用在我们玩家身上竟如此贴切!曾几时我们曾那样企盼能受到重视,期望电脑业能留意到玩家的需求,意识到游戏的重要性,把它变为电脑“合法的”一部分。现在Intel、Microsoft和AMD转过头来了,他们都意识到我们这些玩家会第一个冲上去购买他们的新CPU、新芯片、新主板和新操作系统;Diamond
Multimedia、Creative Labs、以及3Dfx转过头来了,他们知道玩家会首先购买他们的声音和显示加速卡;甚至“苹果”也转过头来了,认为游戏将是他们下一代“麦金托什”的制胜法宝。在这里,购买是关键词,他们的“垂顾”使玩家得到了什么好处呢?不过是去购买一大堆硬的或软的新产品而已。<br>
假如游戏能像硬件技术一样突飞猛进该多好!为什么游戏的进展不能遵循“摩尔定律”,在18个月内有成倍的增长呢?在过去的18个月里,游戏的显示效果好了一倍多吗?游戏的AI聪明了一倍多吗?算了吧,玩家们只要求游戏里的BUG能少些,使他们不必浪费时间去下载补丁,就心满意足了。<br>
尽管说了这许多,最后我还是按捺不住要去买一台新的电脑。我将倾我所有去买一台新电脑。我将倾我所有去买最新最快的配置,为我匹新马尽可能上更多的装备。当我打开电源时,我会立刻调出我最喜爱的一个游戏(《虚幻》、《雷神之锤II》、《星际争霸》、或是《机甲司令》),然后睁大眼睛坐在那里,看看新技术究竟带来些什么。<br>
记得么?我说过我热爱新技术。</td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<table border="0" cellspacing="0" cellpadding="8" width="100%" bgcolor="#993399">
<tr>
<td width="78%"> <font color="#FFFFFF"><b>[ <font color="#CCCCCC">业界星空</font></b>
- 专访与杂谈<b> ]<a name="CGD-1.2.2"></a></b></font></td>
<td width="20%">
<div align="center"><b>责任编辑</b>:<span class="English">Mays</span></div>
</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="1" cellpadding="2" bgcolor="#993399">
<tr>
<td class="BGGrayMain">
<table border="0" cellspacing="0" cellpadding="10" width="100%">
<tr>
<td valign="top" colspan="2" class="WhiteBG">
<table border="0" cellspacing="1" cellpadding="2" align="right" bgcolor="#000000" width="33%">
<tr>
<td valign="top" class="BGRed" width="20%">
<div align="center"><font color="#CCCCCC"><b>供 稿</b></font></div>
</td>
<td class="BGGrayMain" width="80%"> <a href="http://www.gamefamily.com.tw/" target="_blank" class="BlackLink">游戏设计大师</a></td>
</tr>
<tr>
<td valign="top" class="BGRed" width="20%">
<div align="center"><font color="#CCCCCC"><b>作 者</b></font></div>
</td>
<td class="BGGrayMain" width="80%"> <a href="mailto:archerjean@mail2000.com.tw" class="BlackLink">简肇成</a></td>
</tr>
</table>
<font face="楷体_GB2312" size="6"><b><br>
<br>
<font size="5">程序员学习的方向</font></b></font><br>
<br>
<br>
程序员是一个辛苦的行业,很多公司的程序员加班没有加班费,自己设计的系统有问题的时候,还要二十四小时待命,有时为了一个Bug几天几夜没有休息,有时候写不出客户想要的系统又睡不着,有时想出一个很好用的架构,老板又不以为意,程序员真的如此命苦吗?<br>
<br>
<b>1、注重系统开发的所有流程</b><br>
其实,程序设计也是可以被规划的,只是因为写程序设计软件的弹性太大,所以忽略规划的事项,任何一本系统分析入门的书都会讲到系统规划的流程,但是我们都没有实际的去作完成每一个步骤,很快的就丢给程序员去作写程序代码的工作。<br>
其实,程序员自己应该负担大部分的系统分析的工作,这个跟大家头衔的认知有很大的关系,大家往往认为系统分析师是不用写程序代码的,而程序员主要的工作就只是写程序代码,所以中间的流程往往没有确实的完成,而程序员写出一个系统后,往往又是因为时间的因素,老板想要抢时机,忽略了品质的控制,造成不可磨灭的失败。<br>
<br>
<b>2、架构的讨论与分析</b><br>
一个系统一定会分成很多的模块,各种模块之间都有沟通的接口,我们往往因为维护了一个大的系统,不太敢去修改接口或是整个系统的架构,怕引发更大的问题,一个不断开发中的产品,系统架构是非常重要的,如果一定要修改,一定要分析讨论后进行,不要有鸵鸟的心态,除非该产品已经是夕阳产品,不会再有收入进来了。<br>
<br>
<b>3、各种平台与程序语言的了解</b><br>
没有一种永远好用的程序语言,而且各种的应用都随着市场及客户的需求再改变,所以学习新的程序语言是必要的,更何况语言的本身自己都一直再演变的,学习程序语言千万不可以只学习语法,或是只是会看的懂程序,要从原理根本的去学习,当然也不要一直学新的,就一直应用在新的系统上,造成后续太多的程序语言及语法存在一个系统,维护上的成本过大。<br>
除了给自己未来更大的学习空间之外,只要是好用的程序语言都可以应用在未来系统上面,例如C++刚出现的时候,我就看过有人在C的编译器下写出类似对象导向的程序代码,而那一段程序代码至今仍然不会退流行,程序代码的可透通性也很高。<br>
任何行业的专业领域常识不是一年就能完全熟悉的,大学的基础教育都是四年,更何况实际在业界应用的比大学的理论应该学习的还要更多,如果你选定了一个专业行业要往下扎根,千万不要一年两年就转换不同专业的程序设计,这样会让你的程序设计永远在做一个循环,表面上你学到了不同行业的专业领域,实际上只学习到皮毛,而学习到的只是不同的系统平台与程序设计方法,或许有人会愿意做到不同行业的学习,然后在选定一个行业来冲刺,这样也是可行,但是时光就这样淡淡地流逝了。<br>
<br>
<b>4、真正的团队合作意义</b><br>
团队合作并不是把自己分配到的事情完成就好了,其它的事务就是别人的事情,虽然软件开发有项目经理或是主任、组长的分配,但是程序员面对的不只是项目书面定义的接口而已,还有人与人的接口,把自己与别人定义好的接口做好只是做到六十分而已,软件系统在整合测试,甚至是上线的时候,都会因为考虑的不够周全而出现问题。
甚至是经验良好的项目经理都会遗忘重要的过程,更何况一个项目一项产品的推展,永远都是世界上唯一无二的系统,一个团队进行的合作不是一个会重复的项目,所以只要每一个人多用一点心了解别人在做的事情,互相Cover对方的事情,这样才能做到一百分的境界。
不要限制自己的未来 任何行业最怕的就是限制自己的未来,程序员目前看起来前途一片光明,一般公司最不会裁员的就是程序员,但是就是因为这样,程序员往往就在自己的习惯领域里面做事情,例如有人用C++写程序,他就不会用ASP或者是数据库的方式来解决问题,反过来说,有些人非常熟悉数据库,往往他就不知道档案系统或者是自行内存的配置来加速系统处理的效能,而这些事情往往决定了一个程序员的未来,人往往是把自己的未来限制在某一个领域。
广义的来看,程序员也不一定要一直写系统,他也可以有机会规划一个系统,从各个角度去完成一件工作,系统工程师维护系统的角度,客服人员面对客户的角度,业务人员与客户销售的技巧,这些都是要多方接触的,不要认为角色的定位而不去接触,如果程序员只是写程序,那么这一段路除非你有你够专业的技能。不然,路会愈走愈窄,风险也愈来愈高,我认识的人也有如此的,但是要自得其乐并不是非常容易。<br>
<br>
<hr noshade width="95%" size="1" align="center">
<br>
<b>作者简介</b><br>
简肇成/台湾省大时科技研发部经理,计算机软件的开发工作上已有16个年头。<br>
本文取自作者网络“软件创新设计”文章,有兴趣与他联络的(<i><font face="Times New Roman"><a href="mailto:archerjean@mail2000.com.tw" class="cLink">archerjean@mail2000.com.tw</a></font></i>)。</td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<table border="0" cellspacing="0" cellpadding="8" width="100%" bgcolor="#993399">
<tr>
<td width="82%"> <font color="#FFFFFF"><b>[ <font color="#CCCCCC">业界星空</font></b>
- 专访与杂谈<b> ]<a name="CGD-1.2.3"></a></b></font></td>
<td width="20%">
<div align="center"><b>责任编辑</b>:<span class="English">Mays</span></div>
</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="1" cellpadding="2" bgcolor="#993399">
<tr>
<td class="BGGrayMain">
<table border="0" cellspacing="0" cellpadding="10" width="100%">
<tr>
<td valign="top" colspan="2" class="WhiteBG">
<table width="37%" border="0" cellspacing="1" cellpadding="2" align="right" bgcolor="#000000">
<tr>
<td width="18%" valign="top" class="BGRed" height="19">
<div align="center"><font color="#CCCCCC"><b>原 文</b></font></div>
</td>
<td width="82%" class="BGGrayMain" height="19"> <a href="http://www.gamedev.net/reference/programming/features/davegpg/" target="_blank" class="cLink"><i><font face="Times New Roman">Game
Programming Beginners Guide</font></i></a></td>
</tr>
<tr>
<td width="18%" valign="top" class="BGRed" height="19">
<div align="center"><font color="#CCCCCC"><b>编 辑</b></font></div>
</td>
<td width="82%" class="BGGrayMain" height="19"><i> <font face="Times New Roman"><a href="http://mays.6to23.com" target="_blank" class="BlackLink">CGD.CN</a></font></i></td>
</tr>
<tr>
<td width="18%" valign="top" class="BGRed" height="19">
<div align="center"><font color="#CCCCCC"><b>译 者</b></font></div>
</td>
<td width="82%" class="BGGrayMain" height="19"> <i><font face="Times New Roman"><a href="mailto:xiaoyong.liang@xmedu.com" class="BlackLink">Sunlxy</a></font></i></td>
</tr>
</table>
<p><font face="楷体_GB2312" size="6"><b><br>
<br>
<font size="5">游戏制作入门指南</font></b></font><br>
<br>
<br>
我经常被问及:一个具有很少甚至没有编程经验的人要如何开始游戏制作。直到目前为止,我总是尽我所能一个一个解答。然而,问题的数量已经增长到了一个难以处理的水平,于是,我便决定把所有的建议汇总在一篇文章里作为参考提供给人们。<br>
这篇文章主要面向那些想开发自己的游戏,但仅有一点点或没有半点编程经验的人们。实际上,我也假定读者根本没有任何的编程知识。我将把重点放在游戏开发的编程和设计方面,而不是艺术方面。我也不准备对游戏行业进行论述(因为这个话题的资料太多了),但是,我会带你浏览一下在制作游戏之前需要做的一些事情。该说明的一点是,不要将我这里所介绍的方法当作唯一的或最好的学习游戏制作的路径,但对于我和其他人来说,它是有效的。<br>
<br>
<b>1、选择一门语言</b><br>
第一件要做的事就是选择一门语言。你有一大堆的选择,包括Basic、Pascal、C、C++、Java等等,同样也有一大堆关于哪门语言最适合初学者的争论。欲了解各种语言的优缺点,请参阅《<a href="http://vip.6to23.com/mays/develop/beginer/200111/LanguageFAQ.htm" target="_blank" class="cLink">我该使用什么语言</a>》。<br>
<span class="EtoC"> </span> 我这里建议使用C和C++。有些人认为这些语言对于初学者来说太难了,但从我个人角度来说我是反对这个观点的,因为我自己就是从C++起步的。另外,C/C++是目前最广泛应用的语言,因此,你能找到大量的资料和帮助。至于先学C还是先学C++的问题不大,因为一旦你学习了其中一种,再学习另外一种就没太大问题了。不过,如果你一开始就选择C++,请确信在学习面向对象编程之前,你已经了解并掌握了面向过程编程(比如说,如果你在不使用类的前提下仍无法编好程序,先不要急于学习类)。<br>
如果你发现学习C/C++是一件很困难的事,不要紧,回过头选一门比较简单的语言来学,比如Basic或Pascal。不过我认为,如果你坚持下去,并找一些好的资料,学习C/C++的问题不大。<br>
你的下一个问题是:“我如何学习C/C++?”我很高兴你问这个问题。最好的方法是去听课。有没有老师帮助解答问题,对于你的发展影响巨大,而且编程作业将确保你确实掌握了所学的东西。<br>
如果听课不在你的考虑范围内,下一个最好的办法就是找一些好书。不要把注意力放在那些“大全”书上,因为你终究会买几本。我建议你去一个本地书店,花点时间浏览一下介绍C和C++的书,直到找到你能理解并能从中学到东西的一本。同时,你可能还想买几本进阶书或是一本参考书,但一旦你具有了这门语言的部分知识,你会对你需要什么有更好主意。可以在网站<span class="EtoC"><a href="http://www.gamedev.net/columns/books/" target="_blank" class="cLink">BOOKS</a></span>频道中找到一些建议。<br>
在此,我简要的说明一下我见过的很多入门程序员,尤其是年轻人关心的事情:没有钱买书或其他东西。首先,有许多资源是免费的,包括图书馆和<i><span class="EtoC">Macmillan
Computer Publishing</span></i>(他们的网站 <a href="http://www.mcp.com/personal" target="_blank" class="cLink"><font face="Times New Roman"><i>www.mcp.com</i></font></a>
上有数百本编程的书)。其次,如果你想成为一名优秀的程序员,你不得不考虑在这上面的投资。利用各种合法的手段去弄点钞票来。<br>
网络上有大量的C和C++的学习教程,但是我认为这些教程作为你学习书本的参考要比作为单独的材料好得多。<br>
<br>
<b>2、选择合适的编译器</b><br>
<b> </b> 你写的程序,或源码是以文本文件存储的,你甚至可以用记事本来写C/C++程序。但是,必须有样东西能把这些源码转化成一个可执行文件。对于C和C++来说,这样东西就是一个编译器。<br>
<span class="EtoC"> </span> 现在有大量的编译器存在,其中有许多是免费的。选择一个合适的编译器是非常重要的,而免费编译器有个好处就是你能一个一个的试,看哪个你最喜欢。但是,免费编译器经常是比商业编译器功能少或缺少良好的技术支持。幸运的是,大多数商业编译器都有与完整版功能相同,但价格便宜许多的介绍版或学习版,唯一的限制是,你不能发布使用该编译器开发的程序(这点你肯定维持不久)。<br>
基本上,你选择什么样的编译器取决于你能花多少钱、你将在什么操作系统和平台上开发程序。如果你准备为Windows作贡献,我强烈建议使用微软的Visual
C++。它具有一个功能强大的开发环境,能让你倍感轻松,再也没有其他编译器能比它更适合开发Windows软件了。如果你是名学生,你可以以极低的价格获得一份拷贝。如果你准备在DOS下开发程序,你最好使用免费的DJGPP。<br>
<br>
<b>3、选择一个目标平台</b><br>
<b> </b> 虽然你可能最终会为各种平台开发程序,你还是应该选择其中之一进行学习。当你学习语言的时候,在没进入图象编程之前,你大概想使用一个非GUI的操作系统,比如DOS或UNIX。这有助于你将注意力集中在语言学习上,从而避开一些高层的问题,如Windows编程。<br>
<span class="EtoC"> </span> 不过,一旦你准备开始制作游戏,你就该考虑转换你的目标平台了。一下是几个常用的平台:</p>
<ul>
<li> <b><font face="Arial">Windows</font></b><br>
如果你想在游戏行业里专职工作,或者你想让一大群人玩你的游戏,那么Windows是你的首选。你的目标客户大多数使用Windows,且这个情况不会很快改变。目前大量的Windows游戏使用一种你大概听说过的名为DirectX的技术。DirectX是一个允许你直接操作硬件的程序库,你可以依靠它写出高性能的游戏来。<br>
<br>
</li>
<li> <b><font face="Arial">DOS</font></b><br>
它曾经是游戏的主要平台,但这已是昨日黄花。虽然有些爱好者仍然在为DOS开发游戏,但是已经没有商业游戏是为DOS开发的了,而且,DOS正由于微软停止对它的支持而走向衰败。如果你刚开始做游戏,别选择DOS,如果你已经这样做了,不要再停留了。注意:因为有很多游戏编程的书是为DOS写的,学习这些书时可能会认为在DOS里开发游戏有理有据。但是,随着Windows游戏编程书籍数量的增长,这种争论变得越来越少,也越来越没有意义。<br>
<br>
</li>
<li><font face="Arial"><b>Linux</b></font><br>
它是UNIX的一个变种,由于它具有稳定、便宜、反微软情节等多个因素,它正变得越来越受欢迎。虽然目前的Linux用户还比较少,但是随着它的热爱者和市场的潜在增长,它也成为了作为目标平台的可行选择。<br>
<br>
</li>
<li> <font face="Arial"><b>Macintosh</b></font><br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -