コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2017年6月30日 >>> 2017年6月17日
link もっと後

2017年6月30日

いまさらCocos2d-xを触ってみる

そういえばゲームをしばらく作っていなかったけれど、今時のゲームはどうやって作るんだろう?と調べていました。

今はスクラッチからガリガリ書くのではなく、ゲームエンジンとして3DならUnityで、2DならCocos2d-xを使うのが定番のようです。スマホゲームはAndroidとiOSに両対応することが普通だと思われてますよね。スクラッチから作ってAndroidとiOSに両方対応させるなんて、想像するだけで辛そうです。ゲームエンジン様々ですよ。

UnityはC# で書く必要があるみたいで、今時のゲームエンジンと3DとC# を同時に覚えようとすると間違いなく挫折するので、2DメインかつC/C++ で書けるCocos2d-xを試します。

Windows無くても何とかなる

いざ始めようとして、そういえばWindowsマシンを持ってない(潰してLinuxマシンにしてしまった)ことに気づきましたが、Linuxでのインストールガイド(公式ドキュメント)もちゃんと用意されていました。さすが。

どのバージョンを使えば良いのかわかりませんが、とりあえず現時点での最新リリース版っぽい3.15.1のタグをチェックアウトしておきます。

ソースコードダウンロード
$ mkdir -p ~/usr/src/
$ cd ~/usr/src/

$ git clone https://github.com/cocos2d/cocos2d-x.git
Cloning into 'cocos2d-x'...
remote: Counting objects: 433999, done.
remote: Total 433999 (delta 0), reused 0 (delta 0), pack-reused 433998
Receiving objects: 100% (433999/433999), 883.31 MiB | 1.47 MiB/s, done.
Resolving deltas: 100% (294953/294953), done.

$ cd cocos2d-x
$ git checkout cocos2d-x-3.15.1

ビルドします。ビルドする前にcmakeやOpenGL系ライブラリの開発パッケージを入れる必要があります。公式ドキュメントさん曰く、UbuntuやDebianをお使いなら、
cd build
./install-deps-linux.sh
とすると楽にセットアップできるとのこと。私は使ったことがないです。

ビルド失敗した
$ cd cocos2d-x
$ cd build
$ mkdir linux-build
$ cd linux-build

$ cmake ../../
...
-- SQLite3 include dirs: /usr/include
CMake Error at cmake/Modules/FindPackageHandleStandardArgs.cmake:136 (message):
  Could NOT find FMOD (missing: FMOD_LIBRARIES FMOD_INCLUDE_DIRS)
Call Stack (most recent call first):
  cmake/Modules/FindPackageHandleStandardArgs.cmake:343 (_FPHSA_FAILURE_MESSAGE)
  cmake/Modules/FindFMOD.cmake:48 (find_package_handle_standard_args)
  cmake/Modules/CocosBuildHelpers.cmake:44 (find_package)
  cmake/Modules/BuildModules.cmake:21 (cocos_find_package)
  CMakeLists.txt:98 (BuildModules)


-- Configuring incomplete, errors occurred!
See also "/home/katsuhiro/usr/src/cocos2d-x/build/linux-build/CMakeFiles/CMakeOutput.log".
See also "/home/katsuhiro/usr/src/cocos2d-x/build/linux-build/CMakeFiles/CMakeError.log".

FMODなるモジュールが無いと怒られました。調べてみるとgitからソースコードを持ってきた場合は、依存ライブラリをダウンロードする一手が必要とのことです。ダウンロードは簡単です。

依存ライブラリのダウンロード
$ cd cocos2d-x

$ ./download-deps.py
=======================================================
==> Prepare to download external libraries!
==> version file doesn't exist
==> Ready to download 'v3-deps-130.zip' from 'https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin/archive/v3-deps-130.zip'
==> WARNING: Couldn't grab the file size from remote, use 'zip_file_size' section in '/home/katsuhiro/usr/src/cocos2d-x/external/config.json'
==> Start to download, please wait ...
==> Downloading finished!
==> Extracting files, please wait ...
==> Extraction done!
==> Cleaning cocos2d-x/external folder ...
==> Copying files...
==> Cleaning...
==> Would you like to save 'v3-deps-130.zip'? So you don't have to download it later. [Yes/no]: Yes
==> Saving the dependency libraries by default

もう一度cmakeを実行します。成功しました、良かった良かった。あとはmakeするだけですが、gcc 6.3を使っているせいか、凄まじい量の警告が出ます。ドキュメントを見るとgcc 4.9でビルドするのが推奨みたい?ですが、gccのバージョンに関わらずWarning出るのはダメじゃないの……?

ビルド
$ cd cocos2d-x
$ cd build/linux-build

$ cmake ../../
It appears you are building natively for Linux with GCC
-- OpenGL include dirs: /usr/include
-- GLEW include dirs: /usr/include
-- PkgConfig found
-- GLFW3 include dirs: /usr/include/GLFW
-- SQLite3 include dirs: /usr/include
-- FMOD include dirs: /home/katsuhiro/usr/src/cocos2d-x/external/linux-specific/fmod/include
-- Fontconfig include dirs: /usr/include/freetype2
...
-- CURL add to include_dirs: /usr/include/x86_64-linux-gnu
-- CURL libs added to 'cpp-tests': curl
SPIDERMONKEY_LIBRARY: /home/katsuhiro/usr/src/cocos2d-x/external/spidermonkey/prebuilt/linux/64-bit/libjs_static.a
-- Configuring done
-- Generating done
-- Build files have been written to: /home/katsuhiro/usr/src/cocos2d-x/build/linux-build

$ make
Scanning dependencies of target bullet
[  0%] Building CXX object external/bullet/CMakeFiles/bullet.dir/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp.o

...(かなり時間かかります)...

やっと入り口に立てました。次回はゲームのプロジェクトを作ろうと思います。

編集者:すずき(2017/07/02 22:40)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2017年6月17日

exim4の設定

サーバのexim4がIPv6 socket creation failedというエラーを出し続けていて、鬱陶しいです。

どうしたものかと思っていたら、同じ症状で悩んでいる人を見つけました。要は設定ファイルにdisable_ipv6 = trueを足せば良いだけみたいですが、Debianのexim4は変な設定方法になっていて苦戦していました。

まずは、現在の状態を確認してみます。

exim4の設定を更新、確認する方法
# update-exim4.conf

# exim4 -bP disable_ipv6
no_disable_ipv6

これは無効(disable)が無効(no)なので、IPv6有効状態です。なんでenable_ipv6じゃないんだろう。変な名前…。

変更方法ですが、先ほどのフォーラムによれば /etc/exim4/update-exim4.conf.confに足しても意味が無くて/etc/exim4/exim4.conf.templateに足すと良いみたいです。

exim4の設定を変更
# vim /etc/exim4/exim4.conf.template

# update-exim4.conf

# exim4 -bP disable_ipv6
disable_ipv6

とりあえず設定ファイルの先頭に足してみたら効いているみたいですが、どこでも良いのか?これ。

一応 /usr/share/doc/exim4/README.Debian.gzにマニュアルがありますが、クッソ長くて読む気が起きないです。

拾い読みした感じだと、多分2.1.1.12. Split configuration into small filesの真ん中辺りに書いてある、

If you chose unsplit configuration, update-exim4.conf builds the configuration from /etc/exim4/exim4.conf.template, which is basically the files from /etc/exim4/conf.d/ concatenated together at package build time, and thus guarantees consistency on the target system.

設定ファイルを分割していない人(私がそう)はexim4.conf.templateに全ての設定が書いてあるから、何か足したければexim4.conf.templateに足せば良さそうだな?ってのが何となくわかります。でも、仕組みは良いから使い方を書いてくれないかな…って気分になりますね。

編集者:すずき(2017/06/18 02:29)

コメント一覧

  • hdkさん(2017/06/18 06:03)
    Exim は知りませんでしたが conf.d スタイルになっているパッケージ結構ありませんか。共通ファイルをいじると、パッケージ更新の時に手動マージになることがあって手間なので conf.d に勝手に俺様ファイルを作るのがいいのかなと思います。
  • すずきさん(2017/06/18 14:22)
    >hdk さん
    Apache と cron くらいしか知りませんが、conf.d スタイルはありますね。概念を揃えていただけるのはありがたいのですが、exim4 の微妙なところは反映のさせ方が独特でわからないところです。
    なぜこうなっているのかまではわかりませんが、exim4 が設定ファイルの分割に対応していないところに、強引に設定ファイルの分割を持ち込んだのかなあ?
open/close この記事にコメントする



link もっと前
2017年6月30日 >>> 2017年6月17日
link もっと後

管理用メニュー

link 記事を新規作成

<2017>
<<<06>>>
----123
45678910
11121314151617
18192021222324
252627282930-

最近のコメント5件

  • link 24年10月1日
    すずきさん (10/06 03:41)
    「xrdpで十分動作しているので、Wayl...」
  • link 24年10月1日
    hdkさん (10/03 19:05)
    「GNOMEをお使いでしたら今はWayla...」
  • link 24年10月1日
    すずきさん (10/03 10:12)
    「私は逆にVNCサーバーに繋ぐ使い方をした...」
  • link 24年10月1日
    hdkさん (10/03 08:30)
    「おー、面白いですね。xrdpはすでに立ち...」
  • link 14年6月13日
    2048player...さん (09/26 01:04)
    「最後に、この式を出すのに紙4枚(A4)も...」

最近の記事20件

  • link 24年10月31日
    すずき (11/04 15:17)
    「[DENSOの最終勤務日] 最終勤務日でした、入門カードや会社のPCを返却してきました。在籍期間はNSITEXE(品川のオフィ...」
  • link 22年7月8日
    すずき (11/02 20:34)
    「[マンガ紹介 - まとめリンク] 目次: マンガ紹介一覧が欲しくなったので作りました。5作品乙女ゲームの破滅フラグしかない悪役...」
  • link 24年10月30日
    すずき (11/02 20:33)
    「[マンガ紹介] 目次: マンガ紹介お気に入りのマンガ紹介シリーズ。最近完結した短めの作品を紹介します。マイナススキル持ち四人が...」
  • link 19年3月28日
    すずき (11/02 13:27)
    「[マンガ紹介] 目次: マンガ紹介お気に入りのマンガ紹介シリーズ。こわもてかわもて(全2巻、2019年)(アマゾンへのリンク)...」
  • link 21年6月20日
    すずき (11/02 13:22)
    「[読書一生分が93万円?] 目次: マンガ紹介書籍通販のhontoがこんなキャンペーンをやっています。honto読書一生分プレ...」
  • link 17年10月27日
    すずき (11/02 13:11)
    「[異世界&最強系漫画の種類] 目次: マンガ紹介少し前にアニメ化されて盛り上がって(おそらく負の方向に…)いた「...」
  • link 24年10月28日
    すずき (10/30 23:49)
    「[Linuxからリモートデスクトップ] 目次: Linux開発用のLinuxマシンの画面を見るにはいろいろな手段がありますが、...」
  • link 23年4月10日
    すずき (10/30 23:46)
    「[Linux - まとめリンク] 目次: Linux関係の深いまとめリンク。目次: RISC-V目次: ROCK64/ROCK...」
  • link 24年10月24日
    すずき (10/25 02:35)
    「[ONKYOからM-AUDIOのUSB DACへ] 目次: PCかれこれ10年以上(2013年3月16日の日記参照)活躍してく...」
  • link 24年7月25日
    すずき (10/25 02:24)
    「[OpenSBIを調べる - デバイスツリーの扱い(別方法)] 目次: LinuxOpenSBIのブート部分を調べます。Ope...」
  • link 24年8月7日
    すずき (10/25 02:23)
    「[Debian独自の挙動をするQEMUとbinfmt_misc] 目次: Linux前回はbinfmt_miscの使い方や動作...」
  • link 24年9月9日
    すずき (10/25 02:22)
    「[GDBの便利コマンド] 目次: LinuxGDBは便利ですが、少し使わないでいるとあっという間にコマンドを忘れます。便利&使...」
  • link 24年10月20日
    すずき (10/25 02:22)
    「[ゲームを買ったら遊びましょう2] 目次: ゲーム前回の振り返り(2022年5月13日の日記参照)から2年半経ちました。所持し...」
  • link 24年8月2日
    すずき (10/25 02:21)
    「[Debian on RISC-V] 目次: LinuxOpenSBI + Linuxの環境まで動いたので、次はLinuxのデ...」
  • link 24年8月6日
    すずき (10/25 02:21)
    「[他アーキテクチャ向けバイナリを実行する仕組みbinfmt_misc] 目次: LinuxRISC-V 64bit用の実行ファ...」
  • link 24年8月27日
    すずき (10/25 02:20)
    「[Milk-V Jupiterが届いた] 目次: RISC-VMilk-V Jupiterが届きました。お値段が非常に安かった...」
  • link 24年9月13日
    すずき (10/25 02:20)
    「[OpenSBIを調べる - OpenSBIとRISC-V ISA extensions] 目次: Linux今回はOpenS...」
  • link 24年10月11日
    すずき (10/25 02:19)
    「[企業のドメイン] 今の企業は公式サイトを持っていなほうが珍しいと思いますが、ドメイン名の使い方は各社でバラバラで面白いです。...」
  • link 24年10月21日
    すずき (10/25 02:18)
    「[OpenPilotを調べる - プロセス間通信msgqの仕組み] 目次: OpenPilot最近はOSSの運転支援ソフトウェ...」
  • link 24年10月6日
    すずき (10/25 02:11)
    「[OpenPilotを調べる - ビルドと実行] 目次: OpenPilot最近はOSSの運転支援ソフトウェアOpenPilo...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www2.katsuster.net
RDFファイル RSS 1.0

最終更新: 11/04 15:17