Adds in-game debug menu addon

Adds an in-game debug menu that displays performance metrics (FPS, frame times) and hardware/software information.

The menu can be toggled using the F3 key (or a custom input binding). It has different display styles, ranging from a compact FPS display to a detailed view with graphs and system information.
This commit is contained in:
Dan Baker 2025-05-04 17:53:46 +01:00
parent 214e0aa5e0
commit ff62d67f54
37 changed files with 1484 additions and 49 deletions

View file

@ -0,0 +1,20 @@
[gd_scene load_steps=4 format=3 uid="uid://d2q0gh76v2wjm"]
[ext_resource type="Script" uid="uid://d5tiwy16ivu6" path="res://player/weapons/projectile.gd" id="1_4urkw"]
[ext_resource type="Texture2D" uid="uid://b82eovf1htp4i" path="res://assets/sprites/characters/pink/Rock1.png" id="2_5842l"]
[sub_resource type="CircleShape2D" id="CircleShape2D_o4f18"]
radius = 1.0
[node name="BasicProjectile" type="Area2D"]
collision_layer = 16
collision_mask = 8
script = ExtResource("1_4urkw")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_o4f18")
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(5.96046e-08, 5.96046e-08)
scale = Vector2(0.3125, 0.3125)
texture = ExtResource("2_5842l")

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://gan2vkax8nwy"
path="res://.godot/imported/slimes_blue.png-714717b05c2104cf50fc9fd6f4afe1c1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/enemies/slimes_blue.png"
dest_files=["res://.godot/imported/slimes_blue.png-714717b05c2104cf50fc9fd6f4afe1c1.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ievi6pon3ptw"
path="res://.godot/imported/slimes_dark.png-b89c4cb22ec4d8d8ca0b6255a8a99a81.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/enemies/slimes_dark.png"
dest_files=["res://.godot/imported/slimes_dark.png-b89c4cb22ec4d8d8ca0b6255a8a99a81.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cqwmi3v81uhmf"
path="res://.godot/imported/slimes_green.png-08e345c322ad9d9ec7922af9737a7e3b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/enemies/slimes_green.png"
dest_files=["res://.godot/imported/slimes_green.png-08e345c322ad9d9ec7922af9737a7e3b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d1eqf5k6fywlu"
path="res://.godot/imported/slimes_pink.png-306435e1f9ca80f46b8658abf39a07a5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/enemies/slimes_pink.png"
dest_files=["res://.godot/imported/slimes_pink.png-306435e1f9ca80f46b8658abf39a07a5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://badj3651o6jc8"
path="res://.godot/imported/slimes_white.png-fb1b6c0ee38065fb578a69501028a0b7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/enemies/slimes_white.png"
dest_files=["res://.godot/imported/slimes_white.png-fb1b6c0ee38065fb578a69501028a0b7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cv7txwf7xhngf"
path="res://.godot/imported/slimes_yellow.png-7184a698ae163f66b11534f79ba701c9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/enemies/slimes_yellow.png"
dest_files=["res://.godot/imported/slimes_yellow.png-7184a698ae163f66b11534f79ba701c9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -1131,7 +1131,8 @@ texture_region_size = Vector2i(32, 32)
[resource]
tile_size = Vector2i(32, 32)
physics_layer_0/collision_layer = 4
physics_layer_0/collision_layer = 2
physics_layer_0/collision_mask = 9
terrain_set_0/mode = 0
terrain_set_0/terrain_0/name = "Floor"
terrain_set_0/terrain_0/color = Color(0.5, 0.4375, 0.25, 1)

View file

@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://cgxn1f4p4vik6"]
[ext_resource type="Script" uid="uid://dcenqdci4hjes" path="res://player/weapons/ranged_weapon.gd" id="1_x1kyd"]
[node name="RangedWeapon" type="Node2D"]
script = ExtResource("1_x1kyd")