Skip to content

剣、魔法、銃で織りなす100%おれんじじゅーす&スプラトゥーンライクなPvPサーバー

Notifications You must be signed in to change notification settings

Y-RyuZU/RyuZUTechnicalMagic

Repository files navigation

"RyuZU Technological Magic(仮)"

ゲームコンセプト

  • Minecraft Java版を基にした公開サーバーPvPチーム戦ゲーム。
  • 銃、剣、魔法を使用して他のチームと戦う、一試合10~15分のアリーナスタイル戦闘。
  • 状況変化とハイリスクハイリターンを追求。

ゲームの特徴

  • 武器: プレイヤーはメイン、サブ、移動、特殊、防具、必殺の枠の武器を所持して戦う。
  • 試合時間: 10~15分。
  • 地形の破壊と構築: チーム戦略の一環として、地形を変形
  • 縦横無尽の移動: デフォルトで二段階ジャンプ、微量の移動速度上昇

ゲームフロー

  1. チュートリアル
  2. ロビーサーバー
  3. アイテム整理、ガチャ、ショップ
  4. ゲームサーバー
  5. ゲームで遊ぶ(ゲーム中に特定の行動を起こすことで報酬)
  6. ゲーム終了後、勝敗で報酬を受け取る(Redis Queueに記録)
  7. ロビーサーバーに戻る
  8. RedisQueueから報酬を読み取り、受け取る
  9. ロビーサーバーから退出
  10. MongoDBにプレイヤーデータを保存

CoreBreakフロー

  1. エントリーゲートからゲームにエントリー
  2. ゲーム開始
  3. スターを集める、ブロックを集める、コアをブロックで守る
  4. アイテムを集めて、スターを消費して敵を倒す。ノルマチェックを行い、レベルを上げる
  5. 相手の陣地に攻めてコアを破壊する

ゲームモード

  • Battle Loyal(少人数用の持ち寄ったアイテムを現地で調達する)
  • Break Core(相手拠点のコアを破壊し、リスポーン不可にした後殲滅。大人数で行うメインゲームモードにしたい)
  • Carry TNT(マップ中央のTNTを相手陣地まで運ぶ。運ぶプレイヤーには大幅なデバフがかかる)
  • Carry Mini TNT(マップ上に散らばるTNTを10個ゲットし、大きなTNTを作り敵拠点に運ぶ)
  • Caputure Wool(マップ内のエリアを占領する)
  • Steel Jewlry(相手拠点の三つの宝石を自拠点まで持って帰る)

スタージェネレーター

  • スターが定期的にポップするジェネレーターをマップに配置(HypixelのBedWardsのような)
  • ジェネレーターは中心に大きなものをひとつ、四方に中くらいを4つ、拠点に小さなものを1つ設置する
  • スターはアイテム使用と必殺使用とレベルアップに用いる
  • ゲーム終盤になるにつれジェネレーターが出すスターは増える
  • 死んだときに一定割合がその場にドロップ(ある程度散らばる)

レベルシステム(1~5 or 1~10)?

  • プレイヤーの持つ特殊と必殺枠の武器にはレベル制限がある
  • レベルアップは自拠点で行うことができる(死んだときなどにできるとストレス軽減?)
  • レベルアップには一定のスター or キルが必要(スターは消費しない)

特殊アイテム

  • 試合中ランダムで一度きり使える魔法のようなアイテムをポップ
  • アイテムはスターを消費し、ものによってはレベル制限がつく

地形変化

  • 「斧、ピッケル、シャベルの武騎種」「木、石、土のそれぞれの特効ブロック」「炎、爆、風の属性」を持つ。
  • 設置するブロックは試合中に採取。手動で置く、スキルで置くができる。
  • 採掘速度は適正ツールでなければすべて統一
  • ブロックに対して特殊なイベントを設けることもできる(ex. スキルで破壊された時、手動で破壊された時~)

結界

  • 特定の形でブロックを設置することで結界を張ることができる
  • 敵の侵入検知、ブロック破壊スピード低下などのビーコンの派生のような効果を付与
  • 敵の結界を無効にする結界を張ることも可能

メカニクス

  • TNT砲台や、矢石砲台、落とし穴などの作ってて楽しいメカニクスを追加
  • バニラのレッドストーン装置に準拠

ランダムイベント

  • 試合中特殊なイベントが発生し、地形やステータス変化を引き起こす
  • サドンデス -> 試合の最後の最後で発生しプレイヤーを超強化

武器&防具

  • WeaponsMechanical、MythicMobs、RyuZUTechnicalWeaponsにて作成
  • パーティクルは味方のものは非表示、表示が切り替えられるようにする
  • ブロック破壊、設置を行う武器を別枠で設ける。
  • 地形変化は試合終了と同時に修復
  • ブロック設置型の地形変化は色付きガラス
  • 3Dモデルなどで角待ち対策用のスモークグレや銃の玉のみ通さない壁を召喚できるようにする
  • レアリティ、特別感、グラデーション

プレイヤー増やすための工夫

  • 体験型チュートリアル、初期武器をある程度強く、初心者報酬を作る
  • 非言語系、言語に依存する部分を極力減らす
  • デイリー&ウィークリー報酬 ⇒ 結構美味しくする(ここでしか手に入らないメダルなどを用意)
  • 招待キャンペーン
  • 季節イベント ⇒ 試合参加でもらえる限定武器
  • フェス ⇒ 一定期間固定チームに分かれて競う(人数がある程度いないと、片方に強いプレイヤーが行き過ぎるので、実装はアクティブプレイヤーが100~200辺りに安定し始めたら)

開発体制

  • 連絡はDiscord、タスク管理はNotionで行う
  • Githubにてソースコードやスクリプト部分を公開する
  • Pluginは数値やIDの直書きを止め、全てConfigで操作できるようにし、SOLID原則に従う
  • 全てのデータはDBに保管する
  • k8sで動的に試合ロビーを増やす
  • サーバーの状態管理をWeb上で表示する
  • すべてのプレイヤーの情報はログに残し、統計表示など後々のデータ活用に備える
  • サーバー内での状況に応じてBGMを流すWebサイト(ステージ毎のBGM)

財務

  • 独自通貨を購入する ⇒ 独自通貨でほとんどのものを購入
  • サウンドエフェクト(キル)
  • パーティクルエフェクト(キル、リスポーン、勝利、参加)
  • ニックネーム
  • ガチャ
  • カラーコード
  • ニックネーム
  • プライベートゲーム
  • 武器スキン
  • プレイヤースキン
  • プレイヤー装飾品
  • スキンガチャは50%のPUシステム、かぶれば欠片となりPU商品 or 恒常に交換可能。割増しで一年前の復刻スキンを買える
  • BGMパック&プラットフォーム
  • 武器スキン売買プラットフォーム→ 各プレイヤーがテクスチャなどの装飾品を販売し、それを鯖内寄付通貨で購入することができる(そしてその利益の一部を作者に還元する)
  • アフィリエイト
  • ベクトル検索サブスク
  • バトルパス
  • 絵文字
  • 武器追加要望
  • LGWのαコインのようなユーザーが自分で追加できるものはかなり高額にする
  • サブスクは1 = 1ヶ月、5 = 6ヶ月、8 = 1年
  • サブスクにできるものはサブスクにする
  • RTM検定、RTM検定の合格者には特別な称号を与える。格付け

投票

  • 連続投票ボーナス
  • しっかり美味しい報酬にする
  • 投票をしたら便利になる機能があってもいいかも。SISの検索が可能になるとか

チーム

  • 感謝を伝えること
  • 定例MTG兼雑談は行う
  • 開発の姿勢を共有
  • ドキュメントをともかく整備、ドキュメントは外部公開(Markdownで記述)
  • スケジュールは示しておく(守るべき緩いスケジュールと守らなくてもいい目安スケジュールの二つを作る)

広報

  • SNSのフォローで報酬を用意
  • 季節イベントなどの時は必ずPVを作成し、Youtubeにて公開
  • Twitterで宣伝を頻繁に行う
  • インフルエンサーなどに宣伝してもらう
  • GitHubなどの開発風景を公開
  • Qiita記事書く
  • Discordのアルバムチャンネルの画像を用いて画像だけを閲覧できるようなサイトを作る => monocraftなどの外部への雰囲気宣伝。キルクリップを集めてもいいかも

ほか

  • アジ鯖自体をエンジニア育成組織として売り出すべく、表にもっと開発風景をアピール => 社会的な価値を上昇を目指す
  • 外部向けの資料、記事を積極的に作る。
  • 私がいなくても回る組織を作る 好循環の仕組み作りは要検討
  • 外部のサーバーに合併できることをアピールしておく
  • 支援してくれる企業や団体を募集しておく

以下要件定義 (機能要件のみ)

ゲームシステム

  • プレイヤーのステータス(現在のレベル、スター、キルの表示)
  • ゲームのステータスの表示(チームのポイント)
  • ゲームギミック(ランダムイベント、各種ゲームモードごとの仕様)
  • マップ(マップデータの格納、読み込み、マップの編集)

戦闘システム

  • WeaponMechanics、MythicMobsとの連携
  • スター制限、レベル制限、スペシャル、クールタイム
  • パーティクル系便利関数、パーティクル非表示
  • ディスプレイオブジェクトアニメーション系、イージング関数によるアニメーション
  • ダブルジャンプ
  • バニラのダメージイベントをすべて無効化 ⇒ 新規で作り直す

状態異常

  • バニラと同じ。レベル優先で適用。レベルが低いものは状態保持はするが、適用はしない
  • スター取得減少、上昇、無効
  • ダブルジャンプ無効
  • 回復増加、減少、無効
  • 重力増加、減少
  • CT減少速度増加、低下、停止

プレイヤーデータ

  • パーティクル非表示設定
  • 操作方法選択(右クリック式、ボタン式)

アイテム管理

  • WeaponMechanics、MythicMobsとの連携
  • 取引プラグイン、ガチャプラグイン
  • エンダーチェスト、インベントリ(かなどこを使用した検索システム)

報酬

  • ゲーム報酬、デイリー報酬、ウィークリー報酬、その他ゲーム内での行動による報酬
  • configから弄れるように
  • バトルパス
  • 称号
  • コスメティックアイテム

チュートリアル

  • 体験型チュートリアル
  • 初期装備配布
  • 招待キャンペーンコードの入力(IPからサブ垢を禁止)

メニュー

  • 試合参加、途中参加、退出
  • ショップ検索
  • 統計確認

統計

  • ゴールド
  • 勝率
  • (K/D プレイヤーには表示しないが、運営内で保持)

Web

  • Webにてプレイヤーの統計が見れるように
  • サーバーステータスが見れるように
  • 自然言語ネームド申請

TODO

  • プレイヤーのステータス表示HUD(現在のレベル、スター、キルの表示)
  • ステータス変化

About

剣、魔法、銃で織りなす100%おれんじじゅーす&スプラトゥーンライクなPvPサーバー

Resources

Stars

Watchers

Forks

Packages

 
 
 

Languages