本系列文章旨在介绍并开发一个基于SDL(Simple DirectMedia Layer)的模仿Cococs2d-x的一个游戏引擎。目前我已经使用这个开发了好几个游戏,从飞机大战,到捕鱼达人,再到植物大战僵尸。都能使用SDL_Engine进行开发,而不用修改SDL_Engine的内部代码。(本系列暂停更新,对矩阵什么的不了解。。。待更新)
我个人做的一些游戏图片:
植物大战僵尸
超级玛丽
捕鱼达人
目录(不定式更新)
文章名称 | 文章链接 |
SDL_Engine游戏引擎制作 1-C++的内存自动释放 | http://blog.csdn.net/bull521/article/details/79679658 |
SDL_Engine游戏引擎制作 2-Point Size Rect | http://blog.csdn.net/bull521/article/details/79693585 |
SDL_Engine游戏引擎制作 3-Window窗口 | https://blog.csdn.net/bull521/article/details/79694866 |
SDL_Engine游戏引擎制作 4-Surface 1.x的遗孀 | https://blog.csdn.net/bull521/article/details/79717406 |
SDL_Engine游戏引擎制作 5-Texture 2.x的新宠 | https://blog.csdn.net/bull521/article/details/79730331 |
SDL_Engine游戏引擎制作 6-Director 负责全局的导演 | https://blog.csdn.net/bull521/article/details/79743703 |
本系列所有程序都是在VS2012下进行,且都能成功运行。
对于游戏开发来说,要解决的问题有很多。SDL_Engine大致可以分为以下三类。
一. 渲染:
渲染是游戏的重中之重,一个游戏的界面是呈现给玩家的第一印象,对玩家的感官享受至关重要。渲染又可以分为:
①.图片资源的加载 释放以及图片的存储。
②.图片渲染的优先级。由于本引擎采用分层的概念,故优先级至关重要,优先级类似于空间坐标系的z轴,它决定图片的遮挡关系。
③.图片的绘制。在合适的位置进行绘制,其中包括图片的位置,大小,旋转等(可能会用到平移矩阵,旋转矩阵,缩放矩阵)。
二.逻辑处理
逻辑处理包括各种游戏层面的玩法,比如敌人的行走路径,AI(Artifical Intelligence,人工智能),碰撞检测以及碰撞处理,刷新等等。
三.输入设备的事件处理
输入设备包括鼠标,键盘等,相应的事件包括鼠标事件,键盘事件,触碰事件等。游戏引擎中需要对事件进行有选择的监听,之后分发给对应的模块,然后在模块中根据不同的事件进行不同的处理。
游戏开发需要的知识相对来说比较杂,尤其对于个人开发,涉及的就更加要广泛一些,个人认为的要求如下:
1.掌握一门编程语言:c/c++
2.掌握一门图形语言:SDL OpenGL/OpenGLES
3.了解xml
4.熟悉一门开源游戏引擎:Cocos2d-x
5.了解一门脚本语言:lua javascript
学习如逆水行舟,不进则退。与君共勉。