Python 开发游戏?也太好用了吧!
当然可以啦!
现在日常能够用到和想到的场景,绝大多数都可以用 Python 实现。
效果怎么样暂且不提,但是得益于丰富的第三方工具包,的确让 Python 能够很容易处理各种各样的场景。
对于游戏开发也是这样,如果真的要想商业化,Python 在游戏开发方面肯定没办法和 C++相提并论,但是如果用于日常学习和自己玩一玩,Python 绝对是够的。
今天,就来给大家介绍 8 个非常不错的 Python 游戏开源项目。
1. free-python-games
Star:2.6k
贪吃蛇、迷宫、吃豆人、扫雷、Flappy Bird...这些游戏可以是非常经典,甚至伴随着很多人的童年回忆。那么,你是否想过自己开发一款专属游戏?是否思考过开发这样一款游戏需要多少工作量?
free-python-games 这个项目给出的答案是 50-100 行!
几年前,我姐就曾表达了希望我能够抽空教外甥学习编程的想法。对于这份嘱托,我一直放在心上,但是却迟迟找不到合适的方向。
该从哪个方向着手教一个孩子学习编程?
怎么提升一个小孩子对编程的兴趣?
即便是从事几年互联网行业的我来说都对编程都觉得枯燥乏味,何况一个一无所知的孩子呢?
但是,free-python-games 这个项目让我眼前一亮,终于找到了一个合适的 Python 学习项目。当年,它对于成年人同样适用、有价值。
我之所以介绍这款项目,不单单是它实现了让人回到童年的经典游戏。更重要的原因是它能够作为一个 Python 学习、锻炼探索和理解能力的一款好工具。
free-python-games 和我们接触的大多数 Python 库那样让人如同垒积木一样去实现一项功能不同,你需要去静下心来死锁一款游戏的主题,同时需要去实现游戏中的每一个策略。
我觉得这样比拿来即用的搬运工作要有趣很多,且更加具有挑战。
以我们熟知的贪吃蛇为例,当然我们目前对于这款游戏的主题和玩法已经非常清楚了,通过方向键控制蛇的移动,每当吃到一颗食物蛇就会变长,如果撞到墙则游戏结束...
那么,对这款游戏进行拆解,就需要思考几个问题:
如何使蛇加速和减速?
如何使蛇绕过边缘?
如何分配新产生食物的位置?
游戏中的蛇如何根据键盘操作做出相应的反应?
看到这里你就会发现,它并不像我们大多数情况下使用 Python 那样,np.linespace、plt.plot、tf.Session,它更像是 LeetCode 上面的算法题,需要你从零开始去实现一款游戏,用心去思考游戏实现过程中的每个细节。而在这个过程中对人的提升会非常迅速。
详细的内容可以看我另外一篇文章的介绍:
50 行 Python 代码实现经典游戏,不仅是划水神器,更是学习利器!186 赞同 · 5 评论文章
2. CDDA-Game-Launcher
Star:401
这是游戏《大灾变:黑暗之日》的开源实现,并在原来的基础上增添了很多新特性。
这款开源项目已经实现了很多游戏模块,例如启动游戏、检测游戏版本号、模组管理、保存和自动备份等等。
3. fofix
Star:375
这是 Frets on Fire X,一款高度可定制的节奏游戏,支持最多四名玩家的吉他、贝斯、鼓和人声游戏的多种模式。 它是 Unreal Voodoo 对原始 Frets on Fire 进行的一系列修改的延续。
4. Lutris
Star:6k
严格来说,Lutris 并不是一款单纯的游戏,它是一个开源的视频游戏平台,通过它可以安装和玩来自不同年代的大多数游戏。
Lutris 通过利用和组合现有的模拟器、引擎重新实现和兼容不同平台。
客户端可以连接 Humble Bundle、GOG 和 Steam 等现有服务,使游戏库易于访问。 游戏下载和安装是自动的,可以通过用户制作的脚本进行修改。
5. pychess
Star:556
用 Python 实现的一款国际象棋客户端,适用于 Linux/Windows 系统。
6. PySolFC
Star:366
一个全面的、功能丰富的、开源的、可移植的纸牌游戏合集,适用于 Windows、Linux、macOS。
7. term2048
Star:798
曾经风靡一时的 2048 小游戏,这是用 Python 实现的一款终端下可以玩的 2048 游戏。
8. Unknown-Horizons
Star:1.3k
开源即时策略游戏《Unknown Horizons》(美丽新世界) 官方开源的代码,基于 Python 开发。
建议大家有空可以多浏览 Github,有很多好用的开源免费工具。但是,目前 Github 上项目多如牛毛,而且刷榜现在也非常严重,想要找到优质的项目变得越来越难。这里,给大家推荐 Github 上一个非常不错的项目《DevWeekly》,这个项目每周都会精挑细选一些优质的开源项目,涵盖 C++、JAVA、JavaScript、Python、Go 等不同编程语言。此外,还有一些开源工具、优秀的技术文章,而且考虑到很多同学访问 Github 不方便的问题,我还特意同步到了 Gitee,建议大家看一下:
https://gitee.com/sharetech_lee/DevWeekly
hello,大家好,我是 Jackpop,重点大学本科毕业后保送到哈工大计算数学专业读研,有多年国内头部互联网、IT 公司工作经验,先后从事过计算机视觉、推荐系统、后端、数据等相关工作。如果同学们在升学考研、职业规划、高考志愿、简历优化、技术学习等方面有困惑,欢迎大家前来咨询!
版权声明: 本文为 InfoQ 作者【Jackpop】的原创文章。
原文链接:【http://xie.infoq.cn/article/942b3c3c8602f05b4406982c8】。文章转载请联系作者。
评论