All Projects → Calinou → godot-performance-comparison

Calinou / godot-performance-comparison

Licence: MIT License
Godot performance comparison between the `3.x` and `master` branch

Programming Languages

GDScript
375 projects

Projects that are alternatives of or similar to godot-performance-comparison

discord.gd
Discord Bot API wrapper for Godot. Make bots in GDScript.
Stars: ✭ 69 (+475%)
Mutual labels:  godotengine, godot, godot-engine
godot-gameshell
Godot export templates and instructions for the GameShell portable game console and other single-board computers
Stars: ✭ 34 (+183.33%)
Mutual labels:  godotengine, godot, godot-engine
Project-Map
No description or website provided.
Stars: ✭ 52 (+333.33%)
Mutual labels:  godotengine, godot, godot-engine
godot-cpp-cmake
CMake scripts to build cross-platform GDNative C++ bindings
Stars: ✭ 20 (+66.67%)
Mutual labels:  godotengine, godot, godot-engine
Logic-Circuit-Simulator
A free and open-source Logic Circuit Simulator built in Godot Engine.
Stars: ✭ 23 (+91.67%)
Mutual labels:  godotengine, godot, godot-engine
godot-admob-editor
This repository is for Godot's Addons to integrate natively AdMob to your Game Project without much configurations, with a beautiful UI and directly inside Godot Editor!
Stars: ✭ 43 (+258.33%)
Mutual labels:  godotengine, godot, godot-engine
OpMon-Godot
An open source Pokemon-inspired game, now with Godot
Stars: ✭ 50 (+316.67%)
Mutual labels:  godotengine, godot, godot-engine
godot-cmvalley
Port of the Sauerbraten clanmap cm|Valley to Godot 4.0
Stars: ✭ 28 (+133.33%)
Mutual labels:  godotengine, godot, godot-engine
Godot-3.0-Noise-Shaders
Godot 3.0 Noise Shaders
Stars: ✭ 38 (+216.67%)
Mutual labels:  godotengine, godot, godot-engine
autotiler
Autotile 47-tile blob tileset generator application with Godot export support. Based on Electron JS.
Stars: ✭ 32 (+166.67%)
Mutual labels:  godotengine, godot, godot-engine
godot-android-plugin-firebase
Godot 3.2.2 Android plugin for Firebase
Stars: ✭ 41 (+241.67%)
Mutual labels:  godotengine, godot, godot-engine
godot-interpolated-camera3d
Provides an InterpolatedCamera3D node that replicates its 3.2.x functionality (and more)
Stars: ✭ 40 (+233.33%)
Mutual labels:  godotengine, godot, godot-engine
toziuha-night-oota
Opensource Metroidvania inspired on Castlevania Order of Ecclesia
Stars: ✭ 78 (+550%)
Mutual labels:  godotengine, godot, godot-engine
MySQL Module
MySQL connector to Godot Engine.
Stars: ✭ 30 (+150%)
Mutual labels:  godotengine, godot, godot-engine
Game-Examples
Godot game examples for gotm.io - the Godot Platform!
Stars: ✭ 27 (+125%)
Mutual labels:  godotengine, godot, godot-engine
godot-extras
My collection of various plugins, modules, or patches for Godot
Stars: ✭ 108 (+800%)
Mutual labels:  godotengine, godot, godot-engine
Godot-DialogPlugin
🗨️ A Dialog Node for Godot Engine
Stars: ✭ 194 (+1516.67%)
Mutual labels:  godotengine, godot, godot-engine
novemberdev soulslike darksouls godot
Dark Souls clone in 3D with Godot
Stars: ✭ 51 (+325%)
Mutual labels:  godotengine, godot, godot-engine
godot box2d
A C++ module that integrates the Box2D library with the Godot game engine by providing nodes for standard Box2D objects.
Stars: ✭ 32 (+166.67%)
Mutual labels:  godotengine, godot, godot-engine
godot-lod-demo
Demonstration project for the Level of Detail (LOD) Godot 3.x add-on
Stars: ✭ 34 (+183.33%)
Mutual labels:  godotengine, godot, godot-engine

Godot performance comparison (master vs 3.x)

The goal of this repository is to compare Godot performance between the 3.x branch and master (upcoming 4.0). This way, we can track significant regressions and try to address them.

See also godot-benchmarks. This repository is an independent project because it also needs to run on the 3.x branch, whereas godot-benchmarks makes use of 4.0-only functionality to provide more independent CPU/GPU timings.

Structure

  • 3.x contains a Godot project for Godot 3.x (3.3.2 as of writing).
  • master contains a Godot project for Godot master branch (unstable).

Both projects should be developed with the same features so that they can be compared with each other.

Benchmark results

  • OS: Fedora 34
  • GPU: NVIDIA GeForce GTX 1080
  • Screen resolution: 2560×1440 (borderless maximized window)

The window manager (KWin) has compositing disabled during the test.

Batching is enabled in both GLES2 and GLES3. Godot's Vulkan renderer does not use batching and makes use of instancing instead.

Note: A debug build is used for both 3.x and master to ensure fairness. With a fully optimized release build, it's possible to get double the framerate in 3.x at least (not tested in master since things are currently broken with optimizations).

Note: The master branch is still in flux, which means the performance figures here may evolve in the future.

The Vulkan renderer should generally be compared against GLES3 rather than GLES2, since it's much more full-featured than GLES2 (and is also significantly more full-featured than GLES3).

All measurements are in milliseconds per frame rendered (16.66 ms ~= 60 FPS). Lower is better.

2D

Benchmark 3.x (GLES2) 3.x (GLES3) Vulkan (master)
10,000 256×256 Sprites 20.41 mspf 40.00 mspf 23.81 mspf
10,000 4-point Polygon2Ds 11.63 mspf 11.36 mspf 7.30 mspf
10,000 8-point rounded Line2Ds 62.50 mspf 62.50 mspf 8.33 mspf

3D

Benchmark 3.x (GLES2) 3.x (GLES3) Vulkan (master)
8,000 cubes (1 unshaded material) 10.20 mspf 15.87 mspf 6.94 mspf¹
8,000 cubes (8,000 unshaded materials) 20.00 mspf 20.83 mspf 6.94 mspf¹
200 spheres + 200 shadow-less OmniLights 10.75 mspf 3.04 mspf 8.85 mspf
2,000 spheres + 1 shadowed DirectionalLight 7.35 mspf 7.94 mspf 8.62 mspf²
  • ¹: Limited by V-Sync on a 144 Hz monitor. The effective frame time is likely lower than the one reported here.
  • ²: Shadow rendering quality is significantly better; it doesn't suffer from acne or peter-panning.

License

Copyright © 2021 Hugo Locurcio and contributors

Unless otherwise specified, files in this repository are licensed under the MIT license. See LICENSE.md for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].