Micropolis(SimCity)

今回は、Micropolis(SimCity)をビルドする。

環境はubuntu10.10。

ビルド環境を構築。
端末から以下を実行する。

$ sudo apt-get install subversion
$ sudo apt-get install libx11-dev
$ sudo apt-get install libxpm-dev
$ sudo apt-get install byacc
$ sudo apt-get install libxext-dev

任意のディレクトリにてソースコードを取得する。

$ svn checkout http://micropolis.googlecode.com/svn/trunk/

(今回取得できたのは、Revision 512)

ビルドする。

$ cd trunk/micropolis-activity/
$ make

とくに問題なくビルドできた。

$ ./Micropolis

で実行。起動した。

Unity

4/8までがスマートフォンへの書き出しライセンスが無料らしいのでぎりぎりのタイミングでセコくインストールしてみる。

まずここからWindows版をダウンロード。ダウンロードしたインストーラーUnitySetup-3.5.0.exeを実行して指示に従いインストール。セットアップの最後の"Run Unity 3.5.0f5"のチェックそのままで[Finish]ボタンを押し、Unityを起動。次はFree版のレジストレーションを行う。

表示されるダイアログで[Register]ボタンを押す。次の画面で"Internet Activation"を選択し[次へ]のボタンを押す。
ブラウザが起動し、アクティベーションのページが表示されるのでメールアドレスを入力し、まずは[Free]ボタンを選択。(ちゃんとやればここでスマホ書き出しライセンスまで一気にできるのかもしれないが)
これで、ブラウザに「Product Authorized」と表示され、Unityは[Thank You!]ダイアログが表示されてアクティベーション終了。
ダイアログの[完了]ボタンを押すとUnityとデモである"AngryBots"が起動した。

ここで動作確認。
起動した状態でAngryBotsというデモが起動している。
メニューから[File]-[Build & run]を選択。
「Platform」は"PC and Mac Standalone",「Target Platform」は"Wondows"を選択して(この段階ではAndroid,iOSは選択できない)[Build And Run]ボタンを押し、保存先を指定してビルド。
ビルド後実行されてウインドウが表示された。(無事動作確認終了。)

さて、スマホ用のライセンスを導入する。(ここからはあと数十時間しか意味ないのかな。)
ここに行って「Unity FREE」「Android +Free until April 8th.」「iOS +Free until April 8th.」をSelectedにして[Add to Cart]ボタンを押した後[Check Out]ボタンを押す。
Sign in to Unity」と表示されるが、まだアカウントを持っていなかったので[Sign up here]をクリックしメールアドレスなどを登録する。メールが届くので、(なんかメール2通来てたので待ってればこれは必要なかったのかな?)その中の登録手続きを行ってアカウント承認を行う。
もう一度ストアに行って[Check Out]ボタンを押す。今度はサインインする。購入可能になるので0円の購入手続きを行う。(実際の購入金額は0円なので支払方法とかは登録しないで済む。)
購入手続きを終えるとメールでシリアルナンバーが届くので、メニューの[Help]-[Enter serial number...]でアクティベーションのページを再度表示し、シリアルナンバーを入力して[Activate Unity]ボタンを押す。
これで登録完了。

さて、再度メニューから[File]-[Build & run]を選択。
今度は「Platform」で"Android"が選択できるので実行。
しかし、ビルドの途中Android SDKがどこだと聞かれた!。
「そうだ、Android SDKインストールして無い!。」
というわけでまだ今度やります。。。(ちゃんとできるようになるのかな。)

foxc

OpenCLスタディするために今回はFOXC(OpenCLコンパイラ)をインストールする。

ここから利用規約に同意してダウンロード。
今回はUbuntu10.10(32ビット)を使用するのでfoxc-install-linux32.tar。

まずダウンロードしたファイルを展開。

$ sudo tar -zxf foxc-install-linux32.tar.gz -C /usr/local

環境変数を設定。

$ export PATH=/usr/local/foxc-install/bin:${PATH}
$ export LD_LIBRARY_PATH=/usr/local/foxc-install/lib:${LD_LIBRARY_PATH}

サンプルをビルド。

$ cd /usr/local/foxc-install/share/foxc/sample/hello
$ gcc -I /usr/local/foxc-install/include -L /usr/local/foxc-install/lib -o hello hello.cpp -lOpenCL

実行ファイルが作成できたので実行

$ ./hello
Hello, World!

COLLADA DOM 2.3をセットアップ

COLLADA DOMをVC2008Expressでビルドしてセットアップ。

まずここからcollada-dom-2.3.tgzをダウンロードして展開。(今回はC:\collada-dom-2.3)

今回はBlenderで出力するdaeをパースしたいので(Blender2.62の標準エクスポートでできるdaeは1.4.1)
C:\collada-dom-2.3\dom\projects\vc9-1.4\dom.slnを開く。
アクティブをReleaseにしてビルド。

ライブラリ名がlibcollada14dom22.libで出力される以外には問題なくビルドできた。

テスト用のデータを用意してテストしてみる。

Blenderを起動し、File>Export>COLLADA(.dae)でデータを作成。(ここではtest.daeとする。)

premake4.lua,main.cppを作成。

[premake4.lua]


solution "daetest"
configurations {"Release"}

project "daetest"
kind "ConsoleApp"
language "C++"
files {"main.cpp"}
defines { "BOOST_ALL_NO_LIB",}
flags { "Optimize" }
includedirs {
"C:/collada-dom-2.3/dom/include",
"C:/collada-dom-2.3/dom/external-libs/boost",
}
libdirs {
"C:/collada-dom-2.3/dom/build/vc9-1.4",
"C:/collada-dom-2.3/dom/external-libs/boost/lib/vc9",
}
links {"libcollada14dom22","libboost_system"}

[main.cpp]

#include

int main(int argc, char **argv)
{
DAE dae;
if( dae.load("test.dae") != DAE_OK )
{
return 0;
}
printf("geometry:%d\n", dae.getDatabase()->getElementCount(NULL, "geometry", NULL));

return 0;
}

コマンドプロンプトからpremake4を使って

>premake4 vs2008

としてdaetest.sln、daetest.vcprojを作成。
作成したslnを開いてビルド。
実行にlibcollada14dom22.dllが必要なのでC:\collada-dom-2.3\dom\build\vc9-1.4\libcollada14dom22.dllをカレントディレクトリにコピー。

>daetest.exe

として実行。

geometry:1

と表示された。
test.daeBlenderのデフォルトキューブが出力されたデータで、なかを覗くとgeometryはid="Cube-mesh"ひとつなので合ってるかな。

VC2008Expresssでboost1.49.0をビルド

COLLADA DOMを使ったプログラムをビルドしようとしたらboostのlibを要求されたのでVC2008Expresssでboost1.49.0をビルドする。

まずここからboost_1_49_0.zipをダウンロード。解凍して展開。(今回はC:\boost_1_49_0)

スタートメニューから「Microsoft Visual C++ 2008 Express Edition」>「Visual Studio Tools」>「Visual Studio 2008 コマンド プロンプト」を選んで起動。

C:\boost_1_49_0に移動。

> cd \boost_1_49_0

以下の手順でビルド

> bootstrap.bat
> bjam.exe

とくに問題なくC:\boost_1_49_0\stage\libに*.libが生成された。

bonanzaをビルド

ちょっとスタディは困難そうだが、好きなプログラムはとりあえずビルドしたいということでビルド。

ここからhttp://gi.cs.uec.ac.jp:10140/bonanza_v6.0.zipをダウンロード。

bonanza_v6.0.zipをC:\bonanzaに展開。src/client/readme.txtを見る。

スタートメニューから「Microsoft Visual C++ 2008 Express Edition」>「Visual Studio Tools」>「Visual Studio 2008 コマンド プロンプト」を選んで起動。

C:\bonanza\src\clientに移動。

> nmake -f Makefile.vs cl

bonanza.exeが生成された。

これは、思考ルーチンなので
C:\bonanza\winbin\bonanza.exeに上書きコピー。

C:\bonanza\winbin\csa.exeを実行。
対局できることを確認。(もちろんまったく勝てない)

MeCab

形態素解析スタディということでMeCabをインストールする。

まずは、MeCabのWindows版をダウンロード。
インストーラーでインストール。

スタート>すべてのプログラム>MeCabMeCabを選択するとコンソールが表示される。
(自分の環境では?)IMEがうまく動かないようなので
テキストエディタで入力した"こんにちは、世界!"という文字列を貼り付ける。

こんにちは、世界!
こんにちは 感動詞,*,*,*,*,*,こんにちは,コンニチハ,コンニチワ
、 記号,読点,*,*,*,*,、,、,、
世界 名詞,一般,*,*,*,*,世界,セカイ,セカイ
! 記号,一般,*,*,*,*,!,!,!
EOS

と表示された。

で、とりあえずSDKをテストしてみる。
スタートメニューから「Microsoft Visual C++ 2008 Express Edition」>「Visual Studio Tools」>「Visual Studio 2008 コマンド プロンプト」を選んで起動

>cd C:\Program Files\MeCab\SDK
>cl -DDLL_IMPORT -I. example.cpp libmecab.lib

文字コードがうまくいってないのか、大量のエラー。
example.cppのコードをシフトJISに直す。
再度、

>cl -DDLL_IMPORT -I. example.cpp libmecab.lib

今度はビルドできた。

実行にはlibmecab.dllが必要なのでパスを通して実行する。

>PATH=%PATH%;C:\Program Files\MeCab\bin
>example.exe

実行できた。