面试 新闻

Wargaming,新ゲ,ム開発に骑士虚幻引擎を採用

阅读这篇其他语言的文章:
英语Русский

虚幻引擎を使ったc++ゲム開発用の新しいIDEである虚幻引擎骑手では1年半前より早期アクセスプログラムを展開しています。この製品はこれまでに数十万に及ぶインディーゲーム開発者だけでなく,あらゆる規模のゲーム開発スタジオや制作会社からの関心を寄せてきました。JetBrainsは,このようなユーザーがこの製品について最も重視している点,満足している点,不足していると考えている点を把握したいと考えています。そこで,战争博弈集团有限グループの一拠点としてロシアのモスクワに最近開設されたゲーム開発スタジオである战争博弈红色でテクニカルディレクターを務めるViacheslav Dubikovsky氏にお話を伺うことにしました。このンタビュは,。净およびc++ツールのプロダクトマーケティングマネージャーを務める阿纳斯塔西娅Kazakovaと骑手虚幻引擎のプロジェクトマネージャーを務める亚历山大Pirogovが担当しました。

Viacheslav Dubikovsky

Wargaming REDテクニカルディレクタ

维亚切斯拉夫さん,こんには!現在作業中のプロジェクトにいてお話しいただけますか?どのようなゲムですか?

NDAを結んでいる関係上,タイトルがまだ発表されていない時点ではあまり詳細を話すことはできません。ただし,sf系のセッション式サドパソンシュティングゲムとだけお伝えしておきましょう。

ゲムエンジンには虚幻が使用されているのですよね?

その通りです。ゲームはc++で開発しており,今のところは虚幻引擎4.26を使用していますが,徐々に4.27への移行を進めています。このプロジェクトは虚幻引擎5には移行しないと思います。そのバージョンではレンダリング方式が異なっているため,移行するとこれまでに制作したゲームアートをすべて作り替えなければならない可能性があるためです。

WG团队

プロジェクトはどのように編成されていますか?どんなテクノロジを使用していますか?

先程述べたように,このプロジェクトはc++で記述されており,虚幻引擎で構築されています。虚幻引擎のリフレクションメカニズムやc++テンプレートメタプログラミングを大々的に使用しています。モノリポジトリには,ゲ,ム自体用とエンジン用の2を用意しています。メンのゲムロジックは,共有モジュルに保存されています。

コドエディタを使用する際には,ueリフレクションメカニズムがいも最大の問題になります。言語自体の観点では実質的な意味を持たない大量のマクロ定義でラップされているコードを操作するのは困難です。この問題に対処できる開発者はほとんどいません。こんな場合に骑士虚幻引擎が大きく役立っています!

このプロジェクトには何人の開発者が関わっていますか?どんなルを主に使用していますか?

チ,ムには約25名のプログラマ,が在籍しています。その3分の1は骑手问题を使用していますが,それ以外のメンバーはさまざまなバージョンのVisual Studioで作業しています。骑手を採用する前はVisual Studioを標準状態で,あるいは视觉协助かReSharper c++を組み合わせて使用していました。ただ,VSエディターではプラグインを使っているかどうかに関係なくパフォーマンスの問題がよく発生していました。视觉辅助を使った場合は,言語機能の精度が不十分でした(今では変わっているとは思いますが)。骑士对虚幻引擎はそれとは逆に,少なくとも问题コードを扱う場合には優れたパフォーマンスを発揮しています。

骑士虚幻引擎への移行は簡単でしたか?

最初の印象は,”すごい。Vsのキ,ボ,ドショ,トカットがサポ,トされている!今まで身にけたvsのスキルをフル活用できるぞ。でしたね。ユーザーインターフェースについては,Visual StudioのUIのほうがデバッグなどの観点では使いやすいように思えました。そらのほうが使い慣れていたからでしょうね。でも,骑手のUIは視覚的に非常に魅力的ですね。いいポ@ @ントだと思います。

それでも,何年も使用してきたルから移行するには難点があります。一部のメンバが現在でもVisual Studioを使用しているのはそのためです。

これまでのところ,骑士为虚幻引擎のどの機能がプロジェクトで一番役に立っていますか吗?

ナビゲーション,使用箇所の検索,シンボル宣言への移動,派生シンボルと基底シンボルへの移動が一番役に立っていると思います。これらの機能は,自社開発のコードと虚幻引擎のコード(エンジンのコードが開発者向けドキュメントの主な情報源であるため)の両方でいつも使用しています。虚幻引擎を効果的に使用するには,フィールドや関数へのリンクを素早く検索してコード内を自由自在に移動できることも重要ですが,骑士为虚幻引擎はその点で優れていますね。

また,コ,ド内のエラ,を示す検査機能である静的コ,ド解析があります。コンパルしなくても直接エディタ内でエラを検出できると,時間を大幅に節約できます。このようなエラーがコンパイル段階まで残ってしまうと,開発者がコンパイラーと何時間も格闘することになってしまいます。もろん,この方法ですべてのエラを検出できるわけではありません。テンプレ,ト化されたコ,ドであれば特にそうです。でも,虚幻引擎自体はほとんどテンプレートを使用しないため,検出して修正しなければならないエラーはほんのわずかしかありません。欠落した包括ディレクティブの自動追加を提案する@ @ンスペクションも時間の節約に役立っています。骑手のおかげで、インクルード対象のヘッダーファイルとインクルード対象外のヘッダーファイルを判別するのに悩む必要がありません。

骑手が虚幻引擎に実装されているリフレクションメカニズムを認識し,リフレクションの識別子とマクロを自動補完してくれることにも驚いています。こういったものは普通は暗記しないものなので,骑手のヒントを使えば本当にコーディング速度を上げることができます。

アセットの構文解析と,ブループリントのc++ソースコードとのバインディングについても触れておくべきですね。この機能はあまり使用してはいませんが,使用すれば大いに役立機能です。リファクタリング中にc++ソースコードで何か変更があった場合などにブループリントで使用箇所を確認できるため,非常に便利です。構成INIファイルやクラスプロパティのデフォルト値についても同様で,INIファイル内を検索しなくても,直接コード内で値を確認することができます。

もう一つ忘れてはならないのは虚幻编辑器との統合機能,具体的にはRiderLink / UnrealLinkプラグインです。私たちは通常,骑手のデバッガーから虚幻编辑器を起動して,その中でライブコーディングを行っています。骑手を閉じることなく,ゲームを停止したり再開したりしながらログを確認できる機能が大いに役立っていることがあります。例えば(蒸汽や外部チャット機能を統合するために)サードパーティのプラグインを使用している場合にエディターに切り替える必要もありません。ログを見ながら,エディタ,を停止/再開するだけで十分です。

この機能に関して,虚幻のログを強化する方法をいくか提案します。

  • フィルタ,オプションを増やす。ログの数は膨大で,数百個を超えることもあります。そのため,適切なカテゴリを選択しにくいことがあるためです。
  • ログで同時に複数の一致箇所をハ▪▪ラ▪▪トする。このようなケ,スは非常によくあると思われます。

ご提案ありがとうございます!骑手のデバッガ,に,いてはどうでしょうか。使用していますか?

もろん。デバッガを備えていないエディタは本物の開発ルではありませんよ!以前は骑手のデバッガーがブレークポイントで停止しないという問題がありましたが,現在は修正されているようです。一番よく使用するデバッグ機能は,間違いなくコ,ドのステップ実行です。条件付きブレクポントを使うこともあります。それに,デバッガーでの虚幻引擎オブジェクトのコンテンツ表示も気に入っています。

主にデスクトップでデバッグしていますか?

今のところ,そうですね。将来的にはコンソ,ルを使用することを考えていますが,まだその段階ではありません。

注意:残念ながら,骑手はまだコンソ,ルでのデバッグに対応していません。JetBrainsはこの件にいて主なコンソルメカと協議しているところです。このようなプロセスは時間を要し,形式的な手続きを何度も行なう必要がある場合があります。

WG品牌

バ,ジョン管理システムに,いても伺いたいのですが,どれを使用していますか?

主にGitを使用しており,新しい機能を精力的にブランチで開発しています。また,GitのRider統合機能を使用しています。ただし,リベ,スには乌龟クラ,アントを使っています。全体像を把握しやすいからです。リベ,スは,Git操作の中で最も複雑な操作だと思います。自動化して使いやすくしようとしましたが,まだうまくいっていません。

他のプロジェクトでは,PerforceやPlasticSCMも使用したことがあります。

コドをプロファリングしていますか?その場合,サドパティのプロファリングルを使用していますか?

はい。コ,ドの解析に不真实的见解を使用しています。プロファリング情報を収集するのであれば,ネティブのueルを使用するのが一番です。ただ,視覚化にいて言えば,改善の余地は絶対にありますね。CPU使用率グラフの作成には独自のルを使用しています。不真实的洞察はフレームコンテンツの検査には最適なのですが,あらゆる動的変化を把握するには機能不足であるため,独自のツールを作ることに決めました。

Vichaeslavさん,化学键ンタビュ,化学键へのご回答ありがとうございました!ゲムプロジェクトの成功を祈っています!

骑士虚幻引擎の機能強化に関するア苹果苹果公司デアを募集しています。

オリジナル(英語)ブログ投稿の作者:

Elizaveta Semakova

阿纳斯塔西娅Kazakova

Baidu