This is 256 line C++ tinyraytracer by Mr. Dmitry V. Sokolov (ssloy) ported to several higher level game engines.
Some older ones (but still quite popular) and some more recent ones.
All projects are made to display execution time in milliseconds, so that performance could be measured.
Operations include: trigonometry, vector math and data structure handling.
It is unoptimized - no lookup tables, no fixed-point, inlining, etc.,
which presents more life-like model and evens out the playing field.
Shaders are not used.
Drawing routines are not timed.
engine | time(ms) | size(kb) | open source |
---|---|---|---|
C++ (original - file output) | 350 | 61 | ๐ |
GML | |||
Game Maker 6.1 (patched) | 251400 | 1933 | ๐ |
Game Maker 7.0 | 256000 | 2316 | ๐ |
Game Maker 8.0 | 109000 | 2341 | ๐ |
Game Maker 8.1 | 113100 | 4143 | ๐ |
Enigma 0.0.5.0 | 65500 | 2859 | ๐ |
OpenGMK |
64000 | +6709 | ๐ |
GameMaker Studio 1.4 (VM) | 40900 | 6409 | ๐ |
GameMaker Studio 1.4 (YYC) | 7900 | 6139 | ๐ |
GameMaker Studio 1.4 (HTML5) | 2600 | 1127 | ๐ |
GameMaker Studio 2.2.5 (VM) | 38800 | 4939 | ๐ |
GameMaker Studio 2023.8.1 (VM) | 51000 | 12283 | ๐ |
GameMaker Studio 2023.8.1 (HTML5) | 18100 | 2331 | ๐ |
DIV | |||
BennuGD r348 | 15100 | 4366 | ๐ |
PixTudio 2016.12.16 | 15800 | 22346 | ๐ |
Basic / Basiclike | |||
AppGameKit 2023.01.26 (Tier 1) | 47900 | 7632 | ๐ |
Blitz3D 1.110 | 1200 | 1510 | ๐ |
BlitzMax 1.50 | 600 | 1571 | ๐ |
BlitzMax NG 0.136 | 980 | 3794 | ๐ |
Monkey-X 87a (GCC) | 1800 | 1636 | ๐ |
Monkey-X 87a (HTML5) | 750 | 104 | ๐ |
Cerberus-X 2023-05-26 (GCC) | 1800 | 2840 | ๐ |
Cerberus-X 2023-05-26 (HTML5) | 780 | 488 | ๐ |
Monkey 2 2018.09 | 740 | 14622 | ๐ |
Wonkey 2022.04 | 800 | 16886 | ๐ |
Pascal / Delphi | |||
ZenGL 0.3.12 (FPC 3.2.2) | 690 | 315 | ๐ |
Castle Game Engine 7.0 (FPC 3.2.2) | 200 | 16816 | ๐ |
Ruby | |||
RPG Maker XP (Ruby 1.8.1) | 108000 | 841 | ๐ |
RPG Maker VX (Ruby 1.8.1) | 84000 | 162 | ๐ |
RPG Maker VX Ace (Ruby 1.9.2) | 18200 | 1256 | ๐ |
RGDirect 1.5.4 |
61500 | +1268 | ๐ |
MKXP-Z |
40000 | +26849 | ๐ |
JavaScript | |||
RPG Maker MV 1.6.3 (clean) | 2200 | 165968 | ๐ |
Lua | |||
Defold 1.6.0 (LuaJIT 2.1.0-b3) | 5500 | 7484 | ๐ |
LรVE 11.4 (LuaJIT 2.1.0-b3) | 3700 | +love2d | ๐ |
Python / Pythonlike | |||
Godot 3.5.3 (GDScript) | 5700 | 38105 | ๐ |
Godot 4.1.2 (GDScript) | 4700 | 68727 | ๐ |
Pygame 2.5.2 (Python 3.7.2) | 4300 | +python | ๐ |
C# | |||
Godot 3.5.3 (C#) | 660 | 74623 | ๐ |
Godot 4.1.2 (C#) | 230 | 144297 | ๐ |
- OpenGMK, RGDirect and MKXP are runtime replacements for already assembled binaries.
- Execution times below 1 sec. reported with higher precision.
These projects could also be useful as a 'Hello World!' programs, when moving from engine to engine
and you want to familiarize yourself by jumping right in, instead of going through tutorials.
Enjoy!