古代战争

游戏介绍

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

最新版本

v0.2

游戏演示

请在Chrome或Firefox浏览器中运行
演示地址

功能介绍

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游戏-古代战争的更多相关文章

  1. 发布HTML5 2D游戏引擎YEngine2D

    关于YEngine2D YEngine2D是一个开源的.采用HTML5技术和Javscript语言创建的2D游戏框架,用来构建web二维游戏. GitHub地址 最新版本 v0.1.2 浏览器支持 C ...

  2. 25 个超棒的 HTML5 & JavaScript 游戏引擎开发库

    就像在汽车中,引擎完成主要的工作,使汽车看起来不可思议.游戏引擎同理,游戏开发者完成细节的工作,使游戏看起来真实.吸引人眼球.游戏引擎负责其余的事情.早期,游戏开发者通常从草图做起,花费高昂,且不容易 ...

  3. 40个容易上瘾的HTML5网页游戏,总有一款适合你

    我记得姐姐家的孩子在刚刚才学会走路,说话还不能完整的时候就已经能自己用小手点出小游戏的网站来一个人自娱自乐.我一直在想这一代跟着计算机一起茁壮成长的孩子会不会也和美国那一代人一样,出现9岁的黑客和计算 ...

  4. 如何制作一款HTML5 RPG游戏引擎——第五篇,人物&人物特效

    上一次,我们实现了对话类,今天就来做一个游戏中必不可少的——人物类. 当然,你完全是可以自己写一个人物类,但是为了方便起见,还是决定把人物类封装到这个引擎里. 为了使这个类更有意义,我还给人物类加了几 ...

  5. 如何制作一款HTML5 RPG游戏引擎——第一篇,地图类的实现

    一,话说天下大事 前不久看到lufy的博客上,有一位朋友想要一个RPG游戏引擎,出于兴趣准备动手做一做.由于我研究lufylegend有一段时间了,对它有一定的依赖性,因此就准备将这个引擎基于lufy ...

  6. 推荐一些好用的 HTML5 & JavaScript 游戏引擎开发库

    推荐一些好用的 HTML5 & JavaScript 游戏引擎开发库 0. 引言 如果你是一个游戏开发者,并且正在寻找一个可以与 JavaScript 和 HTML5 无缝工作的游戏引擎.那么 ...

  7. 推荐10款超级有趣的HTML5小游戏

    HTML5的发展速度比任何人的都想像都要更快.更加强大有效的和专业的解决方案已经被开发......甚至在游戏世界中!这里跟大家分享有10款超级趣味的HTML5游戏,希望大家能够喜欢! Kern Typ ...

  8. 推荐21款最佳 HTML5 网页游戏

    尽管 HTML5 的完全实现还有很长的路要走,但 HTML5 正在改变 Web,未来 HTML5 将把 Web 带入一个更加成熟和开放的应用平台.现在,越来越多的人尝试用 HTML5 来制作网页游戏等 ...

  9. Skytte:一款令人印象深刻的 HTML5 射击游戏

    Skytte 是一款浏览器里的 2D 射击游戏.使用 Canvas 元素和大量的 JavaScript 代码实现.Skytte 是用我们的开源和现代的前端技术创造的.经典,快节奏的横向滚动射击游戏,探 ...

随机推荐

  1. mongo学习笔记(五):分片

    分片  人脸:       代表客户端,客户端肯定说,你数据库分片不分片跟我没关系,我叫你干啥就干啥,没什么好商量的. mongos: 首先我们要了解”片键“的概念,也就是说拆分集合的依据是什么?按照 ...

  2. 一个自定义 HBase Filter -“通过RowKeys来高性能获取数据”

    摘要: 大家在使用HBase和Solr搭建系统中经常遇到的一个问题就是:“我通过SOLR得到了RowKeys后,该怎样去HBase上取数据”.使用现有的Filter性能差劲,网上也没有现成的自定义Fi ...

  3. Eclipse和MyEclipse 手动设置 Java代码 注释模板

    一.目的 1.  为什么需要注释规范? 注释规范对于程序员而言尤为重要,有以下几个原因: 一个软件的生命周期中,80%的花费在于维护. 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维 ...

  4. mysql、sql server、oracle数据库分页查询及分析(操作手册)

    1.mysql分页查询 方式1: select * from table order by id limit m, n; 该语句的意思为,查询m+n条记录,去掉前m条,返回后n条记录.无疑该查询能够实 ...

  5. A class for global logging

    Some time we need to record the logging information in multiple module, however if we use the follow ...

  6. 原始的2文件的makefile错误

    从来没系统的看过makefile文档,平时属于复制模板,用完即忘,下午尝试按自己的理解写一个最简单的makefile,含2个.c文件,1个.h文件,费了个把小时,参考别人的文章才弄出来,特记录. ma ...

  7. fdtd simulation, plotting with gnuplot, writting in perl

    # 9月13日 于成都黄龙溪 1 #!/usr/bin/perl # Author : Leon Email: yangli0534@gmail.com # fdtd simulation , plo ...

  8. JAVA基础之对象的初始化

    本文主要记录JAVA中对象的初始化过程,包括实例变量的初始化和类变量的初始化以及 final 关键字对初始化的影响.另外,还讨论了由于继承原因,探讨了引用变量的编译时类型和运行时类型 一,实例变量的初 ...

  9. 2014 Super Training #7 C Diablo III --背包问题(DP)

    原题: ZOJ 3769 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3769 一个带有一些限制的背包问题. 假设在没有限 ...

  10. HDU 2669 Romantic【扩展欧几里德】

    裸的扩展欧几里德,求最小的X,X=((X0%b)+b)%b,每个X都对应一个Y,代入原式求解可得 #include<stdio.h> #include<string.h> ty ...