[engine-x] A game-engine which is based on cocos2d-x-4.0

The repo is: https://github.com/c4games/engine-x
The status is follow:

  • [ ] Continuous Integration
    • [ ] .travis.yml
    • [ ] .appveyor.yml

Refactor core & extensions libs

  • [ ] engine-v5-core.dll(node tree, multi-renderer-backends, filesystem, audio, platform spec, and others):

    • [ ] 1. Refactor audio engine, OpenAL for all platforms.
    • [x] 2. Remove SimpleAudio
    • [ ] 3. Remove offthread file operation
    • [x] 4. Remove getSutiableOpen, avoid reduce performance, there is another better solution for support, just doesn’t convert path to utf-8 in FileUtils implementation
    • [x] 5. Refactor CCDownloader, curl for all platforms, don’t use scheduler to retrive progress info, make it more reuseable
    • [ ] 7. Refactor engine-v5-deps, all compile as vs2019 MSVC 19.22.27905.0
    • [x] 8. minizip-1.2.0
    • [x] 9. ccMessageBox
    • [x] 10. BMP support with stb_image
    • [x] 11. Remove unused libuv
    • [ ] 12. Reorder child support
    • [x] 13. Remove tinyxml2 dep, use pugixml instead
    • [x] 14. Use xsxml for SAX parser only
    • [x] 15. Multi meta textures v1.0
    • [x] 16. ProgramStateRegistry
    • [ ] 17. Optimize CCFileUtils
    • [ ] 18. ANGLE support.
    • [x] 19. Use curl for HttpClient all platforms
    • [ ] 20. AES encrypt system
    • [x] 21. Remove xxtea
    • [x] 22. Remove rapidxml dep
    • [x] 23. fix etc1 alpha test case, content size incorrect
    • [ ] 24. Since getSuitableFopen removed, don’t convert to utf-8 for win32, or in the future, windows 10 will support utf-8 file path, such as: For Chinese system language users:
      在 控制面板-区域-更改系统区域设置 中
      勾选 Beta版:使用 Unicode UTF=8 提供全球语言支持(U) 选项
    • [x] 25. Remove fmod for linux
    • [ ] 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
    • [x] 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.
    • [ ] XX9. Auto choice best renderer from multi backends.
  • [ ] Upgrade 3rd stubs to latest stable edition for all platforms

    • [ ] zlib to 1.2.11

Update status at 2019.12.1

1 Like

Update at 2020.2.16, follow features is finished:

  • ASTC 4x4, 8x8 support for all platforms.
  • Refine backend sources.
  • Refactor UserDefault based on file mapping with aes-cfb encrypt support.
  • Fix OpenGL error 0x501 when load incorrect & unused shader.
  • Fix OpenGL error 0x501 when use compressd texture on device, caused by backend TextureGL: initWithZeros

Update at 2020.7.30, follow feature or improvements finished:

  • [Audio] Improve .wav support, now all formats supported by openal-soft is implemented, such as MS-ADPCM, ADPCM
  • [Audio] Fix .wav play have tail noise on win32
  • [Audio] Improve mutex use, fix multi-thread issue
  • [Event] Enable keyboard repeat event dispatch on win32
  • [Framework] Improve StringUtils::format stable
  • [Renderer] Add google angle backend support
  • [Win32] Update win32 3rds to vs2019 toolset
  • [Physics] Upgrade chipmunk to latest v7.0.3, and build it from sources
  • [Cmake] Optimize ogg libs linking on non-win32 platforms
  • [Compiler] Set default C++ standard to 14
  • [xxhash] Update to 0.7.4
  • [Framework] Improve utf-8 path on win32, explicit call wide version of system API
  • [iOS] Set min deploy target to ios9.0
  • [BugFix] Fix bugs from official PRs
1 Like

Which editor is engine-x using?

same with cocos2d-x-4.0

Which one do you recommend? Creator or FairyGUI?

well, fairy gui not adapte yet, currently, may continue use cocostudio

cocos studio is still available?, where do you get it from?
(sorry haven’t used it yet, therefore don’t know much about it)

It still works on Windows and older versions of MacOS.

1 Like

We are happy to inform you, fairygui now success integrate to engine-x, see the PR: https://github.com/c4games/engine-x/pull/141


egnx-1.0-a14 (2020.8.27)

  • [BugFix] Sync listFilesRecursively from https://github.com/cocos2d/cocos2d-x/pull/20518
  • [BugFix] Fix Label crashing, see https://github.com/c4games/engine-x/pull/167
  • [Feature] Add API cocos2d::FontFreeType::setStreamParsingEnabled to enable freetype stream parsing support
  • [Feature] Add API cocos2d::utils::createInstance to create object which inherited from cocos2d::Node
  • [Feature] Add API cocos2d::utils::killCurrentProcess to kill game immediately
  • [Refine] Make UserDefault encrypt algorithm can be customized
  • [Refine] Simplify CMake xcode project generation, use cmake/ios.mini.cmake instead ios.toolchain.cmake
  • [Refine] Change PXFileStream to CCFileStream, and make it support std::move
  • [Refine] Refine README.md
  • [Refine] Rename project name to EGNX
  • [Refine] By default, disable any guard declare for FileUtils
  • [Refine] Sync missing code from official-v3, spriteFrameCache parsed plist file not check
  • [Refine] Make CustomCommand safe to copyable and moveable
  • [Refine] Make ui::LayoutHelper APIs available
    Other code quality and improvements, please see https://github.com/c4games/engine-x/compare/egnx-1.0-a13...egnx-1.0-a14

Other changes since 2020.7.30, please see: https://github.com/c4games/engine-x/releases

1 Like

egnx-1.0-a15 (2020.9.1)

  • [Feature] Add ETC2 RGB/RGBA support
  • [Improve] Improve Image load, fast forward hardware compression texels data to GPU, see: CCImage.cpp#L2086
  • [BugFix] Fix multi-textures support for Metal, and code improvements, see: https://github.com/c4games/engine-x/commit/baa4447973cc52f4644e31edb493c834ed45f4cd
  • [BugFix] Fix ASTC bytesPerRow calculation
  • [BugFix] Fix osx/ios listFiles contains “.” and “…”
  • [BugFix] Sync missing fixes from official-v3
  • [Refine] Use std::move for API FileUtils::listFiles
  • [Refine] Using FastTileMap instead of TileMap
  • [Refine] Sync feature TMX animation support from official-v3
  • [Refine] Explicit sets code sign required at CMake script for ios arm devices
  • [Refine] Use CMake option -DCC_FORCE_USE_GLES to control whether use GLES renderer backend on win32(angle) and iOS.

Other code quality and improvements, please see https://github.com/c4games/engine-x/compare/egnx-1.0-a14...egnx-1.0-a15

1 Like

When will the official version be released?

I think I can’t give you explicit date about this question, just try it, if you find any bug or have any suggestion, please feel free to report, we will response ASAP.

Now EGNX finish ImGui integration, see: https://github.com/c4games/engine-x/tree/master/extensions/ImGuiEXT/README.md
And test case is here:https://github.com/c4games/engine-x/blob/master/tests/cpp-tests/Classes/ImGuiEXTTest/ImGuiEXTTest.cpp


egnx-1.0-a16 (2020.9.22)

  • [Feature] Add extension ImGuiEXT for more easy to write game embedded tools
  • [BugFix] Fix GL renderer backend API updateCompressedSubData will cause OpenGL 502 error
  • [BugFix] Fix crashing when resize std::vector<MeshCommand>
  • [BugFix] Sync bugfix pr from cocos2d/cocos2d-x#20580
  • [Refine] Bring mac build back.
  • [Refine] Remove unused member func from CustomCommand
  • [Refine] Add common API getHandler for Texture to get GPU handler, should as GLuint for OpenGL, id<MTLTexture> for Metal
  • [Refine] Add ASTC6x6 support
  • [Refine] Add CC_REDUCE_PAUSED_CPU_USAGE ccConfig.h to control whether reduce cpu usage after paused
  • [Refine] Sync fairygui extension to latest master to fix important issue
  • [Refine] Use glMapBuffer to readPixels if available

For detail changes: https://github.com/c4games/engine-x/compare/egnx-1.0-a15...egnx-1.0-a16


egnx-1.0-a17 (2020.9.29)

  • [Feature] RenderTarget abstract #210
  • [BugFix] Fix AtlasNode, needs update atlas values when ignore content scale factor changed
  • [BugFix] Fix macro CC_LOG_TO_CONSOLE doesn’t work for win32
  • [BugFix] Initialize UserDefault::_encryptEnabled=false to avoid crash
  • [Refine] Reduce depth stencil state create, don’t create it per draw call, cache state for metal backend
  • [Refine] Refactor render pipeline state #211
  • [Refine] Refactor pixel format manipulate #217
  • [Refine] Clearly texture usage and TextureGL initWithZeros usage #219
  • [Refine] Delete duplicated member _mv from TrianglesCommand

For detail changes: https://github.com/c4games/engine-x/compare/egnx-1.0-a16...egnx-1.0-a17


Can you add osx target to cmake? Have you any plans for win64 target in a future? Thank you for excellent fork!