2023年06月10日
【ゲーム制作】3Dダンジョンロールプレイングゲーム 第4回
3Dダンジョンロールプレイングゲーム第4回目です。
今回はダンジョンの描画パターンを考えていきます。
見える範囲を狭くしたのでパターンはかなり絞られます。
前回言った通り、エリアを5つに分けて考えます。
まず、右側Xから考えていきましょう。
パターン1、壁がある。
パターン2、壁がなくWが壁
パターン3、壁がなくWの壁なし
この3パターンですね。
次に、右側Wを考えます。
パターン1、壁がある。
パターン2、壁がなく、その先は壁
パターン3、Vが壁
他パターンとして、「壁がなく、その先は壁なし」が考えられますが、これは最初に決めたダンジョンの構造上有り得ません。
このパターンが発生するのは正面Vに壁がある場合のみですので、その場合パターン3となります。
と、言う事でこちらもこの3パターンです。
次に、中央Vを考えます。
パターン1、Vが壁
パターン2、Vは壁なし、その先は壁
パターン3、Vは壁なし、その先は壁なし
こちらも3パターンです。
TとUは、それぞれWとXと同じになりますので、それぞれ3パターンです。
と、言う事は色分けした各エリアそれぞれ3パターンずつ、計15パターンの画像を用意すれば良いと言う事です。
次回はFONTを描いて、実際の画像をイメージします。
2023年06月09日
作品F昆虫いっぱい!
次はこれ。
大きめのアニメーションするキャラクタの種類をなるべく多く出してみました。
悪い癖が出て、ゲームバランス調整していません。
■主な新テクニック
・横スクロール実装
・全キャラクタ、アニメーション・サイズ可変化実装
・横スクロール実装
・全キャラクタ、アニメーション・サイズ可変化実装
大きめのアニメーションするキャラクタの種類をなるべく多く出してみました。
悪い癖が出て、ゲームバランス調整していません。
タイトル | 『 FLOGER 』 | 作品 | 7 | |
内容 | 自機を操作し、捕食しようと邪魔する敵を避けて、ただひたすら飛び続けて下さい。 | |||
操作方法 | タイトル画面でタイトル文字(FLOGER)の色が青くなったら、「スペース」バー若しくはAボタンでゲーム開始 開始させたコントローラーで操作します 「↑」「→」「↓」「←」カーソル若しくは十字キーで、自機移動 | |||
対応機種 | MSX1、MSX2、MSX2+ | 製作年 | 1988年 | |
ダウンロード | リンク先へ | ジャンル | アクション |
※ゲーム内のキャラクタ、音楽は制作当時の物です。 公開前提に製作していないため、雑誌等から流用している物もあるかも知れませんので、著作権侵害の恐れのあるものは、ご連絡をお願いします。 |
2023年06月08日
【ゲーム制作】3Dダンジョンロールプレイングゲーム 第3回
3Dダンジョンロールプレイングゲーム第3回目です。
今回はダンジョンの描画範囲を考えていきます。
まず、3Dダンジョンでどこまで先が見えるのかの範囲を決定します。
今回は描画パターンを抑えるため、2歩先の前面の壁までが見える範囲とします。
その先は真っ暗で見えなくします。
「もっと先が見えた方が良いんじゃないの?」と思われるかも知れませんが、演出的にもあまり先が見えない方が3Dダンジョンぽくていいのではないでしょうか?
しかも、範囲を広げると描画するパターン数が増えるので管理が大変です。
完成後プレイするとわかるのですが、手間をかけた程ゲーム性に影響がなくがっかりします。(経験談。自己満足感はあります。)
それよりかは、プレイする側としては迫力ある大画面(上部2/3)で高速な3Dダンジョン描画の方が、体感的にもインパクトが大きいです。
まぁ、近代建物系の3Dダンジョンなら、明るいので先まで見えないと逆に不自然かも知れませんが…。
では、2歩先までの描画なら、なぜパターンが抑えられるのか?
具体的に説明すると、まず、平面図にb付け分かりやすくします。
次に、平面図に付けたbノ対応する様に、3D図にもb付けます。
これを見てもらえれば分かりやすいと思いますが、見える範囲を広げると、色分けしたエリアが細分化されどんどん増えていきます。
管理が大変といった意味お判りいただけたでしょうか?
では、次回は各パターンを考えます。
2023年06月07日
進路について
いよいよ高校3年生…。
進路について、考えなければならない学年なのですが…。
相変わらず、ゲーム制作を続けていました。
勉強もせずに!
私が通っていた高校は一応進学校でしたので、就職と言う選択肢はありませんでした。
就職組は、学年でも家業を継ぐ2名ほどだった覚えがあります。
大学へ進むか、はたまた専門技術を学ぶために専門学校へ進むか…。
今と違い、昔はそれなりの学力がないと大学へ進むことはできませんでした。(ボーダーフリーなんてなかったです。)
まぁ、他県には偏差値の低い大学もあるにはありましたが…。
私は数学が得意で、テストでも90点以下を取ったことがないくらいでしたが、それ以外の教科はボロボロでした。
(そりゃ勉強していないから記憶教科は、お察しの通り。)
特に英語。
「何で日本にいるのに英語なんか話さなきゃならんのだ!」って言ってた口です。
となると当然、全教科を学習しなければならない公立は無理です。
家の事情もあり家を出ることが出来なかったので、通える範囲にある大学は無理な国立大学か、私立文系大学、若しくは専門学校しかありませんでした。
と言う訳で、私はほぼ迷わずコンピューターの専門学校へ進むことを決めました。
その当時、コンピューター技術者が慢性的に不足しており、就職に有利になると考えたからです。
それに、プログラミング仲間がたくさんいるだろうと、根拠もなく思っていたりもしました。
2023年06月06日
他のツール集
現在、ツール集として「SPRITE EDITOR」「FONT EDITOR」「MAP8 EDITOR」の3種類を公開しています。
実は、開発したツール集は全部で9種類あります。
残りは
タイトル | 用途 | |
1 | MAP16 EDITOR | 16×16キャラクタ用マップ制作ツール |
2 | TONE ORGAN | ただの電子ピアノ、音がPSGでオルガンぽい |
3 | VOICE RECORDER | 音声合成データ作成ツール |
4 | COPY TOOL | フロッピーディスク複製ツール |
5 | GRAPHIC TOOL | 直線描きに特化したグラフィックツール |
6 | ILLUST TOOL | SCREEN5裏画面保存ツール |
「MAP16 EDITOR」と「TONE ORGAN」のみ、今後公開予定です。
「VOICE RECORDER」は、当時流行った音声合成用のツールで、ラジカセからセリフを録音し、MSXにセリフをしゃべらせるツールです。(コンパイルの「魔導物語」などが有名)
今公開しても需要がないので非公開です。
「GRAPHIC TOOL」はMSX2以降用の、直線描きに特化したグラフィックツールです。
当時、私のSCREEN5でグラフィックを描く時の手順は、
@紙に絵を描いて、サランラップに描き写します。
Aそれをモニタに貼り付けます。
Bサランラップの元線を、グラフィックツールでなぞって描いていきます。
だったのですが、グラフィックツールで元線をなぞる時直線を使うのですが、通常のグラフィックツールだといちいち直線ツールを選択しなければならず面倒くさいので、直線に特化したツールを制作しました。
ケベロンシリーズはこのツール使って描いていました。
こちらも需要がないので非公開です。
「ILLUST TOOL」は、MSX2以降用のSCREEN5の裏画面のデータをカラーパレット調整し保存するツールです。
例えば、あるゲームの裏画面の画像データを見たい時に使います。
用途的に怪しいので非公開です。
「COPY TOOL」は、単純なフロッピーディスク複製ツールです。
こちらも需要がないので非公開です。
まぁ、色々作ってたんだなぁと思います。
2023年06月05日
制作ゲームタイトル一覧
過去制作したゲームタイトルを一覧化しました。
イメージディスク化に成功したもののみです。
今後公開していくタイトルの予定表みたいなものです。
年 | 年 | タイトル | ジャンル | 公開 | |
1 | 1986 | 1 | STAR FIRE | シューティング | 済 |
2 | 1986 | 2 | INVIT BLOCK | アクション | 済 |
3 | 1986 | 3 | A INVIT | シューティング | 済 |
4 | 1986 | 4 | STAR SHIP | シューティング | 済 |
5 | 1986 | 5 | CAR RACE | レーシング | 済 |
6 | 1987 | 1 | LOSE MAN | 迷路 | 済 |
7 | 1987 | 2 | GOLD MAN | アクション | 済 |
8 | 1987 | 3 | MOGRA | アクション | 済 |
9 | 1987 | 4 | A INVIT2 | シューティング | 済 |
10 | 1987 | 5 | SUPER ARROW | アクション | 済 |
11 | 1987 | 6 | SUPER ROBOT | シューティング | 済 |
12 | 1987 | 7 | BOUND | スポーツ | 済 |
13 | 1987 | 8 | SUPER SHOT | 射撃 | 済 |
14 | 1987 | 9 | POP & POP | アクション | 済 |
15 | 1987 | 10 | SUPER APPLE RUNNER | アクション | 済 |
16 | 1987 | 11 | SECRET | シューティング | 済 |
17 | 1987 | 12 | POP | シューティング | 済 |
18 | 1988 | 1 | SPACE | アクション | 済 |
19 | 1988 | 2 | TOWER | アクション | 済 |
20 | 1988 | 3 | SECRET2 | シューティング | 済 |
21 | 1988 | 4 | WONDER BOY | パズル | 済 |
22 | 1988 | 5 | UCHIAI | シューティング | 済 |
23 | 1988 | 6 | DRAGON | アクション | 済 |
24 | 1988 | 7 | POP2 | シューティング | 済 |
25 | 1988 | 8 | FLOGER | アクション | 予定 |
26 | 1988 | 9 | BATTLE FIELD | シューティング | 予定 |
27 | 1988 | 10 | ALIEN | アクション | 予定 |
28 | 1988 | 11 | TETRIS | パズル | 予定 |
29 | 1989 | 1 | DRAGON BUSTER | ロールプレイング | 予定 |
30 | 1989 | 2 | SOLGER | シューティング | 予定 |
31 | 1989 | 3 | GALAXY WARS | アクション | 予定 |
32 | 1989 | 4 | PACMAN | アクション | 予定 |
33 | 1990 | 1 | VOLLEY | スポーツ | 予定 |
34 | 1990 | 2 | PENGUIN | スポーツ | 予定 |
35 | 1990 | 3 | TETRIS-S | パズル | 予定 |
36 | 1990 | 4 | MOGRA2 | アクション | 予定 |
37 | 1990 | 5 | SPRITE EDITOR | ツール | 済 |
38 | 1990 | 6 | FONT EDITOR | ツール | 済 |
39 | 1990 | 7 | MAP8 EDITOR | ツール | 済 |
40 | 1990 | 8 | MAP16 EDITOR | ツール | 予定 |
41 | 1990 | 9 | TONE ORGAN | ツール | 予定 |
42 | 1990 | 10 | VOICE RECORDER | ツール | 無 |
43 | 1990 | 11 | COPY TOOL | ツール | 無 |
44 | 1990 | 12 | GRAPHIC TOOL | ツール | 無 |
45 | 1990 | 13 | SAVIOUR | シューティング | 無 |
46 | 1990 | 14 | VS ー秋の大運動会ー | シューティング | 無 |
47 | 1991 | 1 | 戦国学園 | シミュレーション | 無 |
48 | 1992 | 1 | ケベロン ー勇者誕生ー | アドベンチャー | 予定 |
49 | 1993 | 1 | 激走 | アクション | 予定 |
50 | 1993 | 2 | ILLUST TOOL | ツール | 無 |
51 | 1993 | 3 | シーテット | パズル | 予定 |
52 | 1993 | 4 | ケベロン ー魔石破壊伝ー | パズル | 予定 |
53 | 1994 | 1 | グォース | パズル | 予定 |
54 | 1994 | 2 | Jump! | アクション | 予定 |
55 | 1994 | 3 | ねこにゃん | アクション | 予定 |
おおー、意外に多いですね!
因みに、この表に記載していない物も含めると70本以上のプログラムを作成していました。
未記載の原因の大半は、未完成。
どんどんグラフィックやBGMに凝って行った結果、1本のゲーム製作にかかる期間が延び、集中力が持続できなくなり、完成しないゲームが増えていきました。
こうしてみると、1989年の制作が少ない!
後日「MSX回顧録」でも書くことになると思いますが、まず、国家資格試験が4回ありました。
当然この勉強にかなりの時間を取られています。
あと、専門学校に行ってゲーム友達が出来たことで、この時期クリエイターからプレイヤーになったこと。(直接的な原因はこっち。)
翌年またクリエイターの友人が出来たことで、クリエイターに戻りますがこの頃は酷かった…。
とはいえ、ゲーム制作はしていませんがツールの製作はしていましたので、全く何も作っていなかった訳ではありません。
1989年から作り始めて、ツールとして実用化レベルになったのが1990年だったと言う訳です。(全ツール大体Ver.1.2から実用レベル)
あと、製作途中のツール使って、思いつく限りのゲームのSPRITEや、FONTデータ作りまくって、結局そのゲームの製作は開始しなかったのもこの頃でした…。
2023年06月04日
【ゲーム制作】3Dダンジョンロールプレイングゲーム 第2回
3Dダンジョンロールプレイングゲーム第2回目です。
前回EXCELで描いたイメージだと、最奥の描画が歪になるので描き直しました。(2023年5月29日記事参照「【ゲーム制作】3Dダンジョンロールプレイングゲーム 第1回」)
少し道幅を狭く見せる事で奥へ向かう角度を付けて、歪さを解消しました。
このイメージで決定します。
次に平面マップを考えます。
今回は、奇数行と奇数列を壁とするダンジョンとします。
オレンジが奇数行と奇数列です。
こうする事で、描画パターンを抑制することが可能です。
次回は3Dダンジョンの描画範囲について考えます。
2023年06月03日
Laboratory開講!
先日お伝えしておりました、「Laboratory」カテゴリ。(2023年5月20日記事参照「細かく修正D」)
ここでは、マシン語プログラミングでアルゴリズム等が難しそうな課題を取り上げ、それについて試行錯誤していきます。
とりあえず、いくつかマシン語初心者が悩みそうな(実際自分も初心者のころ悩んだ)テーマをいくつかあげました。
これらについて取り組んでいきたいと思います。
ただ、特にこの表に拘らず随時追加していく予定です。
可能な限りサブルーチン化して、ロジックの中に組み込めばいいだけの状態で公開しますので、マシン語の内容理解していなくても使えるようにしたいと思います。
2023年06月02日
作品E高校2年生最後の力作
次はこれ。
高校2年生最後の作品になるだろうと考え、力を入れて制作しました!
BIOS(CHPUT:&H00A2)が非常に遅いので、これを使わずVRAMに直接書き込む方法に変更する事で、処理速度の向上が図れました。
「POP」と比較してみれば一目瞭然。
POP(CHPUT)は全体的にもっさりしているのが分かると思います。
遂に移動する巨大ボスキャラを実装しました!
良い感じです。
高校2年生最後の作品になるだろうと考え、力を入れて制作しました!
■主な新テクニック
・巨大移動ボスキャラ実装
・キャラクタ表示非BIOS化による高速化
・巨大移動ボスキャラ実装
・キャラクタ表示非BIOS化による高速化
BIOS(CHPUT:&H00A2)が非常に遅いので、これを使わずVRAMに直接書き込む方法に変更する事で、処理速度の向上が図れました。
「POP」と比較してみれば一目瞭然。
POP(CHPUT)は全体的にもっさりしているのが分かると思います。
遂に移動する巨大ボスキャラを実装しました!
良い感じです。
タイトル | 『 POP ーANOTHER STORYー 』 | 作品 | 6 | |
内容 | 自機を操作し、攻めてくる敵を撃退して下さい。 | |||
操作方法 | タイトル画面でタイトル文字(POP)の色が点滅しだしたら、「スペース」バー若しくはAボタンでゲーム開始 開始させたコントローラーで操作します 「←」「→」カーソル若しくは十字キーで、自機移動 「スペース」バー若しくはAボタンで、弾発射 | |||
対応機種 | MSX1、MSX2、MSX2+ | 製作年 | 1988年 | |
ダウンロード | リンク先へ | ジャンル | シューティング |
※ゲーム内のキャラクタ、音楽は制作当時の物です。 公開前提に製作していないため、雑誌等から流用している物もあるかも知れませんので、著作権侵害の恐れのあるものは、ご連絡をお願いします。 |
2023年06月01日
ハンドアセンブル
昨日も書いた通り、私はハンドアセンブルでずっとマシン語のプログラミングをしてきました。
ここまでのサンプルプログラム等を見ていただければすぐに解ると思いますが、BASICにDATAでマシン語コードを書き、POKE命令でメモリに書き込む方法です。(2023年5月13日記事参照「SPRITE EDITOR 活用方法」)
確か「BASICマガジン」でこのやり方を覚え、それ以来ずっとこの方法でやってます。(2023年3月28日記事参照「いざ、プログラミング!」)
この方法は、特にツールが要らないので手軽にできるメリットがあります。
逆に、マシン語コードは16進数(2進数)なのでコードを覚えるのが大変なのと、後で見直す時、コメントがないとプログラムを追い難いデメリットがあります。
ハンドアセンブルで特に大変なのが、飛び先指定です。
アセンブラ言語だとラベルが使えるので、ラベル指定しておけばアセンブルした際、自動で飛び先変更してくれますが、ハンドアセンブルだと、いちいち指定しないといけません。
一番面倒なのが、機能変更等でプログラムの途中にコード追加になった時です。
プログラムの間にコード追加するとアドレスが変わってしまい、飛び先が全部変わってくるので絶対にしたくありません。(と言うか、長いプログラムで最初の方に追加となるとまず無理!)
なので、その時は追加になったプログラムを無理やりサブルーチン化するか、最後に追加して本来入れないといけない部分から飛ばずかの2択でやっていました。
これをやると、後から追うのが尚一層困難になってしまうので、可能な限りサブルーチン化していました。
今からマシン語を始められる方は、小さな部品的なルーチンならハンドアセンブルでいいと思いますが、長いプログラムを書く時はアセンブラ言語を使う事をお勧めします。