跨平台游戏引擎 Axmol-2.3.0 发布

embedded/2025/1/7 21:55:27/

2.3.0 版本是用于错误修复和改进的次要 LTS 版本

🙏感谢 Axmol 的所有贡献者,包括财务赞助商:@thienphuoc、@bingsoo、@asnagni、@paulocoutinhox、@DelinWorks、@DUONG、@peterkharitonov

🙏非常感谢 @peterkharitonov 成为新的 250.00 美元/月的财务赞助商。

相对于 2.2.x 的重大变化:

  • Android 15 16KB 页面大小支持,自此 axmol 构建系统产出的 apk/aab 可运行在最新 Android 15 设备上。
  • 统一构建配置文件,主流构建工具链全部统一由 1k/build.profiles 控制,Android ndk , target_sdk, min_sdk 等版本,可在工程文件 .axproj 控制,
    格式都是 properties ,请参考本文迁移指导
  • 重命名 java 包名: org.axmol* ==> dev.axmol*
  • 重命名 Shader 编译工具: glslcc ==> axslcc
  • CI 版本发布脚本支持创建通用跨平台构建工具 axmol-bs ,仅 52KB zip,通过简单配置,即可轻松在 Windows,
    Linux, MacOS 平台支持为任意基于 cmake 的项目构建本机平台和交叉编译目标平台二进制 (axmol 引擎支持的所有平台)。
  • 构建系统添加 vs2022 预览版支持
  • luabinding 生成器的 libclang 更新到 19.1.6
  • 构建系统将所有缺失的工具链包统一下载至引擎的 cache 目录下
  • 添加构建 Android .aab 支持,构建命令: axmol -p android -aab

错误修复

  • 修复使用长字符串创建 Label 导致 Windows 随机崩溃的问题
  • 修复了 Android 构建问题
  • 修复媒体播放器 BUG
  • 修复 Android 类名路径不正确的问题
  • 修复渲染器测试用例的 batch draw 未生效的问题

改进

  • Metal:启用 mipmap 支持
  • 添加了对通过 CTRL+A 选择编辑框中所有文本的支持
  • 防止对 deleteBackward 方法的过度调用可能 Crash 问题
  • 更新了网站
  • 使 win32 messageBox 始终处于最顶部
  • 在适当的位置添加 printLeaks 调用,方便开发者检测内存泄漏
  • TTF 字体字符编码不再限制 65535

SDK 和工具更新

  • emsdk: 3.1.67 ==> 3.1.73
  • AGP: 8.4.0 ==> 8.7.3
  • gradle: 8.8.0 ==> 8.11.1
  • android target sdk: 34 ==> 35

第三方更新

  • astcenc: 4.8.0 ==> 5.1.0
  • c-ares: 1.34.1 ==> 1.34.4
  • curl: 8.10.1 ==> 8.11.1
  • flatbuffers: 24.3.25 ==> 1.1.0-815e6e7
  • fmt: 11.0.1 ==> 11.1.1
  • oboe: 1.9.0 ==> 1.9.3
  • webp: 1.4.0 ==> 1.5.0
  • jpeg-turbo: 3.0.4 ==> 3.1.0
  • luajit: 2.1-97813fb ==> 2.1-f73e649
  • imgui: 1.90.6 ==> 1.91.6

完整更新内容

https://github.com:8443/axmolengine/axmol/releases/tag/v2.3.0

下载

  • Github:

    • axmol-2.3.0.zip
    • axmol-bs-2.3.0.zip(通用跨平台构建工具)
  • 百度网盘:

    • axmol-2.3.0.zip
    • axmol-bs-2.3.0.zip`(通用跨平台构建工具)
  • axmol-2.3.0.zip: 635F1D5E46EE938E7D57A9DC591D50BF

  • axmol-bs-2.3.0.zip: 31845E841FC8604B768506E5F1B686F0

旧版本迁移

由于新版本引入了统一的构建配置文件 1k/build.profiles,工程文件由原来的 .axproj.json 改为采用 properties 格式的 .axproj ,因此需要迁移,步骤如下:

  1. 使用 axmol new 新建一个空工程,工程名称和包名和你的旧项目保持一致
  2. 使用比较工具(例如 BeyondCompare ),比对新旧工程目录,尤其是 gradle 中的变化,尽量将新配置合并到旧工程
  3. 删除旧工程文件: .axproj.json,将新工程文件 .axproj 复制过去
  4. 如果你想控制 android ndk, target_sdk, min_sdk 版本,则可从 1k/build.profiles 搜索对应关键字,将配置复制到 .axproj 并修改对应版本即可。

Android 15 16KB 页面大小支持

axmol-2.3.0 版本为了支持 Android 15 16KB 页大小的设备,在保持最大兼容性的情况下,继续使用 ndk-r23,而官方发布最后一个 r23c 是不支持 16KB 页大小的,
因此我们采用了 Google 在 ci.android.com 提供的支持 16KB 页面大小的 ndk-r23d patch 版本。尽管 axmol-2.3.0 的构建系统在你再次执行 setup.ps1 -p android
时,会自动从 ci.android.com 下载 ndk-r23d (由 1k/build.profiles 决定版本),但是,由于 GFW 问题,中国大陆是无法下载的,如果想继续使用 r23,则需要先从百度网盘下载对应平台 ndk-r23d 的 zip 包,并移动到 axmol 引擎的 cache 目录下,再执行 setup.ps1 -p android,方可成功安装支持 16K 页面大小的 ndk-r23d。

ndk-r23d 百度网盘下载地址如下:

https://pan.baidu.com/s/1neJydxOGTT7aCQvLLwbicw?pwd=qqiq

FAQ

  • Q: 如果继续使用 ndk-r23c 构建不支持 16K 页大小的会怎样?
    • A: 会直接 crash 无法运行。

结语

即使你不用 axmol 游戏引擎进行游戏开发,你如果有很多基于 cmake 的 C++ 库,那么独立于 axmol 引擎的通用跨平台构建工具 axmol-bs 依然值得你体验。

最后,祝所有关注和使用 axmol 引擎的开发者们,2025 元旦快乐!


http://www.ppmy.cn/embedded/151753.html

相关文章

决策树中的相关概念

目录 算法介绍 基本概念: 节点 信息熵(Information Entropy) 条件熵(Conditional Entropy) python中计算对数 分类标准 信息增益(ID3(Iterative Dichotomiser 3)算法的评估标…

Golang学习历程【第五篇 复合数据类型:数组切片】

Golang学习历程【第五篇 复合数据类型:数组&切片】 1. 数组(Array)1.1 数组的定义1.2 初始化数组1.3 数据的循环遍历1.4 多维数组 2. 切片(Slice)2.1 切片声明、初始化2.2 基于数组创建切片2.2 切片的长度(len)和容…

javafx fxml模式下 menu菜单增加图标

准备图标资源 首先,你需要有合适的图标文件。这些图标文件可以是.png、.jpg或者其他适合的图像格式。通常,将图标文件放在项目的resources文件夹下是一个比较好的做法,这样便于管理和访问。例如,你有一个名为icon.png的图标文件&a…

如何在没有 iCloud 的情况下将联系人从 iPhone 传输到 iPhone

概括 近期iOS 13.5的更新以及苹果公司发布的iPhone SE在众多iOS用户中引起了不小的轰动。此外,不少变化,如暴露通知 API、Face ID 增强功能以​​及其他在 COVID-19 期间与公共卫生相关的新功能,吸引了 iPhone 用户尝试新 iPhone 并更新到最…

系统架构师考试-MDA模型驱动架构

概念 模型驱动架构是指一种用于应用系统开发的软件设计方法,它提供了一套软件设计的指导规范,这套指导规范是用模型来表示的。 MDA是一种基于诸如统一建模语言、可扩展标记语言和公共对象请求代理体系结构等一系列业界开放标准的框架,因此&…

密码学精简版

密码学是数学上的一个分支,同时也是计算机安全方向上很重要的基础原理,设置密码的目的是保证信息的机密性、完整性和不可抵赖性,安全方向上另外的功能——可用性则无法保证,可用性有两种方案保证,冗余和备份&#xff0…

办公 三之 Excel 数据限定录入与格式变换

开始-----条件格式------管理规则 IF($A4"永久",1,0) //如果A4包含永久&#xff0c;条件格式如下&#xff1a; OR($D5<60,$E5<60,$F5<60) 求取任意科目不及格数据 AND($D5<60,$E5<60,$F5<60) 若所有科目都不及格 显示为红色 IF($H4<EDATE…

动态规划模式

动态规划&#xff08;Dynamic Programming, DP&#xff09;是一种解决复杂问题的算法设计技术&#xff0c;它通过将大问题分解为小问题&#xff0c;并利用小问题的解决方案来构造大问题的解决方案&#xff0c;从而避免了重复计算。动态规划通常用于具有“最优子结构”和“重叠子…