投稿記事

SlashRushの記事 (5)

kotaro / 俺時空 2024/06/01 21:05

SlashRush #5 / ステージの表示

やっと進捗が発表できるぞ

お久しぶりです。
今回はやっとこさSlashRushの制作がまともに進み始めたので、進捗を公開しようと思います。
不定期更新とは言えどエターナらないように頑張ります。

見せてもらおうか、進捗とやらを

今回の記事で発表する進捗は「ステージの表示が出来るようになった」ということです。
まあ見てもらった方が早いですね。


こんな感じでステージを表示できるようになりました。
一応スクロールもできるのですが、昔のドラ〇エとかF〇みたいにカクカクしてます。
RPGとかならこの方式のスクロールでも良いのですが、SlashRushはアクションゲーム。滑らかなスクロールの方が目も疲れないし遊びやすいです。
まあそれは後々実装することになるので、とりあえず今はステージが見えるようになったぞということだけ。

これからやること

ステージの表示が出来たのは良いものの、裏を返せばそれだけしか出来ていません。
操作できるキャラクターもいないし、本当にただステージを眺めることしかできません。
ということで、これからやるべきことをいくつかまとめましょう。計画性は大事ということを過去の自分が立証しています。

優先度高

  • 操作キャラクターの制作
    やっぱりこれは大事です。
    ステージが出来たのなら、そのステージを動き回ることのできるキャラクターが欲しいです。
    ゲームとしても重要な存在ですからね。優先度は高いです。

  • 判定周りの実装
    ステージが出来ても、当たり判定が存在しなければただのハリボテです。
    操作キャラクターを作ったとしても判定が存在しなければ無限に落ちていってしまいます。
    これも必須なものなので、早めに取り掛かりたいですね。

  • システム周りの実装
    移動したときに画面がスクロールするとか、エリアを移動したときに画面が遷移するとか。
    ゲームとして重要なシステム部分の実装は早めに取り掛かる必要があります。
    なんせこれがないとテストプレイすらできませんからね。

    優先度中

  • ステージギミック等の制作
    ただステージが存在するだけではお散歩ゲームと何ら変わりません。魅力的な敵やギミックの存在こそがゲーム性を引き立てるものです。
    リメイク前に存在していたものを流用する予定なのでそんなに手間はかからないと思いますが、優先度で言うとやや低め。
    ある程度基礎的な部分が固まってから取り掛かっても良いでしょう。

  • ステージ関係の調整
    リメイク前、ステージ関係のプログラムにいくつか不具合がありました。
    これらを修正し、調整を加えることでより完成度の高いゲームにしたいです。
    これもある程度完成が近づいてからで問題ないと思います。

    優先度低

  • プログラムの最適化
    最適化という言葉を使いましたが、可読性の向上とか重複処理の修正とか、とにかく書いてるコードをより良いものにするための作業ですね。
    これはそもそもコードがある程度完成していないと修正もクソもありません。この作業を行うのは結構後の方になると思います。
    とはいえ重要な作業であることには変わりありません。プレイヤーの目には見えないところで、ゲームの改良は行われるものです。

  • システムの改良
    今実装出来ている場面の切り替えやステージの表示。ネットの知識を見よう見まねで実装しているため、結構ごちゃごちゃしたコードになっています。
    これらを修正、改良し、扱いやすいコードにするという作業です。
    正直個人製作のゲームなので自分さえ分かっていればどうとでもなるのですが、やっぱ掃除って大事じゃん?

専門的なお話

普段ゲームを「遊ぶ側」の方にはあまり縁のないお話をさせていただきます。
上の方で優先度低としたシステムの改良ですが、これはあくまで「ゲームとして遊べる状態までもっていくための優先度」として書いています。
つまり、システム自体動いてはいるので優先度低に入っているわけですね。
でもね、僕としては早めに改良したいの。

たとえばステージの表示。これめちゃくちゃ力業で実装しています。
具体的に言うと、30行100列くらいの二重配列に対応するマップチップの番号を入れてます。 気が狂う。
手っ取り早いのはCSV読み込みとかなので、このあたりのコードを早めに実装しておきたいですね。後が楽なので。
あとはシーンの切り替えですね。これはネットで調べたものを見たまんま実装しているのですが、僕があんまり理解できていません。 やばい。
ある程度関数とかの動きは理解しているのですが、じゃあ自分がやりたいシーン遷移をこの方法で実装できるかと言われたら無理です。
とはいえ素人並の僕でも「便利なもの」であることは分かるので、なんとか扱えるようにしたいですね。

おわり

こんな感じでした。なかなか忙しい日々を送っているので、不定期更新とした昔の自分を褒めてあげたいですね。記事の読者様からしたら定期更新の方がありがたいとは思うのですが…
次回の進捗は、おそらくプレイヤー関係か、ステージ関係の話になると思います。
今のところ目立ったバグなどは発生していないので、このまま何事もなく制作が進むことを願いましょう。無理だろうけど

それじゃ、またね。

kotaro / 俺時空 2024/02/03 16:30

SlashRash #4 / タイトルとか作った

進捗どうですか?

まあタイトル通りなんだけど、一旦区切りがいいとこまでできたと思うので進捗報告。
最初の方に不定期更新とか言ってた気がするけど、なんだかんだ続いてるね。えらいぞ♡

どこまでできたの?

タイトルと、ステージ選択。ここのシステムはほとんど完成してる。
え、それだけ?と思われるかもしれないけど、結構大変なんですよ。
DXライブラリとかやったことないクラス設計とか、初めて触る要素が多いので割と手探り状態だし。
まあそれなりに頑張って、ちょっとずつではあるけど進んでるよって状態です。

次に作るもの

ようやくゲームのメイン部分に触れられそうです。一番楽しそうなところ。そして一番大変そうなところでもあります。
具体的にはプレイヤーの実装、並行してステージ制作になりますかね。
旧SlashRushからコードの流用ができる可能性があるとはいえ、リメイクということで多少手を加えると思うのでね。
僕のやる気次第で原型をとどめていないレベルになるかも。コードが。
後のことを考えながらコードを書いていると、「こうした方が効率的だな」とか「こういう機能あったら便利だな」とか延々と出てくるんですね。
んでそのたびに必要な技術や知識を調べる。これがまあ時間かかるんですね。
特にゲームのプレイ中周りの処理はそういうのが多い。いろいろやりたくなっちゃう。
まあだからと言って妥協するのは性に合わないのでね。ぼちぼち頑張っていきます。

コードの勉強、いる?

これは余談ですが、なんでわざわざ知らない方法使ってプログラミングしてるんだと。ゲームが作れるくらいプログラムが出来るなら勉強とかいらなくないかと。

旧SlashRushが完成している時点で、全く同じものなら難なく作れるんですよ。
じゃあなんで難しそうな技術を勉強してたり調べたりしてるんだ。
わざわざそんな面倒なことしなければ、リメイクなんてすぐにできたんじゃないか。
答えは、「俺がやりたいから」
プログラミング的には、クッソ見づらいコードを書いていた自覚があるので直したい。ついでにもっと良いコードを書きたい。
ゲーム的には、結構気に入ってるゲームなのでさらにブラッシュアップしたり新要素の追加をしたい。あと世に出したい。
ということで、勉強というのはやりたいことをやるために必要なんです。
正直なところ、世に出すだけだったら一週間くらいでできたと思います。でもそうしないのは、単純に自己満足のため。
僕の行動原理なんてそんなものです。

おわり

という感じでした。どうせ作るならクオリティの高いものにしたいよね。
あと、次のSlashRushに関する記事はマジでいつになるかわかりません。
やりたいことを実装するのにだいぶ時間がかかる見込みです。まあ不定期更新なのでね。気長にお待ちいただければと。
なんか「不定期更新」が逃げの言葉になってしまいそうでやだな…

それじゃ、またね。

kotaro / 俺時空 2024/01/30 23:19

SlashRush #3 / シーンの実装

タイトル通り!

タイトルの通り、シーンの仕組みが実装出来たという報告です。
有言実行えらいぞ♡
正直もう記事終わっていいんだけど。

くわしく

今回実装出来たのはシーンの仕組み部分。
どういうことかというと、複数のシーンを用意することが出来て、シーンの切り替えもできるようになりました。
逆に各シーンの内容は未着手の状態です。
タイトルにもゲーム部分にも「Now Loading」と書いてあります。草。

「仕組みだけ?」と思われるかもしれませんが、今後のプログラミングにおける作業効率が段違いになっているはずです。
このためにめっちゃ勉強した。知らない言葉10個くらい覚えた。
まあ、プログラムを触らない人には伝わらない部分で頑張ってたというお話です。

苦労したんですよ

いやあ、実は「シーンの実装」だけなら何度もやったことあるんですよ。
ただ今回はちょっと違う方法での実装を試みたんですね。
その結果5日くらいかかっちゃった。てへ。

今までやっていたシーンの実装方法は不正解ではないんですが、他の方法に比べて効率が悪いというものでした。
だから旧SlashRushは7,000行とかあったんですね。
なので色々調べて、なるべく効率のいい方法で実装したいと思っていました。しました。
プログラミングってね。楽をするために苦労をするものなの。掃除するために掃除道具から手作りするようなものなの。

おわり

短めですが、今回はここまで。
次回からやっとゲームの内容部分に触れられそうです。
といっても、まずはタイトルやステージ選択周りのシステムを作るところからになりそうですが。プレイ画面を作り始めるのはもう少し先かも。
まだまだDXライブラリも使いこなせているわけではないので、結構期間が開いてしまうかもしれませんね。頑張ります。

それじゃ、またね。

kotaro / 俺時空 2024/01/24 17:02

SlashRush #2 / まずやるべきこと

プログラムを書く前に

僕はいまDXライブラリに慣れていく段階にいる。
ではある程度慣れたあと、何から始めよう。
いきなり見切り発車でプログラムを書き始めても、全体の見通しが立っていなければ効率がいい方法とは言えません。
ということで整理していきます。前回も整理してなかった?

決めておくべきもの

適当にプログラムを書き始めて完成まで持っていくのは至難の業。
例えるならば、下書きをせずいきなり絵を描き始めたり、起承転結や全体の構成を考えないままいきなり小説を書き始めるようなものです。
プログラミングも同様に、下書きのようなものがあります。
下書きと言っても、ある程度大まかに「このゲームには何が必要か」「どんな機能が必要か」などを決めていくものです。
「攻撃の挙動」とか「敵の配置」などの細かい部分は省略して考えます。
今回はそれを考えていこうというお話。

  • ゲームの仕様
    仕様と言ってもプレイヤーの挙動や使用するボタンなどではなく、ゲーム全体を通したものを考えます。
    タイトル画面→プレイ画面→クリア画面orゲームオーバー画面
    のように、シーンの遷移やその順番などを整理していきます。
    最初にゲームの流れを決めてしまおうというわけですね。
    ここが決まると、どの場面で何が必要かを考えやすくなります。
  • 必要な要素
    ここでいう必要な要素とは、「その場面で必ず必要になるもの」のこと。
    ゲームが始まった場面では、必ず「ステージ」と「プレイヤー」が必要になります。
    いらないゲームもあるかもしれないけど。
    とにかく、「これがなきゃゲームが成り立たない」というものを挙げていきます。
  • 場面と要素の関係性
    これは少し難しいのですが、上で考えた要素が「どこで必要になるか」を考えます。
    例えばプレイヤーの場合、ステージが開始した場面では必ず必要ですが、タイトル画面やステージ選択画面では必要ありません。
    いや必要なゲームもあるけど。
    とにかく、「どこでこれが必要になるのか」という、要素と場面の「関係性」を整理していきます。

このあたりのことを決めることが出来れば、既にゲームの枠組みはできたと言っていいでしょう。
ここからそれぞれの要素を細かく掘り下げていったり、途中で必要なものが増えたりしたら適宜対応していく形になります。

もっとわかりやすく

ゲームに必要なものはだいたいわかりました。
しかし、小規模な物であればあまり問題はないのですが、規模が大きくなってくると複雑な関係性を構築していたりして非常にわかりづらくなります。
ということで、もっと整理していきましょう。
僕のように完全に一人で作っている場合、ちゃんと全体の流れが頭に入っているのならばわざわざここまで整理しなくとも大丈夫だったりしますが。
でも僕は頭がそんなに良くないので整理していきます。というか忘れる。

もっとわかりやすくとは言いましたが、具体的にどうするか。
今回は視覚的にわかりやすく整理する方法をとります。
それぞれの要素や関係性を図にしてみましょう。


ということで作りました。手書きでゴメンネ。
この図ではシーンの流れとプレイ中に必要な要素をまとめています。
現状、構造自体はシンプルな物ですね。
ステージ選択画面で選んだステージをプレイできる。プレイ結果によってリザルト画面へ。そしてまたステージ選択に戻るの繰り返し。
プレイ中では、プレイヤーと敵が存在します。プレイヤーと敵はお互いにダメージを与えあう存在です。
そして敵には「ザコ」と「ボス」が存在します。さらにザコとボスの中で種類がある、という感じですね。
プレイヤーと敵にはそれぞれパラメータや行動が設定されていて、それに基づいた動作を行います。移動だったり弾を飛ばしてきたりなどですね。
端の方にある「シーン」は、こういうシーンがあるよという情報を持っています。特に何かとつながりがあるわけではないんですね。

とりあえず最低限ではありますが、これでゲームの流れと要素を把握しやすくなりました。
何にでも言えることだと思いますが、やっぱり整理整頓は大事です。
僕が分かんなくなるから。

で、どうするの

ここまで整理してきましたが、忘れてはいけないのは整理することが目的ではないということ。ここで終わってはいけません。
ある程度全体の見通しを立てたということで、プログラミングではどんなメリットがあるか。
一番は、「最初に手を付けるべき場所」が考えやすくなることだと思います。
言い換えると「一番重要な部分」を考えやすくなる。
今回の場合、最初に手を付けるべきは「シーン」だと思います。
そもそも「シーン」が存在していなけば、プレイはおろかタイトル画面すら存在することが出来ません。
ということで、まずは必要なシーンを作り、それから各シーンに必要な要素を作っていく、という形でプログラミングは進んでいきます。
最初にやるべきことが分かるだけでも、プログラミングの効率が上がりますし、なにより気持ち的にもとても楽です。
みんなも整理整頓、しよう!

おわり

ということで、DXライブラリをある程度扱えるようになったらこんな感じで進めていきたいと思います。
いやーとっても気が楽。やることわかってるとすごい気が楽。
とまあ、進捗報告というよりは備忘録みたいになってしまいましたがまあいいでしょう。
実際全体の見通しを先に立てておく、というのはだいたいのものに言える大事なことですし。
次回からはちゃんとした「進捗」の報告が出来るよう努めてまいります。

それじゃ、またね。

kotaro / 俺時空 2024/01/23 17:01

SlashRush #1 / 制作開始

制作開始!

ということで、本格的にリメイク版SlashRushの制作を開始していきます。
がんばるぞー。
と言っても、本当にゲーム部分の制作が始まるのはもう少しかかりそうですが。

制作環境の構築

今回はDXライブラリを使用し、C++で制作を進めていくことにしました。
上手くいけば元のソースコードをある程度流用できるってのが大きいですね。
とりあえずパパッと「もうゲーム作り始められるで」ってとこまで構築できたので、あとはもう作っていくだけなんですよね。
今のところ順調。まあ環境作っただけなんでそりゃ順調じゃなきゃ困るんですが。

DXライブラリ?

実は僕も今回初めて触るので、そこまで深くは理解してなかったりします。大丈夫か?
超ざっくりいうと「描画関連はだいたいやってくれるツール」みたいなものです。間違ってたらごめん。
そう、初めて触るんですよ。一応リファレンスはざっと目を通しましたが、恐らく慣れるのには時間がかかると思います。
まあ描画関連も全部一から自分でやるってよりは相当楽なはずなのでね。まあなんとかなるでしょ。

制作の予定

とにかく初めて触るので、いろいろと慣れておかないといけませんね。
ある程度扱えるようになったらゲーム部分の制作に手を出し始めると思います。

最初に作るのはやっぱり操作キャラですかね。ゲームのメイン部分なので。
同時にチュートリアル用のステージも作る形になると思います。
動作確認も兼ねて、まずは主人公がステージ上を動けるようにする。
第一目標はここですね。

ちょっとした問題

リメイク版の制作にあたって、旧版SlashRushからソースコードを流用しようと思っていました。だって楽だし。
専門学校の用意したエンジンを使って制作していましたが、基本的にエンジンは描画関連を担っていたので、DXライブラリでも少し手を加えれば流用はできると思います。
問題なのは、僕が書いたコード。

main.cppに7,000行あります。

わかる人なら「うわあ」ってなると思います。僕もなりました。
旧SlashRushは、main.cppに約7,000行のコードが記述されていて、そのmain.cppだけでゲームのすべてが動いています。
例えると、数学のノートとかで絶対ノートの幅が足りないような式を無理やり詰めて書いてる感じです。見にくいしわかりにくい。
まあこれは気合いで何とかするしかないですね。7,000行とはいっても大部分は流用できそうなので、整理しながらやっていきましょう。

余談

旧SlashRushではプログラムはもちろん、グラフィック、BGMも全て自作でした。
まあそんなに出来がいいとは言えないと思いますが、なんか全部自分でやろうとしてたんですよね。
僕がこのゲームを気に入っているのは、全部自分で作ったからかもしれないですね。手間暇かけただけ愛着が沸いているのかも。
ちなみにBGMは僕のYoutubeで公開されているのですが、そもそも僕のチャンネルを見つけることが難しいというね。リメイク終わったらチャンネルの方も大々的に宣伝するかもしれないです。

おわり

そんな大した報告でもなかったんですが、とりあえず作り始めたよという報告でした。
ちなみに記事のサムネイルは旧SlashRushのタイトル画面です。CERO Zの作品だと間違えられたことがありました。草。

それじゃ、またね。

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索