用 Python 语言来写游戏

作者:MacTalk

题图:拍摄于 R1 鸟巢发布会

每个程序员差不多都是从计算机爱好者开始的,尤其是那些令人心醉神迷的电脑游戏,不仅造就了整个游戏产业,推动了计算机行业软硬件的升级,而且吸引了大量的爱好者最终加入了游戏软件开发的行业。腾讯、网易、盛大、完美时空等公司的巨大现金流都来源于游戏产业。

我小时候玩过街机,魂斗罗、俄罗斯方块、Quake、三角洲、Fifa、魔兽世界、魔兽争霸等,如果没从洪恩离开,可能会参与完美时空的游戏开发。现在的热门游戏是王者荣耀、吃鸡等等,我的兴趣虽然已志不在此,但遗憾的是写了这么多年程序,一款游戏软件也没有开发过。后来和极客时间的内容负责人 Gary 小王子沟通,能不能上线一款内容产品,帮助程序员跨越从普通程序员到游戏开发者的鸿沟。

想法一旦滋生便难以遏制,最终我们找到了这个领域的专家蔡能老师。蔡能老师是网易杭州研究院的创始员工,原网易游戏引擎架构师,在这个领域有20多年的研发经验。我们要求蔡能老师用最简洁最自然的 Python 语言来讲这门课,从零开始,由表及里,从语言到场景,从架构到实现,最终做出一款自己的游戏。

这样,即使你不想进入游戏行业,也可以学习到大量的编程语言/架构/设计和场景知识,对你的职业生涯起到很好的助力作用。以下是蔡老师对读者说的话:


你好,我是蔡能。从 96 年编写第一行代码开始,我在 IT 行业从业已经有 22 年的时间。

从程序员到管理者,我参与过各式各样的项目,也主导过很多项目。当然,我经历的大部分项目都是游戏。20 多年里,我目睹了从最初的像素游戏,到如今高清贴图的 3D 游戏的发展过程。游戏行业,乃至整个 IT 行业都发生了翻天覆地的变化。

当然,我本人也非常喜欢玩游戏。我喜欢自由自在的游戏和需要脑力的游戏。比如,“GTA 系列”“老滚系列”和“三国志系列”。在玩游戏的过程中,我体会到各种各样的乐趣,同时,作为开发者,我也会从专业的角度出发,思考这款游戏究竟是如何制作出来的。

我发现,喜欢玩游戏的人,都很有兴趣自己做一款游戏。哪怕自己不懂编程,但是自己做做策划,懂美术的话自己做做图,能让自己的游戏跑起来,就是一件幸福的事情。

还有一部分人,可能对游戏并不感兴趣,但是对赚钱感兴趣,那么我的专栏也可以让你知道游戏开发的基础流程和知识,避免走弯路,不花冤枉钱,不掉技术坑。

我看过网上各式各样的“傻瓜式”游戏开发工具,比如 RPG MAKER。任何不懂编程的人,只需要导入规定的模板,就能方便地开发出一款游戏。然而,这种方法只能开发某一类非常简单的游戏。如果想要开发出一款真正意义上的游戏,还是要借助编程基础和系统的开发知识。

我举几个简单的例子,你就明白了。

1、在《守望先锋》里,我们看到的子弹射击,对方被击伤,这些都是经过怎样不断地网络优化实现的呢?还有各种网络预判模型,你是否都了解呢?

2、我们玩的《星际争霸》,究竟是每个线程控制一个兵种,还是一个线程刷新全部兵种画面?

3、《魔兽世界》如此庞大,它是如何将海量逻辑写在游戏客户端里?将逻辑编写成硬代码显然不理性,写成配置文件又缺乏机动性,那它是怎么做到的呢?

4、另外,我发现,很多公司在开发游戏的时候,选择引擎也是一个尴尬事。是自己研发一款引擎还是购买别家成熟的引擎呢?引擎的好坏,对开发的游戏来讲有什么影响?很多人也是不知道的。

这些问题,我都会在专栏文章中一一解答。但前提是你最好具备一定的编程知识和基础。

1、我将会尽量选择简洁的 Python 语言来编写。我会从最上层的脚本语言 Python 的使用开始,剖析为什么游戏开发要从这里开始。在用到 C/C++ 代码的地方,我将会尽可能地使用简单易懂的语法来示范,所以,其实你只需要懂点儿英文就可以了(笑)。

2、我会尽量选择简单的开发工具,而不是动辄几个 G 的开发工具。比如“VS 系列”,比如各种复杂的 IDE。简单的开发工具足够简单明了地让你了解开发的具体流程,快速进入状态,而不是在设置工具上浪费大量的时间和精力。

3、我会尽量避免特别复杂的底层知识,但是也不会一带而过。我会帮你一步步梳理开发的流程,并仔细剖析,在 C/C++ 中如何控制计算机的各种设备,操作计算机的各种硬件。或许你还会在编译中遇到问题,我也会一步一步,由浅入深,教你如何解决编译问题。

4、我将用制作“打飞机”游戏 demo 的过程,来完成游戏开发内容的分解步骤讲解。之所以选择“打飞机”作为游戏 demo,是因为它的开发过程几乎涵盖了我要讲述的所有开发流程,包括操作、画面的前后遮挡、图像的碰撞和切换、资源包、脚本语言等等。

原文链接:https://mp.weixin.qq.com/s/y5PGq8uvAye6zrD69HIMrQ

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量子位

量子计算的里程碑:用超算模拟45个量子位(附论文)

陈桦 编译 量子位 报道 | 公众号 QbitAI ? 关于量子计算机性能超越传统计算机这一关键转折点,计算机科学家有个专有名词,即“量子霸权”。从各方面来看,...

36140
来自专栏小巫技术博客

一个『瘦猴』对产品的一点看法

9820
来自专栏华章科技

大数据工具指南:从选择到应用

通过部署和使用大数据分析工具,分析流程可以帮助公司提高运营效率,产生新的利润,获得竞争优势。企业可选择的数据分析应用程序有很多。比如描述性分析善于描述已发生的事...

8820
来自专栏CSDN技术头条

怎样判断一个人是否适合做数据分析?

网友问:部门要找几个人做数据分析。现几个人原来是在不同的岗位上的,以前没有做过数据分析,怎么样才能看看出他们是不是适合做数据分析呢,在进行竞聘时使用什么样的题目...

21960

即使数据科学家也面临人工智能的威胁

自从AI(人工智能)被用于自动化处理任何事情,人们便开始感到不安。现在人工智能已经证明了它能够通过机器人等技术代替蓝领工作,通过自然语言生成取代白领工作,围绕这...

20650
来自专栏Java学习网

你真的需要了解多种编程语言吗?

你真的需要了解多种编程语言吗? 我在谋杀自己的职业生涯。没错,很多人都这样说我。 我的同事刚刚得知我即将离开公司的消息。大多数表示理解。但让他们困惑的是,我现在...

310100
来自专栏服务端技术杂谈

你真的需要了解多种编程语言吗?

  英文原文:Do You Need To Know More Than One Language  我在谋杀自己的职业生涯。没错,很多人都这样说我。   我的...

32350
来自专栏数据的力量

在腾讯2年,我学到了这15条关于运营的干货

213110
来自专栏Material Design组件

参加完回音分享会的一些感悟主题:设计师的产品思维

379140
来自专栏EAWorld

在微服务世界度量DevOps,你准备好了吗?

1.无度量不DevOps DevOps的推广打破了开发,运维之间的壁垒。全员以产品交付为目标,提高效率,完成业务。久而久之消费者就会形成一个潜意识就是:买了这个...

32870

扫码关注云+社区

领取腾讯云代金券