【Unity初心者】DCGを作った

初心者がUnityでカードゲーム作りをしていくブログです。

1,何を勉強しなければならないの?

前置き

カードゲームをUnityで作りたいとなった時に、何も分からなさすぎてどこから手をつけていいかさっぱり、みたいな状況になると思います。
私もUnityを勉強し始めた時は、「こんなので本当に作れるようになるのか」状態でした。
ここでは、そんな状態から脱出するために何を勉強しなければいけないのかを書いていきます。

Unity

まずは当然ですがUnityの勉強です。Unity上で、カード画像はどうやってオブジェクトにするのかだとか、数値の表示はどうするのかだとか、シーンとはなんなのかとか、コンポーネントとは何ぞやだとか、とにかく扱いに慣れなければいけません。

C#プログラミング

これも当然ですがプログラミングを覚えなければいけません。何らかのプログラミング経験がある方はすんなり入れるかもしれませんが、0の状態からある程度作れるようになるにはそれなりの勉強が必要です。(私は今年で3年目になりますが技術的には1年分くらいです
UnityのC#は普通のC#と違う!みたいなことが様々なところに書いてありますが、ビビることはありません。違うだけで難しいわけではないと思います。

ネットワーク通信

オンラインでバトルしたい場合はネットワーク通信を覚えなければなりません。ただし、最近は便利なサービスが多いので、言われた通りに書くだけで数行で通信できたりします。
あと、カードゲームなのでリアルタイムでの処理を考えなくてもよい場合が多いです。思っている数倍やりやすいと思います。
ちなみにリアルタイムでの処理というと、例えばアクションゲームやFPSなどは相手の位置やモーションなどを頻繁に同期する必要があります。ただし、カードゲームはカードを使った瞬間だけ通信すればいいので、そのようなゲームほどタイミングを考えなくても良いです。
(私はそうやって甘く見てバグることが多々ありますが)
そういったものを利用しない場合はかなり難しいです。

データ保存技術

データ保存についてはざっくり2種類あって、それぞれ特徴があります。

・端末の中にデータを保存する

 →簡単に実装できる
 →アプリを消すとデータも消える
 →改変されやすいので、ランキングやレートで不正に変えられる可能性がある

クラウドにデータを保存する

 →不正されることが少ない(というかほぼ無理)
 →サービスを借りてその導入を勉強する必要がある
 →ある程度慣れ始めてからでないと難しい

オフラインのゲームだと端末に保存しちゃうのが楽ですが、オンラインのゲームだとちょっと怖いですね。
また、ネットワーク通信と同じように便利なサービスが転がっているのでそれを勉強すれば大丈夫です。

その他

例えば課金機能やTwitter連携などがその他に当たります。私はどちらもやる予定がないので説明はできませんが、ややめんどくさそうなイメージを受けます。(外部サービスの扱いやすさ次第だと思います)

学び方について

基本的に上から学んでいけば大丈夫だと思います。外部サービスを借りるのは後回しにして、とりあえずゲームを作ってみましょう。
勉強方法は本がおすすめです。まずは猫本でしょうか。これだけでそこそこ慣れると思います。

www.amazon.co.jp
ここで挫折する人が多いらしいですが、最初からカードゲームは作れません。というか、カードゲームの本がないです。少し前に下記の方がカードゲームの制作方法の動画を上げてくださいましたが、いきなりこれから入ってもわからないと思います。(慣れてきた方なら大丈夫です)

www.youtube.com
ということで、最初は全く違うよくわからないものを作るハメになると思いますが、それに耐えましょう。私が一番最初に作ったアプリは「ルーレットの画像をタッチして回し、徐々にスピードが落ちて止まる」だけの挙動しかしません。
ただし、10行程度しかコーディングしていないアプリですが思った通りに動いた時の感動は凄まじいと思います。地道に積み上げていきましょう。

読んでいただきありがとうございました。