いきなり苦言ですが、既存の大規模なゲームを真似るのは相応の技術が必要です。いまのあなたはひのきの棒を持って「どうやったら魔王を倒せますか?」と聞いている状態です。こちらとしてはそこまで実力と目標がかけ離れていると「レベルを上げて、正しい道のりを歩いてこい」と言うしかありません。
私は元ゲームプログラマであり、かつシャドウバースプレイヤーなので、ある程度シャドウバースがどのような仕組みで動作しているかは想像がつきます。その上で、「これから言語を勉強します!」という人が作れるものとは到底思えません。あなたの指す「コア部分だけでも」という目標すら超えるのに年単位がかかるでしょう。私としてはまずは自力で(Windowsの)ソリティアが作れるところくらいまで成長してから上記目標を掲げるべきだと思います。
それでも作るのをやめない!そのための努力は惜しまない!というのであれば、アドバイスをしましょう。
Unity、Cocos2d-xに目をつけたのは正解です。まったくの素人が触ってもある程度動くものが作れるUnityは初級者が触るのにふさわしいでしょう。私はCocos2dのほうは詳しくないのでUnityのほうで説明します。UnityではC#が使えるので言語選択はC#ということになるでしょう。一応他にもUnityで使える言語はありますが、C#一本でいいでしょう。
もしあなたが「オンライン」対戦カードゲームを目指しているなら、サーバ側も自力で組む必要があります。サーバ側はPHPでもPythonでもJavaServletでもRubyでもなんでもいいですが、とにかくUnityとは全く違うものを勉強する必要があります。シャドウバースやハースストーンは「サーバ側で山札、手札、攻撃、結果などを処理」して、「操作や演出をスマホやPCで処理」しています。そうしないとスマホやPCが山札や手札の処理を改造して不正し放題だからです。いきなり1ターン目から相手がPPを無視して場に5枚フォロワーを出してきたらキレますよね?だから、サーバ側でルールに則った管理をすることで改造による不正プレイを回避し、不正ユーザができることを限定しているのです。
サーバができたら今度はUnityと通信してやりとりするので「ソケット通信」や「Http通信」を学ぶ必要があります。これを学ぶだけでも1冊の本になるような量です。ある程度Unityがやってくれるでしょうが、サーバとやり取りするデータの形や受け取ったデータの処理などは自分で組む必要があります。通信フォーマットはREST形式が最近の主流なのでこれも勉強しましょう。
キリがないのでここらへんでまとめておきましょう。
- Unityを勉強するのがよい
- Unityの中のロジックはC#で書けるのでC#を勉強するとよい
- オンライン対戦にするならサーバ側の勉強も必要
- サーバ側のプログラミングはPHP、Python、JavaServlet、Ruby等
- カードゲームのルールの根幹部分はサーバ側で制御し、表示や操作だけスマホやPCが受け持つ
- サーバとスマホ・PC間の通信手法にもいろいろあるので勉強する必要がある
- ここまで説明してまだ「コア部分」の説明に入れない
壁の高さを感じていただけたでしょうか。挑戦するのは止めませんが、まずはUnityで簡単なゲームを作ることで「ゲーム作りの練習」をすることをおすすめします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/08 02:43 編集
2017/03/08 02:18
2017/03/08 05:13