Help us understand the problem. What is going on with this article?

Rustが流行ってほしい

Rustはゲーム開発に向いている理由

省メモリ

メモリや容量はゲーム開発をする上で一番大切な概念です。以前の記事を参照してください。ゲーム開発における言語はC,C++,C#,Python,Luaが殆ど全てといっていいほどです。Pythonは遅いですが、オブジェクト指向で書けるスクリプト言語且つ演算子オーバーロードが利用でき且つ省資源であることを考えると良い選択肢であるということを示しています。それ以上に遅い言語はPHP,ShellScript,PowerShell等の特定の物に特化した有名言語,scratch等の子ども用の言語くらいだと言われています。

高速

Rustの速度はCと同じかそれよりやや遅い、C++(の多くのコンパイラ)より速いのでとても高速に動作します。MLのようなマクロや束縛等で最適化しやすいためという理由もあります(高速なライブラリの、readonlyを利用したインラインconst化)。C++のような"std","演算子オーバーロード",C#のような"const","for","use","ジェネリクス","型推論"等のゲームエンジニアがよく利用するであろう機能が存在します。stringについては組み込み型(str)とstd::string::Stringが存在します。C#もGCを省いた速度(GCが無ければ起動3秒後以降、C++の1.1倍くらいしか速度が変わらない)では問題がないですが、いつ起こるかわからないのでそこら辺の管理が大変です。またC#やJava並みに可読性が高い且つ、C++やC#の慣れている人だと学習コストが低いのでメリットが多いです。

バグが起こりにくい

これは意外に重要です。よくゲームで実行時バグだったりクソゲーだったりも多いですが、その原因の多くはバグを生みやすい自由度にあります。多くは、マクロやtemplateや多重継承やgotoやdelateし忘れ等がいい例です。また、ゲームエンジンを使わない多くの場合組み込みエンジニアのようにアセンブラ他でハードウェア毎の実装をしなくてはなりません。
DirectX >>> ハードウェア->抽象化->プログラム->具体化->ゲーム->抽象化->プログラム->具体化->ハードウェア
これは多くの場合ゲームを作ることが目的になり、(ほんの少数の天才以外は)感性で面白いと感じるゲームを作ることが後回しになることが多かったのでゲームエンジンが生まれました。一つの文やオブジェクトで具体→抽象→具体と三段階踏まないとならないのはとても頭を使います。
UE4 >>> プログラム->具体化->ゲーム->抽象化->プログラム
こうなると理性に使っていたリソースを感性に使うことができるので、作っている途中にクソゲーだと気が付きわかりやすいので、客からの信用を落とさずに済みます。また、バグの多くもエンジン側によって最適化処理されているためマシです。但し、これにも問題があります。マクロの使用や無駄なtemplateの使用や多重継承やgotoの使用やdelateし忘れが発生している可能性が秘めているという点です。これを解決するであろうRustは非常に純粋で美しくC++erに優しい仕様となっています。これら問題は全てRustが解決し、ifは式、安全で高速、変数は束縛(下で詳しく話します。)というゲーム利用に最適化された機能がある点にも注目できます。
@comment Unityがゲームエンジンではないと声高に叫んでいるバカがいたのですがUnityはゲームエンジンです。無論UnityでもC#でのGC特有の問題も存在します。

デフォルトがReadOnly

グーグルのC++ガイドラインで

理にかなっているのならば、常にconstを使ってください。 C++11では、いくつかのconstは、constexprを使うほうがよりよい選択です。

土方プログラマーでなければ、プログラムを書いているとconst autoだらけになることも多いのではないでしょうか?const_castを使うことも多いので、束縛は重要です。また、ReadOnlyの方が大胆な最適化が可能です。従って今後はゲームにRustを使うことになるのではないかと思っています。また、Rustの束縛はreadonlyを利用したインラインconst化で高速です。

kawaguchi5460
C/C++/C#でゲーム開発,PythonでマルチプラットフォームGUI開発,ラムダ式,ゲームプログラム、その他開発など自分で調べて実証済みのものを発信していきたいと思う。https://twitter.com/reiwawakamono <-是非良ければ、こちらのフォローもよろしくでーす(私もフォローしてまーす)。沢山知識を分かち合って切磋琢磨しようと思ってます。
https://www.youtube.com/channel/UCLGqydKDgOWTu4LMYUgU-pQ?view_as=subscriber
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした