8.8 KiB
Axmol引擎
A Multi-platform Engine for Desktop, XBOX (UWP) and Mobile games. (A radical fork of Cocos2d-x-4.0)
支持平台列表
Build | Status (github) |
---|---|
Windows Desktop | |
Windows UWP | |
Android | |
iOS | |
tvOS | |
Linux | |
macOS |
基于VideoTexture的适配播放引擎
Platform | MediaEngine/VideoTexture | Video Texture Format | MediaEngine Backend |
---|---|---|---|
Windows Desktop | complete | YUY2, NV12, RGB32 | MS-Media: IMFMediaSession |
Windows UWP | complete | BGR32 | MS-Media: IMFMediaEngine |
Mac OS X | in progress | NV12, BGR32 | AVFoundation |
iOS/tvOS | in progress | NV12, BGR32 | AVFoundation |
Android | planned | RGB32 |
关于预编译库
- 所有预编译库均通过buildware使用GitHub Actions自动构建
- 预编译库支持架构
- windows: x86,x64
- linux: x64
- macos: x64, arm64(M1芯片)
- android: armv7, arm64, x86, x64
- ios: arm64, x64
- tvos: arm64, x64
宗旨:
- C++17/20
- 专注C++
- Fix bugs ASAP
- Review PR ASAP
主要特性:
- Windows UWP 支持,请参考: https://github.com/axmolengine/axmol/pull/1108
- 增加tvos支持
- 增强Windows下工作流,支持链接引擎预编译库, 用法请查看: windows workflow guide
- Windows 视频播放支持
- Windows x64编译支持
- 基于yasio重构HttpClient以支持并发Http请求,不再需要sendImmidate接口
- 重构AudioEngine, 全平台OpenAL
- openal-soft, pass -DAX_USE_ALSOFT=ON to cmake to force enable it
- OpenAL.framework, if no and
AX_USE_ALSOFT
option specified, cmake script will choose it on osx/ios, even through it was mark as deprecated, but still avaiable.
- 重构UserDefault, 全平台基于内存映射文件 mio, 性能提升百倍
- 模块化所有引擎扩展库, 所有扩展库放到extensions目录下,如cocostudio, spine
- AudioEngine实现wav所有
openal-soft
支持的封装格式, 例如MS-ADPCM, ADPCM等 - 使用现代化的GL加载器glad代替glew
- 增加google angle渲染后端支持
- C++最低标准要求: C++17/20
- 设置ios下最低目标平台为ios9.0
- 使用更快的xml解析库pugixml代替tinyxml2
- Downloader全平台统一实现,均基于curl
- 全平台统一使用XML SAX解析plist文件, 移除Apple平台的实现
- Spine 3.8支持
- 新增FairyGUI支持
- 新增硬件压缩纹理格式ASTC 4x4/6x6/8x8支持,支持软解
- 新增硬件压缩纹理格式ETC2 RGB/RGBA支持,支持软解
- ImGui集成,非常方便写游戏内嵌小工具,用法详见ImGui
- 完整改动列表,请查看CHANGELOG
快速开始
必要工具 python
- python-3.7+
准备步骤
- 进入引擎
axmol
根目录 - 执行
python setup.py
后重启控制台
Windows
- 安装CMake,要求3.22以上
- 确保 Visual Studio 2019/2022 已正确安装
- 执行下面的命令
-
PC:
cmake -S . -B build -G "Visual Studio 16 2019"
-
UWP:
cmake -S . -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_SYSTEM_NAME=WindowsStore "-DCMAKE_SYSTEM_VERSION=10.0" "-DAX_VS_DEPLOYMENT_TARGET=10.0.17763.0"
-
- 之后就可以用vs打开
axmol/build/axmol.sln
启动cpp-tests等测试工程了
Android
-
安装 Android Studio 2021.1.1+
-
第一次启动Android Studio, 会引导安装一些工具,默认安装即可,如果不需要模拟器可以把
Virutal Device
勾选去掉 -
启动 Android Studio并打开axmol\tests\cpp-tests\proj.android
-
通过 [Tools][SdkManagers] 打开sdk管理工具,选择如下SDK Platforms和SDK Tools后, 点击按钮
Apply
一路跟着引导安装即可:- Android SDK Platform 33 (在SDK Platforms页签)
- Android Gradle Plugin (AGP) 7.2.2
- Android SDK Build-Tools 30.0.3 和 AGP 版本对应
- Gradle 7.4.2
- NDK r23c+
- CMake 3.22.1+
-
等待Gradle sync完成后,Build APKs,安装运行
-
如果使用非sdk自动安装的CMake版本, 需要下载ninja, 并且拷贝
ninja.exe
到CMake的bin目录
iOS
-
确保已安装xcode12+和cmake3.21+, 安装CMake命令行支持:
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install
-
执行如下命令确保cmake能成功生成xcode工程:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
-
生成xcode工程, 进入axmol根目录执行如下命令之一:
- for ios arm64:
cmake -S . -B build -GXcode -DCMAKE_TOOLCHAIN_FILE=$AX_ROOT/cmake/ios.toolchain.cmake -DPLATFORM=OS64
- for ios armv7,arm64 combined:
cmake -S . -B build -GXcode -DCMAKE_TOOLCHAIN_FILE=$AX_ROOT/cmake/ios.toolchain.cmake -DPLATFORM=OS
- for ios simulator x86_64:
cmake -S . -B build -GXcode -DCMAKE_TOOLCHAIN_FILE=$AX_ROOT/cmake/ios.toolchain.cmake -DPLATFORM=SIMULATOR64
- for tvos arm64:
cmake -S . -B build -GXcode -DCMAKE_TOOLCHAIN_FILE=$AX_ROOT/cmake/ios.toolchain.cmake -DPLATFORM=TVOS
- for tvos simulator x86_64:
cmake -S . -B build -GXcode -DCMAKE_TOOLCHAIN_FILE=$AX_ROOT/cmake/ios.toolchain.cmake -DPLATFORM=SIMULATOR_TVOS
- for macos x86_64(Intel)
cmake -S . -B build -GXcode -DCMAKE_OSX_ARCHITECTURES=x86_64
- for macos arm64(M1)
cmake -S . -B build -GXcode -DCMAKE_OSX_ARCHITECTURES=arm64
- for ios arm64:
-
之后就可以用xcode打开, 选择cpp-tests编译运行
一些基于axmol有趣的项目
- https://github.com/solan-solan/HeightMap/tree/smooth_lod_passing
- https://github.com/wzhengsen/StarryX
- https://github.com/aismann/SimpleSnake
- https://github.com/EugenyN/TanksKombat
注意
- ThreadLocalStorage线程本地存储
- ios x86 simulator ios>=10 and axmol no longer provide x86 libraries
- ios x64 or devices arm64 ios sdk>=9.0
- the openal-soft maintained by kcat use TLS
QQ交流群
点击链接加入群聊【axmol 交流群】:https://jq.qq.com/?_wv=1027&k=nvNmzOIY
参考链接
- official v4: https://gitee.com/mirrors/cocos2d-x
- Git快速手册: https://github.com/axmolengine/axmol/discussions/411