d79156d728
* Update CMakeLists.txt * Improve Andoid CMAKE |
||
---|---|---|
.github | ||
cmake | ||
core | ||
docs | ||
extensions | ||
templates | ||
tests | ||
thirdparty | ||
tools | ||
.clang-format | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
APPENDIX.md | ||
AUTHORS | ||
CHANGELOG | ||
CMakeLists.txt | ||
CMakeOptions.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
README_CN.md | ||
RENAMED_TYPES.md | ||
install-deps-linux.sh | ||
setup.py |
README.md
Axmol Game Engine
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:
Purpose Summary
- C++ 17/20
- Focuses on native game dev (easy to use, fast deployment, intuitive)
- Bugfixes ASAP
Thirdparty
- All thirdparty prebuilt libs are built from https://github.com/axmolengine/buildware via github actions automatically.
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-2.7.17+, Python-3.7+
Prerequisites
- Enter
axmol
root directory - 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, the command to generate a new project is as follows:
axmol new -p YOUR.UNIQUE.ID -d PROJECT_PATH -l [cpp|lua]
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)
-
Install CMake 3.22.1+
-
Install Visual Studio 2019/2022 (it's recommended that you only use these versions)
-
Create a new project as shown here
-
In a console window, navigate into the root directory of the project you created in the previous step
-
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"."
, andBUILD_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
-DCXX_STD=17
for C++17 on your command line like:
cmake -S . -B build-DCXX_STD=17
-G "Visual Studio 17 2022" -A x64 - for 32 bit Visual Studio 2019:
-
Use Visual Studio to open the newly created solution file. For example,
./build/ProjectName.sln
Creating the Visual Studio solution for all axmol test projects:
-
Open a console window (Command Prompt, Window Terminal or Powershell)
-
Navigate into the folder where axmol is installed. For example:
cd axmol
-
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
-DCXX_STD=17
for C++17 on your command line like:
cmake -S . -B build-DCXX_STD=17
-G "Visual Studio 17 2022" -A x64
- for 32 bit Visual Studio 2019:
-
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
Android
With Android Studio
- Install Android Studio 2021.1.1+
- 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.
- 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
- Start Android Studio and Open [Tools][SDKManager], then switch to
SDK Tools
, check theShow Package Details
, choose the following tools and click the buttonApply
to install them:- Android SDK Platform 33
- Android Gradle Plugin (AGP) 7.2.2
- Android SDK Build-Tools 30.0.3 match with AGP, refer to: https://developer.android.com/studio/releases/gradle-plugin
- Gradle 7.4.2
- NDK r23c+
- CMake 3.22.1+
- Wait for
Gradle sync
finish. - Note: If you use non-sdk provided CMake edition, you will need to download
ninja
from https://github.com/ninja-build/ninja/releases, and copyninja.exe
to cmake's bin directory
Without Android Studio
- Download command-tools from https://developer.android.com/studio#command-tools
- 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
-
Ensure xcode12+ & cmake3.21+ are installed, install cmake command line support:
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install
-
Create a new project as shown here
-
In a console window, navigate into the root directory of the project you created in the previous step
-
Execute the following command
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
-
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
- for ios arm64:
-
After cmake finishes generating, you can open the xcode project at
build
folder and run cpp-tests or other test targets. -
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
Some interesting related projects based on axmol
https://github.com/axmolengine/axmol/discussions/694
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
Reference links
- Official Cocos2d-x Repo: https://github.com/cocos2d/cocos2d-x
Contributing guide
https://github.com/axmolengine/axmol/discussions/411