通常我们认为,纯C(即不使用C艹)很难实现跨平台的游戏。这是由于它支持的图形库非常少,一般需要调用系统句柄才能进行图形化。但是很显然这是一个及其费时费力还容易出错的方式。所以,在这篇文章里,我希望给大家介绍一些比较轻松的制作C语言的跨平台游戏的方式。
I. 游戏引擎的选择
引擎绝对是个好东西,它帮你简化了许多繁琐而重复的构建阶段的实现。所以我们通常希望有一个好用的引擎。这里有我能找到的所有跨平台C语言库。
- Curses: 这是一个非常之古老的图形库,只支持命令行的图形编成。好在它学习简单、轻量便捷、函数丰富,它依然是新手学习游戏逻辑最佳的选择。它支持Windos(Ncurcesw), Linux(Ncurses,curses), MacOS(Ncurses), 移动端大部分的终端模拟器, 和你能找到的许多古老系统(如Dos)。
- SDL: 额,这位老朋友就不用介绍了吧。如果有些游戏编程的基础,它会让你感到很亲切。它应该支持所有有图形界面的操作系统。
- OpenGL: 如果你是一位C语言高手,想做高质量3D游戏,不要犹豫,就是它了。它同样支持所有有图形界面的操作系统。因为OpenGL是一个“标准”,由你的显卡生产商实现,所以使用时需借助一个窗口库和一个函数查找库来编程。你可以感受到搭建编辑环境所带来的痛苦,非常不推荐新手使用!
- 其他:TBOX, LCUI, 这两个都是跨平台的。
II. 游戏逻辑的研究
不管你采用了哪个图形库,游戏逻辑都不会变化太多。以下是一个适用与所有游戏的游戏逻辑。
- 导入图形库
- 读入所有信息、模型
- 初始化所有设置,显示开始界面
- 开始游戏主循环:输入、处理、绘制、刷新、暂停等
- 达到退出条件,显示结束界面
- 保存所有信息
- 退出
这套流程/逻辑可以用于几乎所有游戏。
其实很推荐使用流程图来理清思路。
特别要注意各种“边界”值。即你想要把数轴的原点归为哪边?这个问题可以用文氏图来解决。
III. 游戏编程的推荐编程范式 和 方式
虽说编程范式没有最好与最坏之分,但绝对有适合一定领域的编程范式。这里,我们通常建议使用函数式编程。
编程方式,即编程规范。有些人认为开发过程越快就越好,可事情远没有这么简单。比如你为了快速开发使用了a,b,c ...... x,y,z共26个变量,结果你有一段时间去做别的项目了,回来拾起旧项目时一脸蒙蔽:"这都啥玩意阿?"。所以,应该把代码写得易于阅读,层次分明,注释有用。(这里表扬Python)
IV. 一个“简单”的例子
这是一个“简单”的打飞机游戏,使用C语言和Ncurses库开发。不管你承认与否,这真的是一个开始游戏编程的极好的地方。文章来源:https://www.toymoban.com/news/detail-413644.html
编译时记得链接上你的Ncurses库文章来源地址https://www.toymoban.com/news/detail-413644.html
/*
Finished Version 0.1
Compl
到了这里,关于C语言跨平台游戏开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!