金曜日, 6月 30, 2006

タイトル変更


 日誌の内容がタイトルとあわなくなったので、タイトルを変更しました。
 えらく長くなってしまったので、あとで、もうちょっとマシな名前を考えたいと思います。
 でも、しばらくはこのタイトルでいきます。
 ゲーム公開のサイトの方は、現在の開発中のSFE Cocoa版が公開されるまではこのままでいきます。

ターニングポイント


 久々にニュースネタです。./jpの記事より。
 ビル・ゲイツの2年の後の引退の発表でもいろいろと思うところがあったのですが、今回のWinFSの開発中止は、後の時代から振り返ったとき、マイクロソフト独占時代が終わりに向かうターニング・ポイントなのではないか。そう思えてなりません。
 流れが変わったという意味でのターニングポイントはもっと前にあったのかもしれませんが、今回は、第二次大戦のドイツ軍のスターリングラード降伏とか、日本軍のガダルカナル撤退、南北戦争での南軍のゲティスバーグでの敗北に近い事件という意味で、ターニングポイントという言葉を使います。
 なぜWinFSの開発中止がそれほどまで意味を持つように感じているのかというと、それは私がファイルシステムこそ、OSを差別化する最大の要素だと思っているからです。
 OSの差別化するポイントっていうのは、結局のところ大きな点では3つだと思う。タスク管理、ユーザーインターフェス、ファイル管理の3つです。ユーザーインターフェイスが一番わかりやすいてんではあるのですが、皮だけで本当の技術革新できない。OSの内部が変わって初めて皮の部分で新しい機能が実現できると思うのです。タスク管理は、革新性よりは堅実性が重要な部分で、ここは地道に努力していくしかない。
 そうすると残るのはファイル管理なのです。今、OSが革新的な機能を提供するとしたら、このファイル管理で新たなアイデアや技術革新が必須なのです。Unix陣営はSunを代表するようにこの部分でいろいろと新たな技術を投入しています。そしてUnix陣営はファイルシステムに関する共通的なアプローチを実装しているので、その技術をお互いに流用し合う事ができます。
 でもWindowsのファイルシステムはUnixとはかなり違います。固定的なドライブ名とか、ファイル名への制限の違いとか、さまざまな点でWindowsはUnixとは違うのです。それにMicrosoftは基本的にすべての機能を自社のテクノロジーで固めることで強さを発揮してきたので、他社にOSの中核ともいえるファイルシステムを明け渡すはずがありません。
 それなのに何年もの時間を費やした次期ファイルシステムであるはずのWinFSが無に帰したということは、Microsoftから次のファイルシステムはさらに何年もたたないと出てこないということを意味します。これは検索技術とファイルシステムの融合とか、大容量コンテンツの管理とか、これから予想されるニーズに何年もの間対応できないこと意味する訳です。これでただですむはずがありません。
 設立時から率いてきたリーダーを失い、このうえ何年間もの時間を失ったMicrosoftは、もはやこれまでのような前進を続けることはできないかもしれないと私は思うのです。これが大規模な撤退のスタートを意味する気がするのです。

火曜日, 6月 27, 2006

Star Fleet Empire Cocoa版開発状況


 メモリーの問題を予想より早くクリア。ついでにパフォーマンス問題も見つけて修正。
 これで心置きなくAIの開発に戻れます。AIは技術、植民、移民、産業開発まで終了。
 ここまでで、ようやくコンピュータ帝国が自分で版図を広げられるようになりました。
 ここまでの傾向ではコンピュータがかなり強い。次は防衛、艦隊、そして宇宙怪獣。

日曜日, 6月 25, 2006

メモリとの格闘


Star Fleet EmpireのCocoa版は、ようやくコンピュータAIの一部までたどり着いたのですが、メモリーリークでアプリがどんどん肥大化してしまい、メモリ対策に移っています。
 XCodeにMalloc Debugというツールがあって、これでメモリーリークを調べて対策。これでメモリーリークはだいぶ収まったのですが、今度はautoreleaseの時に二重解放やら解放されたメモリにアクセスしちゃったり、不安定化。
 [[NSArray alloc]init]だと、retainせずとも既に参照カウンターが1あがっているのですね。だけど、[NSArray arrayWithObject]だど、autoreleaseされた状態で、参照カウンターはメモリープール開放時に0になってしまう。こんなこともわからないでプログラム組んでたんでもう大変。
 一週間くらいはメモリ対策に費やしそうです。

土曜日, 6月 17, 2006

SFEの開発状況


Star Fleet Empire Cocoa版の開発状況ですが、移民ルート機能の実装が終わりました。
移民ルートに登録しておけば、移民が可能なときに自動的に移民コマンドを登録するという機能です。
次はセーブ/ロード機能に着手しています。セーブ/ロードができれば、いろんなシチュエーションをセーブしておくことにより、テストが楽になるので、他の機能より優先してます。
どんどん新機能を実装しているのですが、まだまだ道のりは長い。半分以下の進捗率だと思います。

コミック:ハヤテのごとく


 今回で7刊目、でもまだバレンタインとかやっているから2ヶ月くらいしか進んでないんですねえ(笑)。
 今回も大変おもしろかったですよ、今一番面白いコミックはこれに違いない。でもなんかかなり話の傾向が変わっているような気がします。今回はハヤテ君が戦ったのは雪くらいですか。なんか主人公なのに、出番のない話が多すぎるような気がしますが(笑)。

尾道ふたたび


 尾道からの書き込みです。先月、しまなみ街道を自転車で旅行して、最後に到着したのが尾道だったのですが、すっかりこの街が気に入ってしまい、今日もまた来てます。
 尾道にはずいぶん長い商店街があるのですが、土曜の夜はここに夜店が出ていて、若い人でにぎわってます。
 お好み焼きを箸に巻いた「はしまき」っていうのを食べましたよ。おいしいのに僅か200円。

月曜日, 6月 12, 2006

資源と経済


SFEのCocoa版では資源という機能を追加します。今までは経済力は経済レベルだけで決まっていたのですが、Cocoa版では産業+資源で経済力が決まります。資源は需給バランスによって価格が変動し、資源が不足すると産業の稼働率が低下して経済力が低下します。
国家の経済力は産業と資源の少ない方となるのですが、個々の星の経済力は産業×産業稼働率×(1-価格)+資源×資源稼働率×価格となります。個々の星の資源量に限りがあるが、少ない人口でも沢山産出できるようにしていて、資源価格が高くなると植民したばかりの星でも資源で経済が潤い、移民を行いやすくできるという効果が生まれます。しかもこの資源は貿易も発生し、広大な帝国から安い資源を大量に仕入れて、産業に財力を集中する密度の高い狭い帝国なんていうのも発生するように考えています。でもこの価格決定が難しい。基本的には市場原理で価格を決めるのですが、市場っていっても国ごとにバラバラで、それでいて周りの国の市場とリンクするっていうのをどうやってやるのか。現実の世界同様、難しいですねえ。まあアイデアはあって、今練っているところです。
なんか、どんどん経済モデルが高度化していってゲームだかなんだかわからなくなりそうです。

自動コマンド機能


SFEのCocoa版ですが、マップが大幅に大きくなる分だけ、コマンド指定が煩雑になります。それを少しでも軽減する必要を感じて、新たに自動コマンド機能というのを実装することにしました。
自動コマンド機能には二種類あって、一つは産業開発(経済開発から名称変更)。余った予算で自動的に産業開発を行うように指定できる機能です。これは既に実装も終わりました。
もう一つは移動ルート機能。これは移動ルート画面というのを新設しまして、ここで設定しておいたルートにそって、移動コマンドを自動的に設定するという機能です。これはこれから実装です。
この機能により、プレイヤーは煩雑なコマンド設定を省いて、意思決定にのみ集中できるようになると思います。

土曜日, 6月 10, 2006

SFEの開発状況


一週間ぶりの書き込みですが、Cocoa版Star Fleet Empireの開発はこの間少しずつ進んでます。
Cocoa版では広大なマップに沢山の星や帝国が登場し、予算や人口の桁が2桁増え、資源という概念が新たに導入される予定です。
上記で書いたような機能は実は既に実装済みですが、残っているのは基本的な機能ばかり。艦隊にはようやく着手したばかりだし、AIも宇宙怪獣も戦闘も貿易もまだ未実装。メッセージの表示すら残っている状態です。
この調子だと8月くらいまではかかりそうですねえ。
気長にお待ちください。

土曜日, 6月 03, 2006

MacBookの使用感


Intel Macの新MacBookを使い始めてから十日あまりたちましたが、使用感を書いておこうと思います。
  • Universal Binary
  • CPUがPPCからIntelに変わったのでCPUレベルの互換性の問題が起きてソフトが少ないかなあと思ったのですが、いつも使っているソフトに関しては問題ないみたいです。8〜9割ぐらいは既にUniversal Binary版が出ていて、速度が必要なものは私の使う範囲ではほぼ揃っています。
    PPC版しかないものもエミュレータのRosettaが非常に優秀で、問題なく動いています。正直言ってプロパティをみない限り、私にはRosettaで動いているかどうか区別つきません。
  • Desktop Manager
  • 今までのメイン環境だったiMac G5の20インチ画面に比べると、MacBookの1280x800では多少画面が狭い。そこでLinuxのX-Windowのような仮想デスクトップが欲しくって、Desktop Managerっていうソフトを使い始めました。これはUniversal Binary版が出てないので、Rosettaで動かしてますが、まったく問題なく使えてます。これでInterface BuilderとXCodeを別々の画面に開いておけば、画面がごちゃごちゃせずにすみます。
  • 時差9時間
  • Intel MacなのでBoot CampでWindowsも起動できるのですが、今週でWindowsを起動したのはわずかに1回、人に自慢するためだけだったりします(苦笑)。今のところWindows側の最大の問題は9時間の時差ですよ。Windowsは時計がJST(日本時間)にあわせてある前提で時間を表示するのですが、MacOSはUTC(国際標準時)に時間が合っているのが前提で時間を表示するので、UTCとJSTの差である9時間ずれる訳です。Appleのサイトに載っていた対策は、起動時にNTPで自動的にあわせろってことみたいですが、ネットにつながってない時はどうしようもないみたい。Windowsではメールを開いてはいけないみたいです。

    まあ、こんな感じです。MacOSで使っている限りは快適です。