設定ファイルから地図起こして地形データ当ててカーソル動かして

Pyxelがレトロゲーム風のアレコレを作るPythonライブラリなのでファミコン風のやつをつくってみたい。で、ファミコンソフトの個人的トップいくつかには入るだろうKing of Kings(以下KoK) 的なものを目指してみる。
いきなり着手するにはだいぶ複雑なものって気はする。
個人的トップに入る他のFCソフトはというと、スーパーマリオとかDQ3、初代FF、シティーコネクション、ウィザードリィ、ファイヤーエムブレムとか。

ちなみにKing of Kingsの後継というかクローンというか、そういった作品を公開しておられる方がすでにいるので、ほんとにやりたい場合はこれで用を満たすことができる。
わたしの場合は「なんかゲームつくってみたい」とかで動いているから何でもよくて、要件やらを明確に表現できる、ある程度の複雑さがあるものがたまたまKoKだったというだけで。死ぬほどやってたのよ。

ちょっと前までPygameでつくってたのだけれど、使うライブラリを変えたのでだいたいやり直し。そもそもタイトルからの遷移とかをつくっていてゲーム本編までたどり着いてなかったので、大げさなことでもない。
こちらはpygameと違ってmainのupdate,drawがブクブク太らないのでやりやすい。カーソル、地図、とか色々のパーツの中にupdateとdrawを実装して、main側で呼ぶとかでいい。何がいいって、クラス切って別ファイルで書けるようになったのが嬉しい。

想像以上にたいへん

なんか、毎日「これはたいへんだ」ばかり言ってる。

ゲーム開始のフローをざっと考えて、ゆるーーーく設計を考えていく。何が必要かな、くらい。
キャンペーン選択→シナリオ+マップデータ読み込んでゲーム開始、チームごとにターンを切り替えながらユニットの雇用や移動・戦闘をする
みたいなことをやるのだが、設定ファイルに何を書くとか、どう展開して地形のチップ並べるとか、地形に情報持たせるとか、カーソル位置にある地形の情報を取り出すとかとか。
考えなきゃいけないことが多すぎる。

たしかに職業プログラマではあるんだけど、ゲーム屋とか組み込み屋じゃないんでメインループが一生回って入力を受け付けるアプリケーションとかを書く機会はほぼない。わたしの領分はWebとバッチ処理で、Webならせいぜい「クリックしたら云々」だし、ほかは頭から尻尾まで一直線に処理していく何かだ。Webももちろん本質としてはメインループが動作してるんだが、そのへんはブラウザが持ってくれているから意識しないで生きてる。

いままでたくさんのゲームで見てきた「ちょっとした機能」が、いかによく考えて作られていたのか心底びっくりしている。凄さはやってみないとわかんないものなんだなあ。
むろんあちらはプロで、こっちは素人もいいとこだから設計のお作法もわからない。
いやー、すんごい大変。でも楽しい。
その上でクソゲーとか、まあそれはそれで評価だから別なんだけど、なんとまあしんどい世界なのか。

ゲームの設計がわからんので設計しない

経験値がないというのはマジですごく響いていて、なにしろどう設計したらいい感じなのかが見当つかない。なので真面目に設計とか一切せず、思いつくままにまずコードを書いてしまっている。
なので訳のわからんメソッドや変数があちこちに散らばって、ギリギリ循環参照を避け続ける地獄が広がっている。
なんか自分の性質なのか「一部でもいいからある程度つくったことのあるものじゃないと全容を見渡せない」てのがあり、あばら家をまず立てて改築するって手法でないとモノを育てられない。能力の限界とでもいうのか。
なので今作っているこれで失敗を粗く出して、べからず集を身につける。
この失敗の山でもって「じゃあどうしたらよかったのか」を見出して次を作り、するとまた色々失敗するので、ってループを回しながら物を作る。結局繰り返しでどうにかしているとかいう部分はある。
お仕事だとそんなのんびりと回してられないんだけど、遊びなんで。
遊びだからこそこのてのサイクルを延々とやり、設計観みたいななにかを吸収してけるのがいいのだわな。回り回って仕事にも生きちゃう。やりたくてやってることだからたぶん記憶にも残りやすい、かも。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です