2 minutes
[cocos2dx]photonを使ってみた – その1
お世話になります。
しゃまとんです。
すこし前ですが、CEDECに行ってきた際にphoton cloudの存在に興味を引かれまして、 セッションに参加してきたのですが、あまりの手軽さに驚きました。
ちなみにphotonというのは、オンラインゲーム(マルチプレイヤーゲーム)を簡単に作ることができる、ネットワークエンジンです。
その時は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周りの設定を変更しています。
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)
■サンプルアプリケーション
画面のとおりに表示されるようにします!
次はコードの修正をします。
ここまでお疲れ様でした。