用 Python 语言来写游戏

简介:

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

我小时候玩过街机,魂斗罗、俄罗斯方块、Quake、三角洲、Fifa、魔兽世界、魔兽争霸等,可能会参与完美时空的游戏开发。现在的热门游戏是王者荣耀、吃鸡等等,我的兴趣虽然已志不在此。

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

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

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

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

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

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

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

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

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

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

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

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


1、我会先带你熟悉游戏开发的基础概念。包括开发游戏需要涉及的基础知识和需要准备的工具:游戏引擎、底层图形接口和地图编辑器。

2、然后从 0 开始搭建一个游戏窗体,往窗体里添加图形、界面和操作。

3、我还会讲解如何嵌入脚本语言。毕竟使用硬代码编写游戏逻辑并不是一个很好的选择,而脚本语言的嵌入,可以让我们很方便地完成游戏的逻辑开发。我们只需要将底层图形图像的显示、函数等捆绑好,接下来交给脚本语言就好了。

4、除此之外,我还会阐述各种平台上的游戏开发和实现,带你学习一些最近热点的游戏开发知识。比如 HTML5 游戏和手机移动平台游戏。我们已经有了游戏开发的基本知识,也掌握了游戏开发的流程,再来看这些游戏的开发,就会变得很轻松了。


相关文章
|
6月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
391 1
|
6月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
946 1
|
7月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
994 102
|
7月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
336 103
|
7月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
283 82
|
存储 人工智能 运维
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
714 48
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
|
6月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
266 4
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
710 7

推荐镜像

更多