Coder Social home page Coder Social logo

huangjj852 / engine-x Goto Github PK

View Code? Open in Web Editor NEW

This project forked from axmolengine/axmol

0.0 0.0 0.0 1006.59 MB

This is another more radical fork of Cocos2d-x-4.0, use OpenAL for all platforms, single texture multi GPU texture handler, C++14/17...

Home Page: http://c4games.com/

License: MIT License

CMake 0.53% Python 2.99% C++ 84.66% Objective-C 0.60% C 2.96% Makefile 0.01% Objective-C++ 1.62% Java 1.10% GLSL 0.45% Lua 4.83% Shell 0.09% Csound Document 0.05% PLSQL 0.09% HTML 0.01% PowerShell 0.02% Batchfile 0.01% JavaScript 0.01%

engine-x's Introduction

Engine-x

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

dev

This is another more radical fork of Cocos2d-x-4.0, use OpenAL for all platforms, single texture multi GPU texture handler, C++14/17, etc.

简体中文

Purpose Summary:

  • C++14/17
  • Focus on native game dev (quick starting, easy to use, fast)
  • Bugfixes ASAP
  • Usefull PRs from you are welcome (review/merge ASAP)

Highlight Features:

  • More clearly thirdparty libs Upstram & Version & License for easy to publish your commercial apps based on engine-x
  • Refactor AudioEngine, OpenAL for all platforms
    • openal-soft, pass -DBUILD_EXT_ALSOFT=ON to cmake to force enable it
    • OpenAL.framework, if no BUILD_EXT_ALSOFT option specified, cmake script will choose it on osx/ios, even through it was mark as deprecated, but still available.
  • Refactor UserDefault with mio
  • Modularize all optional extension, move from engine core to folder extensions
  • Implement all .wav formats supported by openal-soft, such as MS-ADPCM, ADPCM, ...
  • Use modern gl loader glad (instead of glew)
  • Add google angle renderer backend support
  • C++14 standard
  • IOS SDK 9.0 as minimal deployment
  • Use fast pugixml
  • Using curl for transferring data with URL syntax
  • Use SAX parser for all plist file
  • Spine-3.8 support
  • Add engine extension FairyGUI support
  • Add ASTC 4x4/6x6/8x8 support, if hardware decoder not present, use software decoder
  • Add ETC2 RGB/RGBA support, if hardware decoder not present, use software decoder
  • ImGui integrated, easy to write game embedded tools, very ease to use, please read ImGuiEXT

Quick Start

Common Requirement python

  • python-2.7.17+, python-3.7+

Prerequisites

  1. Enter engine-x root directory
  2. Run python download-deps.py
  3. Run python setup.py, restart console after finish

Windows

  1. Install CMake 3.14+
  2. Install Visual Studio 2019 build(we strong recommend you use this version)
  3. Execute follow command at command line(Console, Window Terminal or Powershell)
cd engine-x\
cmake -S . -B build -G "Visual Studio 16 2019" -A Win32

Android

  1. Install Android Studio 4.0+

  2. When first start Android Studio, It will guide you to install sdk and other tools, just install them

  3. Start Android and choose [Open an existing Android Studio Project] to open engine-x\tests\cpp-tests\proj.android

  4. Start Android Studio and Open [Tools][SDKManager], then switch to SDK Tools, check the Show Package Details, choose follow tools and click the button Apply to install them:

    • Android SDK Platform 29 r5
    • Android SDK Build-Tools 29.0.2
    • NDK r16b+
    • CMake 3.10+
  5. Waiting for Gradle sync finish.

  6. Remark: If you use non-sdk provided CMake edition, you need download ninja from https://github.com/ninja-build/ninja/releases, and copy ninja.exe to cmake's bin directory

iOS

  1. Ensure xcode11+ & cmake3.14+ installed, install cmake command line support: sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install
  2. Execute follow command
    sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
  3. Generate xcode project
  # for any device
  cmake -S . -B build -GXcode -DCMAKE_TOOLCHAIN_FILE=cmake/ios.mini.cmake

  # for device combined armv7,arm64
  # cmake -S . -B build -GXcode -DCMAKE_TOOLCHAIN_FILE=cmake/ios.mini.cmake "-DCMAKE_OSX_ARCHITECTURES=armv7;arm64"

  # for simulator x86_64
  # cmake -S . -B build -GXcode -DCMAKE_TOOLCHAIN_FILE=cmake/ios.mini.cmake -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_ARCHITECTURES=x86_64
  1. After cmake generate finish, you can open xcode project at build folder and run cpp-tests or other test targets.

  2. Notes
    a. The code sign required to run ios app on device, just change bundle identifier until the auto manage siging solved
    b. engine-x only provide armv7,arm64,x86_64 prebuilt libraries for ios

Pitfalls

  • ThreadLocalStorage(TLS)
    • ios x86 simulator ios>=10
    • ios x64 or devices(armv7,arm64) ios sdk>=9.0
    • the openal-soft maintained by kcat use TLS

Reference links

engine-x's People

Contributors

minggo avatar zilongshanren avatar cocosrobot avatar ricardoquesada avatar pandamicro avatar samuele3hu avatar super626 avatar halx99 avatar dabingnn avatar wenhailin avatar stammen avatar j4m3z0r avatar yangws avatar angeltown avatar dualface avatar xiaofeng11 avatar boyu0 avatar folecr avatar nutty898 avatar mogemimi avatar darkdukey avatar pipu avatar patricejiang avatar jiusheng avatar chengstory avatar 2youyou2 avatar chuanweizhang2013 avatar rolandoam avatar geron-cn avatar carlomorgantinizynga avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.