1イントの福音スマートフォン用の表示で見る1イントの福音この広告は、90日以上更新していないブログに表示しています。プログラミングコンシューマゲームの開発において、開発およびデバッグ作業はPCのエミュレータ上で行い、実機での作業は最終的なチェックのみという手法がとられることは珍しくない。実機の性能が低い場合、メモリやパフォーマンスに余裕があるPCで作業したほうが効率的であることが多い。太のG-BASICによるゲーム開発においても、エミュレータを使用することは非常に大きなメリットがある。ぎゃるかぶ!」を作成するにあたり、自作ツールを併用することにより、初代ぴゅう太(日本語BASIC)とmark2(英語BASIC)の両方に対応するための環境を構築した。1.英語版G-BASICで、テキストエディタにソースコードを記述(擬似的な英語BASIC)2.1のソースコードから、実際に入力可能なBASICソースコード(英語と日本語の両方)に変換3.英語版G-BASICでゲームを制作する。前述のとおり、実機のテキストエディタでは2行分しか表示されないため、ソースコードの下書きが必須である。G-BASICの書式に準拠してはいるが、一部自分が書きやすい書式で記述した。nextこの擬似的なG-BASICを、実機で入力可能な文法に変換するツール「gbcacv.exe」を作成した。source.txt実行すると、source.txtから英語版と日本語版の両方のソースコードを生成する。gbcacv.exeが行う処理は、おおよそ以下の通り。10ニイケ入力元のソースコードを書くにあたり、以下を注意する必要がある。a=0for(マワレ)文において、STEP(カンカク)が1の場合でも、STEPは省略できない。I=1カラ8カンカク1」に相当する。※「STEP」は記述しないこと。私の手元にある書籍には、日本語BASICの「カンカク」は英語だと「STEP」に相当するとの記述があるが、私が試した限りでは、STEPを記述するとエラーになってしまった。一点、for文を記述する際に注意することがある。ループカウンタの初期値を0に指定すると、英語BASICでは実行できるが日本語BASICだとエラーになってしまうようだ。初期値は必ず1以上の値にする必要がある。※日本語と英語のG-BASICはどちらも同じだと思っていたが、まさかこんな違いがあるなんて!英語版G-BASICでゲームを制作グラフィックモードで絵を制作し、G-BASICモードに入ってから、ePyutaのメニュー「Control>Paste」で、クリップボードにコピーしたソースコードを自動的に入力することが出来る。gbascv.exeで出力したソースコード「source.txt.en.txt」を入力し、実行する。入力途中、もしくは実行時にバグを見つけたら、変換元のソースコードも同時に修正しておく。変換元ソースは後で使うため、バグが無い完全な状態に保っておく。日本語G-BASICへのコンバート英語版でゲームが完璧に動作することを確認したら、日本語G-BASICへの移植を行う。ePyutaで保存したステートファイルでは、英語版と日本語版のデータに互換性はないが、グラフィックデータを保存しているアドレスは同じである。これを利用し、ステートファイル間でグラフィックデータのみをコピーするツール「CellEdit.exe」を作成した。具体的な手順は以下の通り。英語版G-BASICで、ゲームの絵が完成した状態で適当な場所でステートをセーブする。日本語版G-BASICのグラフィックモードで、適当な場所でステートをセーブする。絵をコピーここでいう「適当な場所」とは、具体的には全画面にグラフィックが完全に表示されている状態を指す。(セルの編集画面や、コマンド入力メニュー等が表示されていない状態)CellEdit.exeを起動し、コピー元、コピー先のステートファイルを指定し、「コピー実行」を押す。この場合、セルとアニメのパターンはコピーされるが、アニメの位置と色はコピーされないので、これらは手動で設定する必要がある。コピーされたステートファイルをロードし、グラフィックが正常に表示されることを確認したら、再度gbcacv.exeでソースコードの変換を実行する。変換元ソースがバグを取り除かれた完全な状態であれば、変換された日本語版ソースコードにもバグは無いはず。後はこれをG-BASIC入力モードでPasteすれば、自動的に日本語版のゲームが完成する。注意点としては、日本語の自動入力を行う場合、オリジナルのePyutaではなく、たなむ氏(@tanam1972)がカスタマイズしたバージョンを使用する必要がある。以下のサイトからダウンロード出来る。tanamの日記このバージョンでは、キー入力の^で英数モード、[でカナモードにそれぞれ移行することが出来る。拙作gbcacv.exeもその仕様に準拠している。以上を準備することにより、制作物の規模にもよるが、頑張れば数日で1本のゲームが制作できるぐらいの環境を構築できた。※このスピード感が子供時代にもしもあったなら...ベーマガにガンガン投稿して、原稿料をがっぽり稼げたのにw拙作ツールgbcacv.exehttp://www.motekin.net/pyuta/tools/gbca.7z擬似的なG-BASICで記述されたテキストファイルから、日本語版と英語版の両方のソースコードを生成するためのツール。厳密な構文解析をしている訳ではないので、正しく変換できない場合がありえます。その場合は、サンプルのソースコードの書き方などを参考にしながら記述を修正して下さい。ぎゃるかぶ!」のソースコード・オリジナルhttp://www.motekin.net/pyuta/tools/galkabu.txt・英語版の出力http://www.motekin.net/pyuta/tools/galkabu.txt.en.txt・日本語版の出力http://www.motekin.net/pyuta/tools/galkabu.txt.jp.txt※日本語版のコードは一見文字化けしているように見えるが、これは日本語版ぴゅう太のキー配列がPCと一部異なるため。(あと半角カナが含まれているため、Webブラウザからだと正常に見えないかも)CellEdit.exehttp://www.motekin.net/pyuta/tools/CellEdit.7zステートファイル間で、グラフィックデータをコピーするツール。「セルの一部のみコピー」チェックボックスをONにすると、指定した一部分のセルのみをコピーすることが出来る。「縦横反転」チェックボックスをONにすると、コピー元とコピー先でセルの並び順を変える(横方向→縦方向)。ぎゃるかぶ!」や、ベーマガに掲載された「ヤキュウケン」等において使用された、画像を見せないためのテクニックである。※それぞれのツールについて、内容は無保証です。自由に利用していただいて構いません。ソースコードのビルドにはVisualStudio2015を使用しました。読者になるはてなブログをはじめよう!nicomongerさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。