Eva.js 介绍

Eva.js 是什么

Eva.js 是一款专注于开发游戏化项目的游戏引擎。 Eva.js 提供游戏化项目开发中最常用、最基础的功能,让开发前端游戏化变得轻而易举。 Eva.js 提供高效的游戏运行时、渲染能力,可实现复杂的游戏化场景。 Eva.js 基于 ECS 设计模式,可自由扩展引擎功能,构建更繁荣的生态系统。

想要了解并开始使用 Eva.js,请继续阅读~

起步

Eva.js 是一款前端框架,使用者需了解 HTML/CSS/JS 等知识,目前 Eva.js 只有 npm 引入方式,开发者需使用node/npm/webpack等前端工具。

安装 Eva.js

  1. npm i @eva/eva.js

其实,不用看下面这些概念,直接看 playground 就可以开始开发了,看了下面概念更容易理解引擎的设计理念,开发更专业的游戏。

概念

游戏

游戏(Game)是整个 Eva.js 项目的运行时载体,因为 Eva.js 是专注于游戏化项目的游戏框架,所以这个载体也被称之为游戏(Game)。

游戏对象

游戏对象(GameObject)是 游戏中的物体,为了实现游戏能力的插拔,可实时的添加/移除/修改某些能力,我们将游戏对象设计成了一个可以装载任何能力的容器,新初始化的对象没有任何能力。例如某个游戏对象是一个飞机,它需要一个飞机的图片来展示,我们就给游戏对象添加展示图片的能力,如果它需要移动,需要添加移动能力。

组件

组件(Component)可以 赋予游戏对象能力, 也就是上文中提到的可插拔能力,通常上面只存储一些数据。每一个对象可以安装多个组件来添加对应的能力,通常组件只对自己绑定的对象负责。

Eva.js 官方提供了很多渲染、动画、数据管理相关的组件,可以直接使用到业务中,日常简单游戏开发中,我们会使用脚本组件来实现一些业务逻辑

脚本组件

脚本组件能力与组件相似,来实现一些业务逻辑,但是相对于组件而言,脚本组件提供一套生命周期函数,可以通过这套生命周期当前组件绑定的游戏对象进行操作,例如移动位置、修改其他组件的属性等操作。推荐在游戏开发中使用脚本组件来开发业务逻辑。

系统

系统(System)通常用来读取组件上面的数据,实现组件对应的能力,通常在游戏开始前或使用到的时候进行安装,Eva.js 的核心是非常轻量级的运行时,是没有默认安装系统的,包括渲染系统都需要手动安装。例如图片组件上面只有一个图片资源属性,系统会读取该资源属性将对应的图片渲染到画布上,通常这一步是不被开发者所看见的,开发者只需要添加图片组件即可实现图片的渲染。

插件

插件是组件与系统的组合,通常通过 npm 包的形式提供出来,系统通常在游戏开始前或使用到的时候进行安装。组件在给游戏对象添加能力时使用。

image.png

让我们一起来使用 Eva.js 吧。