【axmol】基于Cocos2d-x 4.0的持续维护的游戏引擎介绍

2023-11-01

Axmol引擎

A Multi-platform Engine for Desktop, XBOX (UWP) and Mobile games. (A radical fork of Cocos2d-x-4.0)

Axmol是基于Cocos2d-x 4.0持续维护分支,众所周知,官方团队全面转向Cocos Creator,几乎停止了Cocos2d-x的研发和更新,因此axmol诞生了,旨在延续Cocos2d-x。

支持平台列表

  • Windows Desktop
  • Windows Desktop(Clang)
  • Windows UWP|
  • Android
  • iOS/tvOS
  • Linux
  • macOS

基于VideoTexture的视频播放引擎

Platform MediaEngine Video Compress Format Video Pixel Format Backend
Windows Desktop complete H264, HEVC, VP90 YUY2, NV12, RGB32 IMFMediaSession
Windows UWP complete H264, HEVC, VP90 BGR32 IMFMediaEngine
Apple macOS complete H264, HEVC(hvc1) NV12, BGR32 AVFoundation
Apple tvOS complete H264, HEVC(hvc1) NV12, BGR32 AVFoundation
Apple iOS in progress H264, HEVC(hvc1) NV12, BGR32 AVFoundation
Android planned H264 RGB32

关于预编译库

  • 所有预编译库均通过buildware使用GitHub Actions自动构建
  • 预编译库支持架构
    • windows: x86,x64
    • linux: x64
    • macos: x64, arm64(M1芯片)
    • android: armv7, arm64, x86, x64
    • ios: arm64, x64
    • tvos: arm64, x64

主要特性:

  • 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_ALSOFToption 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+

准备步骤

  1. 进入引擎axmol根目录
  2. 执行python setup.py后重启控制台

Windows

  1. 安装CMake,要求3.22以上
  2. 确保 Visual Studio 2019/2022 已正确安装
  3. 执行下面的命令
    • 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"

  4. 之后就可以用vs打开axmol/build/axmol.sln启动cpp-tests等测试工程了

Android

  1. 安装 Android Studio 2021.1.1+

  2. 第一次启动Android Studio, 会引导安装一些工具,默认安装即可,如果不需要模拟器可以把Virutal Device勾选去掉

  3. 启动 Android Studio并打开axmol\tests\cpp-tests\proj.android

  4. 通过 [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+
  5. 等待Gradle sync完成后,Build APKs,安装运行

  6. 如果使用非sdk自动安装的CMake版本, 需要下载ninja, 并且拷贝ninja.exe到CMake的bin目录

iOS

  1. 确保已安装xcode12+和cmake3.21+, 安装CMake命令行支持: sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install

  2. 执行如下命令确保cmake能成功生成xcode工程:
    sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

  3. 生成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
  4. 之后就可以用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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【axmol】基于Cocos2d-x 4.0的持续维护的游戏引擎介绍 的相关文章

随机推荐

  • 数字图像处理——实验一 离散傅里叶变换(代码)

    clc clear close all a imread Lena512C bmp f rgb2gray a 原图为三维图像 转为二维图像 figure 1 subplot 2 2 1 imshow f title 原图像 H fft2 f
  • python 绘制箱型图(boxplot)时如何去掉出现的连续散点

    问题如上所示 绘制箱型图时发现在箱型图的上下边界出现许多散点 如何去除呢 只需要在绘制时添加一个命令即可 ax boxplot data h 0 就是这一步就可以去除连续的散点 showmeans True vert True vertic
  • java jdk8 使用stream实现两个list集合合并成一个list集合(对象属性的合并)

    java使用stream实现list中对象属性的合并 根据两个List中的某个相同字段合并成一条List 包含两个List中的字段 目录 一 前言 二 示例 示例1 java8 合并两个 list map 示例2 java8 合并两个 li
  • ES6 Set 转换成 Array

    用 操作符 可以实现将 Set 转成 Array let a new Set 1 2 3 4 5 let arr a console log arr 运行结果 1 2 3 4 5
  • python怎么编写模拟交易_python简单区块链模拟详解

    最近学习了一点python 那就试着做一做简单的编程练习 首先是这个编程的指导图 如下 对的 类似一个简单区块链的模拟 代码如下 class DaDaBlockCoin index 索引 timestamp 时间戳 data 交易记录 se
  • [QT_000]学习Qt的最好途径(个人记录)

    00 先通过相关书籍 网上视频了解基础 可以通过某位大神的系列博客总结去学习 这样相对全面一些 达到最好能了解到整个Qt的全貌 不求甚解 01 当了解完基础以后 把Qt自带的案例例子运行一遍 搞懂案例 这是非常有用的一步 现实中好多小功能都
  • 数字水印技术的原理及应用研究

    一 问题分析 随着计算机和网络技术的普及 数字产品的保密性及版权保护等问题逐渐凸显出来 这使得数字水印技术成为热点问题 一些别有企图的个人和团体在没有得到原作者的同意的情况下复制和传播有版权的数据文件或作品 所以 数字媒体的信息安全 知识产
  • 【ARIMA-SSA-LSTM】合差分自回归移动平均方法-麻雀优化-长短期记忆神经网络研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 1 1 ARIMA模型 1 2 鲸鱼优化算法 1 3 LSTM 模型 2 运行结果 3 参考文献 4 Py
  • 计算机网络 五、 五层协议体系结构-----网络层(上)

    网络层 network layer 主要包括以下两个任务 1 负责为分组交换网上的不同主机提供通信服务 在发送数据时 网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送 在TCP IP体系中 由于网络层使用IP协议 因此分组也叫做
  • 了解chat-GPT必须要读的论文汇总

    前言 今年在nlp领域 最靓的仔要数chat gpt了 未来也可能颠覆搜索行业 甚至其他行业也会慢慢的被颠覆被取代 作为技术人员 为了保证饭碗 必须跟进相关技术的发展 目前梳理了一下chat gpt技术的脉络 通过该脉络可以比较系统的了解c
  • 开发uniapp苹果app,苹果签名证书的创建方法

    在uniapp云打包界面 打包苹果app 需要私钥证书p12文件 还需要证书profile文件和证书密码 这两个文件到底是从什么地方获取的呢 答案是这两个证书需要在苹果开发者中心生成 下面我们这篇教程 将教会大家如何创建这两个打包所需的证书
  • C语言基础(五)自定义类型与宏定义

    自定义类型与宏定义 一 自定义类型 二 宏定义 三 枚举 一 自定义类型 自定义类型 typedef用新的类型名代替原有的类型名 例如 指定用u8为类型名 作用与unsigned char相同 typedef unsigned char u
  • 自定义Dynamics 365实施和发布业务解决方案 - 7. 报表

    在每个组织中 决策者都依赖于各种报告来推动业务取得成功 因此 每个软件开发项目都需要开发报告 Dynamics365配备了最先进的报告功能 这些报告的范围从简单的查询到具有复杂查询的更高级的报告 此外 Dynamics365的一个关键功能是
  • Qt 串口发送0x00

    应用场景 大恒光电的平移台 GCD 040101M 先看看要发什么东西 这是串口监听软件截取的结果 绿色的字 串口协议主要包括三个部分 前面是固定的 后面是key 后面是 0x00 最后面是数据 错误版本1 bool MoveStage w
  • Windows10点击睡眠之后不锁屏?

    一些用户反馈自己在使用win10系统笔记本电脑过程中 突然碰到了无法睡眠的情况 不管是盖上屏幕还是在系统中选择睡眠 电脑都无法进行睡眠 根本没有任何反应 该怎么办呢 接下来 系统城小编就为大家带来该问题的具体解决方法 首先可以按方法一进行设
  • Deepin 系统安装并开启本地远程使Windos系统访问

    思路 1 系统安装 2 安装xrdp Linux和Windows间的远程桌面访问 coder i 的博客 CSDN博客 linux远程连接windows桌面 sudo apt install xrdp 然后启动xrdp服务 sudo sys
  • 关于stm32的GPIO的操作

    首先先了解一下输出的模式 比较常用的是 推挽输出 1 GPIO Mode AIN 模拟输入 2 GPIO Mode IN FLOATING 浮空输入 3 GPIO Mode IPD 下拉输入 4 GPIO Mode IPU 上拉输入 5 G
  • 字符流

    import java io FileNotFoundException import java io FileReader import java io FileWriter import java io IOException publ
  • 线性代数(17)——坐标转换

    坐标转换 空间的基与坐标系 任意坐标系与标准坐标系之间的转换 任意坐标系之间的转换 标准单位矩阵作为桥梁 结论验证 不使用单位坐标系为桥梁的情况 空间的基与坐标系 坐标系是理解空间的基的一个视角 如果只到了一个坐标系也相当于知道了空间中的一
  • 【axmol】基于Cocos2d-x 4.0的持续维护的游戏引擎介绍

    Axmol引擎 A Multi platform Engine for Desktop XBOX UWP and Mobile games A radical fork of Cocos2d x 4 0 Axmol是基于Cocos2d x