Axmol Engine – A Multi-platform Engine for Desktop, XBOX (UWP) and Mobile games. (A radical fork of Cocos2d-x-4.0)
Go to file
Deal(一线灵) b46417809d
Windows Store UWP apps support (#1108)
* [BIG FEATURE] Windows Store UWP apps support

* Fix ci, add uwp for pr-ci

* Fix ci

* Improve ci script

* Fix ci

* Fix ci

* Fix ci

* Fix ci

* Upload uwp appx package artifacts [skip ci]

* Use d2d draw system font text

* Fix ci

* Improve code style
2023-03-11 22:10:18 +08:00
.github Windows Store UWP apps support (#1108) 2023-03-11 22:10:18 +08:00
cmake Windows Store UWP apps support (#1108) 2023-03-11 22:10:18 +08:00
core Windows Store UWP apps support (#1108) 2023-03-11 22:10:18 +08:00
docs Update logo [skip ci] 2022-12-17 16:32:20 +08:00
extensions Windows Store UWP apps support (#1108) 2023-03-11 22:10:18 +08:00
templates Windows Store UWP apps support (#1108) 2023-03-11 22:10:18 +08:00
tests Windows Store UWP apps support (#1108) 2023-03-11 22:10:18 +08:00
thirdparty Windows Store UWP apps support (#1108) 2023-03-11 22:10:18 +08:00
tools Windows Store UWP apps support (#1108) 2023-03-11 22:10:18 +08:00
.clang-format Update .clang-format [skip ci] 2023-02-16 13:20:29 +08:00
.editorconfig Add apple tvos support (#846) 2022-09-05 14:13:52 +08:00
.gitattributes Restore prebuilt libs from git lfs storage 2021-06-06 10:16:44 +08:00
.gitignore Tidy project tree and full symlink support (#1072) 2023-02-23 21:57:30 +08:00
APPENDIX.md Final migrate (#876) 2022-10-01 16:24:52 +08:00
AUTHORS Add apple tvos support (#846) 2022-09-05 14:13:52 +08:00
CHANGELOG Update CHANGELOG (Commits on Dec 18, 2022) 2023-02-18 13:45:29 +08:00
CMakeLists.txt Windows Store UWP apps support (#1108) 2023-03-11 22:10:18 +08:00
CMakeOptions.md Fix #958 2022-11-10 21:22:55 +08:00
CONTRIBUTING.md Final migrate (#876) 2022-10-01 16:24:52 +08:00
LICENSE Update readme & copyright year 2022-02-24 20:34:24 +08:00
README.md Windows Store UWP apps support (#1108) 2023-03-11 22:10:18 +08:00
README_CN.md Drop python2 support 2023-02-13 17:52:05 +08:00
RENAMED_TYPES.md Final migrate (#876) 2022-10-01 16:24:52 +08:00
fix-git-status.bat Windows Store UWP apps support (#1108) 2023-03-11 22:10:18 +08:00
install-deps-linux.sh Update install-deps-linux.sh 2022-10-27 10:11:47 +08:00
setup.py ANDROID_SDK_ROOT -> ANDROID_HOME (#1009) 2023-01-04 08:03:48 +08:00

README.md

axmol logo

Axmol Game Engine

dev LICENSE Codacy Badge PRs Welcome

issues forks stars GitHub code size in bytes

Windows Build Status Android Build Status iOS Build Status tvOS Build Status Linux Build Status macOS Build Status

This is another more radical fork of Cocos2d-x-4.0, it has Full Support OpenAL for all platforms, single texture multi GPU texture handler, C++ 17/20 and more! (see 'Highlighted Features' for more info).

View code with vscode online

  • github1s
  • vscode.dev

简体中文

Purpose Summary

  • C++ 17/20
  • Focuses on native game dev (easy to use, fast deployment, intuitive)
  • Bugfixes ASAP

Thirdparty

Highlighted Features

  • Add apple M1, android x64 support, contributed by @pietpukkel
  • Improve windows workflow, support linking with engine prebuilt libs, read windows workflow guide
  • Windows video player support (based on microsoft media foundation)
  • Windows x64 build support
  • Reimplement HttpClient based on yasio for concorrent http requests processing.
  • 'Upstream-Version-License' Third-party
    • Third-party license overview for easier publishing of your commercial apps based on axmol framework.
    • Some links to third party libs which support axmol too.
  • 'Upstream-Version-License' Extensions
    • Extensions license overview for easier publishing of your commercial apps based on axmol framework.
    • Spine-3.8 support
    • FairyGUI support
    • DragonBones support
    • Live2D support
    • ImGui integrated, easy to write game embedded tools, very easy to use, read ImGui for more info
  • Refactor AudioEngine, OpenAL for all platforms
    • OpenAL Soft, pass -DAX_USE_ALSOFT=ON to cmake to force enabling it
    • OpenAL.framework, if no AX_USE_ALSOFT option specified, cmake script will choose it on osx/ios/tvos, even though it was marked as deprecated, but still available.
  • Refactor UserDefault with mio
  • Modularize all optional extensions, move from engine core folder to an extensions folder
  • Implement all .wav formats supported by OpenAL Soft, such as MS-ADPCM, ADPCM, ...
  • Use a modern GL loader Glad
  • Google angle renderer backend support
  • C++ 17/20
  • IOS/TVOS SDK 9.0 as minimal deployment
  • Use fast pugixml
  • Use curl for transferring data with URL syntax
  • Use SAX parser for all plist files
  • ASTC 4x4/6x6/8x8 support (if hardware decoding is not supported, then software decoding is used)
  • ETC2 RGB/RGBA support (if hardware decoding is not supported, then software decoding is used)
  • Supported 2D physics engines (see also APPENDIX.md):
    • Box2D
    • Box2D-optimized
    • Chipmunk2D
  • Supported 3D physics engines:
    • Bullet Physics SDK

Read Full changes since cocos2d-x-4.0

Open APPENDIX.md for additional information and see Milestones for planed features too.

Quick Start

Common Requirement Python

  • Python-3.7+

Prerequisites

  1. Enter axmol root directory
  2. Run python setup.py, restart the console after it has finished for environment variables to take effect

Creating A New Project

Using a console window, an example of a command to generate a new project is as follows:

axmol new -p YOUR.UNIQUE.ID -d PROJECT_PATH -l [cpp|lua] [--portrait] PROJECT_NAME

Type axmol new --help at the command line for more options you can pass to axmol new

Examples:

  • Cpp: axmol new -p org.axmol.hellocpp -d D:\dev\projects\ -l cpp --portrait HelloCpp
  • Lua: axmol new -p org.axmol.hellolua -d D:\dev\projects\ -l lua --portrait HelloLua

Windows (64/32 bit Visual Studio 2019/2022)

  1. Install CMake 3.22.1+

  2. Install Visual Studio 2019/2022 (it's recommended that you only use these versions)

  3. Create a new project as shown here

  4. In a console window, navigate into the root directory of the project you created in the previous step

  5. Generate the relevant Visual Studio project using the cmake command:

    cmake -S SOURCE_DIR -B BUILD_DIR -G VISUAL_STUDIO_VERSION_STRING -A [Win32|x64]

    For example, say SOURCE_DIR is the current path ".", and BUILD_DIR (out-of-source build directory) is named "build":

    a) C++ 20:

    • for 32 bit Visual Studio 2019: cmake -S . -B build -G "Visual Studio 16 2019" -A Win32
    • for 64 bit Visual Studio 2019: cmake -S . -B build -G "Visual Studio 16 2019" -A x64
    • for 32 bit Visual Studio 2022: cmake -S . -B build -G "Visual Studio 17 2022" -A Win32
    • for 64 bit Visual Studio 2022: cmake -S . -B build -G "Visual Studio 17 2022" -A x64

    b) C++17 - add -DCMAKE_CXX_STANDARD=17 for C++17 on your command line like: cmake -S . -B build -DCMAKE_CXX_STANDARD=17 -G "Visual Studio 17 2022" -A x64

  6. Use Visual Studio to open the newly created solution file. For example, ./build/ProjectName.sln

Windows UWP (Visual Studio 2022), because microsoft limit, only support C++17

cmake -B build_uwp -DCMAKE_SYSTEM_NAME=WindowsStore "-DCMAKE_SYSTEM_VERSION=10.0"

Creating the Visual Studio solution for all axmol test projects
  1. Open a console window (Command Prompt, Window Terminal or Powershell)

  2. Navigate into the folder where axmol is installed. For example:

    cd axmol

  3. Run one of the following commands to create the Visual Studio solution for all axmol test projects in a folder named build:

    a) C++ 20:

    • for 32 bit Visual Studio 2019: cmake -S . -B build -G "Visual Studio 16 2019" -A Win32
    • for 64 bit Visual Studio 2019: cmake -S . -B build -G "Visual Studio 16 2019" -A x64
    • for 32 bit Visual Studio 2022: cmake -S . -B build -G "Visual Studio 17 2022" -A Win32
    • for 64 bit Visual Studio 2022: cmake -S . -B build -G "Visual Studio 17 2022" -A x64

    b) C++17

    • add -DCMAKE_CXX_STANDARD=17 for C++17 on your command line like: cmake -S . -B build -DCMAKE_CXX_STANDARD=17 -G "Visual Studio 17 2022" -A x64
  4. You may either open the solution (".\build\axmol.sln") in Visual Studio and build any of the test projects via the IDE, or alternatively, build a project on the command line as follows (e.g. cpp-tests):
    msbuild .\build\axmol.sln -target:cpp_tests -maxCpuCount

Improve 'Visual Studio' workflow, support linking with engine prebuilt libs

See windows workflow guide

Android

With Android Studio
  1. Install Android Studio 2021.1.1+
  2. When starting Android Studio for the first time, it will guide you to install the SDK and other tools, so ensure that you do install them.
  3. Start Android and choose [Open an existing Android Studio Project] and select your project. For example, the existing cpp-test project located in axmol\tests\cpp-tests\proj.android
  4. Start Android Studio and Open [Tools][SDKManager], then switch to SDK Tools, check the Show Package Details, choose the following tools and click the button Apply to install them:
  5. Wait for Gradle sync finish.
  6. Note: If you use non-sdk provided CMake edition, you will need to download ninja from https://github.com/ninja-build/ninja/releases, and copy ninja.exe to cmake's bin directory
Without Android Studio
  1. Download command-tools from https://developer.android.com/studio#command-tools
  2. Install Android devtools (for example in windows)
# unzip command-tools at D:\dev\adt\
# Install android devtools
cd D:\dev\adt\
mkdir sdk
.\cmdline-tools\bin\sdkmanager.bat --verbose --sdk_root=D:\dev\adt\sdk "platform-tools" "cmdline-tools;latest" "platforms;android-33" "build-tools;30.0.3" "cmake;3.22.1" "ndk;23.2.8568313"
set ANDROID_HOME=D:\dev\adt\sdk

# Goto xxx\proj.android
.\gradlew.bat assembleRelease -PPROP_BUILD_TYPE=cmake -PPROP_APP_ABI=arm64-v8a --parallel --info

iOS, tvOS and macOS

  1. Ensure xcode12+ & cmake3.21+ are installed, install cmake command line support: sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install

  2. Create a new project as shown here

  3. In a console window, navigate into the root directory of the project you created in the previous step

  4. Execute the following command sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

  5. Generate the relevant xcode project using one of the following commands:

    • 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
  6. After cmake finishes generating, you can open the xcode project at build folder and run cpp-tests or other test targets.

  7. Notes

    • The code signing is required to run the ios/tvos app on your device, just change the bundle identifier until the auto manage signing is solved
    • axmol only provides armv7, arm64, x86_64 prebuilt libraries for ios/tvos

Notes

  • ThreadLocalStorage (TLS)
    • ios x86 simulator ios>=10 and axmol no longer provide x86 libraries
    • ios x64 or devices (armv7, arm64) ios sdk>=9.0
    • the 'OpenAL Soft' maintained by kcat uses TLS

The axmol Active Stats

Alt