加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 网络游戏 > 网页游戏 > 正文

如何根据自己的需要培养游戏开发技能?又一篇游戏编程入门指南

发布时间:2020-03-25 19:33:28 所属栏目:网页游戏 来源:站长网
导读:副标题#e# 对游戏编程感兴趣或是想自己做游戏的人可以参考一下~ 我是一个独立游戏开发者,在一个主机独立游戏开发团队里做主程。大学毕业 10 年,毕业以后就一直在做游戏编程,从一开始的“端游”,到页游,再到手游,到现在的主机独立游戏,也算是有一些经

  如果你是个其它领域的程序员,但希望可以转向从事游戏开发,那么就需要注意一下游戏开发的特点:极其追求运行效率。我个人感觉,Donald Knuth 那句“Premature optimization is the root of all evil”在游戏开发领域甚至都不适用。

  对于底层知识,首先得看一些大块头的书,比如:

  《游戏引擎架构》

  《游戏编程权威指南》

  《Realtime Rendering》

  另外,我还有一些推荐的做法:把标准库的一些内容自己写一遍。我大学的时候把 。NET Framework 里的 System.Collections.Generic 中的容器在 C++ 里重新实现了一遍,收获真的很大,我推荐程序员们都去试试~

  最后,我说的底层真的要很底层,比如你要知道虽然遍历数组和链表的时间复杂度都是 O(n),但由于链表在内存中的存储不连续,所以无法完全利用 CPU 缓存,出现 cache miss,导致实际上遍历链表比遍历数组慢。嗯,就是要底层到操作系统和硬件架构的级别。

  编程的掌握方法——如何自学?

  我一直觉得,编程可能是全世界的职业技能里最好自学的了。因为编程这件事反馈非常准确且及时。你编错了,就跑不起来,或者跑出问题;编对了,就没问题。但最开始掌握编程的时候,还是可能走一些弯路,有两个点,我在这里先列出来,大家绕着点儿走。

  疯狂看书不写代码

  这是很常见的问题。大家在学校学知识的时候可能适应了这种方式,就一直沿用下来了。然而在学编程的时候,我推荐大家学一点儿写一点儿。比如今天学了个条件判断语句 if,那你就用这个 if 写个程序出来,跑起来看看是什么样,边学边用才行。一定不能狂看书不写程序,哪怕有些语法你记不住,要边查书边写,都比一直看不写强。否则的话,你在真正写代码的时候记不住多少不说,你还会被编译器的错误信息搞懵,很容易被打击。

  不考虑代码的可读性

  在学编程的时候,很多人经常为了实现功能就不管代码的可读性了,写到最后代码越来越长,也记不住之前定义的变量叫什么了,整个人都很烦躁。这是非常错误的。

  首先,先保证你的代码格式整洁,缩进对齐,该空格的地方空格。我大学的时候,有同学代码调不出来,让我帮他改调。我一看,代码格式混乱,就让他把缩进对齐,该空格的地方空格,再来找我调。然后他就没找我了,因为调完格式以后他自己就明白问题在哪儿了。各种编程语言都提供了为你节省脑容量的功能,比如把一堆语句封成函数,把一堆数据封成类或者结构体,要用啊!

  对于这个问题,有个比较简单的评价方法,就是去看看你一个月以前写的代码,看自己还能不能看懂。如果你看不懂,那说明你一个月前的代码的确可读性有问题。如果你还觉得看着你之前的代码感觉有点儿恶心想吐,那说明你在这一个月里进步了,因为你知道什么样的代码恶心了。

  团队合作的重要性

  这一部分是我额外想多说两句的。现在社会上对程序员的刻板印象一直都是不太说话的理工男,但实际上,起码在国外的程序员教育上,是非常强调沟通的重要性的。一个游戏,除非策划程序美术全你一人搞定,否则你一定会面临沟通的问题。与人沟通的技巧已经有无数文章和书在讲了,我在这里就讲两个跟游戏开发密切相关的点。

  关于“程序员宗教”

  应该有不少人看过《硅谷》,知道剧里面 Richard 和一个妹子因为用 Tab 还是用空格吵翻的故事。另外你可能也听说过大括号放上行还是放下行之类的程序员宗教问题。

  我想说,多人合作最重要的就是入乡随俗。你用 Tab,但团队里的规范是用空格,那你就用空格,没什么可说的。当然,你写自己的小项目还是可以用 Tab。这些程序员宗教现在都是程序员之间开玩笑用的了,不要把电视剧里的情节当真啊~

  编辑器的重要性

  这是一个程序部门和其他部门沟通的话题了。作为一个游戏程序员,你的代码面向的客户可不是只有游戏玩家。策划、美术、测试、市场运营等等,都是你程序的用户。把游戏的编辑器做好是你的义务。我在公司里要求程序员都去学 UE/UX 的知识,就是为了他们把编辑器做好,让用户用着舒心。我可是见过 N 多个因为编辑器垃圾离职的策划或者美术。

  结语

  啰里啰唆写了这么多,不知道大家看着觉得如何?如果大家对编程的一些概念还有兴趣的话,我可以再开一篇文章,用比较白话的方式,结合主机游戏的内容讲讲编程的基础知识,比如:

  什么是数据抽象(结构体)?

  什么是过程抽象(函数)?

  什么是面向过程?

  什么是面向对象?什么是实例?什么是继承?什么是多态?

  来源:机核

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读