右上からリポジトリもぜひ見てね
このページはPV数カウントのため一度ページを開いてからリダイレクトされています
フィードバックはTwitterかdiscussionまでお願いします
プロダクト
企画概要
ルーレットを用いたオフライン対戦ゲームです。ルーレットの目押しスキルに加え、
アイテムなどのランダム要素を含めることで、カジュアルな層にもわかりやすく親しみやすいゲームを目指しました。
現状未完成のため、タイトル画面やアイテムに関わる処理が大幅に削られています。
ゲームを作ることでアルゴリズムを学び、ユーザーが関与し楽しめるプログラムを作りたいと考えました。
この点で、ゲームは楽しみながら学べると考えました。
システム構成

機能概要
C++を用いて作成しているため、オブジェクト指向を利用したモジュール化に挑戦しました。
ループ処理を書き換えるだけで新しいゲームが作れるほどの可用性と汎用性を目標に作成しました。
ボタンなどのゲームパーツをクラスで実装しているため、
パーツの組み合わせ次第で全く新しいシーンを製作することができます。
今後の展望
- 未実装のアイテムや機能の追加によるゲーム性の向上
- CMakeへの移行によるビルド環境の改善
- ✅完了
- jekyllをGitHub Actionとして/docsをトリガーに修正
- ✅完了
開発環境および言語
| 動作環境 | Windows 11 |
| 使用言語 | C++ |
| ライブラリ | DX ライブラリ |
| IDE | Visual Studio 2022 |
| コードエディタ | VS Code |
| バージョン管理 | GitHub |
| webホスティング | GitHub Pages |
| 静的サイトジェネレーター | jekyll |
🎮ゲームについて🎮
🎂ゲーム概要🎂
「フルーツルーレット」は、回るケーキのピースを取り合い、イチゴの数を競う楽しいゲームです。
プレイヤーは順番にケーキのピースを取り、全4ラウンドのプレイで一番多くのイチゴを集めた人が勝者となります。
🍓ゲームの進め方🍓
- プレイヤーは順番にルーレットを回して、止まったところのケーキのピースを取ります。
- プレイヤーは4回ずつケーキを取ることができます。
- 最後に一番多くのイチゴを集めた人が勝利します。
🎁アイテムを活用しよう!🎁
- イチゴのかご: ケーキに乗っているイチゴの数を増やすことができます。
- 懐中時計: ルーレットの回転時間を長くし、チャンスを増やします。
- 目: 確率で手に入るアイテムが入ったピースを表示
🌀邪魔をして相手の戦略を崩そう!🌀
他のプレイヤーがルーレットを回しているときにルーレットを揺らすなど、お邪魔をして相手の戦略を崩すこともできます。
ぜひ友達や家族と一緒に、スイーツルーレットを楽しんでください!🍰🏆🍓
チーム開発に当たって
反省点
最初の抽象的な方向決めを適切に行えなかった
- 当事者意識を持っておらず、筆者を含めPMに丸投げ状態だった
割とデカめの仕様変更を途中で2回挟んだ
- 言語をC++に変更 df7ee5a あたり
- C++を書いたことがない人が大半を占めた
- 大幅にプログラムの構造を変更 5242d35
- オブジェクト指向等に慣れておらず、扱える者が一人だけになってしまった
チームメンバーがGitHubにあまり慣れていない状態で導入
- 1月16日にdetached HEADが発覚し、修復できず大幅な変更が消失
- 先生が全員の技術レベルを合わせるように言った意味を身をもって理解
- 冷静に考えれば、コミットしてプッシュするのを諦めてリポジトリをzipに圧縮し、
私が手動でマージして再クローンすれば良かったのですが、
「昼休みが終わる。昼食を食べておきたい」という焦りから冷静な判断ができなかった。
プログラムを書けるのが3人しかいないのなら、別のモダンな言語を選択できたのではないか
- なるべく全員が触れられるようにしたかったため、実行に移さなかった
開発小話
-
最初、この紹介サイトが担当者一人しか編集できないと聞いて、それはさすがに不便すぎるので全員が編集できるようにしたかった。
あとwordpressのビジュアルエディタがサイト自体のレスポンスの悪さも相まって死ぬほど使いづらい
幸いリダイレクトが許可されていたので、HTMLもCSSもJSも書けないけどMarkdownならそれなりに書けるので
何かないかと思ったら、GitHub PagesでJekyllを使ってWebホスティングができると聞いてこれを採用。
なっちゃってレスポンシブ対応はコパイにおまかせ
- WordPressからリダイレクトさせるとPVがカウントされずPVランキングに載らない問題が発覚したため、
設定で直接このページにアクセスするのではなく、一旦WordPress側のページを読み込んでからこのページに飛ぶようにしたかった。- しかし、
meta http-equivやJavaScriptのwindow.onload = function()は保存時に自動で消されてしまい、
何とかならないかと試行錯誤していたところ、ふと「素のJS以外も使えるのでは?」と思い、
Wappalyzerで調べたところJQueryが入っていたので、$(document).ready(function()~を付け加えてみると成功した。
- しかし、
- 多分文字コードが原因でVisual Studioの補完機能であるIntelliSenseが動かなくなったりした。
- 蛇足はコメントアウト(F12)
質問コーナー
合評会でいただいた質問疑問点などへの回答 順次追記
ゲームシステムについて
- テーマの選択理由が分からない なぜルーレット?
- ルーレットのUIや停止タイミングの調整が必要
- 先行が有利ではないか?点差が開いた際の逆転要素は?
- ゲーム数の変更やカスタマイズ機能が欲しい
- シンプルすぎてすぐ飽きるのでは?
オンライン・マルチプレイ関連
- オンライン実装の予定はあるか?
- NPC対戦機能を追加すれば良いのでは?
- 多人数プレイができるのか?
アイテム・キャラクター関連
- 未実装のアイテムが気になる
- アイテムの効果や種類をもっと見たかった
- キャラクターに固有スキルを持たせたら面白いのでは?
- プレイヤー選択ができるのか?
ビジュアル・UI・演出
- ルーレットの背景に色をつけると見やすい
- イラスト(特にイチゴ)が分かりにくい、ベーコンに見えた
- BGMや音の実装予定は?
- キャラクターの動きを追加したら面白くなるのでは?
技術・運営関連
- ゲームの動作が重たく感じたが、どう解決する?
- ZOOMの画面共有越しだからです。Windows 11の最低要件を満たしているPCであれば軽快に動作します。
あえて推奨動作環境を提示するのであれば「良い感じのCPUとGPUとメモリがのったマシン」です。 - ソースコード管理にGitを使っていたのか?復元は可能では?
- 可能であったのにもかかわらず、個人的な焦りから考えを放棄してしまった。詳細は #反省点 へ。
- データのバックアップは取っていたのか?
- 上に同じ。
その他
- ゲームのターゲット層が不明確
- どういうゲームか最初に説明が必要
- スペルミス
チームメンバー
カード型表示にしたい
| 役割 | 名前 | 説明 |
|---|---|---|
| プロジェクトマネージャー | 松川 | プログラムの99割を書いたひと 頭が上がらない |
| プログラマー | 山﨑 | 自称縁下チカモチ。何もしていない GitHubのリポジトリ用意したり ホームページ用意したり。細々したこと色々 detached HEADを修復できず大幅な変更を消失させてしまった。 本当に申し訳ない |
| 松田 | スライドの作成、発表等 | |
| デザイナー | 渡辺 | example text |
| 村側 | example text | |
| 宮崎 | example text | |
| 李 | example text |