삽질하는플머

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년이면 한참 가지고 놀던 시점인데 왜 몰랐을까. 

다른건 몰라도 씬과 액션관리는 배울게 참 많은 엔진인데 ...

 

일단 킵 해두고 다음에 여유될 때 파보기로 함.