何とか......。

  • 投稿日:
  • by
  • カテゴリ:

 マルチウィンドウクラス、何とか以前作っていたところまで再現できました。まだウィンドウ内に文字列を表示したり、入力を受け付けたりは出来ないのですが、それらはこれから実装していきます。今度こそ間違えて消してしまったりしないように、バックアップを複数取っておかなければ。

 今は午前11時23分。再現するのに途中仮眠も入れて8時間くらいかかっていますね......。図面を書かずに頭の中だけで設計している(悪い癖です)ので、余計に時間がかかったような気がします。

 このクラスはキャラクタエディタに組み込んだりしないで、作品本体で使うことにします。後はマップエディタを16ドットキャラクタに対応させれば、ドット絵作成とマップ作成の作業に入れます。入院までに、せめてここまでは作っておきたいですね......。

やり直し......。

  • 投稿日:
  • by
  • カテゴリ:

 以前、折角書いたマルチウィンドウクラスが、行方不明になってしまいました。HDDは勿論NASまで探してみましたが、書きかけのクラスがあるだけ。システムをインストールするときに気をつけて待避させたはずなのに、見当たらないという事はHDDの初期化に巻き込まれたのか......。

 今残って居るのはクラス化されていない、小さなウィドウが表示されるだけのソースが残っています。また書き直しか......。気が重いけど落ち込んでばかりはいられないのでまた書き直します。

RPGツクールMV

DSCN0239.jpg RPGツクールMVをインストールしました。通常のアプリとインストール方法が全く違うので、迷って困ってやっとインストールできました。でもゲーム制作に使う気持ちは無く「敵を知り己を知れば......」のことわざに倣い、どのようなツールを使ってどうやってゲームを組み立てていくのかを知ろうと思います。幸いなことにこれを購入したときはセール期間で、3000円以下で購入したと思います。定価は12800円なので、ちょっと驚きです。
 豚の知っているRPGの作り方は、言わば高校の化学の先生の受け売りで、全くの我流です。しかし、色々と文献を読んだりした結果、間違った方法では無かったようです。ただ、今のように簡単にデータベースやワープロが使える時代では無かったので、仕様書やイベントのジャンプテーブルなどは全て手書きで、恐ろしく手間がかかりました。アセンブラもありましたが、BASIC上で機械語を動かす必要のあるときは、ハンドアセンブルした機械語をDATA文に打ち込んで動かしたりと、アセンブラの基礎を叩き込まれました。お陰で専門学校に進んでからも、電子回路以外の科目はいつも「優」を貰う事が出来ました。今思うと、電子回路もこのときに真剣に勉強していれば、今がもっと充実した時間になっていたのでは?と後悔しています。

 さて、マップエディタの改造ですが、一マップに置ける最大マップチップ数を、ドラクエⅢと同じ256キャラ×256キャラに設定しました。後は32ドットキャラクタを16ドットキャラクタも扱えるように変更するだけです。多分その辺りはパラメータの変更で弄れたと思いますが、もう一度ソースを読み直してみます。

 上部の写真は「にゃんこ先生」こと同居人「福」の写真です。相手をして欲しいときはこんな風にキーボードとモニタの間に入り込んで寝そべります。それでも無視すると、今度はキーボードの上に乗っかって、画面を無茶苦茶にしてしまいます。普段の定位置は足下の小さなホットカーペットの上なんですが......。可愛くも頼りになる相棒です。

仕様再変更。

  • 投稿日:
  • by
  • カテゴリ:

 キャラクタのサイズですが、やはりオリジナルに倣って16ドット×16ドットで作成したいと思います。キャラクタエディタの方で既に対応させたので、後は解像度をどの位にすればオリジナルに近くなるのかを研究しなければなりません。まだマップエディタでは16ドットキャラクタに対応していませんので、これから調整していきます。

DXライブラリが......。

  • 投稿日:
  • by
  • カテゴリ:

 豚がセーブエディタでゴチャゴチャしている間に、DXライブラリがAndroidに対応していました。DXライブラリは豚が好んで使わせて頂いているライブラリで、これのお陰でツール作成やゲーム作成がかなり楽になります。普通では使うのがややこしいDirectXを簡単に使えるようにしてくれる、非常に便利で有り難いライブラリです。
 それが今回、Androidに対応しました。開発言語はJavaでは無くC/C++なので、豚でもAndroid用アプリが楽に作れる可能性が出てきました。久しぶりに非常にワクワクしています。今の所はWindows対応版で精一杯ですが、ドラクエⅢの移植が完了すれば、オリジナルゲームも作ってみたいなと思って居ます。あわよくばその頃にはiOSにも対応していれば良いなと思いますが、......。公には求められていないと思いますが、個人的にマップエディタやキャラクタエディタがAndroidアプリになれば、非常に便利だと思います。まだどれだけの命令に対応しているのか確認していませんが、楽しみです。

仕様変更。

  • 投稿日:
  • by
  • カテゴリ:

 本物のドラゴンクエストⅢは、16ドット×16ドットのマップチップで作成されていますが、今のWindowsパソコンの解像度では画面が小さくなりすぎるので、32ドット×32ドットのマップチップに変更したいと思います。エミュレータのように解像度まで制御できれば良いのですが、ちょっと面倒なのでこの大きさで制作します。

 また、キャラクタエディタの新版は少しペンディングし、最初に作っていたキャラクタエディタでゲームのマップチップの制作に入ろうと思います。

 もう少し検討が必要ですが、少しずつ決めながら先に進んでいこうと思います。

暫くお休みします。

  • 投稿日:
  • by
  • カテゴリ:

 手術が控えているので、術後暫くはお休みさせて頂きます。
 雑記は「豚の独り言」に記していきます。

 申し訳ありませんが、宜しくお願い致します。

ふと思ったが......。

  • 投稿日:
  • by
  • カテゴリ:

 プログラミング言語って、究極の「ツクール」ですね。極めれば殆ど何でも作れます。ソフトだけで終結する物もあれば。大規模な機械を操作して物理的に物を作ることも出来る。Javaとかになってくると、ハードウェアの内部までは弄れないようになっていますが、C/C++辺りだと高級言語にも関わらずポインタとか使ってダイレクトにメモリにアクセス出来ます。それに_asm{}を使えば処理系依存になりますが、そのままダイレクトにハードを弄れます。
 また、この言語を使って更に使いやすい言語を作ることも出来ます。OSも書けますよね。UnixなんかはC言語で書かれたと言う事は有名です。そう言う意味では、プログラミング言語は「最高のおもちゃ」です。しかし、豚が学校に通っている頃は、このおもちゃが高かった。MicrosoftのC言語「Microsoft C」は税抜きで98000円もしました。とても手の届くものではありません。そのライバルのBorland C++も同じ値段。フロッピー20枚組とか、今から思えば冗談のような代物でした。
 で、我々学びの最中に在る物が買えるのは、廉価版の「Microsoft Quick C」や「Turbo C++」なんかですね。安いと言っても20000円以上はしましたけど。

 AドライブにMS-DOSとコンパリラ・リンカ、テキストエディタ、FEPなんかを入れておいて、Bドライブには自分が書いたソースコードや、コンパイラが吐き出した実行ファイルなんかを入れる訳です。で、2ドライブを使ってがっちょんがっちょん(FDDにアクセスする音です。HDDなんか高くて買えません。)やると、画面にはエラーやワーニング、またはコンパイル結果が表示され、実行ファイルが完成します。そんな環境でC/C++は身につけました。専門学校でもこの環境でした。(処理系はMS-Cでしたが。後に豚が教職に就いてからはBorlandに変えてやった!)
 非常に懐かしい思い出を語ってしまいましたが、今のようにインスタンスがどうのとかメッセージがどうのとか考えなくても、立派なDOSソフトが作れましたからね。豚の知識はそこで止まっています。プログラマに転職してからは、当然Windows環境。処理系も「VisualStudio」なんて洒落た物に変わっています。豚はそれに拒否反応を起こしてしまい、最後までWindows環境には慣れませんでした。
 今書いているキャラクタエディタも、各種クラスも、先日作ったヌルヌル動くスクロールクラスも、全部Win32環境(DOSベースですね)で動作するものです。WindowsでDOS窓を開き、そこで実行させています。

 さて、そんな高価なおもちゃも、Microsoft社やBorland社のご厚意で、非商用に限り無償で殆どの機能が使える開発環境を提供して下さっています。今はそれらを有り難く使わせて貰って居る訳です。
 今はIoTとかハードウェアとインターネットの複合利用がブームになっています。所謂新しい「もの作り」ですが、プログラムも立派な「モノ」だと思うのは豚だけでしょうか?

 今流行のVR何かも、動かしているのはプログラムです。VRを使うためのデバイスドライバもプログラムです。

 その昔、「コンピュータ、ソフト無ければただの箱」とDr.パソコンが仰っていましたが、今も全くその現状は変わっていないと思います。

正直なところ......。

  • 投稿日:
  • by
  • カテゴリ:

 先に書いたクラスライブラリやモジュールは、一般に市販されていると思います。でも、高い!

「金がないなら知恵を出せ。知恵がないなら汗をかけ。」

 と言う言葉がありますが、豚は金も体力も無いので、頭を絞って知恵を出すしかありません。
(じつはこの言葉は間違っていて、正確には「まず汗を出せ、汗の中から知恵を出せ、
それが出来ない者は去れ」(松下幸之助) です。
「本当は、まず汗を出せ、汗の中から知恵を出せ、それが
出来ない者は去れ、と、こう言わんといかんのや。知恵があっても、
まず汗を出しなさい。本当の知恵はその汗の中から生まれてくる
ものですよ、ということやな。」

 キャラクタエディタも、窓の杜やVector辺りを探せば良い物が有ると思います。それらを使うのも一つの方法だと思います。でも多少なりともお金がかかると豚の経済状況では厳しいのと、エディタを制作していく上でスキルアップになると思ったので、作ることにしました。昔、豚の師匠である桑ポン氏は、ゲームを作る前段階に必要な知識を付けさせようと、キャラクタエディタやマップエディタをBASIC+アセンブラで制作させました。お陰でそれらエディタの最低限の作り方や必要機能などは、28年経過した今でも脳裏に焼き付いています。
 使用言語はC/C++に変わりましたが、基本的なアルゴリズムは変わらないので、当時の知識そのままで通用します。
 また、DXライブラリと言う、非常に高機能で使い勝手の良いライブラリが無償公開されています。商用/非商用に関わらず一切の許可無しで使用することが出来る、懐の広いライブラリです。今回作るエディタやゲーム本体も、このDXライブラリを中核に肉付けしていくという形を取ります。
 文字列操作に関しては、昔勤めていた会社の上司が作った非常に使い勝手の良いライブラリがあったのですが、流石にそれを使うと罪になるので、必要ならば自作していくつもりです。

 今豚が作っているのは、キャラクタエディタやゲーム本体にりも利用できる「周辺部分」です。キャラクタエディタの本来の目的はゲームに使用するキャラクタのドット絵を作ることであり、その本体は未だ未だ先になります。ですので、たかがエディタに3ヶ月もの期間を取りました。

 今は午前3時24分です。外では雨が降り出しています。さて、朝までどうして過ごそうかな......。

CMessageクラス。概要だけ......。

  • 投稿日:
  • by
  • カテゴリ:

 先ず、メッセージクラス「CMessage」で何をやらなければならないか。
・MessageBuffポインタに渡した文字列の長さのウィンドウをを開く。
 画面をはみ出す場合は、開くウィンドウの大きさを限定し、表示する文字列を適当に改行してやる。一層、ウィンドウサイズを固定にするのも一つの方法。

・エディットサイズやファイル名入力のため。、表示だけでなく文字列入力にも対応する必要がある。

・ロードするキャラクタのファイル名と実キャラクタをウィンドウ内に表示して、それらをマウスまたはゲームパッドで選ぶことでロードやセーブが出来る様にする。

・メッセージに表示する文字列にルビを打つかどうか。

・ここまでを簡単なスクリプトエンジンを書いて、文字列に特別な文言を埋め込むことにより実現させる。
Ex.
このような病状を\R[躁鬱病:そううつびょう]\Eと呼ぶ。

 この手のスクリプトは、昔仕事で書いたことがあるが、丁寧に作らないと収集が付かなくなってしまう。数千行に及ぶ巨大なswitch文とか......。自業自得だが、それでエラい目に遭った......。

・入力された文字列やファイル名は、そのまま呼び出し元の関数に返してやれば良い。
(ファイル操作やキー入力管理は、別クラス若しくは呼び出し元の関数で行う。)

・カーソルのフォーカスは、最後に開いたウィンドウに移動。

・テキストで最低限のコマンド一覧と動作を予め書き出しておき、今作品に限り最低限のコマンドのみを実装する。

 今思いつくのはこれだけ。後は随時補完。