2019/08/15
2018年8月時点での現状報告
お久しぶりです。 Luftelli代表のCdecです。 一年以上更新していませんでしたが、生きています。ゲームの制作は続いています。
今後は現在制作しているゲームの完成に向けて、その進捗状況などをブログに投稿していこうと考えています。(前も同じこといって更新が途絶えた気がするけど)
そのために、この記事では現在の状況について説明します。
メンバー
まずは当サークルのメンバーを改めて紹介します。
Luftelliでのゲーム制作開始時にいた「S丼」は活動休止で、現在は「Cdec」「Lui」「Van」「Zip」の4人です。
Cdec: 代表
スケジュール管理、タスク管理、プログラム全般、他メンバーのタスク補助を担当。 任天堂のゲームが大好き。過去に少女が落石を頭で爆破する変なゲームをリリースした。最近はゲーム制作を優先するあまりゲームをプレイする時間が確保できないのが悩み。
Lui: 副代表
デザイン管理、サウンド全般、グラフィック補助を担当。 スマブラマスター。情報処理技術者試験の全制覇を目指しているらしい。
Van
2Dグラフィック、3Dモデルの作成を担当。 遊戯王が好き。車も好き。悔いのないノートパソコンを使っている。
Zip
プログラム補助を担当。 Luftelliで最年少。運動が得意。最近はFPGAで動く64エミュレータを作ってるらしい。
今作っているゲーム
現在は「光影の塔」というオンライン対戦シューティングゲームを制作しています。 2017年5月から制作しており、2019年12月頭での公開を予定しています。
突然ですが、この記事の読者は カービィのエアライド というゲームをプレイしたことありますか?
カービィのエアライドは、 ゲームキューブ で発売された、カービィがエアライドマシンという乗り物に乗って競うレーシングゲームです。
エアライドには三つのゲームモードがあり、その一つに制限時間内で街の中を駆け巡り、アイテムを集めて最後のゲームで戦う、シティトライアルというモードがあります。 シティトライアルは複数人で遊ぶと非常に盛り上がるゲームで、小学生の頃の私は友達や妹とひたすら遊んでいた記憶があります。
今の20代前半あたりの人はエアライドで遊んだ事があり、シティトライアルトライアルにはまっていた人が多いのではないでしょうか?(願望)
このエアライドのシティトライアルを再現したゲームを作ろうと私が所属していた研究室の同期(S丼)と意気投合したのが、光影の塔を作りはじめたきっかけでした。
また、この頃に私はスプラトゥーンにもはまっていました。面白いゲームを組み合わせて面白く無くなるはずがありません。というアイデアの元、光影の塔はエアライドのシティトライアルにスプラトゥーン要素を混ぜた、オンライン対戦型TPSの陣取りゲームとして作る事にしました。
まあ当然こんな考えの浅いアイデアは途中で暗礁に乗り上げたのですが。 面白いものをただ組み合わせたからといって面白くなるわけではないのです。という事を学びました。この辺りはまた別の記事に。
ということで、「光影の塔」はサテライトと呼ばれるマシンに乗ったプレイヤーが、影チームと光チームに分かれて塔を破壊していく、陣取り合戦のようなゲームになっています。 ゲーム内容の大まかな紹介は以下の動画をみてください。
このゲームの制作を始めたのは2017年5月。2年以上前です。 当初の完成予定は2017年11月。デジゲー博2017が開催された月です。 今は2019年8月。……あれ?
今までの流れと完成予定の延期
当初は2017年11月に開催される デジゲー博 2017での完成品展示を目標として、6ヶ月で制作を行うスケジュールを立てていました。 デジゲー博は毎年11月に開催されている、自作ゲームを展示・頒布するイベントです。
しかし、今も制作を続けていることから分かるように、当初の計画は大きく破綻しました。
原因としては、大きく「タスク見積もりの誤り」「技術的な問題」「制作が止まるようなイベントの発生(とそれをスケジュールに組み込んでいなかったこと)」「ゲームシステムの変更によるタスクの追加」の四つ存在すると考えています。
タスク見積もりの誤り
そもそもこのゲームを作り始めた当時、私を含めどのメンバーも「オンライン対戦ゲーム」や「3Dゲーム」という類のものを制作した経験がありませんでした。かろうじて私が2Dのゲームを制作した事があった程度です。
このように対象ジャンルのゲームを制作した経験がなかったことから、制作開始当初に立てたスケジュールは見積もりが甘く、タスクにも漏れが大量にあり、さらにタスクにかかる時間と実際にかかる時間に大きな隔たりがありました。
また、私以外はゲーム制作の経験自体がありませんでした。 Unity(光影の塔で使用しているゲームエンジン)やBlender(モデリングツール)などを使ったことがなく、その使い方を学ぶ必要があったのですが、学習時間を考慮せずにスケジュールを立てていました。
このため、当初の6ヶ月という制作期間自体が無理があるものであり、単純に全てが順調に進んだとしても、最低限完成させるために2倍の12ヶ月はかかるものでした。
技術的問題
光影の塔はオンライン対戦ゲームです。オンライン対戦ではゲーム情報の同期が必要となりますが、それを一から実装するのは時間がかかります。このため、光影の塔では Mirror というネットワークライブラリを使用しています。
ですが、このMirrorを使用するに至るまでに何度も問題が発生しました。
光影の塔では、元々 UNet というライブラリを使用していました。 UNetはUnityに標準で用意されているネットワークライブラリです。
P2P通信に対応しているという事、Unityに標準で入っているものだから問題ないと(よく検討もせずに)考えたことから、UNetを選択しました。 ちなみに、 Photon Unity Networking(PUN) や Monobit Unity Networking(MUN) はP2P通信には対応していません。また、当時(2017年)はP2P通信に対応しているという Photon Bolt がまだありませんでした(と記憶しています)。
しかしUNetは数年間放置されており、バグと思われる挙動は修正されることなく放置され、ドキュメントも不足していたことから使用するのに非常に苦労しました。
そこで乗り換え先を探していたのですが、その時に見つけたのが HLAPI Community Edition(HLAPI CE) です。
UNetはTCP、UDPなどの低レイヤー通信を行うAPIを提供するLLAPIと、LLAPIを使用してより高水準のAPIを提供するHLAPIの二つから構成されています。 UNet自体は開発が停止しているためバグの修正はされていませんが、UNet HLAPIのソースコードはBitbucketで公開されているため修正は可能です。
有志の方が、公開されているUNet HLAPIのコードを元にバグの修正と使いづらい部分の改善を行ったものが、HLAPI CEです。 UNetが元になっているので、UNetとHLAPI CEはAPIに高い互換性を持ちます。
ただし、HLAPI CEにはUNet LLAPIに依存している点、導入にはUnity本体のDLLの置き換えが必要であるという点の二点問題がありました。後者についてはHLAPI CEがUnityの内部APIに依存していたことが原因です。
さらに、 UNet(HLAPIとLLAPI共に)は将来的に廃止されることが2018年に告知されました 。代わりに新しいネットワークシステムが導入される様です。 UNet LLAPIに依存しているHLAPI CEもその影響を受ける事になります。
ここでHLAPI CEの作者が、HLAPI CEを基にしてMirrorというライブラリの開発を始めました。
MirrorはHLAPI CEで使用されていたLLAPIを独自の低レイヤーAPIに置き換えることで、UNet LLAPIへの依存を無くしています。 また、Unityの内部APIへの依存をなくしUnityへのアセットインポートにより簡単に導入を行える様になっています。 これにより、MirrorはHLAPI CEの問題点を解決し、より利便性を高めたライブラリとなっています。
このように、UNetと完全に依存しなくなる(=UNetの廃止にを気にしなくてよくなる)、導入や更新が簡単になることから、光影の塔で使用しているネットワークライブラリをMirrorに移行する事にしました。
これまでの説明の通り、光影の塔はUNetからHLAPI CE、HLAPI CEからMirrorと二回ネットワークライブラリを移行しています。
UNetからHLAPI CEへの移行には3ヶ月ほどかかりました。 UNetやHLAPI CEの挙動を完全には把握できていなかった事、双方に微妙な内部挙動の違いがあった事、その特定につまづいた事が時間がかかった原因です。
そして、HLAPI CEからMirrorへの移行にも3ヶ月ほどかかりました。 移行における他の選択肢の調査、Mirrorの廃止になったAPIへの対応に大きく時間を取られました。
これが技術的な面での完成延期の主な原因です。 現在はMirrorの開発も安定しAPIや内部挙動の変更がほぼなくなったこと、光影の塔側のプログラムも安定したことから、この問題は解決したとみています。
制作が止まるようなイベントの発生
Zip以外のメンバー3人は同学年です。2018年4月から6月までの3ヶ月間は3人が就活のため、ゲームの制作を停止しました。さらに、2019年1月から2月は修論のために2ヶ月間制作を停止しました。
ゲームシステムの変更によるタスクの追加
デジゲー博2018での意見を元にゲームルールを大きく変更しました。 そのための追加実装で大まかに6ヶ月分のタスク追加が発生しました。
まとめ
- 見積もりの誤り(6ヶ月)
- 技術的問題(3+3ヶ月)
- 制作が停止するようなイベント(3+2ヶ月)
- ゲームシステム変更によるタスク追加(6ヶ月)
で合計23ヶ月(1年11ヶ月)の延期とういことで、当初の予定である2017年11月から2019年10月が完成予定という事になりました。
現在はあとで説明する理由により、さらに2ヶ月追加で、2019年12月が完成予定となっています。
今後
残っている主にタスクは、ステージの作成、ゲームバランスの調整、グラフィックの改善、サウンドの追加です。 あとゲーム紹介用Webページの作成とか公開に向けた準備も。
また、以上にあげた4つの問題は現時点でほぼ解決しています。
「タスク見積もりの誤り」については、開発開始当初と比較すれば制作に必要な知識が身に付き、必要タスクを一通り把握できるようになりました。それぞれのタスクをどの時点で行うかどうかの見積もりも立っています。(これでうまくいくといいけど)
「技術的な問題」については上で書いた通りほぼ解決しています。
「開発が停止するイベントの発生」については、現時点でその様なイベントが発生する様子はなさそうです。
「ゲームシステムの変更によるタスクの追加」については、ゲームシステム変更による追加実装はほぼ完了しています。今後のさらなるゲームシステムの変更は行いません。完成を優先します。
懸念事項としては
- 各メンバーが割ける時間の減少
- メンバーの状況把握の困難化
- 新たな技術的問題
です。
「各メンバーが割ける時間の減少」ついては、Zip以外のメンバー3人が就職したため、ゲーム制作に避ける時間が短くなってしまったという問題です。
「メンバーの状況把握の困難化」については、就職して環境が変わり、それぞれがいつどれくらい時間を取れるかが把握しづらくなったということです。特に当初の予定よりも時間が取れない事態が多発しました。 結果として追加で1ヶ月の遅れが発生しています。上で説明した2ヶ月はこれです。
「新たな技術的問題」については、グラフィックやサウンド面での話です。 上で説明した通りプログラム面での技術的問題はほぼ解決しましたが、今までグラフィックやサウンドにあまり力を入れていなかったため、この点を改善する必要があります。 ですが、この分野の知識はメンバー全員が持っていないため、新たに学ぶ必要があります。グラフィックが悪くてもゲームとしては成立するものではあるため妥協できる点ではあります。 どの程度まで改善するのかは時間との兼ね合いになると思いますが、今は完成させることを最優先で考えています。
これらを踏まえて、「光影の塔」を2019年12月頭で完成させ公開することを予定しており、11月のデジゲー博2019にほぼ完成版を出展予定です。
現状の説明としては以上となります。
今後も進捗をこのブログに投稿していく予定なので是非みてください。