Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
2010-02-28

[Lua][iPhone]iPhone向けRPGをLuaで

今作ろうとしているiPhone向けのRPGの実装にはLuaを使いたいと思っている。

去年の年末にローカルにLuaの実行環境を用意して、勉強しながらスクリプトを少し書いたのだが、 その後放置したままだいぶ時間が経過してしまった。

今日ひさびさに以前書いた170行のLuaのコードを読むとぱっとみ意味がわからない。 実行するとなにやら実行エラーが出るのだが、その意味もよくわからない。

そのコードは思ったよりLuaぽく書かれていて、当時はそれなりに調べながら努力して書いていたらしい。 すぐには思いつかないようなLuaぽい表現がいくつも使われている。

まずはこのコードを読みながら当時のことを思い出していくとしよう。 思ったよりちゃんと実装してるし、思ったより作業は進んでいた。

ある程度感が戻ったら次はiPhone上でLuaを走らせることに挑戦してみたい。

2010-02-28

[Lua][Mac][setup]MacでLuaを使う

http://www.lua.org/

上記Luaの公式サイトからLua 5.1.4をダウンロード。

wget http://www.lua.org/ftp/lua-5.1.4.tar.gz

ターミナルにて解凍する。

tar zxvf lua-5.1.4.tar.gz

とりあえずユーザローカルにインストールすることにする。 解凍したあとMakefileを書き換えてインストール先を/Users/dan/localに変更する。 Makefileが簡潔に書かれているので書き換えるのが容易だ。

cd lua-5.1.4
vim Makefile

makeを引数なしで実行する次のように表示される。

make

以下表示結果。

Please do
   make PLATFORM
where PLATFORM is one of these:
   aix ansi bsd freebsd generic linux macosx mingw posix solaris
See INSTALL for complete instructions.

手元の環境はMacなのでmacosxを与えてmakeを実行する。

make macosx

インストール。 (デフォルトのパスにインストールするならsudoが必要。)

make install

インストール先(上の例なら/Users/dan/local/bin)にパスを通せばluaコマンドを実行できる。

lua -v
=> Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
2010-02-27

[Bilbo]日記の更新を支援する仕組み

日々取り組んでいることや考えていることをもっと日記に書きたいなと思いつつ、 サーバにログインしてテキストファイルを作成するというBilbo(今使っている日記システム)のエントリ更新方法が素朴過ぎるのか、なかなか日記を更新できていない。 サーバでのエントリ直書きも悪くないのだけど、特別便利とは言えない。

事態を改善すべく、前々から考えていた日記更新システムを作成中。

作戦としては、まず原稿をDropboxに置き、普段使用しているすべてのPCで共有する(Dropboxに置くのは単に書きかけの原稿を複数のPCで共有したいがため)。 ひとつの原稿ファイルに複数のエントリを書けるようにする。このときエントリの単位がわかるように簡単なルールを設けておく。そしてこの原稿ファイルからエントリを切り出して、エントリデータを作成するスクリプトを作る。

切り出されたエントリデータは、ローカルで稼働させてるBilboサーバ(要WEBrick等の動作する環境)のdraftカテゴリに放り込まれるようにしておく(実際は出力先のディレクトリをカテゴリデータディレクトリにシンボリックリンクしてるだけ)。

ローカルでの原稿チェックはここまでで完了。 あとはローカルのエントリーデータをサーバにアップするスクリプトがあればOK。

このような仕組みにしたい理由は、手元に複数の書きかけの日記をためておきたいから。 ひとつのエントリを一日で書き上げるのではなく、日々の細切れの時間を使って少しずつ書きたいのだ。 思いつきのアイデアをメモすることが多いが、そんなときもすぐには一本のエントリとしてまとめることはできない。原稿ファイルがひとつになっていればこういう書き方をするのに便利なんじゃないかなと。

原稿作成からサーバにアップするまでの手順は次のようになる。

  1. ローカルの原稿テキストファイルを編集
  2. rake でローカルにエントリデータ作成
  3. ブラウザでローカルのデータにアクセス(draftカテゴリ記事の一覧表示)して表示確認
  4. rake update

とこう書き出してみて気がついたが、手順2は不要だ。 ブラウザでdraftカテゴリを表示したときに自動的に原稿データからのエントリデータ切り出しが行われた方が良い。

そうなると以下の手順で記事を更新できる。

  1. ローカルの原稿テキストファイルを編集
  2. ブラウザでローカルのデータにアクセス(draftカテゴリ記事の一覧表示)して表示確認
  3. rake update

--

とりあえず4手順で更新するシステムはできたのでこれで様子を見よう。

2010-02-25

「THE 合格」バージョン1.1配信のお知らせ

先日リリースしたiPhoneアプリのバージョンアップ版がダウンロードできるようになったのでお知らせします。

今回のアップデート内容は以下の通りです。

  • 表示画像のブラッシュアップ

「THE 合格」ちょっとしたアクションで画面に「合格」という文字をフラッシュさせるシンプルなiPhoneアプリです。

アプリの内容や使い方は「THE合格|合格祈願のお守りはアプリで決定!!」が詳しいです。

もう受験シーズンも大詰めですが、身近に受験生がいらっしゃいましたら祝福のネタとして使えるかも知れません。1/6の確率でサクラ咲くバージョンで画面がフラッシュするという隠し要素もあります!

ちなみに20日に更新申請手続きをして今日(24日)に無事通過したようです。

2010-02-24

Twitterのフォローミーバッジ

このブログの右端に Twitter の「Follow me」バッジを設置してみた。

http://chalow.net/2010-02-19-3.html

このブログの右端にもつけてみました。 HTMLの断片を貼付けるだけなので、スクリプトタグが使えるならすごく簡単です。

派手なピンク色にしてみました。

最近はそれなりにtweetしてますよ〜

2010-02-12

[setup][mac]Macのセットアップ

いままでずっとWindowsをメインのPCとして利用してきた訳だが、 昨年の夏に購入したMacbookが気に入ったため、本格的に作業の場をMacへ移行させている。

日常的にWindows依存のアプリや機材を使わなければならないので、常にWindows PCは横に置き、キーボード(マウス)やターミナルやブラウザはMacのものを使う感じ。 もともとWindows上のVMにUbutuを入れて、そこに端末からログインして作業することが多かったので、それほど大きな変化ではない。

煩わしいWindows縛りの作業が発生してしまうのは前も後も同じ。

以下環境設定のメモ。 Macはsnow leopard、WinはWindows XP。

ファイル共有や基本的な設定

リモートログインにチェックを入れて、sshのログインを可能にした。 ここではIPでアクセス。

ファイル共有にチェックを入れたが、WindowsのエクスプローラからMacが見えない。

コンピュータ名をmachostnameに設定。

やっぱりWindowsのエクスプローラからMacが見えない。

ファイル共有のオプションでSMBを起動し、自分のアカウントにチェックを入れた。 するとエクスプローラから認証なしで接続できた。 Winから他のユーザで\\machostnameにアクセスすると認証を求められ、自分のアカウントで接続できた(メモへのメモ:要するに普通は認証が必要なんだけど、たまたま自分のアカウントでアクセスしたから認証確認なしにつながったという意味かな?)。

SMBの上にあるAFPはよくわからないがチェックをはずしておく。

ネットワークの設定のネットワークの種類が「自動」となっているところを「xxx」として、IPアドレス等をそちらの側に打ち直した。 さらに「詳細」を開いて、ワークグループを「xxx」に選択しておいた。 これでWindowsからみたときもxxx所属となった。

Synergy

これは大変便利。Macのキーボード(マウス)からWindowsを操作できる。 ここではMac物理的に接続したキーボードとマウスを利用することとし、それを使ってWindows PCを操作する。

ファイル共有が出来ていることが前提という書き込みを見たけど、 用はTCP/IPで繋がっていればいいのか?

Mac側

設定ファイルは以下のようにした。

section: screens
	machostname:
	winhostname:
end

section: links
	machostname:
		left  = winhostname
	winhostname:
		right = machostname
end

section: aliases
	winhostname:
		xx.xx.xxx.xx

Mac側で名前解決できるかどうかわからなかったのでIPアドレスも書いておいた。

sudo cp -r synergys /usr/bin/

以下で起動する。(まだ自動起動にしていない)

/usr/bin/synergys -c /etc/synergy.conf -n $(hostname -s)

Windwos側

Windowsの方はSynergyInstaller-1.3.1a-ja.exeを落としてインストールし(これを使わないと「¥」キーが利かなかった)、clientモードで起動させた。これで同期完了。

Macのキー配列を入れ替える

Windowsでは変態設定と言われるほどにキー配列をいじっていた。 Macでもいくつかのキーを設定し直さないことにはまともにキー入力ができない。

KeyRemap4MacBookを導入した。

右commandキーをescに入れ替える設定だけデフォルトになかったので 下記を設定ファイルに追記して、手元でコンパイルし直した。

        <item>
          <name>Command_R to Escape</name>
          <sysctl>remap.commandR2escape</sysctl>
          <autogen>--KeyToKey-- KeyCode::COMMAND_R, KeyCode::ESCAPE</autogen>
        </item>

その他の設定はデフォルトのもので事足りた。 Macだけならそれで良かったのだが、Windowsを操作するときに「英数/かな」だけは無反応/スペースになってしまう。

Mac側とWin側のキーバインドをできる限り合わせておかないと混乱してしまうので以下を導入することに。

WindowsにCmdSpaceを入れた。

Windowc側でcommand+spaceで日本語/英数の切り替えが可能になった。 Mac側はデフォルトでこの操作が有効だったので一応解決。

ターミナルの色をTerminalColoreopardで変更する

http://niw.at/articles/2007/11/02/TerminalColoreopard/ja

SIMBL-0.9.7a.zipをダウンロードしてインストール(全環境に対して)。

Snow Leopard版をダウンロードしてMacintosh HD以下の「/Library/Application Support/SIMBL/Plugins」にコピー。

hostsを設定

/etc/hostsに ローカルにあるサーバーを追記。

Macからローカルのsmbサーバーへの接続

Finderの「移動」から「サーバへ接続」を開いて下記を入力。

smb://hostname/

MacPortを導入

xcodeは最新版をダウンロードしてインストール済み。

http://www.macports.org/ からSnow Leopard用のMacPorts-1.8.2.pkgをダウンロードしてインストール。

.zshrcに以下を追記。

# for Mac
PATH=/opt/local/bin:/opt/local/sbin/:$PATH; export PATH
MANPATH=/opt/local/man:$MANPATH; export PATH