UE5 関数型プログラミングを超えて: Verse プログラミング言語 (Simon Peyton Jones による Epic Games の新しい言語)

サイモン ペイトン ジョーンズ Simon Peyton Jones

ティム スウィーニー Tim Sweeney

エピック ゲームズ Epic Games

2022 年 12 ⽉

サイモン・ペイトン・ジョーンズがコーヒーの淹れ方を説明しようとした場合、それを解読するためだけに 12 年間大学で 3 つの異なる博士号を取得する必要があると確信しています。彼は完全に現実離れしている。

Beyond Functional Programming- The Verse Programming Language (Simon Peyton Jones) – YouTube

[PDF Beyond Functional Programming: The Verse Programming Language (Simon Peyton Jones)]

A taste of Haskell

==============================

Verse は、リアルタイムの共有 3D 環境でソーシャル インタラクションを作成できるようにすることに重点を置いています。

このオープンソース製品は、アーティスト、デザイナー、プログラマーが利用できます。Verse は、Unity を含む複数のゲーム エンジンの動作標準を活用しながら、実行中のコードのライブ アップデートで相互運用可能なコンテンツをサポートすることも目指しています。

Web 開発者市場 3 はまだ初期段階にあります。SlashData によると、昨年web3 開発者の 60% が市場に参入しました。

これまでのところ、オブジェクト指向のチューリング完全言語である Solidity がこの分野を支配しています。現在、毎月 4,000 人の開発者がこれを使用して、イーサリアム ブロックチェーンでスマート コントラクトを開発しています。

オープンソースであり、複数のプログラミング概念をサポートする Rust は、拡張性の高いプロジェクトの開発をサポートする能力のおかげで、急速に追いついてきています。

Epic の Verse 開発者は、現在の web3 プログラミング言語がすべてチューリング完全 (計算的に普遍的なシステムを指す用語) であることを認めていますが、新しい言語が業界の進化に役立つと考えています。

特に、Epic は、拡張性、相互運用性、迅速な取引能力を、Verse が前進しようとしている重要な分野の一部として強調しています。

Epic Games と Web3

今年から、レゴ グループと Epic Gamesは、メタバースの未来を形作り、子供や家族にとって安全で楽しいものにするために、長期的な協力関係を結びました。両社は協力して、あらゆる年齢の子供たちが一緒に楽しめる、没入型で創造的で魅力的なデジタル体験を生み出します。

次に、世界的な広告会社であるWPP は、エピック ゲームズとのパートナーシップを発表し、 WPP エージェンシーがメタバースでカスタマイズされたブランド エクスペリエンスを提供できるよう支援しました。

さらに、Epic Games と NASA はチームを組んで、火星のメタバースのシミュレーションを開発するために、彼らと Buendea とのコンテストを作成しました。

一方、ブロックチェーン ゲーム会社のGala Games は、ワイルド ウェストを舞台にしたバトル ロワイヤルである Grit のデビューとともに、Epic Games Store でタイトルを公開すると発表しました。

さらに、 NFT を利用した Web 作成ゲームであるBlankos Block Partyが Epic Games Store にデビューしました。これは、人気のあるグローバル PC ゲーム市場で公開された最初の Web3 タイトルです。

そしてごく最近、Star Atlasは、Epic Games Store で限定デモがリリースされたため、ファンにゲームのちょっとした味見を提供して、素晴らしい体験を提供しました。

ソーシャル ネットワークでフォローして、メタバースで起こるすべての最新情報を入手してください。

==============================

サイモン・ペイトン・ジョーンズがコーヒーの淹れ方を説明しようとした場合、それを解読するためだけに 12 年間大学で 3 つの異なる博士号を取得する必要があると確信しています。彼は完全に現実離れしている。

関数型論理言語です。つまり、Haskell っぽいものと Prolog っぽいものを同時に持っているということです。一石二鳥!

プレゼンテーションの最後に、今後の作業のために「I/O と変更可能な状態」と「トランザクション メモリ」を残します。

開発者は、パラダイム シフトに苦労しています。いくつかの FP コンストラクトはゆっくりとメインストリーム プログラミングに組み込まれましたが、時間がかかりました。マップ、フィルター、ADT などの構造に対する最初の反応は否定的で、「for ループを使用しない理由は?可変変数の何が問題なのか?これは難しすぎる」という同様の反応でした。

また、これらのスライドは FP 愛好家向けであり、主流の開発者を対象としていないと思います。SPJ の奇抜さは、他の人がよく知っているものでも評価できるものでもありません。私は個人的に彼のユーモアのセンスが好きですが、他の人がどのように混乱するかを見ることができます.

私はビデオゲーム用の C++ が本当に嫌いです (嫌いとは言いませんが)。惨事でしたが、私たちは余分な努力を払ってそれを機能させます. 私たちはプレイテストでバグをつぶしていますが、それでもクラッシュでプレイヤーを悩ませています。とんでもないセグメンテーションも。ゲームはバグだらけです。過去 10 年間で C++ は大幅に改善されましたが、現在のレガシー コードベースは、これらの変更を反映した混合スタイルの混乱です… または、一部のチームは 2005 年のようにプログラミングを行っています: C とクラス。

面白いことに、私は過去 6 年間で約 10 種類のゲームでフリーランスをしてきました。主に CPU の最適化を行い、特に厄介なクラッシュを追跡します。今までで最悪だったのは Unreal です。ドキュメンテーションは基本的に存在しません。特にプラットフォームのドキュメンテーションは、基本的に開発者が Epic のドキュメンテーションを書くフォーラムにすぎません。非常に基本的な要約がありますが、それは多くの場合間違っています。そして、自動生成されたドキュメントがたくさんあります。

タスクシステムは理解できず、タスクのバッチ処理と分散を分析するために提供されたツールは、ぎりぎりで使用できません。ほとんどすべての場合、無料のオープン ソースの代替手段よりも悪いことに、彼らは特に使用しないことを選択しました。RGTのバイアウトがいつか実を結ぶことを願っています。しかし、まだそうではありません。U および F プレフィックスは、この時点で基本的に無意味であり、何度も誤って適用されており、有用というよりは混乱を招き、おそらく完全に削除する必要があります. これは、彼らが使用する奇妙な専門用語にさえ入っていません。

また、私が今まで見た中で最もひどい C++ の誤りもいくつかあります。他のゲーム プロジェクトで見たすべての問題は、Unreal に大規模に存在します。彼らは言語の半分を書き直しました。キャスト、メンバー変数の宣言などの基本的なことはすべて、非常に奇妙で不気味です。

自分のコードが何をするのか確信が持てず、プログラマーは仮定を立てます。TArray や TMap などの基本的なコレクションは、STL のバリエーションよりも大幅に遅く、安全性が低く、構文が難解です。彼らは、静的アナライザーをほぼ完全にブリックする上に、独自の奇妙なプリコンパイラー手順をダンプしました。Visual Studio チームが Unreal で実際に動作するバージョンの IntelliSense を作成するのに、ほぼ 10 年かかりました。

最悪の部分は、エンジン内のすべてのアセットがバイナリで保存されていることです。それらをマージ、差分、または grep することさえできません。正直なところ、Epic の問題は C++ やオブジェクト指向のコードではないと思います。問題は、彼らが何十年にもわたって返済していないコードの負債と、彼らが何年にもわたってチームに生み出してきた大規模なチャーンと燃え尽き症候群です。

「エンジンの機能は製品」モデルと組み合わせると、出てきたものを修正するのではなく、常に顧客に売り込める新しい機能をプッシュすることができます。彼らがプログラマーに非常に複雑なシステムをプログラミングさせているという事実は、「ゲーム税」のために他の業界よりもプログラマーに支払う金額を減らしているという事実も役に立ちません。

暴言を吐いて申し訳ありませんが、Epic が OOP の罪について話しているのを聞いているだけで、彼らが主要な製品でどれだけの混乱を引き起こしたかを認めずに、私は不合理に動揺しています.

Comic Sans MS フォントは、冗談のように見えます。

それがSPJのブランドです。彼はここ 10 年か 20 年の間、はるかに権威のある環境でそれを行ってきました。彼は過去に、アクセシビリティのために Comic Sans などを使用する理由について論じてきました。

Beyond Functional Programming- The Verse Programming Language (Epic Games' new language with Simon Peyton Jones) – programmin

==============================

Verse の特徴

Web3エコシステムは、新しいプログラミング言語が存在し始めるにつれて、常にアップグレードされています。しかし、プログラム開発者が不足しているため、進歩は止まっています。しかし、Epic Games の新しいプログラミング言語Verse がゲームを変えるために登場したようです。

Epic Gamesは、Metaverse 用のプログラミング言語であるVerse を発表しました。

この言語は関数論理言語です。珍しい静的ソート アーキテクチャ (Curry や Mercury など) を持つオープン ソースの宣言型。

コミュニティに焦点を当てた文学のスタイルである詩は、生き生きとした言語を育成することを目的としています。Verse は現在、Clarity、Solidity、Curry、Mercury、Rust などの言語を含む web3 プログラミング言語ファミリーのメンバーです。

Verse は現在、Web3 標準に準拠した Web サイトを作成するために使用できる数多くのプログラミング言語の 1 つです。

Epic Games の Fortnite スタジオは、プログラミングを使用してメタバースをさらに深く掘り下げています。Verse は、Unreal Engine の作成者によって導入された、まったく新しい web3 プログラミング言語です。Verse は、metaverse と同様に公開されています。一般ユーザーは、Epic Games が提供する説明、仕様、およびツールに無制限にアクセスできます。プログラマー、アーティスト、デザイナーはすべて、オープンソース言語にアクセスできます。

Verse は、相互運用性や迅速なトランザクションなど、よりスケーラブルな特性を提供することも目指しています。オープンソース言語の Verse は、Curry や Mercury と同様に関数型論理言語ですが、特別な静的型システム (型は第一級の値) を備えています。詩には、「準備ができる」まで何も評価されないため、寛容になる能力があります。値渡しはそのコンポーネントであるため、極端に制限することはできません (引数が値を持つ前に関数を呼び出すことができます)。遊牧民の効率的な方法に取って代わります。

サイモン ペイトン ジョーンズ、ティム スウィーニー、レナート オーガストソン、コーエン クラッセン、ランジット ジャラ、オーリン シヴァーズは、Epic Games の意見ではメタバースの作成に不可欠であると Verse は 5 つの基本的なアイデアに焦点を当てています。共有 3D ワールドでソーシャル インタラクションをリアルタイムで作成できるようにすることについて。このフレーズはまた、明確な規制と企業の過剰支出のない自由市場を促進します。

すべてのプログラマー、アーティスト、デザイナーがオープンソース製品にアクセスできます。

Verse は、Unity などの複数のゲーム エンジンの運用標準とアクティブ コードのライブ アップグレードを利用することで、相互運用可能なコンテンツをサポートすることも目指しています。SlashData によると、昨年 Web3 開発者の 60% が業界に参入したという記録的な高さが報告されていますが、これは 2022 年の第 1 四半期の時点で世界中の 3,110 万人のソフトウェア エンジニアのほんの一部にすぎません。 Solana と Ethereum ブロックチェーンでスマート コントラクトを作成するために使用されるプログラミング言語により、この問題はより差し迫ったものになっています。

Verse の将来がどれほど有望であるかは、まだわかりません。

Epic Games の新しいプログラミング言語 Verse はまもなく C と C++ を打ち負かします

==============================

UEFN は 2023 年 1 月末より遅れる可能性があります。

2022 年末のストリームでは、UEFN が機能していないため、UEFN と Verse のスクリプトは紹介されず、詳細についても議論されませんでした。Epic の CEO は、前述の 2023 年 1 月のリリース日について確信が持てません。

2022年のライブストリーム録画| Inside Unreal : https://www.twitch.tv/videos/1679886146

このライブストリーム中に UEFN と Verse スクリプトが表示されるはずでしたが、UEFN の技術的な問題によりストリームで動作しません – UEFN も Verse スクリプトも他のクリエイティブも2.0 のニュースが詳細に議論されました(前日は稼働していました)。これまでに知っている情報しか得られませんでした。

技術的な問題により、UEFN は 2022 年 12 月から 2023 年 1 月末まで延期されました。さらに遅れる可能性があります。Epic Games の CEO は、冗談めかして次のように述べています。Blender、3dMax、Photoshop などのアセット作成パッケージとその UEFN は PC で動作します

Twitch のライブストリームは、ピーク時に 16,000 を超えるライブ視聴をもたらしました。これは、私が覚えている UE チャンネルで最も視聴されたストリームの 1 つかもしれません。

UEFN might be delayed beyond end of January 2023 ! During End of 2022 stream UEFN & Verse scripting were NOT showcased nor di

==============================

The Verse Calculus: 関数型論理プログラミングの中核となる計算

概要

関数型論理言語には豊富な文献がありますが、満足のいくセマンティクスを与えるのは難しいです。この論文では、関数型論理プログラミングの新しいコア計算であるVerse計算、VCについて説明します。私たちの主な貢献は、VC にスモールステップの書き換えセマンティクスを装備することです。これにより、ラムダ計算と同じように VC プログラムについて推論できるようになります。つまり、それに連続した書き換えを適用します。

この未公開のドラフトは、Verse に関する現在の考えを説明しています。これは完成品ではなく、非常に進行中の作業です。デザインのブロードな輪郭が安定しています。ただし、書き換え規則の詳細は変更される可能性があります。私たちは、現在のルールは面倒な方法で統一されていないと考えています。(合流証明に詳しい方、ご相談ください!)

View PDF

https://simon.peytonjones.org/assets/pdfs/verse-conf.pdf

The Verse Calculus- 関数型ロジック プログラミングのコアとなる計算 – サイモン ペイトン ジョーンズ

==============================

2020 年以来、Verse は無音でした。彼らがサイモン ペイトン ジョーンズを雇って作業したので、私はかなり興奮していました。

そして突然、彼らはそれについて何か新しいことを明らかにしました。まず、次の名前を調べてください。レナート・アウグストソン、ヨアヒム・ブライトナー、コーエン・クラッセン、ランジット・ジャラ、サイモン・ペイトン・ジョーンズ、オリン・シヴァーズ、ティム・スウィーニー。彼らはすべてそれに取り組んでいることがわかりました

そこで、Haskell eXchange 2022 で Verse についての講演がありました。論文とスライドは次のとおりです。

https://simon.peytonjones.org/assets/pdfs/verse-conf.pdf

https://simon.peytonjones.org/assets/pdfs/haskell-exchange-22.pdf

真に革新的な何かに取り組むために集まったスーパーヒーローのようです。

 しかし、私は Epic がこれを、数年ではなく数十年にわたって実を結ぶ非常に長いゲームとしてアプローチしていることを願っています。ビデオゲーム業界はC ファミリー言語に深く投資しており、その観点から見ると、Verse は単に大量のノベルティ予算を持っているだけではなく、すべてノベルティです。等値演算子でさえ、新しく風変わりです!

これは素晴らしい研究用言語になるでしょう。SPJ と会社がそれを設計するのを大いに楽しんだことは明らかであり、ここにいる多くの人々 (私自身を含む) はそれを消化するのを大いに楽しむでしょう. しかし、エピックがこれを新しいプラットフォームでのスクリプト作成に使用できる唯一の言語にしようとすると、そのプラットフォームは到着時に死んでいると思います. この目新しさに十分な業界が賛同するとは思えませんし、開発者が来なければ、顧客を引き付けるのに十分なコンテンツはありません。

これが機能していると私が考える唯一の方法は、Epic が Verse をオプションとして利用できるようにし、子供や大学生が最初に言語を学習している学校に Verse を導入するために一生懸命努力することです。メリットが十分に明らかであれば、十分な数の新しい開発者がそれを宣伝するようになると、企業が切り替えるのを見ることができます.

実際、Unity は優れた C# API を提供するために多大な努力を払いました。C# は、必要に応じて C と同じくらい低くすることをサポートしており、一般的にパフォーマンスに対するトレードオフが必要であるため、これは問題ありません。しかし、Unity は依然として、非現実的でカスタム作成されたエンジンと比較して、大規模で一連のエンジンの速度が遅く、劣ったエンジンと見なされています。

ゲームで広く採用するには、これを高速にする必要があります。また、パフォーマンスのボトルネックがどこにあるかを明らかにする必要があります。これは Prolog の大きな問題です。

並行して実行するために可能な限り安全である必要があります。多くの場合、ゲーム スクリプトは、ワールド内の数千とは言わないまでも、数百のインスタンスに対して同時に実行され、すべて共通の共有状態であるワールド上で実行されます。それを考えると、最近の大規模なゲームにかなりバグが多い理由は理解できます。

彼らがこれにどのようにアプローチするかに興味があります。ゲーム開発者は、"最速" の言語、ツール、およびパターンにほぼ宗教的に固執しており、この言語が成功するには、その側面を納得させる必要があります。

HaskellX 2022 での Verse の話は素晴らしかったです。正直なところ、鉱石のニュースを見るのが待ちきれません.HVMをランタイムとして試してもらいたいです.HVMもルールの書き換えを行っており、トークではそれを実現する方法を探していると述べています.

Epic Games Verse – 新しい情報 – ProgrammingLanguages

==============================

Verseについて学びましょう

Verse は Epic からまだリリースされていない言語です

これは2020 年 12 月に初めて発表され、 先週、著者の 1 人である Simon Peyton-Jones が Haskell コンベンションで講演を行うまで、あまり知られていませんでした。

プログラミング言語設計の高度な学位を持っている場合は、彼らの論文The Verse Calculus: a core calculus for Functional Logic Programming をチェックしてください。トークの スライドは少し理解しやすいですが、Haskell の経験が豊富な人を対象としています。

ここでの私の目的は、スライドを C++ プログラマーにとってもう少し馴染みのあるものに変換しようとすることです。

Verseはなぜあるのですか?

Verse について聞くと、多くの人が同じ懸念を抱いています。

  • これは C++ を置き換える予定ですか?

  • これはブループリントに取って代わるものですか?

  • Unreal を使い続けるには、これを学ぶ必要がありますか?

これらすべてに対する答えはノーです。

私が知る限り、Verse はブループリントや C++ の代わりになるものではありません。「メタバースのプログラミング言語」として説明されています。より具体的に言えば、大規模に機能し、プレーヤーがユーザー生成コンテンツをゲームに簡単に追加できるように設計された新しい言語です。2020 年 12 月のツイートからわかるように、Fortnite のユーザー作成ゲーム モードで既にテストされています。

Verseについて学びましょう

変数を宣言して値を割り当てるには:=

x := 5;

C++ と同様に、変数の宣言と値の指定を分離できます。この場合、 だけで x を値 5 に「バインド」できますx = 5。

x:int;
x = 5;

2022 年 12 月のスライドでは、一部の変数を変更可能にする方法がある可能性があると言及されているため、これは厳格なルールではない可能性があります。

x:int;
x = 5;
x = 6; // Error

すべては数学

Verse と C++ の根本的な哲学上の違いの 1 つは、Verse がより数学に近づこうとしていることです。

C++ では、x = 5;「値 5 を取り、x という名前のスペースに格納する」ようにコンピューターに指示します。

Verse では、書くとき、 のすべての使用に対して 5 と等しいものとして処理する必要があることx := 5;をコンピューターに伝えます 。これは、 の後続の値だけでなく、のすべての使用に適用されることに注意してください。

順序は関係ありません

y := x + 1;
x := 3;

Verse は、コンピューターに与える一連の指示ではなく、コンピューターに真実を伝える一連の条件または関係のように設計されていることを覚えておくことが重要です。

まず、「y は x の値に 1 を加えた値に等しい」とコンピューターに伝えます。

次に、x が 3 に等しいことを伝えます。

これが可能なのは、変数の値が定義されると変更できないためです。

ブール値はありません

Verse では、条件のどの分岐が実行されるかは、式が成功するか失敗するかによって異なります。

* 成功は「1 つ以上の値を返す」と定義されます

* 失敗は「ゼロ値を返す」と定義されます

失敗には の短縮形がありfalse?、後で使用します

型は関数です

intは、整数であるというテストに合格し、それ以外の場合は失敗した値の値を返す関数です。

Verse について多くを語るのはまだ時期尚早です

Verseについてben ui

==============================

Unreal Verse Guru – UEFN – Fortnite Creative 2.0(@UnrealVerseGuru)

#UEFN – Unreal Editor for Fortnite Creative 2.0 & Unreal #Verse programming language tutorials. Content creation, C++ & Blueprints in Unreal

Next Post

Stable Diffusion で作られたリアルタイムVR空間

金 12月 30 , 2022
Stable Diffusion で作られたリアルタイムVR空間