月別アーカイブ: 2013年8月

論理回路と関数型言語

ものすごく唐突に関数型言語と論理回路は似ているなー、と思った。

Pythonに関数型プログラミングの構文として用意してあるイテレータやジェネレータみたいな”状態を持つ関数”っていうのはカウンタに代表される組み合わせ回路と振る舞いが似ている。

論理回路のプロトタイプ作成とかに関数型言語使うと便利そうな。

何かそれぞれの起源に共通の祖先があったりするのかしら?

FPGA学習始動

FPGA学習ボードDE1で何かしたい!とブログで言ったきり半年くらい放置していたんだけど、そろそろ始動しようかなと重い腰を上げ始めてます。

やりたいことは音声周りの信号処理をFPGAで実装してみる、というもの。
DE1にはオーディオコーデックとしてWM8731というチップが実装されていて、これをI2CでFPGAから制御できるようになってる。一応コーデックを使ったサンプルプロジェクトがあったり、最近買った書籍にコーデックアクセス用のNiosIIペリフェラルのソースコードが載ってたりするのでそれを参考にしてみる。

これをやってみることで、ペリフェラル(I2Cモジュール)の実装、NiosIIの構築、AvalonMM対応デバイスの作成あたりを習得しつつ、信号処理の勉強の下地を作れるかな、と。

とりあえずFPGAに関しては本読んでばっかりで実践が全く足りていない状況なのでHDL書きながら色々試してみたいデス。

宮本茂のキーノート

GDC(Game Developers Conference)というゲーム開発者のためのカンファレンスがある。
世界中のゲーム開発者が集ってプログラミング、ゲームデザインなどなどゲームに関わる様々なテーマについて話し合ったり、発表し合う会合。
1999年に開催されたGDCではマリオシリーズやゼルダの伝説を産み出した宮本茂さんがゲームデザインについて発表していたらしく、その動画が公開されていたので観てみた。

で、話のテーマの1つになってたのがゲームの開発規模の見積もりについて。

この発表当時、開発中のゲームが開発中止になることが多かったらしい。
その原因としてゲームデザイナが技術を知らないために作業規模の見積もりを誤ってしまう、ということを宮本さんは挙げていた。
特にゲームにとって当たり前の部分を作るための時間の見積もりを誤ることが多いと言っている。
大体ゲームのコア部分のシーケンスは全体の1/4くらい(1999年当時)。残りの3/4のコア部分以外、ゲームにとって動いて当たり前、と思われるような部分(RPGでいう主人公の名前を入力する処理、とか)を作る作業を宮本さんは”労働”と呼んでいる。”労働”は出来るだけ減らしたい。なぜなら”労働”をこなすには物量が必要だから。

で、これに対して宮本さんは誰も作ったことの無い分野のゲームを作ると”労働”が少なくて済む、と言っていて、それがすごく面白いなぁと。

この発言に関して特にどういう意味合いの発言なのか補足が無かったんだけど、自分が思うにこれは実装する処理に対して比較対象があるかどうか、なのかなと。
どこにでもあるものを比較しようとすると、”あのゲームにはあったけどこのゲームには無いのか”とかそういう価値基準になってしまって、どうしても物量勝負になりやすい。
そもそも面白さのコアが他のゲームと違う軸にあれば、比較されることは無いし、従来のゲームでは当たり前だった処理を省ける可能性がある。

これ以外にも含蓄のあるお話が多くて、もの作り全般に適用できそうな部分があってなかなか何度も見直したくなるキーノートでした。