Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README.md #1668

Merged
merged 1 commit into from
Feb 12, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
222 changes: 129 additions & 93 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
<p align="center"><a href="https://axmolengine.github.io/axmol" target="_blank" rel="noopener noreferrer"><img width="160" src="docs/logo.png" alt="axmol logo"></a></p>
<p align="center"><a href="https://axmol.org" target="_blank" rel="noopener noreferrer"><img width="160" src="docs/logo.png" alt="axmol logo"></a></p>

# Axmol Engine

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

[Axmol Engine](https://axmol.org) is an open-source, C++ multi-platform engine designed for mobile devices, desktop, and Xbox, well-suited for 2D game development. It was launched in November 2019 as a fork of Cocos2d-x v4.0.

Please [visit our Wiki](https://github.com/axmolengine/axmol/wiki) to know more about Axmol.

***

[![Latest Release](https://img.shields.io/github/v/release/axmolengine/axmol?include_prereleases&label=release)](https://github.com/axmolengine/axmol/releases)
[![LICENSE](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/axmolengine/axmol/blob/master/LICENSE)
Expand All @@ -18,106 +24,136 @@
![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/axmolengine/axmol?style=plastic)

[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-blue.svg)](https://github.com/axmolengine/axmol/pulls)
[![Discord](https://img.shields.io/discord/1099599084895088670?label=discord)](https://discord.com/channels/1099599084895088670)
[![Discord](https://img.shields.io/discord/1099599084895088670?label=discord)](https://discord.gg/QjaQBhFVay)

[Chinese ver. / 简体中文](README_CN.md)

**[简体中文](README_CN.md)**

## Supported Platforms

- Windows(win32,winuwp,win32-clang)
- Linux
- macOS
- Android
- iOS/tvOS
- WASM `experimental`
***

## Building

View the [Dev setup instructions](docs/DevSetup.md).

## Axmol WebAssembly preview
https://axmol.netlify.app/

## Renderer Backends

- Metal for macOS and iOS
- OpenGL 3.3+ for Linux, macOS and Win32
- OpenGL ES 2.0+ for Android
- OpenGL ES 3.0+ for iOS
- ANGLE GLES 3.0+ for Win32 and UWP
- WebGL 2.0(OpenGL ES 3.0): WASM (experimental)

## New MediaPlayer

The new `ui::MediaPlayer`(renamed from `ui::VideoPlayer`) render video as Texture2D with designed corss-platform MediaEngine, the MediaEngine inspired from microsoft
media foundation `IMFMediaEngine`, the `MediaPlayer` support all native platforms.

| Target Platform | Video Compress Format | Video Pixel Format | Container Format | Backend |
|-----------------------|-----------------------|----------------------|----------------- |--------------------|
| Windows Desktop | H264, HEVC, VP90 | YUY2, NV12, RGB32 | .mp4,.mkv,.webm | IMFMediaSession |
| Windows UWP | H264, HEVC, VP90 | BGR32 | .mp4,.mkv,.webm | IMFMediaEngine |
| Apple macOS | H264, HEVC(hvc1) | NV12, BGR32 | .mp4 | AVFoundation |
| Apple tvOS | H264, HEVC(hvc1) | NV12, BGR32 | .mp4 | AVFoundation |
| Apple iOS | H264, HEVC(hvc1) | NV12, BGR32 | .mp4 | AVFoundation |
| Android | H264, HEVC | NV12 | .mp4,.mkv,.webm | ExoPlayer2 |
| Linux | H264, HEVC | NV12 | .mp4,.mkv,.webm | libVLC |
| WASM | NA | NA | NA | NA |

## Highlighted Features

- WebAssembly support(experimental) by @nowasm
- Windows UWP support, refer to: https://github.com/axmolengine/axmol/pull/1108
- Add apple M1, android x64 support, contributed by @pietpukkel
- Improve windows workflow, support linking with engine prebuilt libs, read [windows workflow guide](https://github.com/axmolengine/axmol/issues/564)
- Windows video player support (based on microsoft media foundation)
- Windows x64 build support
- Reimplement HttpClient based on yasio for concurrent http requests processing.
- ['Upstream-Version-License'](thirdparty/README.md) 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/README.md) Extensions
- Extensions license overview for easier publishing of your commercial apps based on axmol framework.
- Spine support
- ```FairyGUI``` support
- DragonBones support
- Live2D support
- **ImGui integrated, easy to write game embedded tools, very easy to use, read [ImGui](extensions/ImGui/README.md) for more info**
- Refactor AudioEngine, OpenAL for all platforms
- [OpenAL Soft](https://github.com/kcat/openal-soft), pass -DAX_USE_ALSOFT=ON to cmake to force enabling it
- [OpenAL.framework](https://opensource.apple.com/tarballs/OpenAL), 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](https://github.com/mandreyel/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](https://github.com/google/angle) renderer backend support
- IOS/TVOS SDK 11.0 as minimal deployment
- Use fast pugixml
- Use [curl](https://github.com/curl/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 [2D-Physics-Engines-informations](https://github.com/axmolengine/axmol/wiki/2D-Physics-Engines-informations)):
- Box2D
- Box2D-optimized
- Chipmunk2D
- Supported 3D physics engines:
- Bullet Physics SDK

[Read Full changes since cocos2d-x-4.0](CHANGELOG.md)

Open [wiki](https://github.com/axmolengine/axmol/wiki) for additional information and see [Milestones](https://github.com/axmolengine/axmol/milestones) for planed features too.
* [Download the latest release](https://github.com/axmolengine/axmol/releases) / [Mirror](https://gitee.com/simdsoft/axmol)
* [How to install](https://github.com/axmolengine/axmol/blob/dev/docs/DevSetup.md)

If you have a Cocos2d-x project, migrating to Axmol Engine is easy. We have prepared a [Migration Guide](https://github.com/axmolengine/axmol/wiki/Cocos2d%E2%80%90x-migration-guide).

## Learning and docs

* [Documentation](https://axmol.org/manual/latest/)
* [Axmol Wiki](https://github.com/axmolengine/axmol/wiki)
* [Tutorials Page](https://github.com/axmolengine/axmol/wiki/Tutorials)
* [Frequently Asked Questions](https://github.com/axmolengine/axmol/wiki/FAQ)

## General information

Axmol Engine has iterated and improved over the Cocos2d-x v4.0 base. Now is faster and more capable, while staying lightweight. [Check a comparative here](https://github.com/axmolengine/axmol/wiki/Axmol-vs-Cocos2d%E2%80%90x).

**Supported platforms**:
* Mobile: iOS, Android
* Desktop: Windows, Linux, macOS, tvOS
* Console: Xbox (Universal Windows Platform)
* Web: WebAssembly (Preview: [Axmol tests](https://axmol.netlify.app/wasm/cpp-tests/cpp-tests) / [FairyGUI tests](https://axmol.netlify.app/wasm/fairygui-tests/fairygui-tests))

**Languages**:
* C++
* Lua

**Renderer backends**:
* Metal for macOS and iOS
* OpenGL 3.3+ for Linux, macOS and Win32
* OpenGL ES 2.0+ for Android
* OpenGL ES 3.0+ for iOS
* ANGLE GLES 3.0+ for Win32 and UWP
* WebGL 2.0 (OpenGL ES 3.0): WASM

**Architecture**:
* iOS (x64, arm64)
* Android (x86, x64, armv7, arm64)
* win (x86, x64), linux_x64
* osx (x64, arm64)
* UWP (x64, arm64), wasm32

**Supported 2D physics engines** ([more info here](https://github.com/axmolengine/axmol/wiki/2D-Physics-Engines-informations)):
* Box2D
* Box2D-optimized
* Chipmunk2D

**Supported 3D physics engines**:
* Bullet Physics SDK

**Included extensions**:
* FairyGUI
* ImGUI
* Spine
* Live2D
* Effekseer
* And more! Check our [Extensions Wiki Page](https://github.com/axmolengine/axmol/wiki/Extensions)

[More extensions created by our community](https://github.com/axmolengine/axmol/wiki/Made-in-Axmol)

## Features

Some highlights:

- **New MediaPlayer**: render video as texture2D using MediaEngine. [More info in our Wiki](https://github.com/axmolengine/axmol/wiki/Media-Player).
- Windows video player support (based on Microsoft Media Foundation)
- **WebAssembly support** (by @nowasm) - Preview: [Axmol tests](https://axmol.netlify.app/wasm/cpp-tests/cpp-tests)
- **Universal Windows Platform** (UWP) support for Xbox consoles
- **Apple M1 and Android x64 support** (by @pietpukkel)
- **Windows x64 build support**
- Improved Windows workflow, supporting linking with engine prebuilt libs. Please read the [Windows workflow guide](https://github.com/axmolengine/axmol/issues/564).
- Refactored AudioEngine, OpenAL for all platforms:
- [OpenAL Soft](https://github.com/kcat/openal-soft) (pass `-DAX_USE_ALSOFT=ON` to CMake to force enabling it)
- [OpenAL.framework](https://opensource.apple.com/tarballs/OpenAL) (if no `AX_USE_ALSOFT` option specified, cmake script will choose it on OSX/iOS/tvOS, even though it was marked as deprecated is still available)
- Implemented all .wav formats supported by OpenAL Soft (MS-ADPCM, ADPCM, etc.)
- Refactored UserDefault with [mio](https://github.com/mandreyel/mio)
- [Upstream Version License](thirdparty/README.md) - 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/README.md) - Extensions:
- Extensions license overview, for easier publishing of your commercial apps based on Axmol framework.
- Reimplemented HttpClient based on yasio for concurrent http requests processing.
- Modularized all optional extensions, move from engine core folder to an extensions folder.
- Google [Angle](https://github.com/google/angle) renderer backend support
- Using GL loader Glad.
- Using [pugixml](https://pugixml.org)
- Using [curl](https://github.com/curl/curl) for transferring data with URL syntax
- Using SAX parser for .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)
- iOS / tvOS SDK 11.0 as minimal deployment.

Please read the [full list of changes since Cocos2d-x v4.0](CHANGELOG.md).

See the [Milestones](https://github.com/axmolengine/axmol/milestones) for planned features.

## Contributions

How to contribute:

* Suggestions, bug fixes, and improvements are highly appreciated!
- [Instructions for contributing](https://github.com/axmolengine/axmol/blob/d8d3137515a73e5c2395cae04d6b5ef6b1cc6777/CONTRIBUTING.md)
- [Collaborators list](https://github.com/axmolengine/axmol/blob/dev/AUTHORS.md)
* Please do not forget to add the topic `axmol` and `axmolengine` to any related repository you create!
* Adding a star on GitHub will help Axmol grow as well. Thank you!

If you find **Axmol Engine** helpful, please consider donating in [Open Collective](https://opencollective.com/axmol) or in [GitHub Sponsors](https://github.com/sponsors/axmolengine). Thank you very much!

## Community

Our community is growing! Please join us at:
* [GitHub Discussions](https://github.com/axmolengine/axmol/discussions) (preferred way for questions and discussing the engine)
* [Discord](https://discord.gg/QjaQBhFVay)
* [Reddit](https://www.reddit.com/r/axmol/)

In order to see some of our community works, please check our Axmol Showcase: [Made in Axmol](https://github.com/axmolengine/axmol/wiki/Made-in-Axmol)

## Reference links

- [1kiss](https://github.com/simdsoft/1kiss): A cross-platform one step build powershell script with auto setup general dependent tools
- [axmolengine/glslcc](https://github.com/axmolengine/glslcc): A fork of glslcc for axmol new shader workflow tool
- [Interesting related](https://github.com/axmolengine/axmol/discussions/694)
- [Axmols contributing guide](https://github.com/axmolengine/axmol/discussions/411)
- [1kiss](https://github.com/simdsoft/1kiss): A cross-platform one step build powershell script, with auto setup general dependent tools.
- [axmolengine/glslcc](https://github.com/axmolengine/glslcc): A fork of glslcc, for Axmol new shader workflow tool.
- [Official Cocos2d-x](https://github.com/cocos2d/cocos2d-x)

`If Axmol Engine helped you please consider adding a star on GitHub. This means a lot to the authors.`

## The axmol Active Stats
## Axmol Stats

![Alt](https://repobeats.axiom.co/api/embed/6fcb8168a3af91ba9e797a1f14a3c2edc42ac56a.svg "Repobeats analytics image")