emscripten + cocos2d?
탐구생활/WEB 관련취미로 cocos2d를 UI 엔진으로 쓰고 뼈대는 opengl es를 사용하는 삽질을 하고 있다.
opengl 코드를 디버깅/웹퍼블리싱 하려고 GLFW를 버무리는 방법은 지난번에 정리 해 두었는데...
Emscripten 가지고 놀기 1. (feat. CodeLite)
Emscripten 가지고 놀기 2. (feat. GLFW, ZLib)
Emscripten 가지고 놀기 3. (feat. event.c)
이걸로 테스트삼아 웹버전 퍼즐 편집기를 만들었더니
https://oranke.github.io/pharaoh-editor/
https://github.com/oranke/pharaoh-editor
모바일 브라우저에서는 전혀 동작하지 않는다. 터치관련 리스너가 구현되지 않았더라는...
어찌어찌 GLFW 를 수정해 돌아가게 했었고, 혼자 쓰기 아까워 PR을 보냈더니 오늘 머지되었다.
https://github.com/emscripten-core/emscripten/pull/10428
삽질은 길어도 코드는 짧은데 AUTHORS 에도 기록해주네. (되게 기분 좋음)
https://github.com/emscripten-core/emscripten/blob/master/AUTHORS#L458
아무튼 PR 보내느라 emscripten 최신 버전을 내려받아 잠시 돌려보았는데, 눈이 커지는 정보가 보인다.
$ emcc --show-ports
Available ports:
Boost headers v1.70.0 (USE_BOOST_HEADERS=1; Boost license)
icu (USE_ICU=1; Unicode License)
zlib (USE_ZLIB=1; zlib license)
bzip2 (USE_BZIP2=1; BSD license)
libjpeg (USE_LIBJPEG=1; BSD license)
libpng (USE_LIBPNG=1; zlib license)
SDL2 (USE_SDL=2; zlib license)
SDL2_image (USE_SDL_IMAGE=2; zlib license)
SDL2_gfx (zlib license)
ogg (USE_OGG=1; zlib license)
vorbis (USE_VORBIS=1; zlib license)
SDL2_mixer (USE_SDL_MIXER=2; zlib license)
bullet (USE_BULLET=1; zlib license)
freetype (USE_FREETYPE=1; freetype license)
harfbuzz (USE_HARFBUZZ=1; MIT license)
SDL2_ttf (USE_SDL_TTF=2; zlib license)
SDL2_net (zlib license)
cocos2d
regal (USE_REGAL=1; Regal license)
저게뭐야? 코코스가 포팅되어있었네??
레포지토리는 여기.
https://github.com/emscripten-ports/Cocos2d
3.0 alpha 버전 기준이라고 한다. 2017년이면 한참 가지고 놀던 시점인데 왜 몰랐을까.
다른건 몰라도 씬과 액션관리는 배울게 참 많은 엔진인데 ...
일단 킵 해두고 다음에 여유될 때 파보기로 함.