游戏是这样做出来的!

KingofMagic 2005-05-15 05:54:30
看了很多人提这样的问题,也有很多人参考很多书,我在学做游戏时也参了一些书,但是都是讲一点基础的东西,感觉不是很全面。
我一直想写一本书将如何做游戏,当然不会像一般的书上讲的什么图形基础、C语言知识等肤浅的东西,但是一直没时间,而且我还想办培训学校(目前的培训学校简直只是收钱,什么砖家,屁,都是些大学的教授,教个书都讲不清楚,别说自己做过游戏了)。我的培训学校由我亲自将一个游戏是如何做成的讲给大家,
因为我一个人完成了一个网络游戏(大家肯定要问我完成的是什么游戏,现在还在内侧中,所以说出来你们也不知道)。但现实不允许:写书没时间,我要工作,不然会饿死的;办培训学校没资金。所以只能罢了,但我还是要说说理论上如何做游戏。以免很多人浪费时间。
有人要说你是谁,怎么这么大口气?其实我是无名小卒,我只有一个特长,那就是不用别人告我游戏怎么做的,我自己就能想到,当然这是天生的才能,也许就是别人说的天才吧!不过只是做游戏方面的天才。我在2000年毕业,2003年5月开始为我的一个游戏创意找风险投资,当然我是做技术的,也就是一般的程序员。11月正式进入游戏行业,直到2004年11月找到投资,目前在找更大投资中。我在游戏方面有哪些才能呢?socket的完成端口、骨骼动画、DX的所有底层、三维碰撞等等。
扯远了。还是言归正传说如何做游戏吧!此处只讲做网络游戏,不讲单机游戏,因为单机游戏太简单。
首先,要明白网络游戏中最复杂的是服务器部分。如果服务器程序不稳定就别说有这个游戏了。
其次,游戏中的人工智能最复杂,暴雪的人工智能就非常好,但是不是每个游戏都需要很多很好的人工智能。
然后,游戏的情节引擎。也就是你的游戏要怎么玩。
再次,三维游戏中的骨骼动画、碰撞检测、游戏界面等等。
可能最后才是一般人说的DX底层了。
DX底层的难度为什么我要排在最后?现在不是说游戏开发人员奇缺20万,目前的人数不过千人吗?原因就是这个,很多人还不会DX底层,就更别说上面更难的。
那么我就按难易讲了。服务器程序要用socket的完成端口,为什么?因为完成端口的优点是连接量大,适用于数据量小的消息,反正一句话,用完成端口就没错,如果你不会就赶紧学。服务器要处理很多人的信息,所以服务器处理多线程时一定要注意所引发的错误。所以多线程以及相关的知识要学。当然如果我把我的源码公开,大家就很容易懂了,但是我现在还不想公开。
服务器完成后好要做一下工作,自己写一些攻击的程序,进行长时间的攻击。还要写一些能够正常连接的客户端进行大量的数据收发,以及讲标准的数据随机处理后发给服务器,看服务器会不会因为乱数据而出错。在完全正确的情况下你的服务器就算基本ok了。如果你要问为什么这样处理的话,那么你没有做游戏的天赋,我劝你还是不要做游戏了。
接下来做客户端,封装好DX底层。然后做游戏中的窗口功能,也就是Windows里面的各个控件,Windows以自带了,为什么还要自己做呢?因为Windows的控件是GDI模式,在DX里显示不方便,而且不专业,再说我一做游戏就知道一定要写,我就花了不到两周时间(当然是晚上偶尔写一下,白天要赚钱养家糊口的),其实很
简单。举个例子:游戏中的按钮,设个矩形范围,当鼠标没在上面显示正常的图片,在矩形范围显示鼠标放在上面的图片,按下鼠标显示鼠标按下的图片,如果这个控件不能用显示不能用的图片。当然我不会笨到做一个游戏做一套窗口,我写了一个窗口编辑器,以后的游戏就用这个编辑器编窗口。
有了游戏窗口,就可以将美术画的窗口图片加在游戏里了。这样一个游戏基本有了个框架,当点击了什么做相应的事情。
接下来做游戏的引擎了。引擎基本是一个游戏一个引擎。比如《大富翁》、《暗黑》都是不一样的。我们举例《魔兽3》:首先要做地图编辑器,定义好地表,定义好各个物体,标明物体的类型,然后交给美术人员,让他们做地图。
然后做一个骨骼动画编辑器,骨骼动画是目前最流行的做法,一定要会,其实也很简单。做好骨骼动画编辑器后交给美术然他们把3dmax的模型导入编辑器中,当然,当然导入程序还得你做。
有了地图和人物模型以及人物有了动作,就可以将人物组织到地图里了,地图要定义好格子,当玩家点击地面某点就可以移动过去了。当然,因为你定义了物体类型,那么当点击了物体,人物还可以将物体捡起来。
看见没有,说了这么多,你到底会会几样?假如你全会也不要得意,因为现在你看到的游戏能像《魔兽3》一样玩起来了吗?不能吧,可以说头都还没开始呢。知道做游戏难了吧!
有了人物模型,当然怪物模型也是一样的。因为怪物要有智商,所以A*算法一定要会,这样怪物就可以追过来了,当怪物啃你的时候显示怪物啃人的动画就行了。
这些基本可以算一个游戏了,但是别得意,别忘了我们是网络游戏,游戏进入时要检测游戏的密码等这些简单的东西就不说了,假入我们成功进入了游戏服务器了,这个时候一定要做一件事,那就是向服务器请求此时的时间,为什么呢?你看游击队员在任务前要对时间,为什么,因为他们没有手机,不能及时通讯,只能说半小时后这个地方要爆炸,其他人必须半小时内逃出去。网络游戏也是这样。所有进去的玩家都得到了统一的服务器时间,这样服务器就会告诉你一件事,比如现在是12点,服务器会告诉你12点零5秒的时候有个怪物将从a点走到b点。这样所有玩家都会在12点零5秒将怪物从a点走到b点,就同步了。可能因为网络延迟,一些玩家收到晚点,没关系,按服务器时间该在什么位置,就在什么位置显示就行了。
游戏中好要处理玩家的装备系统,这些消息都要发给服务器,游戏中还要处理升级、地图切换、地图切换后周围玩家变了,重新发送玩家信息、与服务器断开后(网络时不稳定)玩家重新连接,当前状态恢复、玩家与玩家的交流、对话、交易、组队、pk等等。
这样一个游戏基本算一个游戏了,但是还有一个最重要的也是比较难的东西还没提到,那就是任务系统,任务系统目前有很多种做法,一个是脚本方式,这种方式比较灵活,但是需要很多人写,还不一定写得非常好,我时不赞成这种方式的。他有点像嵌入式开发,让我像到了微软的东西,给我的感觉是,经常出错,而且很慢,好像科技含量高,也耗钱。另一种方式就是我喜欢的工作流方式了,我是如何知道工作流的呢?谁叫我不是一毕业就进的游戏公司呢,想当初我投简历给一家很出名的游戏公司,别人说我的能力和代码都达到了他们的要求,但是他们已招够人了。于是我做一般的数据库工作,认识了工作流,这样也好,比一开始就进游戏公司的人多一样知识。如果不懂工作流,自己到网上去查。嘿嘿!看后应该不简单哦!
有了这以上的知识,那么一款类似《魔兽3》的网络游戏差不多就出来了,将游戏里的人工智能加上,网络游戏的自动下载、版本升级等加上,基本就完成了。
嘿嘿!难吧,如果没有信心的就不要做游戏了。当然以上说的会几样就行了,不一定样样会。我嘛!当然都会了,否则怎么敢用技术和我的一个创意找投资,而且最近在谈的这家公司给投资1000万,如果成功,我想开在成都。随便做个广告,有愿意做游戏的人可以留下联系方式,以后通知你面试,估计你会学到很多东西。等我有空了,我还是想写本书,公开我的所有源码,只是源码太多,我现在很忙,所以不能公开了。
也有人问我学了多久呢?我从1998年开始编写DOS下的仿《仙剑》的游戏。然后直到2003年3月15日我终于明白了骨骼动画后开始写的,而之前我几乎不会。2003年3月15日以后我花了3个月时间写完了游戏窗口编辑器、骨骼动画编辑器、组装了一个很简单的进去可以打怪升级、检装备的类似《暗黑》的DEMO,然后那我的游戏创意(这个创意可是1999年开始思考的)。去游戏公司找投资。后来进入游戏公司(2003年11月),利用工作之便将我的服务器底层(封装socket)完成。这样就具备现在的知识。
嘿嘿!我现在基本就只做两件事了,一、领工资。二、找投资。眼红了吧!一句广告词:
其实你也会。
...全文
2316 130 打赏 收藏 转发到动态 举报
写回复
用AI写文章
130 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zimmerk 2010-06-17
  • 打赏
  • 举报
回复
我反而对游戏的数据库感兴趣
PhilexPei 2005-08-03
  • 打赏
  • 举报
回复
多线程改单线程应该是用队列吧。
人工智能这块我非常感兴趣,不知道在游戏开发领域会用到哪些算法,游戏无非是对现实生活的模仿,如果通过游戏开发来学习人工智能,倒不失为一个好方法。
另外想请教楼主一个问题,游戏设计方面采用什么样的建模工具。
tigerhu76 2005-08-02
  • 打赏
  • 举报
回复
努力学习!
HiIM 2005-07-14
  • 打赏
  • 举报
回复
楼主的服务器端估计是 delphi 写的吧?

应该是类似于联众这样休闲类游戏服务器端而不是MMORPG网络游戏服务器端吧。

现在做过楼主这样东西的年轻人出来写文章的很多,还大多集中在成都,对吧?
ExtUSA 2005-07-14
  • 打赏
  • 举报
回复
近来看多了不到25岁的小孩在自己参加工作不到9个月就宣称自己是某个游戏公司的“前技术总监”。

仔细看他们写的blog大多是连tcp/ip基本概念都搞不清楚的混混,就会抄点什么人家的垃圾写出blog来误导更不懂的人,所以说,如果他们都是什么监的话,中国网络游戏界真的无人,怪不得网络游戏公司不断被搞垮,哎哎
guogangj 2005-07-13
  • 打赏
  • 举报
回复
909 lines…………恕我直言,如果真的话,我真见到神了,我现在在一家不大的游戏公司开发小型游戏(纸牌类的那种),我就是负责写服务器端的,写下来就10000多行代码,加上后来的修修补补,到现在估计都接近20000行了,909行代码的程序能做MMORPG的server?我真想见识见识啊。
ExtUSA 2005-07-12
  • 打赏
  • 举报
回复
还有一个明显的特点是做 Client side 的偏多,做高端的 Server side 的人才比较稀缺,结构失衡,缺少真正的市场核心竞争力。
ExtUSA 2005-07-12
  • 打赏
  • 举报
回复
这几天和做休闲游戏的技术总监交流,感觉现在做休闲游戏的饿人对网络游戏的整体构架知识没有清新的认识,可以说非常模糊。

在体系架构上的模糊直接导致了系统的不稳定和低效率,同时系统可扩充性也很受局限。

在对计费等商业运营很重要的设计存在大量数据库商业架构的缺失,对系统级的应用可说是谬误百出,当然系统不会满足现在的商业用途,花巨资做出来的东西只能看,却不能赚钱,令人惋惜呀。
mdzhao 2005-07-09
  • 打赏
  • 举报
回复
楼主

有没有可以直接下载的地址啊??
sftk 2005-07-09
  • 打赏
  • 举报
回复
那人怎么这么少-_-!,多拉点客吧
boywhp 2005-07-09
  • 打赏
  • 举报
回复
KingofMagic(大魔头)
支持你,尽管我是拨号的,但是我想能够自己坚持做出来的东西,肯定有自己的技术的
讨厌没有仔细看过就下评论的
踏踏实实做事这种人才是最可贵的
Cybergate 2005-07-09
  • 打赏
  • 举报
回复
既然有npc就应该可以一人玩,我们大部分都是家庭用户,还要专门邀另外一个人也愿意来玩,这首先就会失去一大批客户。

还有什么叫做3d底层做的二维游戏?这个定义还希望解释一下。
KingofMagic 2005-07-09
  • 打赏
  • 举报
回复
拜托!都说过了,看的时候认真点
http://www.ggdn.net/dvbbs/dispbbs.asp?boardid=12&id=174&star=1#202
why54 2005-07-08
  • 打赏
  • 举报
回复
顶一下,给我发一个
hanyingw@gmail.com
KingofMagic 2005-07-08
  • 打赏
  • 举报
回复
你忘了我说过,一个房间里必须两个人才能玩的,不是没做完,我们已经玩了好久了
sftk 2005-07-07
  • 打赏
  • 举报
回复
顶一下,我下载了,界面不错,不过好像还没做完,不能开始游戏,所以。。。
KingofMagic 2005-07-06
  • 打赏
  • 举报
回复
到底有没有人下载玩一下呢?给点意见先
再没人说话就要沉了,所以自己厚着脸皮顶一下
tslkfyh 2005-07-02
  • 打赏
  • 举报
回复
无语,希望楼主能成功!酸甜苦辣自已知道!
WiseNeuro 2005-07-02
  • 打赏
  • 举报
回复
mark一下
ihsgnep 2005-07-02
  • 打赏
  • 举报
回复
顶一下,下载了那个游戏,呵呵
加载更多回复(110)

8,304

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧