こんにちはHarb! 約1年前、ライブ
で150時間でサバイバルゲームを作成した方法に関する記事を投稿しました。 今回は、3〜4時間の25回の訪問で作成したネットワークシューティングゲームを紹介します。 合計で約90時間になり、最終的にオンラインシューターを作成し、それを観客と一緒にプレイしました。

前のシリーズと同様に、このプロジェクトの目標は、シューティングゲームの例を使用してUE4でネットワークを操作する方法を初心者に示すことです。 ストリームでは、サーバーとクライアント間の通信を整理する方法、実行するロジックと実行するロジック、マップの作成、アニメーションの設定など、開発のさまざまな側面を調べました。
クリーンな時間にもかかわらず、このプロジェクトには約10か月かかりました。 ストリームを大幅に中断しましたが、それでも開発が終了し、誰でも無料でSMSなしで利用できるようになりました。
詳細に興味がある場合、レコードをストリーミングする、キット内のサーバーを使用してゲームをソースする、またはビルドする場合は、さらに詳しく読むことをお勧めします!
ストリームでは、ゲームの作成プロセスのほぼ全体を調べました(リリースを除く)。 グラフィックの計画からインポートとカスタマイズ、および実際のプレーヤーでのテストまで。 ただし、締め切りが厳しかったため、バランス調整、プロトタイピング、さらに2、3の重要なポイントを逃しました。
もちろん、ほとんどはゲームのロジックに行きました。 最初に、キャラクターの動作を実装し、マネージャーと武器クラスを作成してから、ゲームモードとラウンドを行いました。
ほとんどすべてのプロジェクトは青写真で書かれています。 その理由は非常に簡単です。
- このコースは初心者を対象としています。 C ++では、ナビゲートするのが難しく、すべてがより明確になります。
- C ++を使用しても、パフォーマンス上の利点がない場合は意味がありません。 クライアントは安定して迅速に動作しました。 また、16人のプレイヤーがいるサーバーは、プロセッサの1〜2%しか占有していません(home i7 4770)。 そして、すべてのイベント駆動型ロジック。
- 必要に応じて、ブループリントのネイティブ化を有効にして、C ++に変換することができます。 このため、ブループリントとC ++の違いは利便性と機能のみにあり、パフォーマンスにはありません。
- 必要なのはブループリントだけでした。 C ++を使用する必要があったのは、セッション作成を書くことだけでした。 もちろん、ブループリントはこれを行うことができますが、オンラインサブシステムとそのマスターサーバーが機能し、開発者が接続できるため(Steamなど)
また、グラフィックスにも取り組みました。 リアルなグラフィックや特別なグラフィックを作成する時間がありませんでしたので、シンプルで漫画的なグラフィックをストロークで作成しました。 武器とキャラクターは標準のままです。 彼らは2枚のカードを作成したので、ラウンド終了後、次のカードに投票し、それに応じてトランジション自体に投票します。
この90時間で実装したすべてのリストキャラクター- 基本的なキャラクターコントロール
- ゲームパッドのサポート(Xbox 360ワイヤレスコントローラーでテスト済み)
- 命と鎧の構成要素
- ランニングシステムとスタミナ
- 3人目と1人目のキャラクターアニメーション
武器- 武器マネージャー(保管、切り替え、投げなど)
- 使用ロジックを持つ武器クラス
- 近接武器(バットとナイフ)
- 銃器(自動、ピストル、オートガン、ショットガン、スナイパー)
- 手G弾
- 特殊武器(タレット、私のもの)
- RMBでのセカンダリアクションのサポート(狙撃スコープなど)
- 銃器の反動と散布
- 銃器用カートリッジのリロードとアカウンティング
- さまざまな追加設定(カートリッジの数、使用速度)
ゲームモードとラウンド- 基本的なロジック(デス、リスポーン)を備えたメインゲームモード
- デスマッチモード-「すべての人が自分のために」
- コマンドモード
- ラウンドシステム
- ポイントと時間のラウンド制限
- プレイヤーを待ち、ラウンドの開始をカウントダウンする
- 次のカードの投票でラウンドの終わり
内容- プライベートカード-格納庫
- オープンカード-倉庫
- 静的ステージ照明
- 個人プロジェクトまたはEpic Gamesデモプロジェクトから取得したさまざまなモデル
- 射撃と歩行の音
- ショットと弾痕の効果
ユーザーインターフェース- キャラクターと武器に関する情報とラウンドに関する情報を含むメインHUD
- ミニマップ
- 試合とプレイヤーの統計情報を含むタブメニュー
- チャット
- チャットを殺す(最近の殺害を示すパネル)
- プレーヤーのリストとチームの選択を含むラウンド前のウィンドウ
- 試合の結果と次のカードへの投票のラウンド後のウィンドウ
- セッション検索ウィンドウ(マスターサーバーなし、LANサーバーのみを検索)
- メインメニューの設定と検索。 一時停止メニューです
そして、ここに私たちがしたすべてのビデオレビューがあります:
もちろん、これは完成品のようには見えませんが、プロジェクトが完成したことを願っています。 クライアントとサーバー間の通信にブループリントのすべての主要機能を使用して、多くの有用なことを検討しました。 その結果、専用サーバーを収集し、8〜8人のプレイヤーのチームモードで一緒にプレイしました。
さらに、ストリームの外側でAndroid向けのビルドを作成したと言いたいです。 ゲームは正常に機能し、サーバーに正常に接続しました。 私の友人と私は一緒に走ることができました(彼は電話で、私は自分のコンピューターで)。 もちろん、センサーの管理は行いませんでしたが、この事実を記事に追加したかったのです。 携帯電話用のセッションシューターが必要な場合は、ようこそ。
→
すべての部品の記録部品の内容- タスクを計画し、プロジェクトを作成します。 キャラクターコントロールを作成し、武器の作成を開始します。
- 新しい武器(冷たい武器を含む)を追加し、武器を切り替えてリロードします。
- 武器のピッキング、切り替え、投げを行います。
- 基本的なゲームモードを作成し、死亡時にプレイヤーと観客を復活させます。 発射物を作ります。
- 「Dedmatch」モードを追加し、時間またはキルによるラウンドの制限を作成し、タブメニューを作成します。
- HUDと観客ウィンドウに最小限のインターフェースを追加しました。 いくつかのバグを修正します。
- チームゲームモードを作成します。
- タイマー付きの「ラウンド開始前」のウィンドウと、試合の統計情報付きの「ラウンド終了後」ウィンドウを作成します。
- チームの選択と自動バランスを作成します。 また、ミニマップの作業を開始しています。
- ミニマップを完成させ、チャットを作成します。
- 2か月の休憩の後、プロジェクトを思い出します。 手g弾と地雷を作成します。
- ゲームパッド、スクワット、スタミナとタレットでのランニングをサポートしています。
- サーバーを組み立てるだけでなく、セッションを検索するメニューを作成し、接続します。 待機を追加しました。
- ラウンド後、次のカードの投票を作成します。 別のカードのプロトタイプを追加します。
- 新しい武器を追加し、散乱させて反動させます。 クライアントでの作業のために武器をリファクタリングします。
- 撮影のロジックを補完し、エフェクトを追加します。 ネットワークでプレイするためのプロトタイプマップも作成します。
- 私たちは加入者と遊び、武器とインターフェースでさまざまなバグを修正します。
- キャラクターアニメーションをカスタマイズします。
- リロードアニメーションをカスタマイズします。 その他のさまざまなエラーも修正します。
- ショットとそれらからのトレースから穴を作成し、散布を同期します。
- ダメージを与える効果と、一目でダメージを与える効果を作成します。
- プロジェクトのさまざまなエラーを修正します。
- 閉じたレベルを設計し、オブジェクトのストロークで後処理の効果を作成します。
- 2番目のオープンレベルを作成します。
- 最新のエラーを修正し、サウンドを追加して視聴者と遊びます。
→
Gitのソース→
Yadiskのソース→
ゲームをビルドする (MultiplayerShooter / Binaries / Win64フォルダー内のサーバー)
→
ライセンス将来の計画に従って、C ++でアーケードを作成したいと考えています。その背後には、RTS戦略を作成するための一連のストリームがあります。