0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【検証】軽いゲーム作りに使えるライブラリ探し

Last updated at Posted at 2020-06-29

概要

突然ですが、動作が軽いゲームって低級ライブラリを低級言語で書けば作れると思っていませんか?

私は趣味でRubyやPythonを使ってミニゲームをよく作っています。ですが、完成品を実行ファイル気にして友人に遊んでもらうと、動きがモサっとしていてダサい。
この問題の解決のために、言語とライブラリを選びなおそうと思ったので、「軽く動作するライブラリとはなんなのか?」を調べてみました。

検証するフレームワーク

  • SDL2
    • C++で記述する。後述のライブラリに比べて低級なライブラリ。
    • 初期のUnreal Engineや多くのsteamゲーに使われていて実用的。
    • 「低級ライブラリ・低級言語」枠(今回の検証で一番軽い事が予想される。)
  • SiV3D
    • C++で記述する。SDL2に比べ、ウィンドウやレンダラーの作成やオーディオの設定などをライブラリ任せで開発できる。
    • 「(SDL2に比べ)高級ライブラリ・低級言語」枠
  • Gosu(Ruby)
    • Rubyで記述する。ウィンドウ表示やメインループ、I/OにSDL2を使用している。(SDL2のwrapperであると考える。)
    • 「高級ライブラリ・高級言語」枠

実験内容

条件

  • 表示要素(単位:px)
    • 画面 幅1400, 高さ700
    • 外枠の厚み5, 弾の辺の長さ5
    • フレームレートは60fps制限
  • 動き
    • 画面内で5000個の弾がランダム方向に直線移動する。
    • 外枠に当たると跳弾する。
  • 開発にあたって
    • 筆者ができるだけ同じアルゴリズムで動作するプログラムを書く。
    • VisualStudioで開発しリリースビルドした実行ファイル、もしくは言語とライブラリを実行ファイルにまとめたものを使用する。
  • 環境
    • OS: Windows10
    • CPU: Ryzen 7 1700
    • RAM: 16GB
    • GPU: GTX 1070

画面スクショ

  • SDL2
    image.png

  • SiV3D
    image.png

  • Gosu(Ruby)
    image.png

検証結果

SDL2は作るの大変だったし、さぞかしCPUとかGPUに優しいんだろうなぁ~・・・・

  • SDL2
    image.png

  • SiV3D
    image.png

  • Gosu(Ruby)
    image.png

...全然SDL2軽くないやん!?

順位

  • CPU使用率
順位 ライブラリ名
1位 SiV3D
2位 Gosu(ruby)
3位 SDL2
  • メモリ使用量
順位 ライブラリ名
1位 SDL2
2位 SiV3D
3位 Gosu(ruby)
  • GPU使用率
順位 ライブラリ名
1位 SiV3D
2位 Gosu(ruby)
3位 SDL2

考察

低級言語・低級ライブラリ代表のSDL2はマシンに優しくない事が分かりました。
Gosu(ruby)はそもそもコンパイルしていないので全体的にスコアが低くなるだろうと予想していましたが、
まさかSDL2がCPUパワー・GPUパワーの両方で最下位を記録するとは・・・

それでは低級言語・低級ライブラリの強みとはなんでしょうか?
実は、作成した実行ファイルの大きさを見ると一目瞭然です。

ライブラリ名 実行ファイル容量
SDL2 13KB
SiV3D 24,000KB
Gosu 4,000KB

SDL2で作った実行ファイルはまさかの13KBでした!

まとめ

  • ライブラリによってCPUパワーとGPUパワーの使用に偏りがある。
  • 低級言語・低級ライブラリを使っても動作は軽くならないが、ファイルが小さくなる。
0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?