a2800e0144 | ||
---|---|---|
cmake | ||
cocos | ||
docs | ||
extensions | ||
licenses | ||
templates | ||
tests | ||
tools | ||
.appveyor.yml | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
AUTHORS | ||
CHANGELOG | ||
CMakeLists.txt | ||
CONTRIBUTING.md | ||
README.ccv4.md | ||
README.md | ||
download-deps.py | ||
install-deps-linux.sh | ||
issue_template.md | ||
setup.py |
README.md
engine-x
This is another more radical fork of cocos2d-x game engine, use opanal for all platforms, single texture multi gpu texture handler, c++17...
The readme of cocos2d-x v4: https://github.com/simdsoft/engine-x/blob/master/README.ccv4.md
Goals summary:
- C++17
- forcus on native game dev only
- Remove unnecessary sources
- Fix bugs ASAP
- Review PR ASAP
- If you have any other excellent goals, welcome
- Excellent PRs from any guys are welcome, I will review & merge ASAP
preprocessors notes:
CC_STATIC
_USRDLL
_USEGUIDLL
_USREXDLL
_EXPORT_DLL_
_USRSTUDIODLL
_USRSTUDIOPDLL
Refactor core & extensions libs
-
engine-x-core.dll(node tree, multi-renderer-backends, filesystem, audio, platform spec, and other):
- 1. Refactor audio engine, OpenAL for all platforms.
- 2. Remove SimpleAudio
- 3. Remove offthread file operation
- 4. Remove getSutiableFOpen, avoid reduce performance, there is another better solution for support:
just doesn't convert path to utf-8 in FileUtils manually implementation
- 5. Refactor CCDownloader, curl for all platforms, don't use scheduler to retrive progress info, make it more reuseable
- 7. Refactor engine-x-3rd, all compile as vs2019 MSVC 19.22.27905.0
- 8. minizip-1.2.0
- 9. ccMessageBox
- 10. BMP support with stb_image
- 11. Remove unused libuv
- 12. Reorder child support
- 13. Remove tinyxml2 dep, use pugixml instead
- 14. Use xsxml for SAX parser only
- 15. Multi meta textures v1.0
- 16. ProgramStateRegistry
- 17. Optimize CCFileUtils
- 18. ANGLE support.
- 19. Use curl for HttpClient all platforms
- 20. AES encrypt system
- 21. Remove xxtea
- 22. Remove rapidxml dep
- 23. fix etc1 alpha test case, content size incorrect
- 24. Since we use fully c++11 feature which the compiler must support u8 prefix, so remove getSuitableFopen, you should always add u8 prefix at program when your path contains non ascii charactors.
- 25. ASTC 4x4, 8x8 support for all platforms.
- 26. Refine backend sources.
- 27. Refactor UserDefault based on file mapping with aes-cfb encrypt support.
- 28. Fix OpenGL error 0x501 when load incorrect & unused shader.
- 29. Fix OpenGL error 0x501 when use compressd texture on device, caused by backend TextureGL: initWithZeros
- XX1. Cache ProgramState or use object_pool
- XX2. Remove socket.io websockets, use yasio for socket connection solution
- XX3. Fully streaming play for all media file: .mp4, .mp3, .ogg, .wav
- XX4. Streaming load for .ttf with freetype2
- XX5. Remove CCB(already removed in v4)
- XX6. Sync 3rd bin
- XX7. Purely offthread load texture, use shared gl context
- XX8. Use git submodule to manage 3rd libs.
-
Upgrade 3rd stubs to latest stable edition for all platforms
- zlib to 1.2.11
- engine-x.ui.dll: The original v3-ui framework may remove in the future
- engine-x.ext.lib: old GUI ui(could be remove), physics-nodes, pu3d
- engine-x.dragonbones.lib
- engine-x.ccs20.dll: x-studio
- engine-x.ccs21.dll: x-studio
- engine-x.xs.dll: x-studio
- engine-x.spine.lib
- engine-x-lua.lib:
- Lua53 compat
- make lua test works well
- Remvoe luasocket, use yasio for socket connection solution
!!! Custom APK support, don't compress .mp4, .mp3, .ogg, .wav, .ttf
!!!! future of future:
- Use sol2 for binding framework instead tolua++
- Use bgfx for multi renderer backend support
快速开始
windows
安装CMake,要求3.6以上
根据安装的 Visual Studio 版本,执行下面的命令,解决方案就生成在 build 目录下了。
打开cpp-tests.sln,编译运行。
cd engine-x\tests\cpp-tests
cmake -S .\ -B .\build -G “Visual Studio 14 2015 Win32”
or
cmake -S .\ -B .\build -G “Visual Studio 16 2019” -A Win32
android
安装 Android Studio (推荐3.5.3),打开 SDKManager,安装下列工具。
打开project,目录在engine-x\tests\cpp-tests\proj.android
等待Gradle sync完成后,Build APKs,安装运行
LLDB 推荐3.1
CMake 推荐 3.10.2
NDK 推荐 20.1
如果报缺少Ninja, 从https://github.com/ninja-build/ninja/releases下载, 拷贝Ninja.exe到Cmake的bin目录即可
ios
确保最新版xcode已安装
安装brew: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew安装完成后,确保如下工具安装:
brew update
brew install git
brew install cmake
brew install autoconf
brew install automake
brew install libtool
执行如下命令确保cmake能成功生成xcode工程:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
生成xcode工程, 进入engine-x根目录执行如下命令:
mkdir build
cd build
cmake .. -GXcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator
# for simulator64
# cmake .. -G Xcode -DCMAKE_TOOLCHAIN_FILE=../cmake/ios.toolchain.cmake -DPLATFORM=SIMULATOR64 -DENABLE_ARC=0 -DENABLE_BITCODE=0
# for (armv7, armv7s, arm64)
# cmake .. -G Xcode -DCMAKE_TOOLCHAIN_FILE=../cmake/ios.toolchain.cmake -DPLATFORM=OS -DENABLE_ARC=0 -DENABLE_BITCODE=0
# for device 64
# cmake .. -G Xcode -DCMAKE_TOOLCHAIN_FILE=../cmake/ios.toolchain.cmake -DPLATFORM=OS64 -DENABLE_ARC=0 -DENABLE_BITCODE=0
之后就可以用xcode打开, 选择cpp-tests编译运行,其他targets目前均无法编译或运行
QQ交流群
点击链接加入群聊【engine-x交流群】:https://jq.qq.com/?_wv=1027&k=nvNmzOIY
FAQ
Q1: -lnsl -lsocket -lrt找不到 A1: 删除
- Q2:
- Showing Recent Messages
- Targeted OS version does not support use of thread local variables in __ZN12_GLOBAL__N_19ThreadCtxD1Ev for architecture x86_64
A2: 修改iOS Deploymement Target to iOS 9.3
Q3: _programState inherited from Node should care about managment.