尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
FPS游戏框架漫谈第八天
话说当我们上架一款游戏无论游戏内容的多和少游戏是人开发的那么就可能存在bug从而引发玩家逃离那么作为游戏的技术负责人需要为这些潜在的风险提供什么避险神器呢这就引出了我们今天要谈论的话题热更新 热更新技术是什么呢一个热字就知道我们的游戏肯定一直在运行中的外网玩家是随时可以进行注册和登录并且进行游戏体验那么这个功能就要求我们不能关闭游戏服务器进行重启来更新游戏逻辑甚至是下架外网上架各种渠道的游戏安装包然后进行上架进行内容更新的甚至是bug的修复这个方式是比较传统的 可以叫冷更新既然提到热更新那么比较传统的热更方式对于编译型语言是DLL动态库的形式进行代码逻辑热更针对解释型语言就简单了配置unity引擎自带的AssetBundle的方式以资源包的方式进行远程下载替换本地文本的方式直接完成了热更。那么我们的项目c#语言能不能采用dll动态库的方式进行热更呢就现有状态安卓平台没有新增限制苹果平台考虑到软件风险直接不支持dll方式进行热更那么问题来了苹果是如何干预了原有的dll热更呢首先我们要知道dll是怎么实现了热更说白了就是我们可以直接通过dll中的信息动态创建代码逻辑然后在交给编译器进行编译成中间语言中间语言在翻译成字节码拿到字节码交给机器机器就认识了。然后苹果干了一件什么事让这个流程中断了呢。首先是苹果直接在操作系统的层面上改变了上面的这个流程定义了所谓的Full AOT模式这个模式不像安卓平台是支持JIT也就是边编译边执行那么需要什么逻辑去支持Full AOT模式呢很简单直接丢掉翻译这步如果遇到我们采用的dll动态库创建出来的原始代码是不会给你有编译机会的那么就这个时候你并不是中间语言直接丢给虚拟机是不认识的这个虚拟机的功能是拿到中间语言转换成字节码。那么结果是什么把他当成字节码去解读肯定是找不到中间语言定义的语法的直接会报错找不到啥啥啥这个时候我们怎么办放弃ios平台的bug修复了吗不 我们公司的技术负责人是1000万个不服的。我想想既然直接是拿到中间语言转换字节码 那么我如果将我们新增了代码或者修复了bug的原始工程直接进行编译编译之后我们是可以拿到一个中间语言版本 对应我们C#工程来说其实就是Mono.Cecil库。那么我们直接把这个库进行替换那么这个库编译成字节码之后是不是我们新加的内容是不是已经进去了呢 想了下还是真是但是有人会疑问外网的c#代码是不是没有新增吗。我想说我们的操作系统跑的不是c#原始代码 而是最终的010101011010101001机器码所以我们要做的事就是Xlua做的事据说这个插件还不错腾讯开源啊哈哈第九天见
RELATED

相关推荐

嵌入式开发:从玩具级Demo到工程级交付的闭环思维

嵌入式开发:从玩具级Demo到工程级交付的闭环思维

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/25 1:09:05
芯片后端时序路径分析入门:建立时间、保持时间与STA核心概念

芯片后端时序路径分析入门:建立时间、保持时间与STA核心概念

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/25 1:09:05
汽车电控架构设计实战:从信号流到供电链的全链路拆解

汽车电控架构设计实战:从信号流到供电链的全链路拆解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/25 1:09:05
MORE NEWS

更多资讯

📰

Flutter/OpenHarmony 三方库适配实战:jpush_flutter 推送兼容层

Flutter/OpenHarmony 三方库适配实战:jpush_flutter 推送兼容层 一、项目信息 项目内容仓库名称jpush-flutter-pluginDart 包名jpush_flutterAtomGit 仓库地址https://atomgit.com/oh-flutter/jpush-flutter-plugin上游适配版本3.5.9OHOS 适配版本3.5.9-ohos.1方法…

📰

黑客松(Hackathon)通常要求在 24–72 小时内完成从需求拆解、原型设计、前端页面、接口联调到演示交付的全流程

黑客松(Hackathon)通常要求在 24–72 小时内完成从需求拆解、原型设计、前端页面、接口联调到演示交付的全流程。时间越短,越不能把大量精力消耗在重复性前端工程劳动上,例如反复创建项目目录、手写 HTML 骨架、生成组件模板、同步…

📰

【NeurIPS 2024】Super Consistency:景观超一致性,学习率为何能跨规模迁移|从缩放极限理论视角

## 摘要把网络宽度放大三十倍,学习率却一步都不用改 —— 这在 μP 参数化下真的成立。可"为什么能迁移"一直只有现象描述,没有可测量的判据。**Super Consistency**(景观超一致性)是 NeurIPS 2024 的《Super Consisten…

📰

Codex 一键安装包,本地 AI 编程环境真的不用硬配

前言 很多想体验 Codex 的开发者,卡在前期环境部署环节。手动安装 Node.js、配置依赖,还要敲大量命令行,对于新手十分不友好,很容易出现各种报错。 Codex 一键安装包把环境配置、依赖安装、客户端部署全部打包封装。不需要手动配…

📰

GuiLite

目录 代码下载 HelloStar例程分析 HelloWidgets例程分析 图层 HelloLayers例程分析 GuiLite.h的结构分析 c_wnd的控件树挂载和绘制 c_wnd和c_surface的关联 从c_button看控件绘制---矩形绘制 字符绘制的结构 从c_button看控件绘制---字符绘制 GuiLite的内存占用 G…

📰

Capstan-Drive:用一根绳和 3D 打印件,快速搭出低背隙的机器人执行器测试台

Capstan-Drive:用一根绳和 3D 打印件,快速搭出低背隙的机器人执行器测试台 【免费下载链接】Capstan-Drive Robotic actuator test stand utilizing a Capstan Drive reducer 项目地址: https://gitcode.com/GitHub_Trending/ca/Capstan-Drive Ca…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬