Skip to content

Commit

Permalink
Update README.md (#1668)
Browse files Browse the repository at this point in the history
  • Loading branch information
danialias authored Feb 12, 2024
1 parent 0f3c7d3 commit 5317dd8
Showing 1 changed file with 129 additions and 93 deletions.
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")

0 comments on commit 5317dd8

Please sign in to comment.