游戏夜读 | 游戏代码之道

用户头像
game1night
关注
发布于: 2020 年 05 月 27 日

游戏代码的材料是一些中英文字符,真正运行的是那些英文字符。任何一种编程语言都可以写游戏,所以懂了游戏代码之道,选择什么语言的问题也会少一大半的迷茫。



电子游戏的本质是动画片,所以游戏代码的首要目标就是让画面动起来。学会让画面动起来,就已经搞定了游戏开发一大半的难题。好在现在分享精神盛行,想找到一段让画面动起来,甚至是一个完整的游戏程序,都不是难事。但拿到这些游戏代码之后呢?抄是有前途的,但有灵魂的抄更有意思。所以,看得懂,找得出共性,是个值得一试的活儿。



游戏编程是有标准的。一方面,游戏的运行框架有范式。另一方面,游戏代码的制作分工也有范式。游戏代码可以组织的很有个性,这是游戏编程的特点、乐趣之一,也给大家留下了游戏代码标准不一的印象,其实不然。



以Python这个语言为例,它有一个集成库是专注游戏开发的,叫Pygame。这个库是基于SDL的一个极具个性和便利性的封装。其中,SDL是一套开放源代码的跨平台多媒体开发库,使用C语言写成,是“Simple DirectMedia Layer”的简称,也可以翻译成“简单直流多媒体层”。Pygame的设计就是基于一个标准化的游戏运行框架。



while True:
events() # 人的行为
loop() # 游戏世界的变化
render() # 在屏幕上播放动画


这个游戏运行框架非常简单:首先是一个无限的循环,也叫死循环,主要的目的就是在屏幕上播放动画。其次是动画的内容,即游戏世界的变化。但这里有一个“人机交互”的概念,这也是游戏区别于其他艺术或媒体形式的一点:人的行为。人的行为一般是作为“动画”的触发和输入。这就是一个标准化的游戏运行框架,简洁的游戏代码之道。



直到现在,大部分的灵魂代码都是人为敲入的。因此,游戏代码内部的这种标准化拆分,可以看作是一个个模块,也可以看作是一种分工。尤其是到了2000年前后,游戏代码除了运行框架的标准化之外,又有了游戏代码标准化制作的分工趋势。具体表现为“游戏引擎”的盛行:游戏引擎负责速度,高级语言写的脚本代码负责个性化的游戏机制、图像处理。



也是这一时期,游戏开发和游戏设计开始被有意的区别对待,前者专注代码逻辑的自洽,后者专注游戏机制的创新。



文/良宵听雨。授权“游戏夜读”发表。



发布于: 2020 年 05 月 27 日 阅读数: 34
用户头像

game1night

关注

烦请督促我的游戏功课喔! 2017.04.06 加入

计划坚持创作以“游戏夜读”为主题的短文,并以这些杂文作为连载公开发布。烦请大家一起督促我的游戏功课喔!欢迎关注和阅读,如有不足,可直接留言批评,会继续努力!

评论 (2 条评论)

发布
用户头像
既然是游戏,加个酷酷的头图啊。
2020 年 05 月 27 日 11:04
回复
这是个好主意!但是我……
2020 年 05 月 29 日 13:31
回复
没有更多了
游戏夜读 | 游戏代码之道