これらのページでは、Verse プログラミング言語とその構文について説明します。 時間をかけてこの言語を理解した後は、これらのページを参考資料としてご活用ください。
今回初めて Verse を使用する場合、または初めてプログラミングを学習する場合は、スタートを切るのに役立つ「Verse を使用したプログラミング」を必ず確認するようにしてください。 また、役に立つオンボーディング ガイドもご覧ください。
Verse とは
Verse は、フォートナイト クリエイティブの仕掛けをカスタマイズするなど、Unreal Editor for Fortnite で独自のゲームプレイを作成するときに使用できる、Epic Games が開発したプログラミング言語です。
Verse の主な設計目標は次のとおりです。
プログラミング初心者でも習得できるほどシンプルであること。
どのような種類のコードやデータも記述するのに十分に汎用的であること。
チームワークの中でプロジェクトを構築、反復、リリースし、コードとコンテンツを統合する上で生産性が高いこと。
コンパイル時に可能な限り多くの種類のランタイムの問題を検出できるよう、静的検証済みであること。
リアルタイム、オープンワールド、マルチプレイヤー ゲームの作成に十分なパフォーマンスを発揮すること。
言語のすべての機能が、その機能に対するプログラマーの抽象化をサポートするように完全であること。
長期的に使用可能であること。他の言語の過去のアーティファクトに根差すことなく、現在のニーズと近い将来のニーズに対応して構築されていること。
上記の設計目標から生まれた Verse プログラミング言語の主な特性としては、次のようなものがあります。
強い型付けにより、開発または展開時にエラーが特定されない事態を最小限に抑えるとともに、静的チェックをサポートします。
マルチパラダイムにより、可能な限り決定論的になるようにするなど、関数型プログラミング、オブジェクト指向プログラミング、および命令型プログラミングの長所を活かします。 その例としては、データがデフォルトで不変となっており、コードとデータが同じであれば、結果は常にまったく同じになるといったことが挙げられます。
失敗は制御フローになります。 Verse では、(判定ポイントなどで) プログラムのフローを変更するために true/false 値を使用するのではなく、成功した場合に値を生成し、失敗した場合には値を生成しない、失敗する可能性がある式を使用します。 失敗する可能性がある式は、if 式などの失敗コンテキストでのみ実行できます。
失敗コンテキスト内での投機的実行が可能です。アクションをコミットすることなく試行できます。 式が成功すると、その式のエフェクトはコミットされますが、式が失敗した場合、その式のエフェクトは式が評価されなかったかのようにロールバックされます。 このようにして、次々と変更が加えられる一連のアクションを実行できますが、失敗コンテキストで失敗が起きると、そうしたアクションは元に戻されます。
**言語レベルでの並列処理により、アクションを同時に実行するために複数のプロセッサのシステムレベルのスレッドに頼る必要がありません。 言語で組み込みの並列処理式を使用することにより、制御フローと同じようにタイムフローを作成できます。
Epic Games は、今後も Verse プログラミング言語の開発を継続して機能を追加していきます。 現在記述している Verse コードに関しては、Verse によって下位互換性が確保され、今後言語が更新されても使用できると見込まれます。
言語の詳細情報
Verse プログラミング言語の参考資料として次の各ページをご活用ください。
Verse 言語バージョン 1 の更新と非推奨
Verse 言語バージョン 1 の新しい更新と非推奨について説明します。
式
Verse におけるすべてのものは式であり、結果があります。このページでは Verse のあらゆる種類の式について説明します。
コメント
コード コメントではコードに関する説明を示します。これらのコメントはプログラムのランタイム時には無視されます。
定数と変数
変数と定数には、プログラムが使用する情報 (値) を格納できます。
共通型
共通型は、大部分のプログラムで使用される基本的な演算をサポートします。
演算子
演算子は、Verse プログラミング言語で定義される、加算や乗算の数学演算などのアクションを実行するための特殊関数です。
グループ化
評価順を指定して可読性を高めるには、Verse 式をグループ化します。
コード ブロック
コード ブロックは式のグループであり、変数と定数の新しいスコープを導入します。
関数
関数とは、アクションを実行し、指定した入力に基づいて異なる出力を生み出す、再利用可能なコードです。
失敗
失敗は、プログラムがアクションを実行するシーケンスを制御する方法 (制御フロー) です。
指定子と属性
指定子と属性の概要、Verse コードに追加のセマンティクスおよび動作を適用する方法について説明します。
制御フロー
制御フローは、コンピュータが命令を実行する順序です。Verse にはプログラムの制御フローを変更する方法が多数あります。
タイム フローと並列処理
Verse で組み込み並列処理式を使用して同時に式を実行することにより、制御フローと同じようにタイムフローを作成することができます。
コンテナ タイプ
コンテナ タイプを使用することで複数の値をまとめて格納します。
複合型
複合型から独自の一意の型を作成します。
Verse 型で作業する
Verse の型の使い方を説明します。
モジュールとパス
Verse のモジュールは、再配布して利用できるコードのアトミック ユニットです。Verse ファイルにインポートすることにより、他の Verse ファイルのコード定義を使用できます。