编者注
凌岚对免费书籍 Breaking into Gamedev(闯入游戏开发)进行了授权中文翻译,并将译文转交给 indienova 代为发布,分享给希望接触游戏开发却无从入手的爱好者们进行学习交流。indienova 会将译文分节成多篇文章更新,对整书感兴趣的朋友可以直接到下方的链接下载整书。同时,任何排版问题、翻译错误等意见建议,欢迎直接评论留言。
这本指南的作者 Steven Harmon 是一名至今(2020 年)有着八年开发经验的 USC 游戏设计本科在读学生,可以在 Steam 找到他开发的两款免费游戏:Awkward Dimensions Redux 和 Griptape Backbone。
- 书籍名称:Breaking into Gamedev(闯入游戏开发)
- 作者:Steven Harmon
- 译者:凌岚
- Steven Harmon 个人网站
- 《闯入游戏开发》indienova 文章专栏
整书下载
*中文版有部分视频链接失效,建议中英都下载
#3:编程
没有了编程,什么事都不会发生
无论你认为自己是不是个程序员,编程都是必要的。你当然可以在(传统意义下)不需编程的情况下创造一款游戏,有些工具只需要很少的编程,特别是对于视觉小说和超文本游戏。然而,你使用这些工具的次数越多,就越会意识到它们是多么有限,并希望从中获得更多的功能。一位得体的程序员并不需要是一位数学天才,但如果你想提高你的数学技能,这有一些方法:
- Khan Academy – 教学视频和互动测试
- Immersive Linear Algebra – 交互式在线教科书
- Math for game developers – 很棒的一个系列,有关数学的实际应用
#3.1:工具
大多数代码都是在 IDE(集成开发环境)中编写的,本质上它所做的就是处理你编写的代码并将其转化为二进制(1 和 0,又叫计算机语言)。还有一些功能,比如调试器(debugger)——一个拼写检查器的高级版本,可以在你写代码时让你确切的知道哪里写错了。不用担心 IDE 的选择问题,因为大多数游戏引擎都预打包了自己的 IDE。不过这也有些我最喜欢的:
- Visual Studio 2017
绝对标准。但根据项目的规模,可能会有些臃肿和冗杂。免费的版本叫做 Visual Studio Code - Notepad++
具有基本功能的开源文本编辑器,干净,快速。每台计算机都应该安装它 - MonoDevelop
C#跨平台的 IDE,无虚饰,很好用 - Eclipse
Java 专用
想要了解更多的编译器?点这
#3.2:他们在学校教你的一切
单就游戏而言,学校会教你 C++。然而我并不推荐你第一门编程语言就学 C++,当你适应与掌握了一般的游戏脚本后可以随时学习和回顾 C++。因为 C++是更“低级”的编程语言,这意味着它更接近设备硬件,也意味着如果你粗心大意了,将会有更多的错误要应对。另外,初学者很容易被 C++中像动态内存分配这样的东西弄糊涂,而它们对制作游戏并不是必需的。如果你刚着手做游戏,Unity 的 C#和 UE4 的蓝图是最好的选择。工具或编程语言并不重要,把重点放在编程的逻辑和算法上,这样在你为新项目更换语言之后,这些逻辑和算法都会继续发挥作用。
#3.2:他们在学校没有教你的一切
你并不需要去学校学习编程,事实上如果你按照自己的节奏去学习编程将会更容易更高效。唯一会阻挠你学习任何东西的坏习惯是:
在你搞懂别人的代码前,千万不要直接拿来用
如果你读不懂也解释不了一段代码中的字符和命令就拿来用,那你只是在给自己帮倒忙。开源项目和在线论坛里的代码是很好的资源,应该加以研究,但不应将其当成支柱。通过仔细研读这门语言,观看在线教程,通过打印“正常运行(I'm working)”这样的消息来测试和调试,以便观察这段代码是否被调用,从而了解这门语言。
编程最重要的真理是,你会觉得你是这个世界上最蠢的也是最聪明的人。你会时常快速地在两者间摇摆。这是一种让人谦卑的做法,任何自认为是这方面专家的人——可能都不是。对自己和自己的能力要诚实,因为一旦你自以为已经知道了某样东西,你就很难真正去学习它。
#3.4:恭喜!现在你拥有了人类一切知识的总和
这儿有些学习计算机科学和编程的好资源!
- Computerphile – 很棒的在线视频,享受观看吧
- The New Boston – Bucky 的编程教程系列的必杀技
- Brackey’s C# series – 简单的 C#,对初学者很友好
您好,下面两个链接都已经403,辛苦更新一下,想学习的心达到了顶峰 plz
《闯入游戏开发(Breaking into Gamedev)》中文译版 PDF
《闯入游戏开发(Breaking into Gamedev)》英文原版 PDF
@奶油菠萝冻:链接已修复,感谢反馈~
@virmint:可以了!!! 感谢您的分享!!!