CodeZine(コードジン)

特集ページ一覧

ライフスタイル/コーディングスタイル、四者四様の“流儀”からなにを学ぶか?
ITpro Challenge!レポート(後編)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/09/10 20:55

目次

表現手法としてのプログラム

 講演ではいくつかのプログラムが実演されたので、金子氏の談話とともに紹介しておきたい。

NekoFlight/Missile

 もとは1998年ころの作品で、3Dグラフィックカードを持ってないユーザーのためにDirect3DのAPIをまったく使わず、3Dレンダリング部分をすべてアセンブラで書いている。ちゃんとフライトシミュレーターとして計算して作っているが、次第にミサイルを見てるのが楽しくてミサイルが飛びまくるミサイルデモプログラムになってしまった(談)。

NekoFight

 2007年に公開した3D格闘ゲームのサンプル。蹴りが強すぎると空を飛ぶこともあるが「見てて面白いですよね」。AB法というアルゴリズムで、簡単なんだけど複雑なことをやっている(談)。

Winnyのリンクシミュレーター

 Winnyは「Proxyを内蔵したピュアP2P」というアイディアをモデル化したプログラムだが、P2Pネットワークは参加者のノードによる巨大な複雑系になるので、動かしてみないと挙動がわからない。といってもわからないままでは動かないに決まっているので、最低限はシミュレーションを組んだ。もっとも当時考えていたモデルは、実際にできあがったWinnyネットワークと比べるとすごい簡略化されていたので、現実には公開して1日目でいきなり破綻した。それをこまめに修正して、しかもユーザーがついて来ないとダメなのだが、比較的協力的なユーザーさんも揃っていたので、変えて、状況を見て、変えて、状況を見て、ダメだったら丸ごと捨ててみて、と繰り返しでできたのがWinnyのプログラム。当時使っていたシミュレーターは押収されて手元にないので、『Winnyの技術』を書くときに作り直したのがこのプログラム。しかし今わかっているWinnyネットワークのモデルで作ろうとすると、複雑すぎて途中でイヤになって止めてしまった(談)。


 最後に、金子さんは「プログラムそのものが私にとっては表現手法」と語り、トライ&エラーを繰り返すこの手法ではひとりで作ってても先に進まないことがあり、とりあえず公開してみれば、ユーザーのフィードバックをもとに変えていくことができるが、プログラムを公開する前にまず弁護士に相談しなければいけないという状況になったので困っている。と笑いを取りつつ、プログラムの開発や公開に制約がかからないよう「裁判はがんばろうと思ってます」という言葉で講演を締めくくった。

 【関連リンク】
ITPro Challenge 2008 で講演しました&資料公開: blog.bulknews.net
NekoFlight/Missile
NekoFight



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:イベントレポート

もっと読む

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5