kr_ryo 徒然日誌 <2005年1月9日分>

三國志製作記87〜明けてもオブジェクト指向(^^;〜

遅ればせながら皆様明けましておめでとうございます(^O^)いやあ、すっかり週間ブログ化してはや4年、このスタイルも板についてきたというかなんというか(^^;そろそろ三國志〜英雄の時代〜のページ更新にいきたいところが、なかなか、もう、プログラム製作記だけが回を進めてはや87回(@_@)この間いろんなことがありましたが、Delphi7導入などどんどん環境はよくなっているのに、大本はあんまり変わっていません(--;)

何が問題かといって、三國志、というものをゲーム化すること自体が実は一番難しいのかもしれません(x_x)単なる軍事物でないその魅力が三國志の人気の源泉であり、ゲーム化が一筋縄ではいけないところなのかもしれませんね。

そうそう、年末年始にかけてメール受信不可という問題が発生していました(TдT)が、とりあえず、やはりメールサーバメンテナンス後に設定が変更されていたことと、旧のこちらのメール受信設定とファイアウォールとが齟齬をきたしたことが原因らしい?ようで、何回かに何回か、受信に失敗することを除けば、とりあえず受信ができることがある、という状況です(~_~;)いやあ、普段はあんまり使っていないとはいえ、止まるとやっぱりきついものがありますね(x_x)

そんな中、三國志の分析よりも製作環境整備が進み、今のマイブーム(死語?(^^;;)はオブジェクト指向です。昨年末一気に導入に向けて勉強をはじめ、限界まで見えた気がしながら、やっぱりなにかひっかかるものがあって、本格的に勉強してみようと思いました(^O^)そこで本屋さんでいい本がないか、物色。

……いろいろありますねえ〜(@_@)それにしても、やっぱりどこかわかりにくいものなんでしょう、入門書から上級向けまでいろいろそろっていますが、入門書は、わからない!という人にいかにわかってもらうかが主眼とされています。そのうち、図解!とか、これならわかる!とかでオブジェクト指向が出るかもしれませんね(^^;

それにしても入門書は、例のオブジェクト指向三要素、カプセル化、継承、多態性についての解説ばかりです(~_~;)もうそれはわかったので、いかにしてそれを使うかの実例がほしい……かと思うと、上級はUMLデザインパターンの話に一気に飛んで行き、何の話か今度はちんぷんかんぷんになります。こりゃあ困った(x_x)

ここは、座ることのできる本屋さん、ジュンク堂でじっくり品定めすることにします(^-^)いやあいつきてもいいお店だ(^^;;さてさて、それらしき本をざっと品定めします。探すポイントは、オブジェクト指向の実践です。例の三要素だけでなく、オブジェクト指向を使った初心者向けかつ実践的使用を書いた本……

……オブ脳の作り方、にひかれつつ、選んだのはこれ。『憂鬱なプログラマのためのオブジェクト指向開発講座』(Tucker!著、翔泳社、3200円+税)最初、副題の「C++による実践的ソフトウェア構築入門」のC++にむむっ!(~_~;)ときました。けれども、確かに例がC++で書かれてはいるものの、オブジェクト指向の概念さえ理解すれば、C++だけでなく、もちろんどの言語にも利用できるものだ!という著者の表明が最初から現れています。初版が書かれたのは98年。まだJavaもできてまもなく、C++全盛の頃。オブジェクト指向そのものを扱ったこの本は全く古びていません。その意味で、最近のJavaプログラマ向け専用オブジェクト指向本よりもはるかに優れているかもしれません。

と、いうのも。オブジェクト指向伝説、として、巷に流布する「伝説」、誤った概念だと色々な内容を検証するコラムがあり、その中に「オブジェクト指向でもっとも重要な概念は、例の三要素である」ということが上げられているのです(@_@)曰く、確かに重要な概念であるが、もはや最重要ではない、オブジェクト指向で今や最重要なのは分析/設計工程であって、かつての手続指向型言語に対するオブジェクト指向「言語」にとって例の三要素が目新しくかつ必須条件だった、という風に書かれていました(^-^)これだけで類書とは違う、とピン!ときました(^O^)

そしてその言葉通り、この本は、オブジェクト指向での分析と設計工程について、初心者から実践者にまでステップアップさせてくれるのです(@_@)そう、分析です。プログラムの設計、というより、プログラムですることの分析です。オブジェクト指向では、プログラムを書くこともさることながら、どのようにしてプログラムを書いていくのか、クラスを書いていくのかが重要というこの本こそ、私の求めていたもののようです(^O^)さっそく買い求め、お勉強です……φ(.. )

いやあ、なるほど、大事なのは分析ですわ〜(^O^)と、ちなみに、この本にはクラス図を描けるCASEツール、Rational Roseのデモ版がついてきます。クラスを30個までしか書けないという制限がある以外は、製品版と同じもののようです。なるほど、これがプロも使っているRoseか……確かに無茶苦茶便利です(^O^)98年初版時と同じという、Windowsも95の時代のものながら、この洗練された書き心地は、以前試した最近のものよりはるかによい!(^O^)この本も含め、やはり最近のものだからいい、というより、いいものはいい、というのが正しいのでしょうね〜!こいつの最近の製品版はいったいいくらするんだろう?とネットを見ましたが見当たりません。プロが、高くて会社でも買ってもらえない、という話は見ましたが……(^^;;そんなRoseをデモ版で試すことができるこの本、オブジェクト指向学習者必携かもしれませんね(^O^)

と、すっかり宣伝モードに近くなってきていますが(^^;;オブジェクト指向と名のつくものは何冊も見比べても、ここまで実践的かつ原理原則に従い、なおかつほとんどプログラムの大量羅列でページが埋まることのない本もやはり珍しい(^-^)よくある入門書では、たいてい例の三要素の解説&実践と称したプログラムがだらだら載っているだけです。プログラム以前の分析やら設計やら、なぜそうなのか、なぜそれがよいか、ちゃんと書いている本は、いろいろ見比べてはじめてわかるというもの。いい本を買うとつい自慢したくなるという感じで(^^;;;この本を読まないと、例の三要素の辺りでうろうろするだけのところでした(^^;;

で、さてさて、この間、さっそく我が三國志もクラス図を書いてみました(^-^)書いてみるとやはりわかる、分析して何が足りないのか(~_~;)結局、武将たちが何をするか、ということなのです。

以前持っていたギモン、武将オブジェクトは1000人いれば1000人分用意しておかねばならないか、ということについて、この本で、確かに必要なら用意しておかねばならず、いらないなら消せばよい、というあっさりしたお答えで解決しました(^^;また、すべての命令とその実行結果を巨大武将オブジェクトがすべて用意しなきゃならないのか(そして同じ巨大武将内プログラムが1000人分メモリに用意しておくのか(T-T))、という疑問も、クラス(オブジェクト)を正しく設計していけば、命令も様々なクラス&オブジェクトに分散される、ということがわかりました(^^;

たとえば、武将が砦を建築するならば、砦オブジェクトに建築される、という命令を持たせておけば、武将オブジェクトが建築、という命令を持たなくてすむのです。当初は変な気がしましたが、オブジェクト指向とはそういう設計法だ、ということがこの本でよくわかりました(^^;なんでもこの本のおかげ状態ですが、事実ですので仕方ありません(^^;;いやあ、そういうことでよい、ということをちゃんと理解するまで例示したり説明したりしているのです、この本。

けれどももちろん、そうそう簡単には作れないのはいつものこと(^^;そうやって実体化する武将たちが何をするのか、といういつもの問題に戻ってまいりました(TдT)武将不足&武将余り問題です。大量の武将が必要なコマンド体系だと、初期の武将が少ない時代には何もできないことになり、武将が少ない時代を土台としたコマンド体系だと、魏のように武将がほとんど活躍しないことになる、と。

コサックスプレイ経験からいくと、最初は数人で建てれた新しい建物建築に対し、ゲームが進み最終レベルの建築物には、大量の人手で長期間かかる、というようなバランスを利用すればよい、ということが考えられます。建物建築もある我が三國志ですが、いかんせん、土建屋でもあるまいし、武将たちが常に土木工事に従事している、というプレイは…(^^;;……と、よくよく考えると、信長の野望のバージョンによっては、常に武将たちが土木工事していたような…(^^;;

さらに、たとえば蜀の人手不足は、内政官僚不足でもあります。これは、着実に命令を実行する事務官僚のことで、行政の発達とともに大量に必要になってきます。しかし、言われたことを適切に実行するだけの事務官僚と、三國志の武将は、なかなか相いれないものです(x_x)ところが諸葛亮の時代には、今度は個性的な武将が全然いなくなり、ほとんど区別のつかない単なる軍人ばかりになってしまいます。なかなか歴史もうまくいかないもので(^^;

さて、とすると、個性的な連中が活きるのはやっぱり戦場。土木工事ではありません。もしかすると本当の意味で武将を活躍させるには、登場武将数を減らして、無用なコマンドはできるだけ減らす方向の方が正しいのかもしれません。趙雲が常に建築ばかりさせられてるプレイなんてあまり見たくないですよね(^^;;初期でも後期でも、武将の数だけではあまり変わらないプレイが適切な感じはします。

じゃあ、初期の劉備も後期の曹操もまったく同じ感じになるのか?そりゃあやっぱりおかしいでしょう(x_x)劉備陣営が初期には戦場以外ぱっとせず(いや、戦場でも負けてばかり、という指摘も…(^^;;)後期には急激に強大化したのはやはり官僚群の整備であり、それは関羽や張飛や趙雲などの豪傑が3人もそろっていても絶対できないことでした。で、当然それをもたらしたのは諸葛亮、という筋書きになります(^^;

曹操も、極初期は董卓に負けるは呂布を追い出せないわ、なかなか安定しなかったものの、その後一気に強大化したのは、荀ケや程cなどの謀臣が同時に官僚群を整備したためです。これまた夏侯惇や典韋などの豪傑にはできない芸当です。ずいぶん以前に検討した、官僚制、これはやっぱり必須でしょう。官僚制といえば、九品官人法の陳羣。劉備にはついていかなかった徐州の英才です。劉備がまがりなりにも徐州を安定させ得たのは、陳登や彼のおかげも大きかったでしょう。逆に劉備についていった金持ち麋竺は、おそらく資金面で劉備をものすごく支援したでしょうが、劉備に安定した政権を樹立させれなかったのは、官僚制に対する資質が…(^^;

そうこう考えると、無名官僚群もさることながら、有名知識人武将(というか高級文官)がいること自体は必要でしょうね。これは、有名豪傑武将に対する無名大隊長等(張飛を殺さなきゃ歴史に名を残せなかった校尉達を含め)と同じで、三國志のゲームとしては、名無しで十分な可能性は非常に強い。武将が1000人いるからリアルなのではなく、100人であったとしても、その人選と活躍の場が適切であれば、物語に匹敵するドラマチックな展開が期待できる…はず?(^^;;

逆に、初期の劉備陣営にはほとんど官僚制なんてなく、町のヤクザの親分的な状況だったのです。別段簡雍が内政に必死になっていて、それでも手が足りなくて関羽が書類を決裁しまくるという状況は劉備陣営には似合わない(^^;;関羽も張飛も来る日も来る日も少人数で盗賊を追っ払ったり、訓練というか、道場のように町の若い衆相手に稽古したり、酒びたりになったりしていたことでしょう。簡雍だって、事務書類とにらめっこしているよりは、酒をもって町の寄り合いに行って話を聞いたりしていた、そんなところかもしれません。官僚制が整うのは諸葛亮が来てから大分たってからで、それで古株から水臭い、と言われるまでになります。

ゲームとしては、勝ちづらいのは間違いない(^^;;けれども、無理して簡雍や関羽が内政事務をしなきゃならないというのもおかしな感じです。しなきゃならない、というよりできない、というのが本当のところでしょうね。曹操は自分自身が内政面でも優れた人物であった(というより、軍事的なすばやい行動を内政官僚にも行わせた、という方が近い可能性はあります)ので、荀ケやら程cやらがおらずとも早晩強力な官僚体制を整えれた可能性があります。けれども、当然一人ですべてできるわけもなく、その意味で自分自身が優秀なくせに人材コレクターだったという変わった面を持っていたところが、曹操の強大化を促進したはずです。門閥で人材が集まりながら、結局使いこなせなかった袁紹とはえらい違いです(^^;

さて、そんな状況から考えるに、官僚制を整備しなければ統治すらままならないのは間違いありません。それに対し、おそらく町1つ治めることすら怪しい劉備陣営は、官僚的統治はからきし無視していたことでしょう。それにしても、なぜ自分の勢力が拡大しないのか、不思議に思うことはなかったんでしょうか?(^^;;発想の違いでしょうかねえ。

これをシミュレートすると、官僚制の整備や大軍の整備は誰にでもすぐできるわけではなく、まずは制度を構築する人が必要、ということです。諸葛亮や張昭といった有名人物です。彼らがいないと町のヤクザレベルの行政になってしまいます。けども、高い税金を取られるより、意外とその方がよかったりして…(^^;劉備が新野で人気があったのは、行政コストが低かったうえそもそも整備された官僚制がなかったため、ほとんど税を徴収していなかった、ということも挙げられるかもしれません。

制度を整備できる人がいてはじめて制度を整備し、そこからやっと制度に沿った、単に命令を実行することができるレベルの人達が活きてきます。制度がなければ彼らも仕事がないのです。制度があれば、登場せずとも制度に埋没できるでしょう。となると、無名ですむんだから、大量の武将はますます必要なくなってきます。

もちろん関羽や夏侯惇のような、制度がなくとも力量で兵を動かせる人物もいるでしょう。ただし彼らも、整備された軍事官僚がいた方が大軍を行動させえるのです。張飛だって、単なる暴れん坊だったのに蜀侵攻戦も独力で行えるようになったのは、しっかり軍事官僚がついていたからでしょう。

じゃあ、簡雍やら劉曄やら呂範やら、超有名人ではないものの、ちょこちょこ名前の出てくる連中の役割とは?いやあ、超有名人だけが登場人物ではありません。引き立て役も必要…というと怒られるでしょうね(^^;優れた人物だけがすべてを行えるわけもありません。地道な活動を行っているのは彼らです…と、いうのも違うでしょうね。それは制度&無名連中の役割です。

じゃあ何か。これは、あるレベルまでは彼らで十分間に合う、というところなのでしょう。優れた制度構築は一朝一夕にはできません。中央政府制度がきちんと整わないうちは、地方の連合という雰囲気にどうしてもなるでしょう。地方連合であれば、各地をばらばらに、しかしきちんと治めねばなりません。完全な制度でなくともよいので、とりあえず治めておく、という用途(^^;;にぴったりです。そのうち中央政府制度にきちんとあてはめればいいんですから。そういう臨時でかつ個人の力量もそれなりに必要、という役目にはぴったりはまりませんか?特に簡雍なんてそんな雰囲気ばっちりです(^^;;

と、まあ、なかなか新年早々飛ばしてますね〜(^-^)今年は完成しそうな予感がします…♪(^O^)

index

〔TopPage〕

このページへのリンクはフリーです。
このページについてのご意見、ご質問などは、kr_ryo_green@yahoo.co.jpまでお願いします。
Copyright 2005© kr_ryo All rights reserved.
訪問件数