2023-11-19
大家好,很高兴再次见面,我是“高端前升阶“,我将带您关注前沿,深入前底技术,共同发展,也欢迎您关注、大拇指、收藏、分享!

高端前升阶
今天带给大家的主题是几个优秀的开源游戏引擎,关于 Three.js、Babylon.js、PixiJS之前有过单独的文章介绍,所以本文的页面不再有,以下是文章的传送器。
您可以关注我在头条新闻中建立的2D/3D引擎技术合集,我可以不时升级相关行业的技术。话不多说,直接开始!
cocos2d-x 它是用来建造的 2D 多平台框架,游戏、互动书籍、演试等图形应用程序。 它基于 cocos2d-iphone,但不使用底层 Objective-C,而是使用 C 。 cocos2d-x 适用 iOS、Android、macOS、Windows 和 Linux 等等很多平台。

cocos2d-x 主要特征包括:
开发人员可以复制 GitHub Repo 并根据自述文件中的流程进行操作,也可以在下载网页上作为 Cocos 下载包的一部分。 无论选择应用程序 C 、JavaScript 或是 Lua 设计,所有内容都打包在一个包里。 无论选择应用程序 C 、JavaScript 或是 Lua 设计,所有内容都打包在一个包里。 Cocos 主要产品有几个不同的组成部分。
目前 cocos2d-x 在 Github 上有超出 17.1k 的 star、7.1k 的 fork、编码推动者 600 ,是一个优秀的前端开发项目。
Egret Engine 是一个 HTML5 游戏引擎,它提供模块来处理常见的游戏开发任务,如 2D 和 3D 渲染、GUI 系统和声频及资源管理。 Egret 更灵活、更适用的模块 2D 或 3D 项目, 它允许开发人员在编码时不必担心底层浏览器的完成,HTML5 能或碎片化问题。

全体狙击神、一起打桌球、迷你世界创造板、梦幻西游网页版、拓展想象文章、枪火厂等游戏都是围绕白鹭引擎开发的。白鹭发动机的显著特点包括:
目前白鹭发动机在 Github 上有超出 3.8k 的 star、0.8k 的 fork、编码推动者 50 ,是一个值得关注的前端开发项目。
Eva.js 是阿里巴巴的经历 2 自主开发的互动游戏引擎致力于让前端开发以更低的成本开发互动游戏,并长期应用于淘宝、天猫、支付宝、优酷、考拉、菜鸟、盒马等需求场景。

根据官方叙述,Eva.js 前游戏引擎专门用于建立互动娱乐项目,具有以下明显特点:
应用 Eva.js 它们都比较简单,能通过 npm 直接安装或手动介绍相关信息 CDN 资源:
npm i @eva/eva.js @eva/plugin-renderer @eva/plugin-renderer-img --save
// <script src="https://unpkg.com/@eva/eva.js@1.0.4/dist/EVA.min.js"></script>
组装引进相应资源后,可直接在项目中使用:
import { Game, GameObject, resource, RESOURCE_TYPE } from '@eva/eva.js';
import { RendererSystem } from '@eva/plugin-renderer';
import { Img, ImgSystem } from '@eva/plugin-renderer-img';
resource.addResource([
{
name: 'imageName',
type: RESOURCE_TYPE.IMAGE,
src: {
image: {
type: 'png',
url:
'https://gw.alicdn.com/tfs/TB1DNzoovb2gK0jsk9XXaEgFXa-658-1152.webp',
},
},
preload: true,
},
]);
const game = new Game({
systems: [
new RendererSystem({
canvas: document.querySelector('#canvas'),
// 页面上有一个id,canvas原素canvas
width: 750,
height: 1000,
}),
new ImgSystem(),
],
});
const image = new GameObject('image', {

size: { width: 750, height: 1319 },
origin: { x: 0, y: 0 },
position: {
x: 0,
y: -319,
},
anchor: {
x: 0,
y: 0,
},
});
image.addComponent(
new Img({
resource: 'imageName',
})
);
game.scene.addChild(image);
据统计,目前 Eva.js 覆盖 9 个以上的 APP,30 天猫精灵甚至会有很多项目 Eva.js 身影,阿里巴巴内部 NPM 包下载次数 3w 覆盖用户数量超过的次数 5 亿。将来,Eva.js 是从是的,开发者的感受,互动水平开发互动游戏的三个方向使前端开发者的成本更低。将来,Eva.js 是从
是的,开发者的感受,互动水平
前端开发者以更低的成本开发互动游戏的三个方向。目前 Eva.js 在 Github 上有超出 1.7k 的star、0.1k 的 fork、编码推动者 10 ,是前面值得关注的开源项目。
LayaAir 可用于游戏、教育、广告、营销、数字孪生、元宇宙、AR 导游、VR 许多领域,如场景、建筑设计、工业设计等。除 HTML5 版本 WEB 除版本发布外,还支持发布。 Native-APP(安卓与 iOS)小游戏平台(微信游戏,巨型引擎游戏,支付宝游戏,OPPO 游戏、vivo 游戏、小米快游戏等。).
根据官网叙述,LayaAir 合作伙伴包括阿里巴巴、腾讯、百度、网易、美团、三七互动娱乐、完美世界等中国互联网制造商,在中国处于领先地位 Web 3D 引擎开发者。以下是应用 LayaAir 加载图片简单实例(大量实例可参考文末提供的参考文献自主查看):
(function () {
var Sprite = Laya.Sprite;
var Stage = Laya.Stage;
var Texture = Laya.Texture;
var Browser = Laya.Browser;
var Handler = Laya.Handler;
var WebGL = Laya.WebGL;
(function () {
// 当WebGL不兼容时,自动选择到Canvass
Laya.init(Browser.clientWidth, Browser.clientHeight, WebGL);
Laya.stage.alignV = Stage.ALIGN_MIDDLE;
Laya.stage.alignH = Stage.ALIGN_CENTER;
Laya.stage.scaleMode = 'showall';
Laya.stage.bgColor = '#232628';
showApe();
})();
function showApe() {
// 方法1:loadImage应用loadimagee
var ape = new Sprite();
Laya.stage.addChild(ape);
ape.loadImage('/res/apes/monkey3.png');
// 方法2:drawtextureture应用程序
Laya.loader.load(
'/res/apes/monkey2.png',
Handler.create(this, function () {
var t = Laya.loader.getRes('/res/apes/monkey2.png');
var ape = new Sprite();
ape.graphics.drawTexture(t, 0, 0);
Laya.stage.addChild(ape);
ape.pos(200, 0);
})
);}
})();目前 LayaAir 在 Github 上有超出 1.3k 的 star、0.5k 的 fork、编码推动者 30 ,是前面值得关注的开源项目。
melonJS 2 是 melonJS 现代版的游戏引擎, 2011 年首次发布。melonJS 2 是 melonJS 现代版的游戏引擎, 2011 年度首次发布。它完全应用。 ES6 重构类、继承和词义,并使用 Rollup 进行包装以获得转译和转译 tree-shaking 等现代作用。melonJS 绝对开源,依据 MIT 许可证在新加坡获得批准, AltByte 在一群发烧友的支持下,积极开发和维护。
melonJS 它是一个独立的库,有许多强大的特性,适合所有主流浏览器(Chrome、Safari、Firefox、Opera、IE 等)、适用于多声道声频,Tween 动画效果、转场效果等。并搭载了流行的 Tiled map 开发者可以使用格式 Tiled map 编辑器很容易设计游戏通过,然后更注重游戏功能的开发。
以下是应用 melonJS 研发的一个 hello world 实例:
import * as me from 'https://e.run/melonjs';
me.device.onReady(function () {
// initialize the display canvas once the device/browser is ready
if (!me.video.init(1218, 562, { parent: 'screen', scale: 'auto' })) {
alert('Your browser does not support HTML5 canvas.');
return;
}
// set a gray background color
me.game.world.backgroundColor.parseCSS('#202020');
// add a font text display object
me.game.world.addChild(
new me.Text(609, 281, {
font: 'Arial',
size: 160,
fillStyle: '#FFFFFF',
textBaseline: 'middle',
textAlign: 'center',text: 'Hello World !',
}));
});目前 melonJS 在 Github 上有超出 5.4k 的 star、0.6k 的 fork、编码推动者 60 ,是前面值得关注的开源项目。
Turbulenz 是一个 HTML5 游戏引擎和服务端 API,在 JavaScript 和 TypeScript 可用于构建和分发支持 HTML5 运行在现代浏览器(如现代浏览器)上的作用渠道 2D 和 3D 没有软件的游戏。
Turbulenz 允许所有建立基块的开发人员建立高质量的硬件加速 2D、3D 该项目可适用于包括智能机器、平板电脑和平板电脑在内的多个平台 Web,适用 Windows、Mac OS X、GNU/Linux 为开发人员提供易于安装的其他功能 SDK,包括开发人员所需的所有功能,如开发、运营、发布和部署。
要使用 Turbulenz API,只需要一个文本编辑器和一个浏览器,比如 Google Chrome 或 Mozilla Firefox。创建一个包含以下视频的视频 HTML 并将其放在文档中 Turbulenz 目录的根目录:
<html>
<head>
<title>Turbulenz - API - Clear Screen Example</title>
<script src="http://www.toutiao.com/a7233298226240111139/jslib/debug.js"></script>

<script src="http://www.toutiao.com/a7233298226240111139/jslib/webgl/turbulenzengine.js"></script>
<script src="http://www.toutiao.com/a7233298226240111139/jslib/webgl/graphicsdevice.js"></script>
</head>

<body>
<canvas id="canvas" width="640px" height="480px"/>
<script>
TurbulenzEngine = WebGLTurbulenzEngine.create({
canvas: document.getElementById("canvas")
});
var graphicsDevice = TurbulenzEngine.createGraphicsDevice({});
var bgColor = [1.0, 1.0, 0.0, 1.0];
function update() {
if (graphicsDevice.beginFrame()) {
graphicsDevice.clear(bgColor, 1.0);
graphicsDevice.endFrame();
}
}TurbulenzEngine.setInterval(update, 1000 / 60);
</script></body>
</html>
目前 Turbulenz 在 Github 上有超出 4.2k 的 star、0.5k 的 fork、编码推动者 13 ,是一以前值得关注的开源项目。
本文将推荐全网最受欢迎的开源游戏引擎,如cocos2d-x 、白鹭引擎 、Eva.js 、LayaAir 、melonJS 、Turbulenz。我坚信,通过阅读这篇文章,每个人都会对每个模块有一个初步的了解。由于篇幅有限,文章没有进行太多。如果你感兴趣,你可以继续在我的主页上阅读。同时,文章末尾的参考文献为学习提供了大量优秀的文档。最后,欢迎大家点赞、评价、分享、收藏!
https://github.com/cocos2d/cocos2d-x
https://github.com/cocos2d
https://docs.cocos.com/cocos2d-x/manual/en/about/getting_started.html
https://docs.cocos.com/cocos2d-x/manual/en/
https://github.com/egret-labs/egret-core
https://cloud.tencent.com/developer/article/1642871
https://github.com/eva-engine/eva.js/
https://github.com/layabox/LayaAir
https://blog.csdn.net/Taobaojishu/article/details/116077543https://github.com/melonjs/melonJShttps://github.com/turbulenz/turbulenz_engine