发布HTML5 RTS游戏-古代战争

古代战争

游戏介绍

“古代战争”是一个2.5D即时战略游戏,使用了帝国时代2的素材,并参考了它的游戏设计和玩法。
游戏基于YEngine2D引擎开发,具备生产、建造、资源采集、战斗、地图迷雾等RTS核心要素。
GitHub地址

最新版本

v0.2

游戏演示

在线演示

发布HTML5 RTS游戏-古代战争_第1张图片

功能介绍

发布HTML5 RTS游戏-古代战争_第2张图片

1、地图
a)背景地图
背景地图大小为90×90,地形方块有草原、沙漠、河流、道路四种类型,其中精灵不能通过河流方块,可以通过其它三种方块。
游戏中通过拼接菱形方块,来即时生成菱形背景地图。
b)小地图
游戏右下方有小地图,玩家可直接在小地图上移动视口、下达框选单位的移动和移动攻击的命令。
c)视口移动
玩家可以通过鼠标移动来使当前视口移动,从而显示背景地图的不同区域,即进行地图滚动。
因为背景地图为菱形,为了防止玩家滚动到地图外,当玩家在地图边缘滚动时,视口会与菱形地图平行移动。
2、加入实体
游戏中精灵实体分为地形、资源、建筑和单位这四种类型。其中“山”为地形类型,“肉”为资源类型,“基地”、“射击场”和“箭塔”为建筑类型,“农民”和“弓箭手”为单位类型。
a)显示
地图上可以显示实体和实体的精灵动画。选中建筑或单位实体时,会在地图上显示它们的血条和菱形方框,并在游戏面板上显示实体信息。
b)操作
可以对资源、建筑和单位实体进行操作。操作分为单个实体操作和多个实体操作。
玩家通过鼠标可以对单个建筑或单位实体下达命令,从而实现实体操作。如玩家可以选中单个建筑,进行生产操作;也可以选中单个单位,然后使用鼠标右击地图,使单位移动到该处;还可以选中己方单位,然后右击一个敌方单位,使其攻击敌方单位。
玩家可以通过拖动鼠标来框选多个单位,进行移动、攻击操作;还可以使用shift键,来选中或取消建筑或单位实体。
3、关卡
游戏有1个关卡,关卡有通关条件和失败条件,关卡通过或失败都直接结束游戏。
a)关卡设计
可在levelData.js脚本中编辑关卡有哪些精灵实体、关卡加载的资源、调用的触发器等,可在trigger.js中编辑关卡的触发器。
b)资源加载与管理
在开始每个关卡时,游戏会首先加载当前关卡所需的资源,并将加载的资源保存在引擎容器中。
c)触发器
触发器是通过游戏事件的机制来实现在特定时间或特定条件下,触发特定的动作。游戏通过触发器机制实现基本的关卡AI。
4、移动
单位实体可以在地图中移动,其采用A Star算法来静态寻路,采用Steer算法和A Star算法来动态寻路
5、采集资源
玩家需要通过农民采集资源树并运送到基地来增加“肉”这个资源。每个资源树总数有限,农民一次只能采集有限的资源,运送到基地后玩家才能获得资源。建造和生产实体都需要花费资源。
6、建造
农民可以建造建筑,玩家选中农民建造时会有建造框提示,不能建造在不可通过的地形上或迷雾中。
多个农民可以建造同一个建筑,这会使建造速度加快。建造时游戏面板中会显示建造进度信息,并且不同的建造进度会在地图上显示不同的建造效果图片。
7、生产
基地可以生产农民,射击场可以生产弓箭手。
玩家可以点击建筑生产多个单位。同一时间建筑只能生产一个单位,其余单位会排队等待生产。
生产时会在游戏面板中显示进度信息。
8、战斗
游戏中实体分为蓝色实体和红色实体,其中蓝色实体属于玩家所在的阵营,红色实体属于敌方阵营。玩家可控制己方单位攻击敌方单位。
攻击类型分为远程攻击和近战攻击,其中弓箭手为远程攻击,农民为近战攻击。
弓箭手发出的弓箭轨迹为抛物线,游戏会根据目标的前进方向和速度计算弓箭的目的地。
9、迷雾
游戏中玩家己方单位和建筑有一定的视线范围,在视线范围内是可见的,可以看到所有的实体;而在视线范围外,则只能看到背景地图,不能看到敌方实体。
游戏地图区域分为可视区域、已探索区域、未探索区域,其中位于玩家单位和建筑视线范围内的区域为可视区域,可以看到玩家和敌人的单位和建筑;玩家单位探索过的地图区域为已探索区域,可以看到地形、敌人建筑;其余地图区域为未探索区域,为一片黑色,什么都看不到。
10、声音
开始关卡前会加载单位和建筑的音效。
这里值得说明的是有些音效是局部的,只有当发出该音效的单位或建筑位于视口中时才会播放;有些音效是全局的,会直接播放。

关卡介绍

目前只有一关,玩家需要消灭地图上所有的敌人。

升级计划

  • 修复游戏bug
  • 改进游戏功能、用户体验,优化游戏性能
  • 增加游戏可玩性,增加更多的单位、建筑和关卡
  • 优化地形,增加每种地形的方块种类,实现相邻地形的自动拼接
  • 实现多人联网
  • 开发移动版,可在安卓和ios上运行
  • 重构代码,优化性能

你可能感兴趣的:(发布HTML5 RTS游戏-古代战争)