[68kMacintoshで]ThinkCでゲームを作りたい その1 ~まずは動かす~[プログラミング]

以前、ふるいMacintoshソフトがないなら自分で作るという記事を書きました。

んでもって、英語の本を片手にBASICで作ろうとしました。

あれから、ぜーんぜん更新していないんですが、理由は簡単

ただでさえわからないことだらけなのに指導書が英語は自殺行為。

まあ、要するに解読不能になって詰んでました。ちなみに、この本の日本語版は見つかって(ない)です。奥多摩の図書館行けばあるのかな?

そんなことが原因で心が砕けた私にもう一度Macintoshでゲームを作らせようと思い至らせる作品が最近出ました。それがこちら。

Return of the Obra Dinn

リンク切れてたらごめんなさい。とにもかくにもこのゲーム、なんとこのMacintoshPlus時代のゲームをイメージして作られたらしいのです。デザインとか世界観とか最高だし、こういうゲームを実際にうちのMacで作れたら最高では?と思いまして。あと、この時代用のMac向け3D探索ゲームって作られてないんですよ。特にmc68000で動くものがない。(かの有名なアローンインザダークもse30以降でないと動かない。)

なので作る理由と目標ができたので今回再チャレンジしようと至ったわけです。

■|説明は日本語でお願いします

それでもう一つプログラムソフトあったんですね。ThinkCっていう高級言語使ってプログラミングできるってもの。セットが割と大変で、おまけにこれも英語のテキストとはいかない。BASICの何倍も難しいですから・・・専用変数多すぎ問題。
そんなこんなで困っていた時にふとAmazonでThinkCってけんさくしたらこちらの本がありまして。
ぶあつーい本にびっしり書いてあります。でもこれでも入門書なのだ!

今でも売ってました。日本語版ThinkCの教科書。インストール方法から載ってるめちゃめちゃイけてる本。ほしかったのはこれだよ!!速攻ぽちりました。普段購入まで1週間ぐらい考えるのに初めて即購入ボタン使いました。ダメ人間の鏡ですねはい。

というわけでこれからこの本を使ってThinkCでゲームを作れないか試してみようと思いたったわけでございます。

だって日本語だよ?きっとはかどるに違いない。これで私も真の68kMacintoshユーザーになれる・・・と思った時が私にもありました。

■|ThinkCを使いこなす前にResEditとやらを使いこなす必要あり。

ProcessingやArduino、Unity等に慣れていると、特にセッティングしていなくてもプログラムにprintfだのDebug.Logだの入れればHelloWorldぐらい出てくるんですよ。それだけでモチベ上がります。だって動いたって実感できますからね。

でもMacは違います。というかThinkCは違います。

まずThinkCではなくResEditを開いてウインドウのリソースファイルを作るそうです。

いや~何言ってるかわかりません。ResEditってなんですか。なんか小学生の時の遠い記憶にほんのりあるようなないような。(昔っからMacユーザーだったので。)
んでもってリソースファイルって何ですか。なんかPrintfって打ち込めば勝手にウインドウ出てきて画面に文字出てくるんじゃないんですか。(これあとで別の方法で簡単に出てくることがわかりました。なんだ優秀じゃんorz)

グダグダ言ってもしょうがないのでResEditとやらを探してみましょう。ユーティリティフォルダの中に入っているらしいのでフォルダを片っ端から開いてみると・・・
ニタニタこっちをみてるのがそれ。
ありました。なんだこのピエロ。煽ってるのか。

こんなところでモニタ叩き割ったら3年間の努力が水の泡です。冷静になってアイコンを力強くダブルクリックします。
ザ☆簡素
するとこんな感じで武骨なウインドウ画面が出ます。とここで違和感が。
「教科書に書いてある画面と違くないか?」
そこで教科書に書いてあるResEditのバージョンを確認すると・・・
昔のMacってこんな風に表示されてましたね!

必要最低限の情報が書かれた簡素な説明の中に・・・
今回使用しているバージョンと違いました。今使っているResEditのほうが古いです。UIとかわかりずらい。

そもそもGUIが登場したころの(本当の初登場は1970年代なのですが)開発ツールなので完成されていないのは当然です。奥歯をぎりぎり言わせつつこのツールの意味を解読していきます。
UIデザインの重要性をひしひしと感じます。
まずウインドウのサイズを指定するこの画面。この指定の仕方はのちのツールでは縦横のサイズを指定するようになっていますが、processingのように四角の始まりのXY、終わりのXYを指定するスタイルをとっています。入力する数値はどちらも同じなのに、描き方ひとつでとらえ方が全然違うのが面白いですね。ちなみに横の「SET」のボタンをクリックすると始点の位置をマウスカーソルで指定することができるようです。今更こんなこと説明しても需要ないよな!!

ということでこれによってサイズを変更し、表示できるウインドウのサイズを指定した後リソースIDというものを指定します。これをつけることにより素材を番号管理できるということらしいのですが、いまいちよくわかりません。とりあえず基本は400番らしいのでこれにしておきます。
なんか使ってはダメなIDがあって、それを指定するとデータが壊れてしまうのだとか。
その後、今度は表示するための画像を用意します。今日ではpngやjpegといった画像データそのものを用意し、指定するだけで表示ができますがこの頃は違います。どうするかというと、PICTリソースという形式で画像を作成し、このResEditでフォルダ内に読み込むのです。
Photoshop2.0(!?)で画像を作成。この保存の際にPICTリソース形式を指定する必要がある。
リソースファイルで保存ができていると、ResEditでこのように参照できる。
画像が違うのはあのあと書き直したためです・・・

そして必要なリソースを作成できたらまたthinkCに戻ります。
すでに画像などのリソースファイルをまとめたファイルと、プロジェクトファイルがあります。

そしてながーいコードを教科書を見て打ち込んでいきます。コピペなんてできないからね。

そして教科書の通りにコードを打ち込みますが、ところどころ誤植があるので頑張って解読します(笑)
だってあからさまに変数名さっき指定したのと違うの書いてたりするんだもの。これ編集した人プログラムの知識皆無だったに違いない・・・今だったら考えられないようなことですが。
これ忘れるとコンパイルが通りません。
そして様々なMacintoshに備わっている機能(QuickDrawや、I/Oなど)のプログラムを読み込むMacTrapsをCファイルに追加します。また、今編集したプログラムファイルを追加することも忘れずに。

そして無事にコンパイルが通り、実行されると・・・
指定した位置にWindowが表示され、イラストが表示されました!

はーい私の下手な絵が表示されました!ここまで約1ヶ月かかりました。本の内容がわかりにくいのと誤植が肝心なところで炸裂するんで主に解読の時間ですね。

それでも自分の作ったプログラムが動くのは感動の一言。まだキーボードの入力も受け付けられないぐらいしかプログラムはできていませんが、まずは動いたのでよしとさせてください!
次回はstdioを使ったプログラムを作成してみようと思います。そもそもC言語が曖昧なところあるので復習も兼ねて。

それではまた次回。

次回の記事:

[68kMacintoshで]ThinkCでゲームを作りたい その2 Stdioライブラリを使ってみる[プログラミング]
前回の記事:
DELL Inspiron One 2020にメモリ16gbを積んでみた

コメント

このブログの人気の投稿

ファミコンの完全自作ROM&カセットを作ろう!!その1~立ちはだかるコンパイラの壁~

ファミリーベーシックでゲームプログラミング

ファミコンの完全自作ROM&カセット作ろう!〜cc65で起動ROMをつくる〜