ならないようにそれぞれのファイルをつくりましょう。私は一旦紙に何が何を使うか書いてみてから書き直しました。「依存関係」とかでググるといいのかもしれません。固定だと思っている数でも変えるときがあるからちゃんと名前つけてまとめよう表題の通りです。主人公や敵の走る速さやジャンプの強さなどは最終的には一定ですが、作っている最中にはイメージに合うように修正し続けて、理想に近づけていきます。修正する際、一か所を修正するだけならいいのですが、よく使う数字であればあるほどプログラム中の他の箇所に頻出するので、あらかじめ1つの定数*13を作っておいて、その定数の値を変更すればそれが使われている箇所全てに反映されるようにしておけば楽です。私はそれを一部しなかったので面倒でした。作ったときにはこの値で決定やろと思っているような数でも変わる可能性がある、と思っておくのが良いのでしょう。後述って書いてしまったので記述します。長所としては、Python自体が行数少なく楽に書ける言語ということもあり、他の言語(特にC++、C#、その他)で同じようなことをするより楽だとは思います。短所は上で挙げた効果音の遅延(直りますが)、Unity*14等に比べて一から作っていく必要があるなどがあります。加えて、そこまでメジャーじゃないのが痛いかもしれません。メジャーであればあるほど、詰まったら詰まったところでGoogle検索をかければ答えが出てくる確率が上がりますし、サークルなどのコミュニティ内でメジャーであれば周りの人にも聞けますが、マイナーだと言わずもがなです。情報がないわけではありませんし、ドキュメントの日本語訳があったりもするのでそこまで気になるわけではないです。あとPythonは処理が遅くなる傾向がありますが小さいゲームなので実感できませんでした。重いゲームには不向きだと思います。記述したのでプログラム編を終わります。一応全部ひとりで描きました。ドット絵(風)はほぼ初挑戦だったため、昨年冬のコミケで日高重工様が頒布していたドット絵マチュアテクニックという冊子を参考にさせてもらいました。今から入手できるのかなこれ...と思ってたらできるようです。アンチエイリアス」等でググると情報が出てきそうです。色数?の概念を失っていたり色々とドット絵警察に怒られそうな方法をとってしまったので謝っておきます。クリスタ*15で自由に描き倒した絵を解像度低いだけでドット絵風と言い張ってすみません...。主人公や周辺のデザインは、元々「敵を避けるゲーム」ということで素早くかわしていくイメージがあったので、速い動物を参考にしようとググったところハヤブサが出てきたので、ハヤブサにジェット噴射しそうな物体をつけて、ところでこいつ何があってそんなに避けてるんだと考えると謎の組織に追われてるイメージが浮かび、謎の組織は宇宙にいるイメージがあり、宇宙を舞台にするなら宇宙人っぽいのを描こうとし、あとは適当です。連想ゲームは大事ですね。ペンギンが出てるのはペンギン・ハイウェイの影響です。タイトルやUI(ユーザーインターフェース。選択肢とかHPバーとか。選択肢を光らせたかったので「星」とかでググって光り方を見ました。「〇ボタンでタイトルへ」とかを全部描いたり、小学生でもできるゲーム*16を目指したので字は全部ひらがなとカタカナ(もしくはフリガナをつける)で書いたり、出来るだけ親切にしようと心掛けてはいました。出来なかったこととしては、キャラに統一性をもたせる*17、HPバーや選択肢などに動きをつけたりして目立たせる、ボスのUFOの下から手かなんかを出してばいきん〇んみたいにしてうねうね動かす、などです。いうことが思い浮かばないので絵編を終わります。ゲームデザイン編ゲームデザインってなんだと言われると俺には説明できないです。ここではどのような意図でどのような敵を作りどのような意図でどのように置いたのか、などの話をします。今回の主人公は走ると跳ぶ(二段ジャンプまで)の他、穴を掘る、横に自分の身長の1.5倍ほど瞬間移動するという操作が可能です。そのため普通の敵(乗っても倒せない〇リボー)の他、これらの操作を使わせる敵を用意します。幅のある敵は瞬間移動一回では当たってしまうのでジャンプするしかありませんし、縦に細長い敵は瞬間移動してすり抜けるしかありません。穴を掘れば全部避けられるといわれそうですがそんなこともあろうかとペンギンを地下に徘徊させています。地上に大量の敵が押し寄せると、同時にペンギンが退くので、穴を掘って冗談のような敵の大軍をやり過ごせます。gyazo.comgyazo.comgyazo.comまた、途中で左側から敵が出てきたりします。出すほうは簡単ですが、プレイする側、特にマリオなどの横スクロールアクションの経験者は、敵は右側から出てくる*18と思い込んでいるかもしれない。そのため安全地帯だと思っていた左側に主人公を待機させているところに、敵が出てきて大幅にダメージを受けて死ぬ。なると何とも理不尽なので、なんとか右側に主人公を誘導(敵をいくつか出すと避けると同時に右に移動してくれるかなあ)してから左から敵を出している...つもりではいますがどうなんでしょうね。このゲームにはスクロールという概念がなく、限られた(しかも平坦な)フィールドで多様なアクションを楽しめなければいけません。このために、gyazo.comgyazo.comこうします。上に乗ってもダメージを受けない敵を用意し、大量に散らして疑似的な横スクロールを実現します。自分で考えたかのように言ってますがアンダーテ...何でもないです。飛び石に一つ一つ飛び乗っていく緊張感(緊張感は開放感(快感)を増幅させる!!)に加えて、最後には敵で山(マリオの1-1にあるようなの)を作り、緊張感を極限まで高め、反対に切り抜けた時の達成感/開放感を高めています。このゲームには最後にボスがいるのですが、ボスも同様に最後のみるからに苛烈な(理不尽な)攻撃によって開放感を高めます。このようないくつかの敵やアイデアを後は(ほぼ)難易度順に並べたら完成です。難易度を段階的に上げていくことと、逆に途中で難易度の起伏を設けて開放感を出すことが大事です。反省点としては、上に乗れる敵が上に乗れる敵だと気づかれないことが挙げられました。一目でそうとわかるデザインにする、誘導をきつくする(あまりにもあからさまにするとあからさまですが)、などの方法が考えられます。ボスが理不尽なのはサ〇ズのせいです。完成したのでゲームデザイン編を終わります。曲は書いてません曲は自分は書いていませんが、無音を貫くわけにもいかないので頼んだり拝借したりしています。bu4)という部員がいて、彼にBGMとゲームオーバー、クリア時の音楽を乞いました。ぶくんがn晩でやってくれました。gyazo.comこれだけでイメージ伝わるんかという問題が残ります。これ以外にも部内のチャットツール*19にスクショを貼り付けまくっていたので、ゲーム画面のイメージは理解されているだろうという体ではありますが、伝えるイメージがいつも画面上にあるとは限らない*20のでもっと器用に伝えていかないとな、という気持ちです。加えてこのゲームには一定時間後に終わりがあるため、BGMがあまりに長いと聞いてもらえないということを失念しかかっていました。大まかに長さを指定しておくべきだったかもしれません。効果音を調達する効果音は魔王魂様のものをお借りしています。周りに効果音サイト聞いたのに結局使ってなくてすみません。効果音に造詣が深いわけでもこだわりがあるわけでもなかったのですが、いざ探してみると思ったような効果音はなかなか見つかりませんでした。無料で最適な音を見つけようというのも虫が良すぎるのですが、それを改めて実感した出来事です。音量も少し問題になりました。効果音が小さすぎたり大きすぎたりして、はじめはPygameに音量調節をする関数があるだろうと勝手に思っていたのですが、BGMの方にしかない...と思って今探したら普通にありました。俺の努力はいったい......。音量を上げることは出来なさそうなので、上げたい場合は各種ソフトを利用しましょう(私はAudacityというものを使いました)。できるようになると一瞬でできるはずなのですがそこまでが微妙に面倒で、音量上げたいだけやのになあという愚痴がこぼれます。音量を上げたら上げたで音割れビームだのなんだの言われましたが音割れポッター同好会との関連はありません。音楽の知識は何もないので終わります。完成ということで完成です。おめでとうございます。ありがとうございます。今後のinonoa今後の私とかどうでもいいとは思いますがとりあえず書きます。ステージをつけたいです。華麗に敵を避けながらステージ上を走り回るイメージを本来はしていたので、1ステージでも作れないかなと妄想中です。今それとは別に「川を下るゲーム」を構想中です。来年の11月祭には完成していることでしょう*21。