2008年6月 7日 (土)

またまた、スタッフ超募集中!

緊急事態、シャレならん

我が社ビサイドでは、現在、またまたスタッフ募集中です!

今回は、前回の募集よりさらに具体的に、まいにちいっしょ&トロ・ステーションの制作に参加してみたいゲーム業界もしくは、ITや、CG業界の経験者の方を募集中なのです。

興味がある方は、JOB エンタのサイトから申し込んでくださいまし。

とりあえず、上記の2職種ですがプログラマ、ディレクターも近日募集開始予定なので、それらの職種で我こそはと思う方も、ゼヒご連絡ください。

ご応募、お待ちしております!!

あと、話は変わりますが、明日から1週間、WWDC に参加するため、サンフランシスコに出張予定なんですね。スゴく楽しみなのですが、そのまえにやっておく事がイロイロあって、休日出勤中だったりしてチト大変です。

| | コメント (8) | トラックバック (0)

2007年6月12日 (火)

vim でソースコードの html 化

P1040942.JPG

電脳空間カウボーイズのシン石丸さんが最近、氏のブログで ActionScript のいろんなテクニックをソースと共に公開してくれていて、なかなか面白くてためになるので楽しみにしています。シン石丸さん、ありがとうございます!

ただ、ちょっと残念な事がありまして、何かというと掲載されているソースコードがちょち見づらいカンジなんですね。

そこで、ひょっとしたらご存じかもしれないのですが、OSX に最初からインストールされている OSX の vim を使って簡単にソースコードの html 化が出来るので紹介したいとおも言います。

まずは、百聞は一見にしかずと言うことで、html 化したソースコードの紹介を。(← クリックすると表示します)どうでしょうか?かなり見やすくなっていると思うのです。

これは、シン石丸さんの6月10日のブログに掲載されているソースコードを私が gvim でhtml 化した物で、基本的には、OSX の Terminal で下記のようにタイプするだけでソースコードと同じフォルダに、html ファイルが作成されます。(ソースコードは、flv.as という名前だとすると flv.as.html となる)

vim -n -c ':colorscheme desert' -c ':set number ' -c ':so $VIMRUNTIME/syntax/2html.vim' -c ':wqa' flv.as

以上です。(最後の flv.as はもちろん、ソースファイル名によって変わります)

ただし、ザンネンながらvim には ActionScript の syntax ファイルが標準でインストールされていませんので、普通に実行しても上記のように色分けされない html ファイルが出来てしまいます。as ファイルの色分けを有効にするためには、下記の手順で syntax ファイルを追加してあげる必要があります。

  1. ココから、ActionScript のsyntax ファイルをダウンロード
  2. ダウンロードしたファイルは、~/.vim/syntax/actionscript.vim として保存
  3. さらに ~/.vim/filetype.vim を作成し、下記を追加
    au BufNewFile,BufRead *.as  setf actionscript

これで、OK!

ちなみに、先ほど紹介したファイルは、標準の vim ではなく、gvim という単独で動作する(Terminal でなく)アプリで作成しています。これはこうしないと、微妙なカラー設定が有効にならないからなのですが、それ以外にもイロイロと GUI で変更できたり、html 化もメニューから選べたりと、vi になれていない人にも便利だとおもいます。gvimは Windows などでも簡単にインストールできるので、Windows ユーザの人でも同様の方法でソースコードの html化を行うことが出来ますね。(その際には、上記のコマンドの ' を " に置き換えてください)

実はこの機能、ウチの会社ではとある作業の為、毎日使用していたりします。

おためしあれー

| | トラックバック (5)

P903iX と Twitter と Flickr

テスト投稿

少し前に Twitter をはじめました。ご存じの方も多いと思うのですが、Twitter というのは一言ブログの様な物で、その「ひとこと」が登録している友人全体に配信されるという物です。最初は、「なんぼのもんじゃい」ってカンジで始めてみたのですが、あるていど友人がふえてくるとこれがなかなか楽しいのです。(ちなみに私は、torotiti というID ですので、興味がある人は除いてみてください)

しかも当初は、PCからしかポストできなかったのが、カウボーイズのおかげで携帯から投稿や参照ができるようになって、さらに利用の幅が広がりました!おかげで会社から外にでかけて、暇をみては Twitter にポストしていたりします。

で、ここでちょっと話がそれるのですが、少し前に P903iX という携帯電話に機種変したのですケド、この機種になってから、携帯で手軽にキレイな写真が撮れるのですごく写真を撮る機会が増えたのです。しかも、通信速度が速いので、撮った写真は SDカードでPCに転送するなどと言うことはせず、メールで直接 Flickr にアップロードしています。これがまた、たまらなく便利なのです。ちなみに、日本では、いまひとつなじみのない Flickr ですが、デジカメを持っている人になら問答無用でオススメですよ。私は、Pro アカウントを取得して、容量制限が無制限になったので、HDD のバックアップもかねて写真をアップロードしています。

と、それはさておき、ここで出てきたのが、Flickr に写真をアップロードしたら、自動的に Twitter にもポストしてくれるといのに!というキモチだったのです。きっと同じ事を考える人がいるはずと思って、ググったらば、早速見つかりました。

Twitterfeed というサイトですヨ!

このサイトは、指定したRSS フィードを一定間隔で監視して、更新されていたらTwitter にRSSフィードのタイトルや、リンクをポストしてくれるという便利サイトなんですね。ID の取得に OpenID が必要になったのですが、Flickr 取得の際に Yahoo(US) のアカウントを取得済みだったので、簡単な手続きで idproxy の OpenID を取得できて、トントン拍子に設定は終了しました。

この設定が落ち着いたのが、一昨日くらいなのですけれど、現在も無事に動作している様です。こないだは、調子に乗って、飲み屋で出てきたおつまみをバシバシ投稿してしまいました。あはは。

さらに現在は、もうすこし設定を改良して、

  • Flickr にポストするだけ
  • Flickr にポストするし、Twitter にもポストする

という2種類を分けられるようにしました。具体的には、写真専用のブログを作成して Twitterfeed には、その RSS を指定するようにしています。Flickr には元々、メールでポストする際に、指定した blog にも自動的にポストする機能があったので、それを利用しているというわけです。このようにさらに設定を分けたのは、自分にとって、Flickr はとにかく写真を置いておくための場所であるので、どんどん撮った写真はつっこんでおきたいのですが、かといってそれらすべてを Twitter にぽすとしたいというわけではない、というカンジったのでそれらをコントロールできるようにしたかったのですね。その副産物として、写真だけ掲載されるブログも出来てしまったのですが、これはこれで、Flickr とは違った趣があり、良い感じです。

ちなみに、Twitterfeed は複数のRSSを登録できるので、このブログも登録してみました。しかし、こんな風にネット上のサービスが 公開仕様によって結びつけられて、便利になっていく様はコンシューマゲームには無いもので、何ともたまらない物がありますね。

こういう発展(?) が今後のゲームには必要なのかもしれません。

| | トラックバック (0)

2007年4月24日 (火)

スタッフ大募集中!

Search_1昨日から、イーキャリアさんでスタッフの募集広告の掲載を開始しました!

今回の募集では、ウチの会社始まって以来となるほぼ全職種(プログラマプランナデザイナ)の募集となっており、これから、ビサイドをもっと盛り上げていってくれるスタッフを熱烈募集中なのです。

現在のメインタイトルである、まいにちいっしょはこれからも変わり続けていきますから、まだまだパワーを必要としていますので、我こそはと思う人、なにか新しいことをやってみたい人、自分だったらもっと面白くできるぜ!と思う人などなど、どんどん応募して欲しいですねー

基本的にゲーム業界経験者は大歓迎ですし、もちろん未経験者でもかまいません。ただし経験者、未経験者の関係なく、書類選考後に過去に制作した作品(プログラムやCGや企画案等)の審査をさせていただきますので、それらを面接時に出すことが出来ることが条件になります。

せっかくなので、これまで過去の面接ではこんな風に評価、判断させてもらっているというトコロを話しておきますね。これをよんで、「オレ(わたし)、向いているかも!」という人がいたら、ぜひよろしく!

まず、プログラマの希望の人のケースで説明すると、業界経験者は過去に関わったゲームタイトルがあると思いますので、そのタイトルを提出(もしくは報告)してもらうのがベストだと思います。ただ、ゲーム内の担当箇所で仕事内容もまったく変わると思いますので、どのあたりを担当したかも聞かせてもらいます。そして、未経験者の場合、提出してもらう作品は自分が作ったプログラム(たとえばアプリケーション等)なら問題有りません。もしくは、趣味で作ったゲームでもアリですし、その出来が良ければ、評価も高いです。そして、これは経験者、未経験者問わずですが、提出した作品を通じて、プログラマとしての素養を見させていただきます。最新の技術はどんどん新しいモノが出てくるので、そういう事は会社に入ってから勉強してもらえれば OK ですから、面接時はどっちかというと論理的思考や、プログラムの基礎力、新しい技術への取り組み姿勢などがしっかりしているかどうかを見させてもらうコトになります。

デザイナの場合は、業界経験者、未経験者関わらず、どんな絵(2D, 3D) が書けるのか、とかデッサン力とかそういう点を中心に見ることになります。これもプログラマと同じで、3D ソフト( ウチは 3dsMAX を使っています)は入ってから覚えてもらっても大丈夫なのですが、基本的なデッサン力や、最低限の 3D の知識、アニメーションなどは面接の段階で、有る程度の実力がないとかなりキビシイです。また、PS3 になってから以前ほどはゲーム専用のノウハウが減ってきていますので、デザイン関係であれば他の業種から移りやすいかもしれません。また、多少不得意な分野があっても、飛び抜けた点がれば評価は高いです。たとえば、「アニメーションは自信があります」とか「モデリングは任せてください」とかですね。

で、最後にのこったプランナですが、面接の判断が一番難しいのがこのプランナでして、業界経験者の場合は過去の仕事内容で評価させていただくのですが、未経験者の場合はコレまで自分が考えてきた面白いこと(企画やゲーム案やストーリー)を発表してもらうことになると思います。プランナに関しては、きまった評価基準が無いので、逆に自由に面白そうなことを提案してくれるとうれしいです。ただ、面白いことが考えられるだけではなくて、コンピュータの知識も有る程度は必要になりますので、そのあたりの基礎知識があるかどうかも評価の対象になりますし、仕事ではテキストをいっぱい書くことになりますから、ブログを書いているならば、そのブログも評価基準にさせてもらうこともありますね。ブログ以外でも個人的な創作活動をやっている人などは、その話をされてもOK です。

というわけで、ちょっと長くなりましたが、なんにしてもやる気があることが、最重要です。たくさんの方の応募をおまちしております!

ビル・ゲイツの面接試験―富士山をどう動かしますか? Book ビル・ゲイツの面接試験―富士山をどう動かしますか?

著者:ウィリアム パウンドストーン
販売元:青土社
Amazon.co.jpで詳細を確認する

| | トラックバック (1)

2007年2月 9日 (金)

トロの質感への挑戦

P1030114.JPG

先日のGAME Watch の記事「ロストプラネットグラフィクス講座」にはすごくシビれました。スゴイスゴイという噂は聞いていたのですが、あそこまで頑張って実現されていたとは、本当に感心しました。スゴイです。まだ、読んでいないという人はゼヒ、読んでみてください。

ところで、ウチの会社では、あそこまで大規模な開発は出来ないのですが、それでも「まいにちいっしょ」では、次世代機である PS3 の性能を引き出してやろうと、気合いを入れてこだわっている部分があります。どこかというと、それは「トロ」の質感なんです。まさに、ウチならではですネ

ウチの会社では、プレス用のCG素材など非リアルタイムのCG制作の際には、3DMAX の「スカイライト」というレンダラを使用して画像を作成しています。この「スカイライト」はレンダリングも凄く時間がかかるのですが、凄くイイ質感をトロ達に出してくれるので、それでも採用していました。

で、今回、PS3 でトロを表現するにあたって、次世代機なんだしリアルタイムでスカイライトの様な表現ができないかという話しがでてしまい、この無謀とも思える課題にウチのプログラマが取り組んだのです。その際に取りれられたのが、「アンビエント隠蔽(遮蔽ともいう。英語表記は Ambient Occlusion)」というアルゴリズムです。

詳しく書くと長くなるので、簡単に書きますが、アンビエント隠蔽というアルゴリズムは、物体に当たる光が同じ空間にある物体同士で、どのくらい遮られるかという情報を計算し、影を演出する手法です。このアルゴリズムを使用すると、とても柔らかい影を物体につけることができるんですね。だたし、その代わり、計算量は膨大になってしまうという欠点があります。実際、3DMAX のスカイライトも似たような処理をおこなっており、レンダリングに時間がかかってしまう一因でもあります。ただ、一応、アンビエント隠蔽をリアルタイムに実現しているプログラムも、すでにありまして、どうやっているかというと、膨大な計算を事前にすませておくことによって実現しているというわけです。このやり方なら、普通のパソコンで十分、実現できるレベルです。

しかし、その「事前に計算する」という手法が使えるのは、「物体が動かない・変形しない」という前提条件が必須なのです。動いたり、変形したりすると光の遮られ方がかわってしまいますから、事前に計算していた値がつかえなくなってしまうのです。これでは、まったくゲームに使えません。

しかし、次世代機 PS3 なら、その計算もなんとかリアルタイムでやれるのではと考えました。

まずは、普通にCPUだけでアンビエント隠蔽の計算をするテストプログラムをつくり、アルゴリズムの検証をおこないました。そして、予想どうり、十分な品質の画像が得られることが分かったので、次に、高速化に取り組んだわけです。当初は、この計算を RSX( PS3 の GPU) にやらせて高速化を試みたのですが、全然、計算速度が足りませんでした。ぎゃふん

そして、最後の砦、真打ち CELL の登場です!

CELL には SPU というベクトル演算なら、バリバリこなす CPU が7つもついています。そこに白羽の矢がたちました。これまで RSX 用に書いていたコードをイチから SPU で並列計算出来るように書き直して最適化を進めていきました。その結果、SPU を4個使用することで、毎秒30フレームを維持しながら、リアルタイムにアンビエント隠蔽の処理を行えるところまでこぎつけることができたのです。CELL ばんざい。SPU 最高!

ちなみにその後も、最適化はつづけていて、現在のバージョンではさらに処理が高速になっていっています。

実験っぽいテストプログラムはネット上にも多々ありますが、実際に、ここまで全面的にリアルタイムのアンビエント隠蔽の処理を導入したゲームは他に無いと思うので、これはちょっとした自慢なのです。単純に計算量だけを考えると、現状では PS3 以外では、ちょっと厳しいかもしれません。あ、でも先日、発表された NVIDIA CUDA なら全然、可能かもしれないですね。

ま、というわけで、まいにちいっしょのトロの質感は、CELL の SPU を4個も使って実現されている、次世代機ならではモノだという話しでした。まぁ、一見、地味に見えるまいにちいっしょですが、こういうこだわりもあるのです。

| | トラックバック (1)

2006年12月20日 (水)

バージョンアップ!

P1030021.JPG
トロ・ステーション内でも告知がありましたが、もうすぐ、まいにちいっしょのバージョンアップがあります。

この1ヶ月間、バージョンアップに向けた準備がかなり大変でした。そりゃもうブログの更新もちょうど1ヶ月とまってしまうくらいの勢いで(いいわけ)

ところで、今回のバージョンアップの9割程度は当初から予定していた内容なんですけれど、残り1割くらいは、サービスイン後に、ネットのいろんなブログや掲示板で出てきた意見を参考にして機能を考案しています。こういう風に、ユーザさんの意見をみながら、追加する機能を考えられるといのは、ライブ感覚で楽しいモノがありました。なんというか、「がんばりがいがある」というかんじでしょうか。今回は、1割程度なのですケド、この割合は今後もっと大きくなっていくだろうなとも想像しています。

それと、今回から課金サービスがスタートするのですが、そのシステムに関して心配しているユーザさんもいらっしゃるようですので、その件に関してすこしだけ。

まいにちいっしょの「無料部分」は無くなりません。すくなくとも、現在までのバージョンで提供している内容に関しては無料で続ける予定ですのでご安心ください。また、それだけではなく無料部分もまだまだ拡張していく予定です!

とはいえ、会社である以上、ちゃんと収益をあげて行かなくてはならないわけで、長期的にどうやって運営費をまかなっていくようにするか、どんな収益システムがまいにちいっしょには向いているのだろうかというのを、イロイロと検討していました。そして、いよいよ今回から、部分的にトライを始めるというカンジなのです。「トライ」といっているのは、今回はじめたやり方がずっと続くかどうかもまだ分からないからです。

と、いうのはたとえば今回導入するシステムがユーザの皆さんに受け入れられない場合、結局、収益は上がっていかないわけですし、魅力的で受け入れられるようなシステムに変えていかないといけない訳で。ウチとしても、できるだけ、うまくいくようなシステムにしようと考えてはいますが、ネットワークサービスはふたを開けて開始してみないと、想像できない箇所が多く計算しきれないんですよね。だから、ある程度かんがえたら、トライしてみるしかないというカンジなんです。

と、いうわけで、まいにちいっしょに合った、ユーザさんに喜んでもらえる様な収益の上げ方に関して、ウチでもよい方法がわかっていませんので、ユーザさんの動向をみさせていただきながら、調整や検討が必須だと思っています。そういうトコロは、現行のいろんなweb サービスと似ているかもしれませんね。ホント。

なんだか、課金の話ばっかりになってしまいましたが、もうすぐ公開なので、まずはダウンロードして、楽しんでもらえれば!と心から思っています。無料部分だけでも、結構遊べるはずですヨ

どうぞ、よろしくおねがいします!

追伸>
バージョンアップする前に、現在のバージョンで最後のニュースを見ておかないと、新バージョンでは見れなくなりますので気をつけてくださいまし。

| | トラックバック (2)

2006年10月10日 (火)

XML と YAML

Pict1126 現在のプロジェクトで必要になったので、XML を調べることに。これまで、XML はRSS などで利用するだけだったので、実際に理解して、それを作成するプログラムを書くのは初めてです。

で、ちょっと調査し始めて痛烈に感じたのは、「XML めんどくさー!」の一言。なんつーか、軽く作って、軽く使いたいだけなのに、理解しておかなくてはいけないことが多いコト、多いこと。しかもめんどくさいだけで、作成に関してなにか技術的ハードルが有るわけではないので、モチベーションも今ひとつ上がらないまま、Ruby スクリプトを書き終えましたヨ。ふぅ。

ところで今回 XML を調査するその過程で、YAML というフォーマットを知ったんですよ。これは、XML の逆を行くようなフォーマットで汎用性は低いけれど、シンプルで理解しやすいというモノなんですよね。しかも、フォーマットのレベルで、配列やハッシュ、そして参照などが定義されているので、使う方が考えなきゃいけないことが少ない。

ちなみに、自分が好きな Ruby に対応するライブラリが整備されていることもポイント高いかも。ネット上に良い記事も充実してるし。

で、考えたのは、このフォーマットってゲームのセーブデータやデータテーブルに持ってこいなのではないかということです。これまで、ゲームのセーブデータやテーブルって言うと、バイナリが大前提だったとおもうのですが(すくなくともコンシューマでは)、バイナリでなにが困るかというと、ちょっとデータ構造がかわるとすぐにアクセスできなくなってしまうコトです。

たとえば、セーブしなきゃいけない情報が追加されると、もう、古いデータが使えなくなりやすい(というか、大抵、つかえない)のですね。バイナリの場合。

これは CD-ROM などで配布するゲームでは良かったのかもしれませんが、ネットワークゲームのように、随時、バージョンアップされていくようなゲームでは、かなりまずい事態を引き起こしかねません。

ある日、ゲームにパッチを当てたら、セーブデータが使えなくなったと言うことは許されないわけですし。で、その為に、セーブデータをコンバートをするようなプログラムを制作側が提供しなくてはいけなくなったりとか、いろんな手間、不都合が考えられるわけです。

しかし、たとえば、シンプルだけれど、柔軟性が高い YAML の様な形式でセーブデータを保存しておければ、そんなにコストをかけずに新しい情報が増えても柔軟に対応していけるんじゃないかと思ったわけです。

もちろん、テキストのままだと、簡単に改造されてしまうので、なんらかの暗号化は必要だと思いますけれどね。

PS3 の様にゲーム機のスペックが相当なレベルまで上がってしまっている昨今では、ゲームのデータにも多少の冗長性を持たせたところで、YAML のパースなんて、一瞬でおわるだろうし、ほとんど困らないと思いますから、こういった点もこれまでと変わっていくところなのかもなーとか、適当に考えたりしたのでした。

というか、パソコンの世界では、当たり前のことなのかもしれないですけれどねー

| | トラックバック (0)

2006年10月 7日 (土)

Wiki はじめました

P1010257すっごいいまさら感があるのですが、 最近、社内のサーバに Wiki を導入し、ゲームの仕様や制作上のおぼえがきなどを Wiki ベースで構築していくようにしました。

導入したのは PukiWiki という PHP ベースの Wiki です。

以前から Wiki の有用性は認識していたんですが、実際に使ってみると、ホントにいいですね!んー、もっと早く導入していればよかった!

実際に使ってみて、特に Wiki がゲームの仕様書作成にマッチしていると感じたのは、ゲーム制作って、作っている最中に仕様をバンバン変更したり、また仕様を決めながら作っていくことが多いんですよ。だから、コツコツと仕様をまとめていけて、その都度、修正をかけていける Wiki は最高にマッチしていた訳なんです。しかも必要になるのは、ブラウザのみなので、スタッフの全員が簡単に最新情報にアクセスできて、編集もできるという、この素晴らしさ。

あと、これは PukiWiki が素晴らしいのかもしれないのですが、動作がすごく軽いのがいいですね。実はこの PukiWiki にいたるまで、いろんな CMS 系のソフトを試したのですが、どれも結構重くて、ちょっと導入に踏み切れずにいたのでした。

それらの最新の CMS に比べると PukiWiki はずいぶんとシンプルなんですが、それを補ってあまりある、軽さと汎用性の高さは最高です。

もし、ゲームの仕様書作成になにかいいツールはないのかなーとか、考えている方がいるなら間違いなくオススメですヨ(いまさら言われんでも...とか思われているかもしれませんが)。あ、あと導入に際して、参考にした本を紹介しておきます。Wiki の情報は Web 中に溢れているのですが、いろんな場所に情報が拡散しているんですよね。そんな中でこの本は実用的な情報がよくまとまっていたので、短い時間で運用に踏み切れました。オススメです。


ビジネスWiki導入・活用ガイドBOOK Book ビジネスWiki導入・活用ガイドBOOK

著者:ケイ・ライターズクラブ
販売元:アスキー
Amazon.co.jpで詳細を確認する

| | トラックバック (0)

2006年8月24日 (木)

コンピュータへの帰還

P1020249 もう、1週間ほど前になりますが、Microsoft からとても興味深い発表が行われました。

これは、XBOX360 と WindowsXP の両方で動作するゲーム制作環境“XNA Game Studio Express” を無料配布するという記事です。

家庭用ゲーム機の開発環境といえば、法人向けの非常に高価なモノが中心なのですが、それを、なんと無料配布するという太っ腹。しかも、このXNA Game Studio Express で作成したゲームを配布するための Web サイトまで作成するとのことです。これをうけて、「ゲーム版YouTubeを開設」と表現しているサイトもありました。

ただ、この開発環境は、現在販売されているゲームを作成している開発環境とは異なり、Microsoft が Windows で進めている .NET 環境をベースにしたモノなんですよね。具体的にいうと、CPU のネイティブコードが作成できる訳ではなくて、Windows とXBOX360 に実装される .NET 用 VM で動作するようなバーチャルコードを生成するための開発環境のようです。もちろん、ゲーム用に様々なAPI は追加されるでしょうけど。

コレによって、実行速度面では、市販のゲームと比べると劣るのは間違いありませんが、逆に開発の容易さはぐっと上がるでしょう。また、XBOX360 だけでなく、Windows でも動作するというのは大きな魅力です。それに、この開発環境で Microsoft がターゲットにしているのは、一般的にカジュアルゲームと呼ばれるような「手軽に遊べるゲーム」であるとおもわれるため、その目的にもとても、マッチした選択肢だと思われます。

さらに、興味深いのは、この環境で作成したゲームを個人や企業が気軽に販売できるようにもすると言っている点です。これは、現在の次世代機でのゲーム開発は非常にコストがかかってしまうため、大作指向、シリーズ指向に陥りがちで、昔のようなアイデア勝負的なタイトルが出にくいという現状を、打破する一つの回答だとも思えます。非常に低コストで作成し、それを安価に販売できる可能性が広がるからです。インターネットがここまで普及し、音楽や映像がダウンロードで買えるようになっている現代を鑑みるならば、むしろ、遅すぎたと思えるくらいですよね。

それはさておき、自分にとって、なんといっても嬉しいのは、ゲーム機の開発環境が広く公開されたということです。これまでも似たような試みはありましたが、それらは非常にクローズドなモノでした。それとくらべると雲泥の差がある気がします。

ゲームプログラミングって、これからプログラムを覚えようかなって人たちの興味を引きやすい分野だと思うのです。だから、かつて、マイコンが登場した時の、BASIC がそうだった様に、このような試みによって、現代のプログラムのすそのが広がると素晴らしいなと思います。そして、新しい才能や感性をもっている人たちがゲーム制作に参加して、びっくりするようなアイデアのゲームが誕生してくれるともっとイイなとおもいます。当時、 BASIC の主流だった Microsoft BASIC を作っていた Microsoft がこういう流れを作り出そうとしているのも、偶然ではないんでしょう。

話は変わりますが、PS3 に採用される Blu-ray Disc の規格では、Blu-ray Java が搭載されるコトになっているハズなんですヨ。ということは、 Java の VM が載るんだし PS3 は似たようなことを Java でやってくれると、とても嬉しいんですけど。

というか、案外、あり得る話だと思ったりして。

プログラムを作ろう!パソコン教科書 Microsoft Visual C# 2005 Express Edition入門 Book プログラムを作ろう!パソコン教科書 Microsoft Visual C# 2005 Express Edition入門

著者:池谷 京子
販売元:日経BPソフトプレス
Amazon.co.jpで詳細を確認する

| | トラックバック (1)

2006年7月15日 (土)

インタビュー「後半」公開中〜

P1010496 ココログのインタビューの「後半」が公開されたようです。

今回もふくめ、インタビューって、記事になって掲載されたものをみてから「しまったー!」みたいに思うコトが、よくあるんです。でも、雑誌の場合だと、印刷されて、売られてしまっているものなので、どうしようもなかったんですよね。

しかし、今回みたいに自分のブログと密接にリンクしているようなインタビューならば、そのフォローを自分のブログで書くということが可能なわけで、これはこれで素晴らしいなと、思うわけです。

で、今回の記事中では、どこが気になったのかといいますと、私が好きなブログを話しているトコロ。その中で、古川さん(旧日本MS会長)のブ ログや、竹熊さんのブログはちゃんと、作者の名前を指定して記載されているのに、中島聡さんのブログが、「ある人のブログ」とかいう非常に中途半端な表現になっている!というトコロなんですよ。

中島 聡さんが書かれている Life is Beautiful というブログは、私がスゴク影響を受けているブログの一つで、インタビュー中も話しているように、このブログの影響で、ブログを開始したようなものなんです。

だから、ちゃんと Life is Beautiful の話をしたかったのですケド、思い出してみると、たしかにインタビューで、私は「ある人のブログで・・・」みたいに、話をした記憶があります。かたや、古川会長や、竹熊先生のブログは、 ちゃんと作者の名前をだした覚えがあるんですよね。つまり、インタビューをされた方は、とても忠実に私がしゃべった内容を再現されているわけで、問題はそのように話 をした私にあるわけです・・・orz

しかし、リンクはちゃんと張ってありますし、まぁ、いいような気もしてきました。

でも、せっかくなので、Life is Beautiful の該当記事のリンクを紹介しておこうと思います。とてもいいエントリーだと思うので、興味がある方は、ぜひ読んでみてください。

ZDNet: Ray Ozzieが「マイクロソフトのWeb2.0宣言」を書いた理由

| | トラックバック (0)

2006年7月13日 (木)

インタビュー掲載中〜

P1010636 7月に入ってから、仕事がなにかと忙しかったこともあり、ブログ更新をしばらくお休みしている間に、先日のココログさんからのインタビューが掲載されていましたヨ

しかも、いろいろと、しゃべりまくったおかげで前編・後編の2回にわけられての掲載となっています。

ココセレブ Special インタビュー 前編

あらためて読んでみると、ちょっとはずかしい気もしますが、このインタビューを読んで1人でもウチのゲームに興味をもってもらえて、ゲームの売り上げが伸びれば!とかおもうわけで、どうぞ、みなさんよろしくおねがいします。

ところで、今回、久しぶりにゲーム誌以外のインタビューを受けたのですけれど、やはりいろんな人が読んでいるんだなというのを実感するコトがあったんですね。

なにが起こったかというと、今回の記事をよんでいた大学1年生の時以来、連絡を取っていなかった友人からメールが来たんですよ。「インタビューみましたー」っていう感じの。いや、もう、びっくり!

久しぶりに、Web ってすごいなーと、ちょっとおもいました。

―どこでもいっしょ―レッツ学校 Video Games ―どこでもいっしょ―レッツ学校

販売元:ソニー・コンピュータエンタテインメント
発売日:2006/06/15
Amazon.co.jpで詳細を確認する

| | トラックバック (1)

2006年6月28日 (水)

CELL プログラミング講座

P1010435 shi3z さんのブログで、月刊アスキー7月号にCELLのプログラミング講座が掲載されていることを知って、早速、買ってきましたヨ

うちの会社、月刊アスキーは年間定期購読しているはずだったのですが、定期購読をうけつける会社がかわってから、更新のお知らせがとどいておらず、更新が止まっていたようなんです。これって、仮に、すべての定期購読の更新案内がなされていなかったりすると、かなりの顧客損失なのでは??

ま、それはさておき、今回はCELLのプログラミング講座だけじゃなくて、次世代機の特集も同時に掲載されていて、なかなかよくまとまっていました。

ためになるなぁ...というか、大変そう。

しばらくの間、PSPに専念してたんで、次世代機関係は避けて通るというか、あえて深く調べないようにしていたんですが、これからはもうすこしちゃんと勉強しないとですね。ふむ。

 

GPU Gems 2 日本語版 ―ハイパフォーマンス グラフィックスとGPGPUのためのプログラミング テクニック― GPU Gems 2 日本語版 ―ハイパフォーマンス グラフィックスとGPGPUのためのプログラミング テクニック―

著者:中本 浩
販売元:ボーンデジタル
Amazon.co.jpで詳細を確認する

| | トラックバック (0)

2006年4月 7日 (金)

Cマガジン休刊

P1010192 Cマガジン、通称「Cマガ」が4月号で休刊になりました。

私がCマガを読み始めたのは、大学1年生になった1990年からでした。当時は、Cマガも創刊したばっかりでしたし、C言語自体もとてもホットな言語だったんですよね。

それまでゲーム開発言語といえばアセンブラだった時代から、徐々にC言語への移行の兆しが見え始めた時期だったように記憶しています。PC-9801用のロードランナーがC言語で開発されたという記事を見て、「ついにそんな時代が!」と思ったコトを憶えています。とはいっても、これは一部のゲームの話で、グラフィックをバリバリ使うゲームや、アーケードのゲームはまだまだ、アセンブラ中心でした。しかも、当時の主力コンシューマ機は「ファミコン」でしたから、C言語なんて、使えるはずもなく、コンシューマの開発環境がC言語に移行するのは、2世代も後の PlayStation の登場を待たなくてはいけません。

話がそれましたが、私のCマガジンの想いでは、毎号、付属してくる5インチディスク(!)をずっとためていたり、サンプルソースを参考に、ゲームを作ったりしていたのも今では、懐かしい思い出ですね。専門誌であったOh!X 以外で、X68000 のプログラムコーナーがあったのもCマガジンくらいでしょう。

現在では、いろんなプログラム誌がありますが、Cマガはゲームプログラムや、プログラミング入門者向きの特集や記事が多かったので、そのような人たちに向けての、登竜門となれるような雑誌が無くなってしまうのは、とても残念なことだと思います。

ただ、私自身もそうなのですが、今は雑誌の記事で勉強すると言うより、インターネットのサイトの記事や資料を参考に勉強することの方が遙かに増えてきています。そう考えると、Cマガの休刊は、時代の流れなのかもしれません。

そうえいば、私がWeb の基礎概念ともいうべき、テッド・ネルソンザナドゥ・プロジェクト に関しての記事を初めて読んで、「こんな壮大なコトを考える人がいるか!」と驚嘆したのも、Cマガの記事だったのを憶えています。いまや、Web は成功が想像できなかった時代から、大きく飛躍しています。遙かに発展し、各種メディアを脅かすほどに、巨大に強力になっているんですよね。時代は流れるモノです。

若い人たちが、プログラムに興味をもった時に、頼りになったり、目標となったりするような雑誌が無くなってしまうことが、とても心配だなと思っていたのですが、shi3z さんのブログを読んだら、不安なキモチがすこし軽くなりました。

若い人たちは、彼らなりの道を歩んでいるんですなぁ。

| | トラックバック (2)

2006年2月18日 (土)

小学生漢字のチェックプログラム

例によって今日も休日出勤中なのですが、すこし時間ができたので作りかけていたプログラムを仕上げました。

プログラムといっても、Ruby スクリプトで、内容もゲームシナリオ中の漢字を調べるだけのシンプルなツールです。具体的には、漢字が「小学校で習う漢字かどうか?」を判定して、該当しない場合には、その漢字がみつかったファイル名と、行数、該当漢字を表示するという、本当にシンプルなモノなんです。

しかし、このようなシンプルな内容のプログラムこそ、スクリプト言語の出番なんですよね。気軽にプログラムが書けるし、ライブラリも充実しているので、短時間で成果を上げることができます。

実は、昨日の段階で簡単に動作するトコロまでは作っていたので、今日はより便利にするための改良を加えていきました。ナニをやったかというと、「指定されたフォルダ以下の全ファイル&フォルダを自動的に調べる」という機能追加です。

ローカルファイルの検索などではおなじみの機能ですが、これまで Ruby でこの機能を書いた事がなくって、以前から、一度、やってみたいと思っていたんですね。で、せっかく書くからには、より Ruby らしい書き方で、可能な限りシンプルに実現したいと思って、イロイロと調べたんですよ。そしたら、実は、これが恐ろしく簡単だということが判明。Find というクラスを使えば、ほとんど全部やってくれて、それでおしまいという、コーディングより、その調査のほうが時間がかかるくらいのシロモノだったんです。ちょっと拍子抜けしてしまいました。

しかも、改良されたプログラムを動かしてみたところ、効果は絶大で、自動で次々とファイルを検索し、チェックして警告をはき出してくれる姿(?)は感動的です。Find クラス、最高でした!いままで使っていなかったのが、あまりにもったいなかったくらいです。

その後、いくつかのデバッグをおこなって、他人も使えるようにドキュメントを書いて、Subversion へ commit して、終了~

こんなシンプルなプログラムでも、やっぱり、プログラムって楽しいですね。

ところで、普段は Ruby の文献はネットで検索して探すんですケド、今回は会社にあった本も参考にしてみました。ネットの情報と違って、書籍は検索性こそ劣るものの、内容のまとまり具合に関しては段違いだって事を再認識しました。質の良い情報がちゃんとまとまっているというのはやはり、便利です。ちなみに今回、参考にした本は Rubyレシピブック 268の技 という本で、Ruby でたまにプログラムをする必要がある人などには、なかなかオススメでだとおもいます。

Rubyレシピブック 268の技 Book Rubyレシピブック 268の技

著者:青木 峰郎,後藤 裕蔵,高橋 征義,まつもと ゆきひろ
販売元:ソフトバンククリエイティブ
Amazon.co.jpで詳細を確認する

| | トラックバック (0)

2006年2月 7日 (火)

ゲームとトイ

Dsc001212_3

Web2.0を活用する10の方法、その3 を読んでゲームについて考えたんで、書いておこうと思います。

ゲームの企画をイロイロと考えていると良く出てくる話なんですが、それは「ゲームなのか」「トイ(おもちゃ)なのか」という話があるんですね。この文脈で語られるゲームというのは、「ルールがあり、そのルールの上でプレイヤーが遊ぶモノ」という、テレビゲームだけでなくて、たとえばスポーツの試合(ゲーム)というくらいまで拡張しても通用するくらいのモノをさします。

一方、「トイ」とは何かというと、それ自体にルールがないモノ。たとえば、「積み木」や「ボール」といったモノ。遊ぶ人間(プレイヤー)が、それを使ってどう楽しむかを考える必要がある物という意味でして、ちょっとカッコイイ言い方をするなら、遊ぶ側のクリエイティビティが必要とされるモノとか、そう言うことです。

さらに具体的にいうならば、野球はゲームで、バットやボールはトイです。

ゲームの企画会議なんかでは、この2つは明確に区別されて、「それは、ゲームじゃなくて、トイだよね」なんてコメントもよく出てきます。つまり、ゲームとして成り立たせるには、ルールが足りていないと言うことや、プレイヤーに投げっぱなしにしてしまっているということを言いたいわけです。なので、企画会議でのこのコメントは、ほめていない時がほとんどだったりします。

しかし、ルールがガチガチに決まっていて自由度の低いゲームはあまり面白くありませんから(もちろん例外もあります)、ある程度の自由度は当然必要になります。というより、多くのゲームの企画者はより自由度の高いゲームを作りたがる事がおおく、そうして、ゲーム制作の過程では、ゲームがゲームであるために、ルールを考案しプレイヤーに課していくという事と、逆に、可能な限りプレイヤーには自由を与えたいという矛盾した思いが交錯することになるわけなんです。なにを拘束して、なにを自由にするかという事はホント、最後まで頭の痛い問題でなんですよね。まぁ、それぞれ矛盾しているわけなんで、悩まずにすむわけないんですケド。

いろんなモノを自由にできない理由には、たとえばゲームの内容的な面からだけではなく、自由度を上げると、ケアしなくてはいけない部分も非常に増えてしまってやりたくてもできないという、制作者の都合的な部分もアリはするのですが、それ以外にもさっきのコメントにもあるように、あまりにも自由に出来るゲームだとプレイヤーがナニをやったらいいのか分からなくて、不親切なゲームになってしまうから、という側面もあるんです。というか、この理由が大きいんですよね。最近のコンシューマのゲームでは、もう、イヤになるくらい、プレイヤーに対してのケアがありますし、プレイヤーができるだけ迷わないように、レールを敷いてあげて、ゲームを進行できる様に作成する事が通例になってしまっています。

もちろん、そのようなゲームにも良いトコロもあるのですが、逆にゲーム制作者としては、出来るだけ自由度の高い、プレイヤーの自由に任せられるゲームを作りたいと思っている人は多いと思うんです。そして、ウチの会社もそのようなゲームを良しとするような雰囲気が強かったりします。

一方で、そういうゲームって、やっぱし「不親切」とか「ナニやったらいいかわからない」とか酷評されることも少なくなかったんですよね。なので、不本意ながらも、プレイヤーの自由度を制限するようなゲームデザインだったり、ストーリーだったりにしてしまうと言うことも、残念ながらよく行われていると思います。

すこし古い話ですが、「ドラクエ2」で主人公が船を手に入れた後、プレイヤーは自由にいろんな場所へ移動できる様になるんですが、これは制作者の堀井祐二氏が「これまで筋書き通りの進行だったから、すこしは自由に行動できるようにしてやろう」というキモチからだったらしいんですよ。しかし、プレイヤーの感想は逆で、「船を手に入れてから、どこに行ったらいいかわからなくなった」という、不満が多かったという話があります。そのせいかどうかはわかりませんが、その後のドラクエの進化の方向として、自由度を高める方向とは別の方向に進化しているのは事実だとおもいます。もし、この船で自由に動けるようになったことが、プレイヤーに非常に好評だったとしたら、その後のドラクエはいまのドラクエとまったく違った進化をしたかもしれません。そして、日本のゲームに多大な影響を及ぼしているドラクエがそのように変わったとすると、現在の日本のゲームも大きく違っているかもしれないといえると思います。

と、この例はすこし極端かもしれませんケド、本当なら、もっとプレイヤーの自由度が高い、プレイヤーが自由に遊び方を考え、変えていける、「トイ」の様なゲームを作りたいというのは、ゲーム制作者の夢でもあると思うんですよ。

前置きが長くなってしまいましたが、Web サービスが  2.0 の時代になって、このような流れ(ウェブ・サービスを作るときは、あまりきっちりと型にはめずに、少しルーズに作っておいた方が、ユーザーがクリエイティビティを発揮できる)になってきているとすると、ゲームももっとそんなデザインを積極的に考えていって、取り組むべき時代になってきているのではないかと思ってしまいます。

うまくいえませんが、自分としてはなんというか、ゲームというモノが、もっと積極的にその形を変えていけるんじゃないかなとか、思ってしまったんですよね。なんだか、抽象的で申し訳ありませんケド。

| | トラックバック (1)

2006年1月24日 (火)

歌の収録

今日は、開発しているゲームの歌の収録を見学に都内某所へ出かけてきました。

途中、スゴイ渋滞だったので、到着は本番ギリギリになってしまったのですが、無事、収録の様子を見学できました。発表前のタイトルなので、詳しく書けないのが残念ですが、みなさんの協力のおかげで、スゴク良い歌になったと思います。

ほんとうに、ありがとうございました~!
今から、ゲームに組み込むのが楽しみです。

| | トラックバック (0)

2006年1月15日 (日)

Subversion 補足

Subversion の導入に当たり、ウチの会社では、サーバを Windowsマシンにしたいという事情があったんですが、Subversionの専用サーバ&Windows という組み合わせは、やはりマイノリティーだったらしく、ネットにも情報が少なかったのですね。そんな中で下記のサイトがとても参考になり、導入が一気に進みました。

今後、似たような条件で導入を考える方に参考になればと思い、紹介しておきます。その名もズバリ、

Windowsでsvnserveを動かす方法

です。さらに、ここで紹介されている SVNService というフリーウェアなしには、Windowsでの専用サーバ導入は面倒なモノになっていたと思います。ホント、大感謝です。

そういえば、Subversion の最近メジャーバージョンが、1.3.0 にあがったようですね。タイミングをみて、会社のサーバも入れ替えないと。

| | トラックバック (0)

2006年1月14日 (土)

Subversion への乗り換え

最近は、多くの会社でソースコードバージョン管理システムが導入されている事と思います。で、そのバージョン管理システムですが、ウチの会社では2年ほど前から、 Subversion を導入して使っています。ちなみに、その前は CVS を利用していたので、CVS から Subversion へ乗り換えたことになります。

なぜ、バージョン管理システムの乗り換えなんて言うめんどくさいことを行ったかというと、一番大きい理由は「日本語の問題」でした。CVS は、マルチバイト文字の対応状況に問題があって、日本語が入っているソースコードを扱うためには、日本語が通るようにパッチをあてる必要があったんですね。こういう事(日本語パッチを当てる事)はよくある話で、まぁ、それでちゃんと使えていたのですが、さらにそこで、複数の日本語文字コード(SJIS と EUC 等)をいっしょに扱おうとすると、別の問題がでてきたりして、ちょっと限界が見えてきていたんです。

さらに、使用していた Windows用のクライアントソフトが使いにくかったというのも、大きな問題でした。

そこで、当時、すでに話題になっていた Subversion を調査したところ、これらの問題をまとめて解決してくれると言うことがわかったんですね。具体的には、

  • 文字コードは内部で UTF-8 で処理され、パッチも必要なく、日本語の文字コードによる問題が起こりにくい
  • TortoiseSVN という優れた GUI クライアントがあり、使用感も申し分ない

というカンジです。

ここまでわかれば、次はサーバの調査&導入でした。もちろん、個人で利用するだけなら、サーバなんて必要ないんですが、10人以上の人間が同時に使用することが想定されるのでサーバの導入は必須だったんです。

Subversion のサーバに関する当初の知識では、運用には WebDAVが必要で、Apache との連動が必須だと聞いていたので、面倒だなと思っていたのですが、その後の調査で「専用サーバ」というモノがあることがわかり、これを使用することで Subversion 単体でサーバが簡単に構築できてしまいました。

しかも、やりたいと思っていた、リポジトリごとのユーザ認証設定も簡単に実現できて、まさにバッチリだったんですね。この「専用サーバ」に関しては、ネットでも情報が少ない様なので、WebDAV を使用する方法に比べるとマイノリティなのかもしれません。それでも、問題なく使用できているので OKでしょう。

このように、Subversion は、後発と言うこともあり CVS と比べて利点がほとんどですので、もし乗り換えをためらっていたりとか、まだバージョン管理システム自体、導入していない様なケースには、超オススメです!

 

「Subversion」解説書 <バージョン管理システム> Linux world favorite series Book 「Subversion」解説書 <バージョン管理システム> Linux world favorite series

著者:佐藤 竜一,Subversion開発プロジェクト
販売元:IDGジャパン
Amazon.co.jpで詳細を確認する

Subversion実践入門―達人プログラマに学ぶバージョン管理 Book Subversion実践入門―達人プログラマに学ぶバージョン管理

著者:Mike Mason
販売元:オーム社
Amazon.co.jpで詳細を確認する

| | トラックバック (0)

2006年1月11日 (水)

COM の利点

前回のブログを読み返したら、COM の欠点ばかり書いている気がしたので、利点もあるヨ!というフォローを少し。

確かに、前回あげたように欠点というか、xls ファイルの読み書きという点に絞れば、弱点が多い COM なんだけれど、下記のような利点もあるんですよ ね。

  • ファイルフォーマットが変更されてもOK
    これは、ファイルに直接アクセスするわけではなくて、そのファイルを生成するアプリに対して、操作をおこない、データを取得するので当然といえば当然。たとえば、ある日、突然 xls ファイルのフォーマットが変更されても、エクセルがそのファイルを読み書きできる限り、そのファイルに対して、アクセス出来るというわけ。
  • xls や doc 以外もコントロール可能
    そもそも、ファイルを読み書きするモノではなく、アプリを外部からコントロールするためのモノだから。たとえば、IE を呼び出して、特定のサイトにアクセスさせたり、Illustrator を使って、絵を描いたりするなんてことも(どこまで実用性があるかはさておき)、可能だったり。ただ、そのためには、アプリを操作するためのメソッドを調査しないといけないというのが、ちょっと面倒なんですけどね。
  • いろんな言語から使える
    C++ はモチロンのこと、Perl, Python、Ruby など、いろんな言語でサポートされている(もちろん、Windows 環境のみですが...)

と、まぁ、少なくともこれくらいはパッと考えつく利点ではあったりします。参考マデ。

| | トラックバック (1)

Jakarta POI !?

shi3z さんのトラックバック をもらって知ったのですが、Java には xls や doc ファイルを直接(COM にたよらずに)操作できるフリーのライブラリがあるとのこと。その名も Jakarta POI

うわ、これは知りませんでした。確かに OpenOffice なんてモノが作られてしまう世の中なので、こういうライブラリがあっても不思議はないのだけれど、スゴイですね。ちなみに、COM を利用しない POI には、下記のような利点が考えられます。

  • エクセルがインストールされていなくても使える
  • 速度が速い

これは、逆にすると COM を利用する場合の弱点になるわけで、

  • エクセルがインストールされていないと使えない
    COM は単にアプリ(この場合エクセル)を呼び出す手続なのでアプリ本体が必要
  • 速度が遅い
    COM のオーバーヘッドが大きいのか、使ってみると結構、遅い

と言うカンジですね。これらの弱点は、まぁ、自分のPCのみで実行するツールのような場合にはたいして問題ナイのですが、不特定多数を相手にするようなサーバでの運用を想定すると、これらの弱点は致命的であるとおもいます。

さらに、Windows 以外(たとえば Linux 等)では、エクセルをインストールして、COM で呼び出すなんて事がそもそも出来ないですし、そういう用途では、もってこいのライブラリなんでしょうな。

機会があれば、使ってみたいライブラリですね~

ちなみに今回の話でも思ったのですが、コンピュータの分野だと、知っているか、いないかで、大きく仕事の効率が変わったり、品質が上がったりすることが多々あるんですよね。ツールや言語の選択っていうだけじゃなくて、たとえばそれは「いいアルゴリズム」だったり、「よりよい設計」だったりとか。ちょっと抽象的ですけど。慣れているからという事で、自分が使ってきた手段を盲目的に選択するんじゃなくて、いつも、ソレが最適なのかどうかを考えながら問題解決にあたるということが大切なのだと再認識させられました。

その為には、選択肢を広げるための、多くの知識が必要になるわけで、やはり日々勉強なんですよね。そして現代は、ブログ等も発達してるし、いろんな情報が検索できて、勉強しやすい楽しい時代なんだと思っています。

| | トラックバック (0)

2006年1月 9日 (月)

Ruby とエクセル

前回のブログ でウチの会社では、ゲームのデータ作成用のツールとして、Ruby をよく使用しているといった旨の事を書きました。せっかくだからどんなカンジに使っているのか紹介しておこうかなと思います。

と、いっても、たいして高度なことをやっているわけではなくて、基本的にはゲーム用のデータテーブルを作成する際に使用しているというのが基本的な用途なのです。具体的には エクセルの xls ファイルから、欲しい形式のデータ(テキストもしくはバイナリ)に変換するためのツールなんですね。

で、きょうび、エクセルはほとんどのゲーム会社でデータ管理&作成に使用していると思うんですけれど、ポイントはその後なんです。ちなみに Ruby を導入する前のウチの会社だと下記のようなパスで変換していました。

  1. xls ファイルを作成
  2. エクセルで、xls ファイルを csv で保存
  3. C/C++ 等のプログラムで、csv ファイルを任意の形式に変換

と、こんなカンジ。これはわりと伝統的な手法だと思います。

これだと、なにがイヤなのかというと、コンバートの度に xls -> csv の出力を行わなくてはいけないっていう事や、xls の方を更新しても、うっかり csv に出力するのをわすれて、古いデータを使用し続けてしまったりという、人為的な手間&ミスがスゴク起こりやすかったんですよね。

おまけに、csv ファイルって複数のシートを使用している xls ファイルには対応していないので、便利な複数シートの機能が使えなかったりとか、余計な制約も生まれてしまっていたんですよね。まぁ、不便この上なかったんです。

で、これが Ruby の導入でウチの会社ではどう変わったのかというと、

  1. xls ファイルを作成
  2. Ruby スクリプトで、xls ファイルを直接読む
  3. Ruby スクリプトで、そのまま、任意のファイル形式に変換&出力

という風にかわりました。xls ファイルを直接、読んでいるので、もちろん複数のシートを使っていてもOK だし、テキストや数値以外にも、セルの色の情報とかもその気になれば、取得可能になりました。制限がへり、ぐっと xls ファイルの自由度があがった訳です。しかも、当たり前ですが C/C++ 等にくらべて、Ruby 等のスクリプト言語は、遙かに配列やテキスト処理が簡単で、ツール作成自体の効率も上がり、まさに一石二鳥だったわけなんですね。

で、どうやって Ruby で直接、xls ファイルを読んでいるのかというと、Windows の COM という仕組みを使う事で実現しています。詳しくは、