やる夫がデザインパターンをやるようです 第1回

やる夫がデザインパターンをやるようです 第1回をはてなブックマークに追加 やる夫がデザインパターンをやるようです 第1回をdel.icio.usに追加 Yahoo!ブックマークに登録 やる夫がデザインパターンをやるようです 第1回をGoogle Bookmarksに追加

第2回»

やる夫は、ニコニコゲーム製作会社に勤めています。ニコニコゲームはニンテンドゥープラットフォームで製作された「スーパーヒーロー大戦」を昨年リリースし空前の大ヒットを飛ばしました。もちろん第2弾を発売することとなり、やる夫はその第2弾のスパヒロ大戦2.0のプログラマとして携わっています。

スパヒロ大戦2.0のアーキテクトは、オブジェクト指向技術を使用し、登場する全てのヒーローの型が継承するHeroスーパークラスを作成しました。

   / ̄ ̄\   <アーキテクト>
 /   _ノ  \
 |    ( ●)(●)
. |     (__人__) Heroスーパークラス作ったから
  |     ` ⌒´ノ  てめぇが作るヒーローはこいつを継承して使えや
.  |         }
.  ヽ        }
   ヽ     ノ
   /    く
   |     \
    |    |ヽ、二⌒)
         |
     \  __  /
     _ (m) _
        |ミ|
      /  `´  \
       ____
     /⌒  ⌒\    <やる夫>
   /( ●)  (●)\   わかったおwww余裕だおww
  /::::::⌒(__人__)⌒::::: \
  |     |r┬-|     |
  \      `ー'´     /
class Hero {
punch()
kick()
display()
}
//> add yaruo hero class 20080226
class ガンダム extends Hero {
display(){
// ガンダムの表示
}
}
class アトム extends Hero {
display(){
// アトムの表示
}
}
class ウルトラマン extends Hero {
display(){
// ウルトラマンの表示
}
}
・・・・ほかにもたくさん
//< add yaruo 20080226
今回のスパヒロ大戦2.0に登場するヒーローは30人を超えます。やる夫は徹夜に徹夜を重ねやっとのことで全ヒーロー分のベータ版の実装を終えました。
               _______
    :/ ̄| :  :  ./ /  #  ;,;  ヽ
  :. | ::|    /⌒  ;;#  ,;.;::⌒ : ::::\ :
    | ::|:  / -==、   '  ( ●) ..:::::|
  ,―    \   | ::::::⌒(__人__)⌒  :::::.::::| : で、できたお。。。
 | ___)  ::|: ! #;;:..  l/ニニ|    .::::::/
 | ___)  ::|  ヽ.;;;//;;.;`ー‐'ォ  ..;;#:::/
 | ___)  ::|   .>;;;;::..    ..;,.;-\
 ヽ__)_/ :  /            \
しかしながら、ゲーム企画部は「今回のヒーローは空を飛ばすことで競合他社に勝利する」と決定し仕様の追加実装が、開発部に降りてきました。
ふむ。スーパークラスにfly()メソッドを追加すりゃ
全ヒーローが飛べるようになる。
     ____
   /      \
  /  ─    ─\
/    (●)  (●) \
|       (__人__)    |
/     ∩ノ ⊃  /
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
こんなんよゆうだおwwwww
          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
class Hero {
punch()
kick()
display()
// add yaruo 20080226
fly(){ /*ヒーローを飛ばすいろんな処理*/ }
}
やる夫はスーパークラスにfly()メソッドを追加し、これを継承するサブクラスは全て飛べるように対応しました。しかし。。。

ニンテンドゥー営業部も立ち会うキャラクターデモンストレーション当日、開発部に電話がかかってきます。
「おう。アーキテクトだ。てめぇの実装したヒーローをニンテンドゥーさんに見せたとこなんだが、ウーロン茶を液晶モニターに吹き付けられた。わかるか?いったいなんだってサザエさんが空を飛んでんだ?サザエさんは空をとばねぇ。そんくらいこのとはわかるな?てめぇのおかげで、次にお見せしようとしているヒーロー"ドカベン"をwktkして待っていらっしゃる。」

  あんな要求だったから
  挙動なんて大して確認してないお。。。。
       ______
      /  \    /\
    /  し (>)  (<)\
    | ∪    (__人__)  J | ________
    \  u   `⌒´   / | |          |
    ノ           \ | |          |
         ____
      /  \    ─\   チラッ
    /  し (>)  (●)\
    | ∪    (__人__)  J | ________
    \  u   `⌒´   / | |          |
    ノ           \ | |          |
         ____
      /::::::─三三─\
    /:::::::: ( ○)三(○)\
    |::::::::::::::::::::(__人__)::::  | ________
     \:::::::::   |r┬-|  / | |          |
    ノ::::::::::::  `ー'´   \ | |          |
やる夫は全てのサブクラスが飛ぶべきではないことに気がつきませんでした。ではどのような設計を行えばよかったのでしょう。
というわけで、第1回はここでおわります。
※ワタシはゲーム開発の進め方・開発ワークフローは全く知りませんのでご了承ください。馬鹿にしているわけじゃありません

第2回»

コメント / トラックバック5件

  1. Artmic8neo より:

    ん〜?
    こ・これは・・。
    またミョーなこと始めましたね(笑)。
    (^▽^)

  2. 藤助 より:

    懐かしいソフトですね

  3. ひげもじゃ より:

    ネオさん
    こんにちは!ミョーなことをはじめてしまいました。あはは。ちょと技術的なことですが、やる夫で楽しんでください。
    藤助さん
    そうなんですよ。スーパーロボット大戦が好きなんですけど、これはスーパーヒーロー大戦です。昔のゲーム結構好きなんです。ところで明日のモーニングは僕の小規模な生活が再開するそうですよ!

  4. 藤助 より:

    僕の小規模な生活読みましたよ!
    脇の弘兼憲史先生の一言はわざわざ載せる必要があったのでしょうか・・(´д`;)

  5. ひげもじゃ より:

    藤助さん
    あー!僕もそれ思いました!息子が弘兼憲史先生のマンガを見てくれないから僻んでいるのかななんて勝手に想像しちゃいましたよ。あははー

コメントをどうぞ