大型网络游戏的开发需要哪些知识?
对于客户端,我建议LZ学习一个游戏引擎。这个编程语言是一样的,都是相通的。学一个,用另一个就会很快上手。毕竟现在已经不是用代码彻底“敲出”一款游戏的时候了。游戏引擎就是帮你整合必要的逻辑算法。如果你想自定义自己的游戏风格,用编程语言的知识去学习那个游戏对应的脚本是不错的,但是还有更多。
以UDK为例。整个引擎就像一个3D MAX。可以用引擎自带的材料玩一个对抗AI的射击游戏。你可以用鼠标操作,将素材和场景导入UDK。然后,如果要设置触发事件,打开UDK的kismet(可视化编程工具),建立事件和触发事件对应的条件和条目,用鼠标反复箭头(整体感觉和UML图一样)。但是如果你想用自己的材料做一个,你会发现,也许建模一把枪会让你头疼一个星期。
对于大型游戏,尤其是3D游戏,游戏引擎是必不可少的。虽然现在报道的引擎不多,好像只有虚幻引擎中的CE3引擎,战地3中的孤岛危机和冰霜2引擎(这些都是要买的,几百万,但是和UDK一样,是用来让别人接触游戏引擎开发的免费版游戏的),其实还有很多开源引擎。
我只说大型游戏。开发游戏不同于开发游戏引擎。开发游戏引擎需要非常低级的知识,比如DX,因为你需要知道如何生成一个物品,并将其渲染到最佳效果,这是游戏引擎开发人员需要做的事情。游戏开发者就像餐厅里的厨师,我们需要利用别人整合的资源进行加工定制。
当然,这并不意味着编程不重要。每个游戏引擎都不可能让你使用它唯一的功能。如果你认为它的事件设置不符合你的标准,或者引擎没有你想要的事件,那么脚本就派上用场了。对于UDK来说,他的脚本是虚幻的,类似于java的一个专有脚本,但是你学了C++或者java之后会很快上手。如果我想进口自定义字符到UDK,那么脚本是非常有用的。你需要用脚本替换你的角色来定义你的角色的各种动作。