从超级玛丽、雷电、百战天虫、拳皇、伊苏的方向类型中,根据大家的意向,选择‘百战天虫’的方向进行第一个团队项目进一步内容。
了解到团队内不少人“缺失了完整的童年”(没玩过百战天虫 - -bnr ...) Zblc在此给大家介绍一下百战天虫的基本内容(虽然项目各方面内容可能完全和百战天虫不同,但基本功能、方向是一致的,都是横版利用到半即时轮流制且都充分利用到2D物理引擎):
第一张图中A是一个虫子在用枪瞄准射击后的动作,对面的山坡由于被它射中了汽油罐燃烧起来。
百战天虫为了增加平面的立体风格(如C所示是地形),实际上只有5个游戏对象:虫子角色、带卡通风格的地形(可被玩家通过道具摧毁)、道具、不可被玩家利用的动态飘落叶子和其他不可改变背景、海(掉入海会被淹死)。
B中是虫子被烧伤的动作.
第二张图显示的是一只虫子用推土工具(可以把地形推掉,形成地洞)把另一只属于玩家Lambo的虫子推向海中。
第三幅图是一只虫子发射出的导弹,不同的导弹有不同的轨迹规律(跟踪导弹、弧线导弹等等)需要掌握发射导弹的技巧,否则导弹可能发射了也不能达到命中目标反而伤了自己虫。
第四幅图:玩家可以选择的不同道具(a)。
游戏每回合操作是有时间限制的(b)。
游戏中虫子们可以利用各种身边的东西,比如引爆汽油罐释放焰火烧伤敌方虫子(A处)
利用某些工具可以让虫子们叠加的站着(A)
其他道具,比如触发炸弹,当虫子接近炸弹时,会自动爆炸(可被利用,比如通过对炸弹附近开枪,导致炸弹由于震到其他地方去接近敌对玩家的虫子,爆伤对方)。
B中虫子头上的问号代表这个玩家正在思考行动策略,C中有动态的叶子效果(叶子不完全是摆设,它能标示当时的风速,风速能影响导弹和其他跟空中有关的行动)
对百战天虫有了一个感性的认识后,下面思考我们要做的游戏基本细节:我把整个游戏划分为几块设计:
(A)整体游戏流程状态图(这个图体现的是玩家从打开游戏软件到退出游戏软件全过程:可能对无关紧要的地方会有所省略)
(B)物理引擎设计阶段简化表:
由于物理规律不能直接应用在游戏中(除了代价太大,也无必要,所以先要抽象出游戏中需要的物理规律,组成一个不互斥【对象-力】简化表。
首先列出游戏中涉及到的力(从此处就与百战天虫有很大区别,因为百战天虫只有摩擦力(包括风阻动力)、重力、弹力)
首先要说明的是为什么用万有引力而不用重力,重力是竖直向下的,但是如果我们设置的场景,要表现出一个星球和另一个星球,且,两个星球活物都可以按引力方式在上面行走,比如下图:
那4个小人代表我们即将要设计的游戏的活物(这里先简化掉美工),在我们的游戏里这两个星球是特殊物体,有自己的重力场,如果是百战天虫中,其中倒立的两个活物是不可能倒立的,因为在百战天虫不存在多个引力源。当然,互相之间的引力源由于距离太远,明显不互相影响(而且两个星球特殊物体本身并不遵从动力学规则,只是遵从力学规则)。
涉及到的游戏内对象(非OOP概念)的描述(对象包括:地形、活物、标志物...):
比如,地形只有两个属性“可受力摧毁”,“受特定条件影响”
由于设计的不完善,这只是初期设计,以后会做相应的简化和增加。
最后是最重要的 “对象-力” 约束关系:
如上表所cross.
地形不受任何动力学(除了摧毁、爆炸)影响。
活物受除了流体摩擦力的所有力的动力学影响(活物在水中不能浮起,要靠船只,在空气中不能浮起,要靠氢气球等等)
特殊活物一般用于BOSS设计,比如某些BOSS体型如哥斯拉,当玩家们的“活物”们围攻它们时,可以爬到BOSS身上去摧毁它们的形态,用钩锁拉上去,这一点特殊活物与活物是不同的,活物不能被摧毁形态,比如:百战天虫中没有哪只虫子只有半截身体(除了动作特效的短暂时间)。
大家有什么疑问和建议可以尽量提出来。
另外,这是物理引擎的初期设计简化表,在实际做游戏的时候,可以再次根据游戏中情况简化掉意义不大的力学规律(用单一变量属性代替掉),另外,上面的表还有几个对象没加进去,待加。