ポリモーフィズム
エンメモの開発をようやく再開した。
パーティーキャラと敵キャラを一括管理するべきか否かという問題は、結局その中間を取ることで解決。
つまり共通部分は一括で管理し、非共通部分は個別で管理することにした。
まず共通部分のクラスを構築し、そのクラスからパーティーキャラと敵キャラのふたつの派生クラスを構築するのである。
そして、これらのクラスオブジェクトのポインタを基底クラスのポインタの配列を用いて一括管理するのである。
この方法は簡単に思いつくので以前から案にはあったのだが、実はあまり使いたくなかった方法でもある。
この方法は「ポリモーフィズム」と呼ばれており聞こえはカッコイイが、クラス構成をしっかりと把握していないとたちまちわけが解からなくなってしまうという難点がある。
そう思うのは私だけかもしれないが、とにかく私はこの方法が苦手である。
実際、今私は自分の組んだプログラムに非常に混乱している。
しかし他に方法も思いつかないので、一抹の不安を感じながらも開発を続けるのであった。
ダメ週間
最近はまるでダメである。
というのもここ1週間近く『エンメモ』が全くの手付かず状態なのだ。
今後なかなか時間が作れないだろうからやるなら今しかないとは思っているのだが、そんな思いとは裏腹に全然やる気が起きないのである。
その理由は明確で、今ちょうどキャラクターの管理方法で悩んでいるのである。
パーティーキャラと敵キャラを一括管理するべきか否か。
後々複雑になることが予想されるので、今のうちにしっかりしたものを作っておきたい。
しかし、そこに立ちはだかるのはメモリの壁。
ただ、今は「メモリ4MBの時代」とは大きく異なる。
果して最近のマシンスペックで神経質にメモリを考慮する必要があるのだろうか。
というように、つい考えすぎて前に進めないのが私の悪いところである。
ソフトウェアの更新
今日は2つのソフトウェアを同時にアップデートした。
ひとつは『Cookie Version 1.2』である。
今回のアップデートで要望が多かったウィンドウのサイズ変更に対応した。
今まで固定サイズだったウィンドウを自由に伸縮できるようになり、ちょっと大きめなメモでも編集しやすくなることだろう。
それにしても久しぶりのアップデートである。
もうひとつは『D-Canceler Version 0.9』である。
これは3日前にアップデートしたばかりなのだが、今回、重大な問題を発見したため再度アップデートを行なった。
その重大な問題とは、接続超過時の自動切断機能が正しく動作しないという問題である。
接続超過時の自動切断を目的とするソフトウェアなのに、それが機能しなければ一体なんのソフトウェアなのかわからなくなってしまう。
なぜ、今までこんな重大な問題に気づかなかったのだろうか。
とにかく、本ソフトウェアの利用者には速やかなアップデートをお願いしたい。
D-Canceler 0.8
本日『D-Canceler Version 0.8』をアップした。
更新内容は「接続」機能の追加である。
本来このソフトウェアは切断を目的とするソフトウェアであるため、当初、接続機能を付けるつもりは全くなかった。
ところが、IEを使用していると「お気に入り」等を使ってインターネットに接続しようとした際に「サーバが見つからない」というエラーが出て接続できなくなることが時々起こる。
そうなると、接続するためにはOSを再起動するか、またはダイアルアップネットワークから直接接続するしか方法はなくなる。
そこで、第三の選択肢を用意するために急遽「接続」機能を追加したというわけである。
ただ、どの環境でも動作するのかというと、それは定かではない。
エンメモ
まず、改めて『エンメモ』とはなにかについて説明せねばなるまい。
これは、私がメインプログラマとして参加・活動を続けている個人サークル「teamSKY」が制作中のファンタスティックRPG『Ancient Memories』のことである。
昨日、そのサークルのミーティングが行われた。
主な議題は3つ。
1つ目はバトルシステムが云々という話。
2つ目はDX8に関連して出荷を急がなければならないという話であったが、これに関しては急いだ所でどうにかなるものでもない。
そして最後の3つ目は「タイトルデモ」が貧弱という話である。
どうしてこのような話が持ち上がったのかという経緯については割愛させてもらうとして、とにかく、1年以上前に完成したものを今さら一部もしくはすべてを作りなおそうというのである。
この案に関しては私も賛成である。
というのも、今のタイトルデモのままでは確かに貧弱というイメージがある。
どの程度貧弱なのかというと・・・
もし、全面没が決定したら、メンバーの許可をもらってお見せしたいと思う。
DirectX 8 がもたらす危機
つい先日、掲示板でも同様の話題を扱ったが、DirectX 8(以下、DX8)に関してもっとよく調べてみると、実はDX8の登場がかなり深刻な問題を引き起こすであろうことが明らかになった。
DX8は従来のバージョンと比べて大きく異なる部分がある。
それは映像描画に関する部分である。
DX8では新たにDirectX Graphics(以下、DG)というコンポーネントが追加され、これにより今まで複雑だった3D描画に関する手続きが大幅に簡略化されたのである。
これだけ聞くと3Dソフトウェアの開発者にとってはまさに朗報である。
しかし、これで終わってくれればよかったのだが、この話には続きがある。
従来のDirectXを用いて3D描画をおこなう場合、DirectDraw(以下、DD)とDirect3D(以下、D3D)の2つのコンポーネントを用いる必要がある。
DDは2D描画をおこなうコンポーネントであり、またD3Dは文字通り3D描画をおこなうコンポーネントである。
従来の3D描画では、DDを初期化した後にD3Dを初期化するという二度手間ともいえる手続きをおこなう必要があった。
そこでこの2つを統合し手続きが簡略化されたDGが誕生したというわけである。
そうなるとD3Dはもはや不要となり、実際にDX8でD3Dは廃止された。
ところが、どういうわけかDDも同時に廃止されてしまったのである。
簡単にいうと2D描画が廃止されてしまったのである。
DX8からDDが廃止されたことにより、近い将来、各グラボの3D描画機能の拡充に拍車がかかり、逆に2D描画機能は基本的な部分を残し大部分が削除される可能性がある。
そうなると2Dゲームなどは危機的状況に立たされることになる。
もしかすると完全に絶滅してしまう可能性も十分にあり得る。
そういえば、海外からのゲームソフトウェアの大半は3Dゲームである。
海の外では既に2Dは不要な存在なのかもしれない。
しかし、2Dを楽しみきらないうちにそれが絶滅することを果して許してよいものか?