C语言跨平台游戏开发

通常我们认为,纯C(即不使用C艹)很难实现跨平台的游戏。这是由于它支持的图形库非常少,一般需要调用系统句柄才能进行图形化。但是很显然这是一个及其费时费力还容易出错的方式。所以,在这篇文章里,我希望给大家介绍一些比较轻松的制作C语言的跨平台游戏的方式。

I. 游戏引擎的选择

引擎绝对是个好东西,它帮你简化了许多繁琐而重复的构建阶段的实现。所以我们通常希望有一个好用的引擎。这里有我能找到的所有跨平台C语言库。

  • Curses: 这是一个非常之古老的图形库,只支持命令行的图形编成。好在它学习简单、轻量便捷、函数丰富,它依然是新手学习游戏逻辑最佳的选择。它支持Windos(Ncurcesw), Linux(Ncurses,curses), MacOS(Ncurses), 移动端大部分的终端模拟器, 和你能找到的许多古老系统(如Dos)。
  • SDL: 额,这位老朋友就不用介绍了吧。如果有些游戏编程的基础,它会让你感到很亲切。它应该支持所有有图形界面的操作系统。
  • OpenGL: 如果你是一位C语言高手,想做高质量3D游戏,不要犹豫,就是它了。它同样支持所有有图形界面的操作系统。因为OpenGL是一个“标准”,由你的显卡生产商实现,所以使用时需借助一个窗口库和一个函数查找库来编程。你可以感受到搭建编辑环境所带来的痛苦,非常不推荐新手使用
  • 其他:TBOX LCUI, 这两个都是跨平台的。

II. 游戏逻辑的研究

不管你采用了哪个图形库,游戏逻辑都不会变化太多。以下是一个适用与所有游戏的游戏逻辑。

  1. 导入图形库
  2. 读入所有信息、模型
  3. 初始化所有设置,显示开始界面
  4. 开始游戏主循环:输入、处理、绘制、刷新、暂停等
  5. 达到退出条件,显示结束界面
  6. 保存所有信息
  7. 退出

这套流程/逻辑可以用于几乎所有游戏。

其实很推荐使用流程图来理清思路。

特别要注意各种“边界”值。即你想要把数轴的原点归为哪边?这个问题可以用文氏图来解决。

III. 游戏编程的推荐编程范式 和 方式

虽说编程范式没有最好与最坏之分,但绝对有适合一定领域的编程范式。这里,我们通常建议使用函数式编程。

编程方式,即编程规范。有些人认为开发过程越快就越好,可事情远没有这么简单。比如你为了快速开发使用了a,b,c ...... x,y,z共26个变量,结果你有一段时间去做别的项目了,回来拾起旧项目时一脸蒙蔽:"这都啥玩意阿?"。所以,应该把代码写得易于阅读,层次分明,注释有用。(这里表扬Python)

IV. 一个“简单”的例子

这是一个“简单”的打飞机游戏,使用C语言和Ncurses库开发。不管你承认与否,这真的是一个开始游戏编程的极好的地方。

编译时记得链接上你的Ncurses库

/*
Finished Version 0.1
Compl
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值