Layabox技术讲座分享

如何利用状态同步开发一款联机游戏 游戏状态同步 1.前言 目前市场上单机游戏占比高,因为相对联机游戏开发周期短、成本低,但联机游戏的社交属性强,玩家粘性高。总体来说,开发联机游戏有一定的技术门槛。 2.帧同步和状态同步 • 帧同步过程为各客户端实时上传操作指令集;服务端保存这些操作指令集,并在下一帧将其广播给所有客户端;客户端收到指令集后分别按帧序执行指令集中的操作。同步的是玩家的操作指令,该方式多用于对实时性要求很高的网络游戏。 • 状态同步过程为客户端上传操作到服务端,服务端收到后计算游戏行为的结果,即... 阅读详情

在这里插入图片描述

今天有幸听了Layabox公司技术负责人做的技术宣讲,关于LayaAir 2.0。收获不少,在此记录一下。

目前Layabox公司主推LayaAir 2.0,不过还是beta版本,演讲者也说了,如果是开发3D游戏,一定要用2.0;如果是开发2D游戏,可以选择1.0或者2.0,前者更加稳定,后者功能和性能更强。

2.0中给我印象比较深的几大特性:组件化、物理引擎升级、场景管理。

先说下组件化。这个功能也是模仿Unity,好处是模块划分清晰,所见即所得。事实上,LayaAir很多方面都在学Unity,特别是IDE和工作流这块。演讲者对Unity的开发效率推崇备至,坦言现在LayaAir与其还有很大差距。Laya甚至做了一个Unity插件,支持将Unity中开发好的shader一键导出到LayaAir中。这也可以理解为一种商业策略,吸引更多的Unity开发者转向LayaAir,或者方便将Unity开发好的手游移植到H5平台。

物理引擎升级,演讲者强调了这是性能提升最大的一块。这主要得益于对WebAssembly的使用。WebAssembly顾名思义,是在web开发中用到的bytecode。它屏蔽了ts、js等语言的差异,先编译再解释执行,从而提升效率。LayaAir把物理碰撞检测中的大量计算放在WebAssembly中,极大提升了执行效率。

场景管理,也是模仿Unity的一个功能。好处是切换场景时不用手动释放资源,会自动清理。如果需要跨场景保留的资源,则可以选择不添加在场景中。

关于as/js/ts语言的选择,演讲者表示,LayaAir现在对as的支持最好;不过as毕竟是停止更新的语言,LayaAir以后对它的支持也会慢慢淡化,直至脱钩。在js和ts之间,演讲者建议选择ts,因为ts的类型健壮,而且ts编译成js的过程效率很高。

Laya还提供了一个很有意思的功能:LayaCloud。这是为一些小cp提供的服务端解决方案。具体应用场景:一些简单的交互游戏(如IO游戏)要用到服务端通信,或者帧同步,但是小团队又没有时间精力去开发后端框架、部署服务器,这时就可以使用LayaCloud。它将云服务和服务端框架做了封装,暴露出简单的接口。开发者只需用node.js写简单的逻辑即可,不用关心下面的技术细节。

演讲者还为我们演示了用LayaAir做的pbr渲染,一个战士盾牌带反光的效果,还不错。这一点有点出乎我的意料,原以为pbr在H5平台上跑不起来。据他们说,申请了相关专利,用于保证pbr在H5平台的性能。不得不说,Laya在3D这一块的优势挺大的,市场份额也是遥遥领先其他H5引擎。选择一款好引擎,对于公司长远的技术规划来说也是很重要。

在整个过程中,演讲者侃侃而谈,说得很实在,对Laya的一些不足也直言不讳。对于我们的提问也是有问必答,热心交流。相信一个靠谱的负责人带队开发的引擎也不会差,这也增加了我们用Laya开发好游戏的信心。

王者之剑源码实战:Git仓库治理、代码审计与帧同步拆解 源代码管理是商业游戏工程稳定性的基石,不仅关乎版本迭代效率,更涉及软著申请、外部审计与线上事故定责。在大型动作手游项目中,合理规划Git仓库、统一提交规范、分离美术资源是降低协作成本的前提;而借助自动化脚本从受控源码生成软著PDF,则能显著提升交付合规性。代码审计同样关键,通过静态扫描工具排查支付回调、热更脚本中的SQL注入、越权与硬编码隐患,可有效规避安全风险。核心战斗模块中,状态机设计与帧同步选型决定了手感与一致性,需辅以定长步进、定点数运算及双开对比测试来保障确定性。本文以“王者之剑”项目为案例,从源 阅读详情

相关推荐

使用JavaScript和Layabox框架制作打地鼠游戏

本文还有配套的精品资源,点击获取 简介:JavaScript打地鼠游戏通过JavaScript和HTML5 Canvas技术实现,采用Layabox框架简化游戏开发。教程涉及事件监听、时间循环、Canvas绘图、类与对象、数据结构与算法、状态管理、用户交互、资源加载、性能优化以及调试与测试等关键知识点,帮助开发者深入理解并掌握这些技术以构建一个完整的游戏项目。 1...

weixin_35755188的博客 956

游戏帧同步的流程与实现

大纲 帧同步的基本原理 帧事件数据采集 帧同步的事件处理与动画 帧同步的逻辑数据同步 帧同步之跳帧处理 现代多人游戏中,多个客户端之间的通讯大多以同步多方状态为主要目标,为了实现这一目标,主要有两个技术方向: 状态同步 帧同步 状态同步 状态同步简单来说就是同步游戏中的各种状态,当客户端发送游戏动作到服务器,服务器接收到之后,通过计算游戏行为的结果,然后广播下发给客户端游戏中的各种状态数据。客户端接收到状态数据后显示内容。这种做法类似于各个客户端都在远程操作服务器上的软件。例如最高的mud,

wdglhack的专栏 1957

Reality Capture控制点修复/合并模型

通过增加控制点/修改对齐设置参数来修复模型被分为两个部分的解决方法

草履虫建模的博客 5243

《铸梦之路一》帧同步

帧同步卡牌手游 1.帧同步介绍 2.战斗 3.战斗加速 4.战斗回放

你只管努力,其他的,交给天意! 5507

最新Linux CSI Tools安装教程(两台主机,一发一收)(监控模式)

无线感知之CSI Tools工具安装,最新在监控模式下采集CSI数据,

h1998040218的博客 3033

DroidGuard虚拟机逆向解析:指令集、密钥派生与反调试机制

DroidGuard是Google在Android生态中部署的轻量级定制虚拟机,用于设备完整性校验。其核心原理是通过自解释字节码、多层混淆指令集与动态密钥派生机制,在ART运行时构建静默安全沙箱。技术价值在于规避传统API检测盲区,实现高鲁棒性环境感知;典型应用场景包括金融SDK风控、Play Services可信启动及合规性审计。本文深入拆解其4字节指令编码规则、基于设备指纹的三阶段密钥派生(SHA256→Feistel→AES)、以及五层反调试体系(ptrace快照、时间差分、内存页探测、指令流校验、服

weixin_32736961的博客 587

LayaBox上使用自定义WebAssembly初体验

跟着官方实例写的时候,发现fetch在本地无法使用,于是想到了使用XMLHttpRequest,他们两个都是用来请求资源的,差异也不大。 以下是官方MDN对于Fetch与XMLHttpRequest区别: Fetch提供了一个更好的替代方法,可以很容易地被其他技术使用,例如Service Workers。Fetch还提供了单个逻辑位置来定义其他HTTP相关概念,例如CORS和HTTP的扩展。...

分享即学习 1377

拼多多笔试真题-多多送快递(C++/Py/Java /Js/Go)

拼多多技术岗笔试 8月2号真题,拼多多笔试第三题【多多送快递】,提供详细思路讲解以及Java、C++、Python、Go、JavaScript多语言代码实现。拼多多笔试真题【多多送快递】多语言题解。

qq_45776114的博客 293

LayaAir 2.0 正式版发布了,重要特性全面介绍

自9月15日首次发布LayaAir 2.0 引擎测试版以来,历时4个多月,推出了4个2.0 beta版本,其中修复BUG若干,2D引擎与IDE优化与新增功能37项,3D引...

Layabox 2684

线程池详解(通俗易懂超级好)

目标 【理解】线程池基本概念 【理解】线程池工作原理 【掌握】自定义线程池 【应用】java内置线程池 【应用】使用java内置线程池完成综合案例 线程池 线程池基础 线程池使用 线程池综合案例 4.学员练习 5.线程池总结 概念介绍 1:什么是线程池 2:为什么使用线程池 3:线程池有哪些优势 什么是池 什么是线程池 线程池其实就是一种多线程处理形式,处理过程中可以将任务添加到队列中,然后在创建线程后自动启动这些任务。这里的线程就是我们前面学过的线程,这里的任务就是我们前面学过的实现了Runna.

拉格朗日的学习笔记 12万+

LAMMPS后处理—如何构建二维云图-接触角呢?

计算接触角

Rockyoung 6523

LayaAir引擎放弃Canvas API,打造次世代3D引擎与云游戏引擎,提供AI赋能!

LayaAir引擎放弃Canvas原生API,并不等于放弃2D,而是为更好的发展2D和3D!那为什么要放弃Canvas原生API,以及LayaAir引擎未来的发展规划,...

Layabox 989

获取抖音中x-secsdk-csrf-token的方法

获取抖音中x-secsdk-csrf-token的方法

sh_moranliunian的博客 2020

moba源码类似王者荣耀后台springboot+netty,前端cocoscreator3.x,数据通讯格式用的protoc

客户端用于处理战斗逻辑,每隔66ms向服务器发送玩家操作数据,由于考虑到客户端h5性能,改为玩家无操作则不向服务器发送数据服务器只负责转发客户端操作,每隔66ms向同房间玩家同步操作数据服务器收到玩家发送操作数据的同时将按照服务器的帧号将数据存起来服务器将在n+1帧向玩家同步n帧操作数据客户端解析服务端发送的帧数据更新逻辑位置,渲染位置在update中一直插值平滑的追赶逻辑位置。

baichangping的博客 1976

Jetson nano 系列之2—板载摄像头IMX219启动

我选用的是亚博科技jetson nano的开发板。

驽马十驾,功在不舍;锲而不舍,金石可镂。 4274

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

laya游戏开发之贪吃蛇大作战(一)

laya游戏开发之贪吃蛇大作战一、背景二、引擎选择三、整体架构3.1 游戏架构3.2 技术选型 一、背景 需要快速实现一个贪吃蛇的 demo 以验证功能,非传统贪吃蛇玩法,是类似贪吃蛇大作战的多人联机玩法 二、引擎选择 引擎和语言的选择比较多样,但因为一开始的需求是 H5 或者微信小游戏的形式,因此没有考虑 Unity / UE4 等传统引擎(对 H5 的支持比较有限),转而考虑使用 cocos2d、laya 等原生支持 H5 的引擎 (引擎支持 JavaScript 开发)。 经过易用性、上手成本的考

siri的世界 3951

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

网络游戏同步(帧同步详细学习...demo未完成)

因为网络同步这块只是学了点理论基础,面试时候被问的很细,才发现自己这方面只是了解了皮毛,所以这里单独开个帖详细学一下,然后做一个Demo来巩固一下。 理论学习:是知乎这篇文章,主要是这篇文章举的例子很容易理解,大家可以看一下。 帧同步怎么理解? 根据上面知乎举例,可以这么理解,老师每天晚上来收集每个同学的作业,收集完成后,分发给所有同学,让同学自己去批阅作业,如果是老师自己批阅打分就是状态同步,所有同学打分机制都是一样的,这样才能达到相同的结果。 严格帧同步就是老师得把所有同学作业都收上来才行,否则大.

Ha啤酒来大杯的博客 502

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

主程技术分享: 游戏项目帧同步,状态同步如何选

网络游戏开发项目中帧同步,状态同步如何选? 网络游戏的核心技术之一就是玩家的网络同步,主流的网络同步有”帧同步”与”状态同步”。今天我们来分析一下这两种同步模式。同时教大家如何在自己的项目中采用最合适的同步方式。接下来从以下3个方面来阐述: 1: 状态同步的原理与常用的处理方式; 2: 帧同步的原理与常用的处理方式; 3: 哪些游戏适合帧同步,哪些游戏适合状态同步; 这里有个学习交流小组 里面有大佬 有萌新 大家可以一起学习交流哦 希望能帮助大家掌握帧同步与状态同步原理,并能做出对项目与团队最正

voidinit的专栏 5977

moba源码类似王者荣耀后台springboot+netty,前端cocoscreator3.x,数据通讯格式用的protobuf,开发两年多,完成80%以上

客户端用于处理战斗逻辑,每隔66ms向服务器发送玩家操作数据,由于考虑到客户端h5性能,改为玩家无操作则不向服务器发送数据服务器只负责转发客户端操作,每隔66ms向同房间玩家同步操作数据服务器收到玩家发送操作数据的同时将按照服务器的帧号将数据存起来服务器将在n+1帧向玩家同步n帧操作数据客户端解析服务端发送的帧数据更新逻辑位置,渲染位置在update中一直插值平滑的追赶逻辑位置。

baichangping的博客 2210

unity 开发微信小游戏技巧

WebAssembly 是除 JavaScript 以外,另一种可以在网页中运行的编程语言,并且相比之下在某些功能和性能问题上更具优势,过去我们想在浏览器中运行代码来对网页中各种元素进行控制,只有 JavaScript 这一种选择,而如今我们可以将其它语言(C/C++ etc.)编译成 wasm 格式的代码在浏览器中运行。技术,无需更换Unity引擎与重写核心代码的情况下将原有游戏项目适配到微信小游戏。由转换工具与微信小游戏运行环境保证适配兼容,保持较高还原度。无需重写游戏核心逻辑,支持大部分第三方插件。

wangwen_22的博客 1161

Layabox2初学(一)javascript

Layabox2初学(一) 公司老大要我做一部分关于游戏,类似于美团免费领水果项目,工具主要使用layabox,由于当前layabox版本已经更新到layabox2版本,并且laya官网针对初学者对于图形与代码如何关联、甚至laya工具如何使用在前期使用时都存在很多弯路(本人感受),官网中提供的视频教学我听得也是一头雾水,而且教学老师讲话听得我太累太累,并且还要花钱买这个视频课程。花了大概一天时间才找到一个有用的教学视频 https://space.bilibili.com/265902856/search

weixin_39475925的博客 2428

基于Layabox引擎的魔塔微信小游戏设计与实现

文档+任务书+开题报告+文献综述+外文翻译及原文+项目源码及xlsx数据表 基于layabox的微信端魔塔小游戏开发 摘要:在社会发展的今天,人们对于物质上的追求已经基本满足,开始寻求更多精神上的追求。疫情当下,游戏这一娱乐模式逐渐成为人们习惯的一种行为方式。而相对于大型网络游戏与普通APP手游的需要长期积累升级,下载后才能进行游戏的模式,小游戏体验轻便,无需下载,寄托于客户端的方式无疑为玩家开辟了一条新的快捷的方式,自微信小游戏推出后,头条,VO快应用等各大厂商紧随其后,掀起了中国全新5G时代下游戏的新浪

毕业作品网站 1718

Lyabox

在使用layabox遇到的问题 1.图文混排聊天时候,谷歌浏览器调试表情大小是正常的,在手机上打开后发现表情尺寸大小无法控制,表情是通过innerHTML添加的,导致打包后的APP无法控制表情尺寸的大小,我的解决方法通过PS手动调整每个表情的大小。 2.动画播放完后回调clear导致打包APP闪退,通过Android studio debug 调试查看日志 ,发现是有一个报错导致进程直接被杀死

yangkaiyin666的博客 240

Layabox WebGL Shader编程教程

在Html5 3D游戏开发中WebGL Shader的作用非常重要,然而学习WebGL Shader的路却不是那么容易,第一它涉及到方方面面的知识和基础, 比如:3D数学,计算机图形学甚至硬件。第二各个Html5游戏引擎关于WebGL Shader的资源都比较少,不方便初学者入门学习。与其在互联网上四处搜索零散的资料,不如从头开始,系统全面的去学习WebGL Shader的“代码的艺术”。本教程“授人以渔”,为大家带来零起点的WebGL Shader教学,从图形硬件的发展史开始,讲GPU可编程管线,讲3D模型数据结构、贴图、光照、渲染,让大家能从一个纵深的过程中宏观的了解这种技术的前因后果。教程以LayaBox引擎为环境 ,重点放在GLSL语言的学习,经典光照的计算,各种纹理贴图的原理与使用,PBR、NPR、SSS等渲染类型的实现。 手把手在Layabox环境下进行逐行代码的教学,期望帮助大家进入WebGL Shader编程的大门,最终能在实际的工程实践中有些创造和创新。1. 课程为99课时,总时长约为2000分钟到2500分钟。2. 课程 源代码 在对应课时的课件资源中,可下载。

LayaBox---知识点

首次接触,逐个记录 laya知识点,有不对的地方请大神多多评论

学海无涯 3421

LAYABOX:2024新年寄语

2024新年寄语过去的一年,尽管许多行业面临严峻挑战和发展压力,小游戏领域却逆势上扬,年产值首次突破400亿元大关,众多优质小游戏企业收获颇丰。对此,祝福大家,2024一定更好!过去的一年,LAYABOX也面临着一些挑战。但值得自豪的是在6月30日--这个具有纪念意义日子,推出了研发四年的LayaAir引擎成年版“LayaAir3”。这个版本的口碑超出了我们预期,无论是引擎性能还是IDE的体验,都...

Layabox 756
上一篇: MessagePack为什么比Json更小更快
下一篇: 【bat】批量修改文件名脚本
长三月
博客等级 码龄9年 228粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值