仕様変更。

  • 投稿日:
  • 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文とか......。自業自得だが、それでエラい目に遭った......。

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

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

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

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

午前2時49分。

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

 今の時間です。落ち込みが酷くなってから、少しやる気を出すために「バクマン」のコミックスを数冊読んでいました。BGMにはずっとドラクエⅧのライブ音声を流しっぱなしにしていました。
 少しはモチベーションが上がるかと思いましたが、こう言うときはサクセスストーリーは駄目ですね。自分と比較してしまい、余計に落ち込みます。「栄光なき天才達」のような話を読む方が共感できて自己修復出来ると思いました。

 でも、もし「ドラクエⅧの移植」が出来た暁には、自分オリジナルのストーリーRPGを作ってみたいと思えるようになりました。実は昨年、シナリオの書き方のような書籍を購入しているんです。やはり積ん読になっていますが......。RPGツクールの様なツールを使って原作者としての訓練を積むのも良いですが、自作のツールを使って完全オリジナルの作品を作るのも憧れるなぁなんて思ったりしています。その為にも、今書いているキャラクタエディタやマルチウィンドウの様なモジュール類を大事にして、書きっぱなしの放ったらかしにせずに自分だけのクラスライブラリを作り上げていこうかと思いました。

 まだ午前3時過ぎなのに、もうかなり眠くなってきています。ベッドリームに移動して、明け方まで少しだけ転た寝をしようと思います。

一体......。

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

 今日の豚はちょっとおかしいです。今更ドラクエⅢなんか移植して、一体なんになるんやろう......? 
 いや、初めっから自己満足だという事は理解して、どこまで出来るのか試してみようという意味で立ち上げたプロジェクトでしたが。

 今は「RPGツクール」なんて言う便利な物もあるし、ゲーム制作を専門に教えている学校もある。プログラムもUnityみたいな簡単に3Dゲームを開発できる言語も有る(勿論、センスは必要ですが)。
 そんな中で、齢45にもなる男が仕事もしないでこんな事をしているなんて、なんて情けないことなんやろう......。

「何かを始めるのに、もう遅いと言う事は無い。」と何かで読みましたが、豚がプログラミングのスキルを身につけても、生きていく上で何の足しにもなりません。確かに洗練された技術を身につければ、在宅の下請けプログラマ位は出来るかも知れませんが、それも今更C/C++では......・せめてJava系のスキルやC#位は身につけないと......。

 なんだか自分のやっていることが、酷く無意味に思えてきました。「夢」ってそう言う物でしたっけ......?

 続けるも止めるも自由。納期も報酬も無い。やりたいか、やりたくないかだけの世界なんですよね。

「飛んだところで、豚は豚だぜ!」と言う言葉が、深く心に突き刺さっています。

メッセージ表示......。

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

 マルチウィンドウクラスにメッセージ表示モジュールを組み込もうと、VisualStudio開きながらドラゴンクエストⅧの音楽を流していたら、そっちばかりに気が行って、全然コーディングが進みません(笑)。
 今は午前3時02分だけど、1時間以上前から音楽に意識が集中してしまっています。急にドラクエⅧをやりたくなって、3DSを充電したり、そう言えばスマホでもタブレットでもプレイできたななんて思い出して、遊びたくなったり......。

 そう言えばPS4もFFXVの発売後少しだけ遊んだ程度で、全然起動していない......。当然FFXVも途中で放り出しています。と言うか、ゲーム機を設置してある方の席に、殆ど座らない......。空の軌跡も閃の軌跡も放り出してプログラムを書き始めたので......。遊びだしたらまたプログラムを放り出して、ゲームに熱中するんだろうなぁ。

  制作中のキャラクタエディタのことを一つ。今回はゲームパッドに対応させます。マウスだけでは結構しんどいですので......。

デバッグ。

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

 只今午前3時57分。先日作ったマルチウィンドウクラスのデバッグをしていました。思いも寄らないところで不審な動きをするので、今は挙動を追っているところです。
 それから、マルチウィンドウクラスから派生させて、メッセージクラスを作っています。このクラスはメッセージを渡すと自動的に適当な大きさのウィンドウを作成してくれて、その中にメッセージが表示されるというクラスです。他にも文字の入力を受け付けたりキャラクタを表示したるする様にもしますので、簡単なスクリプトを備えたクラスになるかと思います。実は以前にここまでは仕上がっていましたが、HDDが吹っ飛んだときに一緒に消えてしまいましたので、再び書き直しているところです。ぜも前回書いたときの方がスマートなコードになっていた様に思います。

 今回はクラッシュ対策として、NASを1台移植プロジェクト専用に設けてありますので、小まめにHDDから保存しおくことにします。
 メッセージクラスの実装と同時にマルチウィンドウクラスのデバッグをやっているので、時間がかかります。これだけで4月いっぱいかかりそうです。
 キャラクタエディタの詳しい仕様も未だ考えていないので、やはり5月から6月になるかな............。

マルチウィンドウできあがり。

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

 昨夜から書いていたマルチウィンドウのクラスが、今朝出来上がりました。デバッグも終わり、あとはこれを基底にして、ウィンドウ内に文字表示やグラフィック表示が出来る様に改造していきます。

 一通りのことが出来る様になったら、やっとキャラクタエディタ本体のコーディングです。一応2ヶ月ほどのスパンを取ってありますが、もう少し早く出来れば......と思って居ます。今夜の作業は、このマルチウィンドウクラスのコードを、もっと見やすく無駄を省いた形に書き換えることです。相変わらずスパゲッティ......。