この投稿はUDHI-LAB++; Advent Calender 2022 8日目の記事です
CHaserServerとは
その名の通りCHaserのサーバーです
CHaserはu-16プロコン競技部門で採用されている1v1のゲームです
※ここではCHaserについての説明はこれ以上触れません
経緯
私はu-16釧路地区で運営のお手伝いをしているのですが、連戦をしたくてもできなかったり、ランダムマップが最低限のルールにも則っていなかったりその部分をもうちょっと良くしたいなと考えました
最初は元々のCHaserServerがあるのでこれを改良する形で考えていたのですが、言語がUDHI-LABメンバー未経験のC++であることや最終更新が古いことからC++のバージョンも古くなってしまう等の問題から別の言語、ツールでの開発を検討し、メンバーが開発経験がありグラフィカルな実装だとそれ以外では追加の学習コストがかかり早く作ることができないと考えUnityで実装することにしました
いざ作る
そこでUDHI-LABメンバーのpolyacetal,noko1024の2人と開発を開始しました
私はView部分や試合進行などの2人が作ったクラスを合わせていく部分を担当しました
noko1024の要望によりアニメーション機能が欲しいということでそこも担当になりました(言い出しっぺの法則でアニメーションシステム自体はnoko1024に作らせました)
そうして作ってみるとアニメーションなしの部分に関しては今までの経験もあってか苦も無く作っていくことが出来ました
ところが、アニメーションをやっていくとオブジェクトのサイズを変更したのにidle状態に戻るとサイズが画像サイズに勝手に戻って大きくなってしまったりアニメーションを適応するにはブロック毎にオブジェクトを変える方が手っ取り早くなり、キャラクターを独立して動けるように変更したりと色々と課題にぶつかりました
そんなこんなでview自体の動作は上手くいき、あとはルールに則ったランダムマップの生成やデバッグ作業だけの状態まで進めることが出来ました
最後に
まだデバッグ、ランダムマップ生成が終わっていなかったりログ出し機能、再戦機能、リプレイ機能、フォルダからランダムにマップを選ぶ機能など付けたい機能も残っていますが、一先ずマップを展開して動作する段階までは進めることが出来たので興味のある方は是非見ていってください
ここまでお付き合いありがとうございました
最低でもあと1日分はadvent calenderで投稿する予定ですのでよろしくお願いします