ADVENT CALENDAR

頑張らないゲーム作り

By キノ子

これは AmusementCreators 2020 アドベントカレンダー の 18 日目の記事です。

こんにちは!キノ子です 🍄

この記事では、

「チュートリアルに沿ってゲームを作るのは出来たけど、いざ自分でオリジナルを作るとなると何していいか分からない…」
「せっかく作り始めても完成までたどり着かない…」

という悩みを持つゲーム制作初心者を対象に、いかにハードルを下げながら完成までこぎつけるかについて、へっぽこゲーム制作初心者の私の制作過程を振り返りながら紹介していきたいと思います。

はじめに

突然ですが、私はプログラミングがあまり得意ではありません。
AmCr に在籍して 3 年目ですが、今回制作した「BlackJack!!」が個人製作のゲームとしては実質 2 作目となります。

1 作目となる「たこシューティング」は AmCr 入りたてほやほやの時期に先輩に教えてもらいながら、ほとんど言われた通り意味もよく分かってないままコードを書いてなんとか完成させたものでした。0 今回の記事では、そんな自分が今年の1 週間ゲームジャムにおいて初めてイチから作った「BlackJack!!」の制作を通して、ゲームを完成させるために重要(だと思われる)なポイントについて書いていきます。

BlackJack!!

🍄 取り組みやすいテーマにする 🍄

ブラックジャックのすすめ

さて、ゲームジャムが始まり、何を作ろうかと悩んだ末、トランプゲームのブラックジャックをテーマに作ることにしました。
これには、いくつか理由がありますが、 大きくはルールが簡単だからです。

しょっぱなから独創性のあるゲームが作れたらとても良いですが、自分の力量では考えるだけ考えてちっとも手が付けられないのがオチなので、まずはすでにルールが確立している遊びをどうゲームに落とし込むかを今回の目標として、ゲーム作りの練習をしようと思いました。

このような目論見を持っている場合、ブラックジャックというゲームのルールはとても簡単でありながら拡張性が高いので、実にぴったりです。

ブラックジャック(英語: Blackjack)は、トランプを使用するゲームの一種。カードの合計点数が 21 点を超えないように、プレイヤーがディーラーより高い点数を得ることを目指す。(Wikipedia 参照)

詳しくは色々ありますが、ブラックジャックにおいて一番基本となるルールは21 に近いほうが勝ち、越えたら負けのみです。
さらに、CPU(ディーラー) の挙動も17 以上になるまで引く、ただこれだけです。

めちゃくちゃシンプルですよね?

さらにさらに、基本ルールの開発に余裕があった場合、A は 1 か 11 どちらか都合の良い方で数えられるルールや、スプリット・ダブルダウンといった掛け金に関するルールなどの追加ルールを実装すれば完成形を保ったまま無理なく己の限界に挑戦することができます。1 なんだか作れそうな気がしてきました。

🍄 無理のない計画を立てる 🍄

開発可能期間全体を残り時間として考えない

じゃあさっそく実装を…の前に。

今回、絶対に完成させることを第一に、作り始める際にだいたい 1 週間のうちで 3 日~ 4 日目までをゲームロジックの実装、残りを UI の実装その他微調整の時間として設定しました。

どうせよく分からないバグに苦しんだりして、おおかたゲーム開発は予定どおりには進まないもの。これでもかと時間に余裕を持っておきました。

結果的にその見積もりは現実になり、プレイヤーの勝利条件に抜けがあって勝ってるのに負ける場合があったり、描画の仕様を知らず手札が消えるバグが発生したりと全然順調にいきませんでした。

🍄 まずは必要な要素を考える 🍄

千里のコードも1行から

ブラックジャックに必要なクラスを考える上で、まずはカジノテーブルを想像して、そこからゲームを進めるために必要なモノを挙げていきます。

まずプレイヤーとディーラー、この人たちは絶対に必要ですね。
彼らはそれぞれ手札を所有しています。

山札は最悪無くてもいけそうですがあると良さそうでしょう。

手札と山札、これらは何から出来てるのかというと、トランプカード 1 枚 1 枚から構成されています。

こんな感じでぽろぽろ考えていくと、どうやら最低限ブラックジャックに必要なクラス構成はざっと次のようになりそうです。

  • Player : プレイヤークラス
    • Hand(手札)メンバを持つ
  • Dealer : ディーラークラス
    • Hand(手札)メンバを持つ
  • Card : カードクラス
    • No(数字)と Mark(図柄)[^mark]メンバを持つ
  • Deck : 山札クラス
    • Card の Stack を持つ [^mark]: 本当はトランプの図柄のことは Suit と書くのが一般的らしいです。BlackJack!!では Mark にしてたので、ここでも同じように書いてます。

このままでも良い感じですが、Player と Dealer は手札を持つ点は同じなのでまとめてもよさそうですね。
実際に、BlackJack!!のなかでは Player と Dealer の上に PlayerBase という抽象クラスを作って共通化していました。

ここまで構造化できたらあとは小さな部品から作っていくのみ。全体から考えてしまうと果てしない道のりにウゥッとなりますが小さく分解して優先度順に、不可欠な処理から作ることを考えていきます。 これはゲームだけでなく、一般的なコーディング全般にいえるんだと思います。

ちなみに私は最近これに気が付きました。まだ上手くできないです。
判断が遅いッ!!(バチーン)

🍄 UI にかける時間は予想の倍かかる 🍄

こったほうがいい、でもこりすぎない

BlackJack!!ではゲームロジックの部分と UI の部分をほぼ分けて実装していたので、ゲームロジックの実装がある程度終わった段階では、コンソール上でテキストだけのブラックジャックが遊べる状態でした。

ここからカードやスコアを表示し、背景、タイトルロゴや BGM などを差し込んでいきます。私はお絵描きが好きなのでこりだすとすぐ自分で全部手描きするほうへ走ってしまって終わらない素材作りに泣きがち2なので、今回は描かない UIを念頭に置いて、なるべく楽をするように作っていきました。 楽をする、というのは具体的に、

  • フォントを変える
  • フリー素材を使う

このあたりが重要かなぁと思います。

フォントを変える

これはめ~ちゃめちゃ大事です。今回の記事でこれが一番言いたかったと言っても過言じゃないくらい。
良い感じのフォントに置き換える、それだけで一番簡単に効果的にぱっと見の完成度があがります。

おすすめは、有料ですが Adobe Fonts です。
たくさんフォントが一括で商用利用が許可されているのでゲーム制作にも使用することができます。 ただし、ライセンスの規約上、動的なフォントとして使うことはできない3ので、ラスタライズののち、画像として差し込む必要があります。

私の場合、Adobe Illustrator(イラレ) を契約しているので、イラレを使って図形やテキストを組み合わせて素材を作成しています。4

Adobe Fonts 使えないよー!という場合や、スコア表示などで動的なフォントを埋め込みたい場合はフリーフォントで良い感じのを探すという方法もあります。5 おすすめはM+ FONTSです。

ただ、フリーとひとくちに言っても、その利用規約はさまざまなので「営利目的の利用はダメ、でも同人製作なら良い」「埋め込みはダメ」など色々あるのでよく注意しておかなければいけません。

こういうのが面倒な場合は Adobe Fonts のようなサブスクリプションを契約するか、買い切りのフォントパックを買ってしまうのも手です。6

「いかにもプロトタイプ風」から抜け出すには、絶対にフォントは妥協しない方が良いです。

話が少しそれましたが、とにかく、完成度を手っ取り早くあげる、そして UI 作りで楽をするためにまずはフォントを変えてみるのが良いと思います。

フリー素材を使う

ゲームを作る際、どうしてもロジックの実装で力尽きて殺風景な UI のまま完成、としてしまいがちですが、それは絶対もったいないです。

人間、ぱっと見て分かりずらいものだったり、地味なものには無慈悲です。せっかく面白いゲームを作ってもまず起動してもらわないと面白さもクソもないです。
しっかり目に止まる努力をしていきましょう。

その上で、フリー素材は手軽にかっこいい UI を作るために極めて有効です。

BlackJack!!ではイラストや BGM のほとんどがありがたいことにフリー素材でできています。特に、トランプカードは全ていらすとやさんの素材を利用させていただいています。7

最近は色んな人がフリーで色んな素材を出してくれているので、これもよくよく利用規約を守って使っていくと速くかつクオリティの高い UI を作ることが出来ます。

自作するにしてもイチからではなく、使えるものは使っていきましょう。

まとめ

こんな感じのポイントを意識して、1週間ゲームジャムで BlackJack!!を制作しました。

もちろん反省点は多々ありますが、当初の目標であった 「なんとか完成までたどり着いてイチから作ったゲームを出す」というのは達成できたので、とても学びの多い作品でした。 これからもこの調子でぼちぼちゲームを作っていきたいなぁという所存ですね。

この記事が、ゲーム制作初心者の人の一助となれば幸いです。


  1. BlackJack!!では前者のみ実装しました。 [return]
  2. リメイクたこシューティングの話。 SE 以外は背景もたこも全部手描きして、BGM も自分で打ち込みました。しんどいけど楽しかったです。 [return]
  3. 詳細は Adobe のライセンスに関するページを参照してください
    フォントに関するよくある質問 | Adobe

    [return]
  4. 今までは CLIP STUDIO(クリスタ)というお絵描きソフトでテキストの挿入やテキストの枠作成を行っていたのですが、餅は餅屋ということで、基本的にオブジェクトを配置するという動作しか必要としていない場合はイラレが便利です。 [return]
  5. 現在の Altseed2 では対応フォント形式が ttf のみなので、使おうとしてるフォントが ttf なのか otf なのかよく見てから選びましょう。 [return]
  6. フォントパックはとても高額になりがちですが、ありえないぐらいのセールをやっている時もあるので積極的に探すと良いと思います。 [return]
  7. いらすとやさんの素材は「営利目的の利用は NG」なので、もし利用する際はいらすとやさんの規約をよく読んでから利用してくざい。 [return]

SHARE THIS POST