前言:
人在英国进修程式,其中一门课是要求自制一款游戏
两个月时间限制。我在这作业中负责底层架构建立和模组化功能
游戏制作:
当初想法是,既然是来学习程式的,那就不用现有游戏引擎
而是用C++和SDL2,并以Entity-Component-System为主架构来实作
因为目标是做一款RPG闯关游戏,所以想法是先做一个简易游戏引擎
然后再利用引擎来编写游戏剧本,这样比较好扩充后续关卡
游戏简易流程图:http://imgur.com/bYokLS3
通用Component包含:图像(图片/文字)、事件、位置、物品属性
内部系统(负责单一Entity内的Component更新):移动
中层系统(内含Entity List,系统只负责逻辑处理):背包、选单、关卡、任务
环境系统:事件侦测、碰撞侦测(从EntityManager中观察含有特定component的Entity)
InputManager(收集玩家按键的Queue)、EntityManager(所有Entity)
游戏成果图(注意!背景和人物图像是由图片网站购买再加工)
http://imgur.com/nWOH98K
因为只有两个月时间,所以遗留几个待处理问题:
1. smart pointer不够熟悉,导致memory leak
2. 如果后续增加关卡的话,EntityManager势必会太长,这部份没有效控管
3. 图像没有进行分批读取处理
4. 碰撞仅以四边体侦测,相对粗糙
5. 图片仅有显示,无任何特效
虽然整个阳春又有很多错误地方,但我觉得这个作业是个好的开始
多亏这个作业的磨练,我在使用cocos2dx可以上手快些,即使架构不同
而且让我对游戏整个流程有初步了解,还会仔细研究现有引擎是如何处理问题
虽然因此而常常只能睡4-5小时,但是过程很值得:)