Python游戏开发现状与选择

python目前比较火,不过大多是做数据处理方面的.开发游戏也是可以的,不过相关的工具没什么进步,大家普遍还是在用pygame做游戏开发入门,其实这几年python相关工具还是有所发展的,只不过python速度慢,做游戏属于偏门,所以玩的人不多.

下面做个简单列表

2D

PyGame

Pyglet

Arcade

Ren’Py

Cocos2D

Kivy

KivEnt

3D

Panda3D

Blender Game Engine (2.8已移除)

UPBGE 

Sylphis3D

绑定

PyOgre

PySFML

PySDL

Allegro 

全能引擎

Godot

网上应该还有python其他引擎或框架, 如果你有其他发现欢迎留言

教程收集

youtube上很多英文教程,中文的目前也有,但是相对完善度低

最热门的应该是下面的2个教程,已经转到b站了

https://www.bilibili.com/video/av35731676

https://www.bilibili.com/video/av33222458

集数最多的应该是 sentdex 的pygame教程了,有100集. 不过在youtube上不是自己本人发布的,不清楚什么原因.

我学习也跟着这个教程走一遍.

当然还有很多pygame书, 这里就不列出了.

官方的文档也是值得一看的, 里面有很多网友写的评论,讨论了很多问题, 不过整理的比较零散, 只能做为参考

vlog就不按照视频内容划分小节了, 每次大概学2小时,学多少录多少, 根据参考资料做一下测试,总结总结经验.

pygame安装

看到pypi有python3.8 64位的pygame whl包(目前无3.9的whl) , 所以我们就用最新的版本吧.

https://pypi.org/project/pygame/#files

下载 python3.8.1

https://www.python.org/ftp/python/3.8.1/python-3.8.1-amd64.exe

开发工具我还是用pycharm

安装pygame

pip install pygame==1.9.6

创建项目运行导入测试

import pygame
successes, failures = pygame.init()
print("{0} successes and {1} failures".format(successes, failures))

创建游戏窗口

import pygame

pygame.init()

gameDisplay = pygame.display.set_mode((800,600))

pygame.display.update()
#pygame.display.filp()

pygame.quit()
quit()

pygame.display.update() 和 pygame.display.filp() 需要单独说明一下, 先不打字了,看视频总结.

https://www.pygame.org/docs/ref/display.html

游戏的事件循环

游戏事件循环 英文叫game event loop, 之前做web应该都知道浏览器事件循环.

google一下 前几页基本都参考这个文章

https://gpp.tkchu.me/game-loop.html

pygame中game loop