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

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

下载

旧版本迁移

由于新版本引入了统一的构建配置文件 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 元旦快乐!

相关推荐
old_power4 小时前
Linux(Ubuntu24.04)安装Eigen3库
linux·c++·人工智能
捕鲸叉6 小时前
C++并发编程之内存屏障
c++·并发编程
ltwoxc8 小时前
04-c++类和对象(下)
c++
攻城丶狮11 小时前
【蓝桥杯比赛-C++组-经典题目汇总】
c++·算法·图论
求上进的小怪兽11 小时前
Px4 V2.4.8飞控Mavlink命令控制说明
c++
XLYcmy12 小时前
分布式练手:Client
c++·windows·分布式·网络安全·操作系统·c·实验源码
quaer12 小时前
香农插值(sinc插值)实现
大数据·开发语言·c++·算法·matlab
小鸡毛程序员12 小时前
B4004 [GESP202406 三级] 寻找倍数
c++·算法
星沁城12 小时前
跳跃表(跳表)是什么
数据结构·c++·算法
意如流水任东西13 小时前
[C++]vector(超详细)
开发语言·c++