お世話になります。
しゃまとんです。
すこし前ですが、CEDECに行ってきた際にphoton cloudの存在に興味を引かれまして、セッションに参加してきたのですが、あまりの手軽さに驚きました。
ちなみにphotonというのは、オンラインゲーム(マルチプレイヤーゲーム)を簡単に作ることができる、ネットワークエンジンです。
photoncloud.jp
その時はUnityでのチュートリアルだったのですが、cocos2d-xでもやってくれないかなと思っていたところ、GMOでサンプルを記事にしてくださっていました。(SDKはもともとあった)
上記の記事では、version3のSDKを使っていますが、4がリリースされていたので、今後は4が使われるだろうと思い、version4を使いました。
合わせて、そのままやっていくと、ビルドできなかったり、Androidでうまく実行できなかったりしたので、ハマった部分をメモしておきます。
cocos2d-xのバージョンはv3.2でした。
■photonとは 〜 photonダッシュボード
ここまでは、同様です。手順通りにすすめてください。
■photon SDKのダウンロード
こちらはクライアントSDK(v4)をダウンロードします。
ダウンロード以外の手順は同じです。cocos2d-xでプロジェクトを作成し、SDKのフォルダをリネムして、同じ位置に格納しましょう。
■プロジェクトのセットアップ
iOSのセットアップは1〜3まで行ってください。4の64bitアーキテクチャの除外は設定しません。(2015/02から64bit対応は必須のはず)
Androidの設定ですが、手順のとおりにAndroid.mkを編集してもうまくいかなかったので、下記のように設定しました。主にcall周りの設定を変更しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
LOCAL_PATH := $(call my-dir) LOCAL_PHOTON_ROOT := $(LOCAL_PATH)/../Photon-AndroidNDK_SDK include $(CLEAR_VARS) $(call import-add-path,$(LOCAL_PATH)/../../cocos2d) $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external) $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos) LOCAL_MODULE := cocos2dcpp_shared LOCAL_MODULE_FILENAME := libcocos2dcpp LOCAL_SRC_FILES_JNI_PREFIXED := \ $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp) \ $(wildcard $(LOCAL_PATH)/../../Classes/**/*.c*) LOCAL_SRC_FILES_JNI_UNPREFIXED := $(subst jni/,, $(LOCAL_SRC_FILES_JNI_PREFIXED)) LOCAL_SRC_FILES := hellocpp/main.cpp \ $(LOCAL_SRC_FILES_JNI_UNPREFIXED) LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes LOCAL_C_INCLUDES += $(LOCAL_PATH)/../Photon-AndroidNDK_SDK LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static # LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static # LOCAL_WHOLE_STATIC_LIBRARIES += cocosbuilder_static # LOCAL_WHOLE_STATIC_LIBRARIES += spine_static # LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static # LOCAL_WHOLE_STATIC_LIBRARIES += cocos_network_static # LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static LOCAL_CFLAGS := -DEG_DEBUGGER -D__STDINT_LIMITS -D_EG_ANDROID_PLATFORM LOCAL_STATIC_LIBRARIES := common-cpp-static-prebuilt LOCAL_STATIC_LIBRARIES += photon-cpp-static-prebuilt LOCAL_STATIC_LIBRARIES += loadbalancing-cpp-static-prebuilt LOCAL_LDLIBS := -llog LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) include $(BUILD_SHARED_LIBRARY) $(call import-module,.) $(call import-module,audio/android) # $(call import-module,Box2D) # $(call import-module,editor-support/cocosbuilder) # $(call import-module,editor-support/spine) # $(call import-module,editor-support/cocostudio) # $(call import-module,network) # $(call import-module,extensions) $(call import-add-path-optional, $(LOCAL_PHOTON_ROOT)/Common-cpp/lib) $(call import-add-path-optional, $(LOCAL_PHOTON_ROOT)/Common-cpp) $(call import-module,common-cpp-prebuilt) $(call import-add-path-optional, $(LOCAL_PHOTON_ROOT)/Photon-cpp/lib) $(call import-add-path-optional, $(LOCAL_PHOTON_ROOT)/Photon-cpp) $(call import-module,photon-cpp-prebuilt) $(call import-add-path-optional, $(LOCAL_PHOTON_ROOT)/LoadBalancing-cpp/lib) $(call import-add-path-optional, $(LOCAL_PHOTON_ROOT)/LoadBalancing-cpp) $(call import-module,loadbalancing-cpp-prebuilt) |
■サンプルアプリケーション
画面のとおりに表示されるようにします!
次はコードの修正をします。
ここまでお疲れ様でした。