「Java Web Startで三国志」の製作日誌

さいきんの日記

8月3日

午前

ソースコードを清書。

ソースの公開にむけて、きょうはArmy,ArmyViewer,Boardクラスなどに注釈文をいろいろつけくわえてみました。これで多少は読解がしやすくなったような気がします。あくまでも気がするだけですが。

またシングルスレッドルールなるものにしたがって、ArmyViewerクラスの描画メソッドも改良しました。この改良によってArmyViewerクラスの描画メソッドはイベントディスパッチスレッドからのみ呼び出されるようになりました。

シングルスレッドルールとは、「ひとたびSwingコンポーネントがrealizeされたら、そのSwingコンポーネントの状態に影響をあたえうる、もしくは、そのコンポーネントに依存しうるコードは、event-dispatching threadから実行されなければならない」というものです。

といっても、これではろくに説明になっていないので、詳細については以下のページを見たほうがいいような気がします。Threads and Swing

お買い物。

翻訳の王様のVersion5と「リファクタリング -プログラミングの体質改善テクニック-」という本をかってきました。翻訳の王様はVersion3のころとくらべると、辞書機能がなかなかすてき。リファクタリングの本は目から鱗がおちまくり。文章も日本語としてわかりやすいし、おすすめ。

ただ、この本は読者に前提条件として、オブジェクト指向、Java、基本的なデザインパターンについての知識を要求しているようなかんじ。

というわけでオブジェクト指向、Java、基本的なデザインパターンについての知識はあるが、リファクタリングについての知識はあまりないかたに、おすすめ。

で、序章を読みおわったところで、いったんおふとんに入ったのですが、けっきょく起き上がり朝まで読みふけってしまいました。とりあえず、きょうは第1章まで読みおわりました。

8月4日

朝6時ごろ

民衆ユニットへの徴兵・徴税についての試案。

とりあえず軍隊ユニットは、まずプレイヤーにさからうことのない存在としてゲームをつくろうかとおもう。それに対して民衆ユニットは弱いがプレイヤーの意のままにはならない存在にしようかとおもう。
もちろん最終的には軍隊ユニットすらも、プレイヤーの意のままにはならない存在というゲームになる予定ではあるのだが。

(軍隊は意のままになり、民衆ユニットは意のままにならない存在としてつくられるゲームにおける)民衆ユニットはAge of Empiresにおけるガゼル、いや象やイノシシに近い存在といえるかもしれない。つまりプレイヤーが食糧など(このゲームにおいては食糧・資材・兵士)を得るための存在であり、なおかつプレイヤーの意のままにはならぬものたち。そしてプレイヤーの持つ軍隊ユニットの兵力(AoEにおいては町の人の数)が少なければ、食糧を得るどころか逆に彼らの反撃によって損失がでてしまう。

8月7日

ソースコードを清書のつづき。

ソースコードの清書が、ひととおり終わりました。実験用につくって、いまは使わなくなったクラスファイルやコードなどを一通り削除しました。こんどは、先週、買ったリファクタリングを応用して、もっと読解しやすいコードに作り直してみたいとおもいます。

そういえば、こうしてソースコードを読み返して気がついたのですが、インターナルフレームを作成するコードのあたり、インターナルフレームを閉じるときの処理を作っていないので、メモリがもれまくりです。こちらも、そのうちなんとかしなければなりません。あとクラスの数も、昔にくらべて、ずいぶんと多くなったので、近いうちにパッケージ化もしたいものです。

8月8日

ソースコードを公開。

ソースコードの清書も終わったので、zip形式に圧縮して公開してみることにしました。ゲーム内で使用している画像ファイルなどは添付しなかったので、これを解凍してコンパイルしても、そのままでは実行できませんけれど。ThreeKingdoms.zip

2001年の日記

4月14日ごろ〜6月24日
ゲームを作ろうとおもいたってからβ版が完成するまで。
6月25日〜7月8日
β版からクラスの再設計まで。
7月17日〜9月4日
クラスの再設計からクォータービューの完成。Canvasクラスを用いてゲーム表示用のクラスを作るまで。
9月21日〜10月6日
Java Web Startのインストールからサイトのおひっこしまで。
10月8日〜11月7日
サイトのおひっこしからインターナルフレーム用の描画機構が完成するまで。
11月8日〜12月28日
方向クラスなどの改良やデザインパターンの導入から異国の軍隊同士を戦闘させるまで。

2002年の日記

1月4日〜2月7日
軍隊同士が戦闘しあえるよう実装してからJTableを使って軍隊編成ダイアログを表示してみるまで。
2月10日〜2月20日
MVC構造を取り入れようと思いたってからJTableに難渋するまで。
2月21日〜5月10日
この期間、3月に三国志・戦国時代板@2chのオフ会に参加したりノートパソコンをかったりと色々あったのですが、ながらく日記を書いていなかったので省略。いつか書いておこう。。。
5月11日〜8月2日
ドメインを取ってからSwingについて一通り理解するまで。
8月3日〜
ソースコードを清書して現在にいたるまで。
がばろん@Mたんちゅきちゅき