Compare commits

...

6 Commits

Author SHA1 Message Date
unfa 84696253a7 Update 'README.md' 2022-01-09 21:07:13 +01:00
unfa 10befb85e5 Merge branch 'main' of ssh://git.gieszer.link:2222/unfa/liblast 2022-01-04 20:00:12 +01:00
unfa 927d4384a7 Optimization and balancing to save performance
Disabled dynamic shadows on Rockets and Explosions. Also reduced their radius.
Added queue_free() in Explosion effect to remove as much of nodes as possible when they are not needed.
Added animated Halo to Explosion (cheap)
Greatly reduced the amount of particles in Rocket and Explosions
Reduced Particle lifetime in Rocket trail
Reduced Rocket Launcher firing speed. it no longer fires as fast as the handgun.
Reduced shawmap size
Reduced shadow quality
Disabled Roughness limiter
Reduced Dev Texture size to 1K from 4K (added size limit in import settings)
Also saved export settings (they limit the amount of resources packed with game builds)
2022-01-04 19:55:38 +01:00
unfa 18f15931e6 Disabled MSAA by default 2022-01-04 19:12:34 +01:00
unfa 5df52e01e0 Update 'README.md' 2022-01-04 00:12:38 +01:00
unfa d8960fd0d9 Update 'README.md' 2022-01-03 23:57:59 +01:00
30 changed files with 246 additions and 138 deletions

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=36 format=3 uid="uid://wvxhewre31mo"] [gd_scene load_steps=38 format=3 uid="uid://wvxhewre31mo"]
[ext_resource type="Script" path="res://Assets/Effects/Impact.gd" id="1_7cd22"] [ext_resource type="Script" path="res://Assets/Effects/Impact.gd" id="1_7cd22"]
[ext_resource type="Texture2D" uid="uid://pnh872qjk0oy" path="res://Assets/Effects/Flame.png" id="2_pyxv8"] [ext_resource type="Texture2D" uid="uid://pnh872qjk0oy" path="res://Assets/Effects/Flame.png" id="2_pyxv8"]
@ -27,8 +27,8 @@ lifetime_randomness = 0.25
direction = Vector3(0, 0, -1) direction = Vector3(0, 0, -1)
spread = 180.0 spread = 180.0
gravity = Vector3(0, 0, 0) gravity = Vector3(0, 0, 0)
initial_velocity_min = 5.0 initial_velocity_min = 1.0
initial_velocity_max = 10.0 initial_velocity_max = 3.0
angular_velocity_min = -5.0 angular_velocity_min = -5.0
angular_velocity_max = 5.0 angular_velocity_max = 5.0
damping_min = 20.0 damping_min = 20.0
@ -172,17 +172,6 @@ proximity_fade_enable = true
[sub_resource type="QuadMesh" id="QuadMesh_n7yo0"] [sub_resource type="QuadMesh" id="QuadMesh_n7yo0"]
material = SubResource( "StandardMaterial3D_3qjja" ) material = SubResource( "StandardMaterial3D_3qjja" )
[sub_resource type="StandardMaterial3D" id="5"]
blend_mode = 1
shading_mode = 0
albedo_color = Color(1, 0, 0.00784314, 1)
albedo_texture = ExtResource( "2_pyxv8" )
uv1_scale = Vector3(0.5, 0.5, 1)
[sub_resource type="QuadMesh" id="6"]
material = SubResource( "5" )
size = Vector2(0.25, 0.25)
[sub_resource type="OpenSimplexNoise" id="OpenSimplexNoise_smcfq"] [sub_resource type="OpenSimplexNoise" id="OpenSimplexNoise_smcfq"]
persistence = 0.8 persistence = 0.8
@ -253,9 +242,34 @@ tracks/4/keys = {
"update": 0, "update": 0,
"values": [0.0] "values": [0.0]
} }
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Halo:surface_material_override/0:albedo_color")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 0.529412, 0.270588, 1)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Halo:mesh:size")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.75, 0.75)]
}
[sub_resource type="Animation" id="8"] [sub_resource type="Animation" id="8"]
resource_name = "anim" resource_name = "anim"
length = 3.0
step = 0.05 step = 0.05
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
@ -319,40 +333,108 @@ tracks/4/keys = {
"update": 0, "update": 0,
"values": [0.01, 1.0, 2.0, 3.0] "values": [0.01, 1.0, 2.0, 3.0]
} }
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Halo:surface_material_override/0:albedo_color")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 0.05, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(2, 1.3, 0, 1), Color(0.75, 0.397059, 0.202941, 1), Color(0, 0, 0, 1)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Halo:mesh:size")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.75, 0.75)]
}
tracks/7/type = "method"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Halo")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0.3),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"queue_free"
}]
}
tracks/8/type = "audio"
tracks/8/imported = false
tracks/8/enabled = false
tracks/8/path = NodePath("SoundPlayer/AudioStreamPlayer3D")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource( "4_ieunx" )
}],
"times": PackedFloat32Array(0)
}
tracks/9/type = "method"
tracks/9/imported = false
tracks/9/enabled = false
tracks/9/path = NodePath("SoundPlayer")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(2.35),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"queue_free"
}]
}
tracks/10/type = "method"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("AnimationPlayer")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(2.4),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"queue_free"
}]
}
[sub_resource type="Animation" id="Animation_itp5v"] [sub_resource type="Animation" id="Animation_itp5v"]
length = 0.001 length = 0.001
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
tracks/0/path = NodePath("MeshInstance3D:shader_params/o3007790_ANIM") tracks/0/path = NodePath("Decal:distance_fade_begin")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 1.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Decal:distance_fade_begin")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 0, "update": 0,
"values": [20.0] "values": [20.0]
} }
tracks/2/type = "value" tracks/1/type = "value"
tracks/2/imported = false tracks/1/imported = false
tracks/2/enabled = true tracks/1/enabled = true
tracks/2/path = NodePath("Decal:distance_fade_length") tracks/1/path = NodePath("Decal:distance_fade_length")
tracks/2/interp = 1 tracks/1/interp = 1
tracks/2/loop_wrap = true tracks/1/loop_wrap = true
tracks/2/keys = { tracks/1/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 0, "update": 0,
@ -365,60 +447,34 @@ length = 15.0
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
tracks/0/path = NodePath("MeshInstance3D:shader_params/o3007790_ANIM") tracks/0/path = NodePath("Decal:distance_fade_begin")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 1.0]
}
tracks/1/type = "method"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MeshInstance3D")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.3),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"queue_free"
}]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Decal:distance_fade_begin")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(5, 15), "times": PackedFloat32Array(5, 15),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 0, "update": 0,
"values": [10.0, -10.0] "values": [10.0, -10.0]
} }
tracks/3/type = "value" tracks/1/type = "value"
tracks/3/imported = false tracks/1/imported = false
tracks/3/enabled = true tracks/1/enabled = true
tracks/3/path = NodePath("Decal:distance_fade_length") tracks/1/path = NodePath("Decal:distance_fade_length")
tracks/3/interp = 1 tracks/1/interp = 1
tracks/3/loop_wrap = true tracks/1/loop_wrap = true
tracks/3/keys = { tracks/1/keys = {
"times": PackedFloat32Array(5, 15), "times": PackedFloat32Array(5, 15),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 0, "update": 0,
"values": [10.0, 0.0] "values": [10.0, 0.0]
} }
tracks/4/type = "method" tracks/2/type = "method"
tracks/4/imported = false tracks/2/imported = false
tracks/4/enabled = true tracks/2/enabled = true
tracks/4/path = NodePath(".") tracks/2/path = NodePath(".")
tracks/4/interp = 1 tracks/2/interp = 1
tracks/4/loop_wrap = true tracks/2/loop_wrap = true
tracks/4/keys = { tracks/2/keys = {
"times": PackedFloat32Array(15), "times": PackedFloat32Array(15),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"values": [{ "values": [{
@ -427,6 +483,34 @@ tracks/4/keys = {
}] }]
} }
[sub_resource type="Gradient" id="Gradient_x5mjl"]
offsets = PackedFloat32Array(0, 0.0696517, 0.154229, 0.241294, 0.320896, 0.425373, 0.537313, 0.634328, 0.756219, 1)
colors = PackedColorArray(2, 2, 2, 1, 0.985075, 0.985075, 0.985075, 1, 0.500439, 0.500439, 0.500439, 1, 0.247924, 0.247924, 0.247924, 1, 0.120634, 0.120634, 0.120634, 1, 0.0580323, 0.0580323, 0.0580323, 1, 0.0304474, 0.0304474, 0.0304474, 1, 0.0187759, 0.0187759, 0.0187759, 1, 0.00932661, 0.00932661, 0.00932661, 1, 0, 0, 0, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_hy81s"]
gradient = SubResource( "Gradient_x5mjl" )
use_hdr = true
fill = 1
fill_from = Vector2(0.5, 0.5)
fill_to = Vector2(0.5, 0)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gwnl0"]
blend_mode = 1
no_depth_test = true
shading_mode = 0
vertex_color_use_as_albedo = true
albedo_color = Color(1, 0.529412, 0.270588, 1)
albedo_texture = SubResource( "GradientTexture2D_hy81s" )
disable_receive_shadows = true
billboard_mode = 1
fixed_size = true
point_size = 89.7
proximity_fade_distance = 0.25
[sub_resource type="QuadMesh" id="QuadMesh_n0j78"]
material = SubResource( "StandardMaterial3D_gwnl0" )
size = Vector2(0.75, 0.75)
[node name="Impact" type="Node3D"] [node name="Impact" type="Node3D"]
script = ExtResource( "1_7cd22" ) script = ExtResource( "1_7cd22" )
@ -438,6 +522,7 @@ radius = 0.01
[node name="Explosion" type="GPUParticles3D" parent="."] [node name="Explosion" type="GPUParticles3D" parent="."]
layers = 2 layers = 2
emitting = false emitting = false
amount = 4
lifetime = 2.0 lifetime = 2.0
one_shot = true one_shot = true
explosiveness = 1.0 explosiveness = 1.0
@ -450,7 +535,7 @@ draw_pass_1 = SubResource( "QuadMesh_hbyxo" )
[node name="Tracers" type="GPUParticles3D" parent="."] [node name="Tracers" type="GPUParticles3D" parent="."]
layers = 2 layers = 2
emitting = false emitting = false
amount = 16 amount = 4
sub_emitter = NodePath("Smoke") sub_emitter = NodePath("Smoke")
one_shot = true one_shot = true
speed_scale = 2.5 speed_scale = 2.5
@ -465,7 +550,7 @@ draw_pass_1 = SubResource( "QuadMesh_opq4v" )
[node name="Smoke" type="GPUParticles3D" parent="Tracers"] [node name="Smoke" type="GPUParticles3D" parent="Tracers"]
layers = 2 layers = 2
emitting = false emitting = false
amount = 128 amount = 64
lifetime = 1.26 lifetime = 1.26
fixed_fps = 0 fixed_fps = 0
local_coords = false local_coords = false
@ -476,22 +561,16 @@ draw_pass_1 = SubResource( "QuadMesh_n7yo0" )
[node name="Timer" type="Timer" parent="."] [node name="Timer" type="Timer" parent="."]
wait_time = 15.0 wait_time = 15.0
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 1.06581e-14, 0, -1.06581e-14, 1, 0, 0.00379224, 0)
visible = false
mesh = SubResource( "6" )
surface_material_override/0 = null
[node name="OmniLight3D" type="OmniLight3D" parent="."] [node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.369677, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.369677, 0)
layers = 7
light_color = Color(1, 0.929412, 0, 1) light_color = Color(1, 0.929412, 0, 1)
light_projector = SubResource( "NoiseTexture_c4len" ) light_projector = SubResource( "NoiseTexture_c4len" )
light_size = 0.75 light_size = 0.75
light_specular = 0.2 light_specular = 0.2
shadow_enabled = true
shadow_blur = 2.0 shadow_blur = 2.0
omni_range = 25.0 omni_range = 15.0
omni_attenuation = 1.8025 omni_attenuation = 0.574349
[node name="AnimationPlayer" type="AnimationPlayer" parent="."] [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
autoplay = "anim" autoplay = "anim"
@ -526,6 +605,13 @@ distance_fade_begin = 20.0
distance_fade_length = 10.0 distance_fade_length = 10.0
cull_mask = 1 cull_mask = 1
[node name="Halo" type="MeshInstance3D" parent="."]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 0, 0.174589)
layers = 2
cast_shadow = 0
mesh = SubResource( "QuadMesh_n0j78" )
surface_material_override/0 = SubResource( "StandardMaterial3D_gwnl0" )
[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] [connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]
[editable path="SoundPlayer"] [editable path="SoundPlayer"]

View File

@ -127,6 +127,7 @@ one_shot = true
speed_scale = 2.0 speed_scale = 2.0
explosiveness = 1.0 explosiveness = 1.0
fixed_fps = 0 fixed_fps = 0
interpolate = false
process_material = SubResource( "ParticlesMaterial_fglo4" ) process_material = SubResource( "ParticlesMaterial_fglo4" )
draw_pass_1 = SubResource( "QuadMesh_o6i5g" ) draw_pass_1 = SubResource( "QuadMesh_o6i5g" )

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -32,6 +32,6 @@ process/fix_alpha_border=true
process/premult_alpha=false process/premult_alpha=false
process/normal_map_invert_y=false process/normal_map_invert_y=false
process/HDR_as_SRGB=false process/HDR_as_SRGB=false
process/size_limit=0 process/size_limit=1024
detect_3d/compress_to=0 detect_3d/compress_to=0
svg/scale=1.0 svg/scale=1.0

View File

@ -5,6 +5,7 @@
[ext_resource type="PackedScene" uid="uid://eerqpr05s6d4" path="res://Assets/Effects/BulletTracer.tscn" id="2_u1c26"] [ext_resource type="PackedScene" uid="uid://eerqpr05s6d4" path="res://Assets/Effects/BulletTracer.tscn" id="2_u1c26"]
[node name="Weapon" instance=ExtResource( "1_fpucm" )] [node name="Weapon" instance=ExtResource( "1_fpucm" )]
animation_speed = 2.5
projectile_or_tracer_scene = ExtResource( "2_u1c26" ) projectile_or_tracer_scene = ExtResource( "2_u1c26" )
weapon_damage = 15 weapon_damage = 15

View File

@ -4,13 +4,15 @@ extends Node3D
@export var speed : float @export var speed : float
var damage : int var damage : int
var source_position : Vector3 var source_position : Vector3
var player var player
var time := 0.0 var time := 0.0
#var active := true #var active := true
@onready var halo = $OmniLight3D/Halo @onready var halo = $Halo
@onready var halo_size = halo.mesh.size
@onready var halo_transform = halo.global_transform @onready var halo_transform = halo.global_transform
@export var halo_color : Color @export var halo_color : Color
@ -47,7 +49,7 @@ func _process(delta):
var flicker = sin(time * 125) + sin(time * 180) / 2 + sin(time * 295) / 3 var flicker = sin(time * 125) + sin(time * 180) / 2 + sin(time * 295) / 3
$OmniLight3D.light_energy = 3 + flicker /2 $OmniLight3D.light_energy = 3 + flicker /2
halo.mesh.size = Vector2.ONE * 1.5 + Vector2(flicker, flicker) / 8 halo.mesh.size = halo_size * 1.5 + Vector2(flicker, flicker) / 8
var space_state = get_world_3d().direct_space_state var space_state = get_world_3d().direct_space_state
var physics_ray_query_parameters_3d = PhysicsRayQueryParameters3D.new() var physics_ray_query_parameters_3d = PhysicsRayQueryParameters3D.new()
@ -98,8 +100,8 @@ func give_damage(target: Node, hit_position: Vector3, hit_normal: Vector3, damag
set_physics_process(false) set_physics_process(false)
halo.hide() halo.hide()
$OmniLight3D.light_energy = 0 $OmniLight3D.hide()
$OmniLight3D/Smoke.emitting = false $Smoke.emitting = false
$Area3D.set_deferred("monitoring",false) $Area3D.set_deferred("monitoring",false)
$Rocket.hide() $Rocket.hide()
$AmbientSound.stop() $AmbientSound.stop()

View File

@ -66,18 +66,18 @@ proximity_fade_enable = true
[sub_resource type="QuadMesh" id="QuadMesh_gkbg3"] [sub_resource type="QuadMesh" id="QuadMesh_gkbg3"]
material = SubResource( "StandardMaterial3D_eernl" ) material = SubResource( "StandardMaterial3D_eernl" )
[sub_resource type="Gradient" id="Gradient_x5mjl"] [sub_resource type="Gradient" id="Gradient_ki7q6"]
offsets = PackedFloat32Array(0, 0.0696517, 0.154229, 0.241294, 0.320896, 0.425373, 0.537313, 0.634328, 0.756219, 1) offsets = PackedFloat32Array(0, 0.0696517, 0.154229, 0.241294, 0.320896, 0.425373, 0.537313, 0.634328, 0.756219, 1)
colors = PackedColorArray(2, 2, 2, 1, 0.985075, 0.985075, 0.985075, 1, 0.500439, 0.500439, 0.500439, 1, 0.247924, 0.247924, 0.247924, 1, 0.120634, 0.120634, 0.120634, 1, 0.0580323, 0.0580323, 0.0580323, 1, 0.0304474, 0.0304474, 0.0304474, 1, 0.0187759, 0.0187759, 0.0187759, 1, 0.00932661, 0.00932661, 0.00932661, 1, 0, 0, 0, 1) colors = PackedColorArray(2, 2, 2, 1, 0.985075, 0.985075, 0.985075, 1, 0.500439, 0.500439, 0.500439, 1, 0.247924, 0.247924, 0.247924, 1, 0.120634, 0.120634, 0.120634, 1, 0.0580323, 0.0580323, 0.0580323, 1, 0.0304474, 0.0304474, 0.0304474, 1, 0.0187759, 0.0187759, 0.0187759, 1, 0.00932661, 0.00932661, 0.00932661, 1, 0, 0, 0, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_5y8sa"] [sub_resource type="GradientTexture2D" id="GradientTexture2D_5y8sa"]
gradient = SubResource( "Gradient_x5mjl" ) gradient = SubResource( "Gradient_ki7q6" )
use_hdr = true use_hdr = true
fill = 1 fill = 1
fill_from = Vector2(0.5, 0.5) fill_from = Vector2(0.5, 0.5)
fill_to = Vector2(0.5, 0) fill_to = Vector2(0.5, 0)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yhx2h"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_i6t8q"]
blend_mode = 1 blend_mode = 1
no_depth_test = true no_depth_test = true
shading_mode = 0 shading_mode = 0
@ -91,7 +91,8 @@ point_size = 89.7
proximity_fade_distance = 0.25 proximity_fade_distance = 0.25
[sub_resource type="QuadMesh" id="QuadMesh_q2732"] [sub_resource type="QuadMesh" id="QuadMesh_q2732"]
material = SubResource( "StandardMaterial3D_yhx2h" ) material = SubResource( "StandardMaterial3D_i6t8q" )
size = Vector2(0.25, 0.25)
[node name="Rocket" type="Node3D"] [node name="Rocket" type="Node3D"]
script = ExtResource( "1_3ywpo" ) script = ExtResource( "1_3ywpo" )
@ -124,33 +125,33 @@ monitorable = false
transform = Transform3D(0, 9.12042e-08, -2.08651, 2.08651, 0, 0, 0, -2.08651, -9.12042e-08, 0.000959158, 2.38419e-07, -0.307333) transform = Transform3D(0, 9.12042e-08, -2.08651, 2.08651, 0, 0, 0, -2.08651, -9.12042e-08, 0.000959158, 2.38419e-07, -0.307333)
shape = SubResource( "CapsuleShape3D_qjk68" ) shape = SubResource( "CapsuleShape3D_qjk68" )
[node name="OmniLight3D" type="SpotLight3D" parent="."] [node name="Smoke" type="GPUParticles3D" parent="."]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 0, 0.174589) transform = Transform3D(-0.999982, 0.000659683, -0.00600746, 0.000640738, 0.999995, 0.00315697, 0.00600951, 0.00315307, -0.999977, -0.000515461, 1.19209e-07, 0.984289)
light_color = Color(1, 0.529412, 0.270588, 1)
light_size = 0.5
shadow_enabled = true
shadow_blur = 3.0
spot_range = 25.0
spot_angle = 71.7513
[node name="Smoke" type="GPUParticles3D" parent="OmniLight3D"]
transform = Transform3D(0.999982, -0.000659683, 0.00600755, 0.000640738, 0.999995, 0.00315697, -0.0060096, -0.00315307, 0.999977, 0.00051539, 1.19209e-07, -0.8097)
layers = 2 layers = 2
amount = 1024 amount = 128
lifetime = 1.8
fixed_fps = 0 fixed_fps = 0
local_coords = false local_coords = false
trail_length_secs = 0.72 trail_length_secs = 0.72
process_material = SubResource( "ParticlesMaterial_mu7mc" ) process_material = SubResource( "ParticlesMaterial_mu7mc" )
draw_pass_1 = SubResource( "QuadMesh_gkbg3" ) draw_pass_1 = SubResource( "QuadMesh_gkbg3" )
[node name="Halo" type="MeshInstance3D" parent="OmniLight3D"] [node name="Halo" type="MeshInstance3D" parent="."]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 0, 0.174589)
layers = 2 layers = 2
cast_shadow = 0 cast_shadow = 0
mesh = SubResource( "QuadMesh_q2732" ) mesh = SubResource( "QuadMesh_q2732" )
skeleton = NodePath("../..")
surface_material_override/0 = null surface_material_override/0 = null
[node name="OmniLight3D" type="SpotLight3D" parent="."]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 0, 0.174589)
layers = 7
light_color = Color(1, 0.529412, 0.270588, 1)
light_size = 0.5
shadow_blur = 3.0
spot_range = 20.0
spot_attenuation = 0.329877
spot_angle = 71.7513
[node name="Timer" type="Timer" parent="."] [node name="Timer" type="Timer" parent="."]
wait_time = 10.0 wait_time = 10.0
one_shot = true one_shot = true

View File

@ -8,6 +8,8 @@
[ext_resource type="AudioStream" uid="uid://c1fv01sc4dy5w" path="res://Assets/SFX/Weapons_RocketLauncher_Shot_01_C.wav" id="6_n223q"] [ext_resource type="AudioStream" uid="uid://c1fv01sc4dy5w" path="res://Assets/SFX/Weapons_RocketLauncher_Shot_01_C.wav" id="6_n223q"]
[node name="Weapon" instance=ExtResource( "1_x28sf" )] [node name="Weapon" instance=ExtResource( "1_x28sf" )]
transform = Transform3D(1.0005, 0, 0, 0, 1.0005, 0, 0, 0, 1.0005, 0, 0, 0)
animation_speed = 0.3
weapon_type = 1 weapon_type = 1
projectile_or_tracer_scene = ExtResource( "2_xwyny" ) projectile_or_tracer_scene = ExtResource( "2_xwyny" )
weapon_damage = 50 weapon_damage = 50

View File

@ -9,6 +9,8 @@ extends Node3D
@onready var muzzle = find_node("Muzzle") @onready var muzzle = find_node("Muzzle")
@onready var animation_player = find_node("AnimationPlayer") @onready var animation_player = find_node("AnimationPlayer")
@export var animation_speed : float
var casing = preload("res://Assets/Weapons/Handgun/Casing.tscn") var casing = preload("res://Assets/Weapons/Handgun/Casing.tscn")
var flash = preload("res://Assets/Effects/MuzzleFlash.tscn") var flash = preload("res://Assets/Effects/MuzzleFlash.tscn")
var tracer = preload("res://Assets/Effects/BulletTracer.tscn") var tracer = preload("res://Assets/Effects/BulletTracer.tscn")
@ -45,7 +47,7 @@ var spread = spread_min
get_parent().add_child(flash_effect) get_parent().add_child(flash_effect)
flash_effect.global_transform = muzzle.global_transform flash_effect.global_transform = muzzle.global_transform
animation_player.play("Shoot", 0, 2.5) animation_player.play("Shoot", 0, animation_speed)
var space_state = get_world_3d().direct_space_state var space_state = get_world_3d().direct_space_state

View File

@ -4,15 +4,16 @@ name="Linux/X11"
platform="Linux/X11" platform="Linux/X11"
runnable=true runnable=true
custom_features="" custom_features=""
export_filter="all_resources" export_filter="scenes"
include_filter="*.wav, *.sample, version" export_files=PackedStringArray("res://Assets/Audio/BulletFlyBySoundPlayer.tscn", "res://Assets/Audio/SoundPlayer.tscn", "res://Assets/Characters/Player.tscn", "res://Assets/Decals/Blood/BloodSplash.tscn", "res://Assets/DecalsStatic/LiblastLogo.tscn", "res://Assets/DecalsStatic/Puddle.tscn", "res://Assets/Effects/BulletTracer.gltf", "res://Assets/Effects/BulletTracer.tscn", "res://Assets/Effects/Gibs.tscn", "res://Assets/Effects/ImpactBlood.tscn", "res://Assets/Effects/ImpactExplosion.tscn", "res://Assets/Effects/ImpactSparks.tscn", "res://Assets/Effects/MuzzleFlash.tscn", "res://Assets/HUD/HUD.tscn", "res://Assets/MapComponents/Hazard.tscn", "res://Assets/MapComponents/SpawnPoint.tscn", "res://Assets/Maps/DM1.tscn", "res://Assets/UI/ConnectMenu.tscn", "res://Assets/UI/ControlsMenu.tscn", "res://Assets/UI/GUI.tscn", "res://Assets/UI/GraphicsMenu.tscn", "res://Assets/UI/Menu.tscn", "res://Assets/UI/MenuButton.tscn", "res://Assets/UI/MenuCheckButton.tscn", "res://Assets/UI/MenuColor.tscn", "res://Assets/UI/MenuData.tscn", "res://Assets/UI/MenuItem.tscn", "res://Assets/UI/MenuLineEdit.tscn", "res://Assets/UI/MenuSlider.tscn", "res://Assets/UI/OptionsMenu.tscn", "res://Assets/UI/PlayMenu.tscn", "res://Assets/UI/ProfileMenu.tscn", "res://Assets/Weapons/Handgun/Casing.tscn", "res://Assets/Weapons/Handgun/Handgun.tscn", "res://Assets/Weapons/RocketLauncher/Rocket.tscn", "res://Assets/Weapons/RocketLauncher/RocketLauncher.tscn", "res://Assets/Weapons/Weapon.tscn", "res://Main.tscn", "res://Map.tscn", "res://Server.tscn")
include_filter="version"
exclude_filter="" exclude_filter=""
export_path="Builds/Server/Liblast Linux.x86_64" export_path="Builds/0.1.1.2/Liblast Linux.x86_64"
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""
encrypt_pck=false encrypt_pck=false
encrypt_directory=false encrypt_directory=false
script_export_mode=1 script_export_mode=0
script_encryption_key="" script_encryption_key=""
[preset.0.options] [preset.0.options]
@ -20,7 +21,7 @@ script_encryption_key=""
custom_template/debug="" custom_template/debug=""
custom_template/release="" custom_template/release=""
binary_format/64_bits=true binary_format/64_bits=true
binary_format/embed_pck=true binary_format/embed_pck=false
texture_format/bptc=false texture_format/bptc=false
texture_format/s3tc=true texture_format/s3tc=true
texture_format/etc=false texture_format/etc=false

View File

@ -199,13 +199,17 @@ mute_audio={
[rendering] [rendering]
reflections/sky_reflections/fast_filter_high_quality=true shadows/directional_shadow/size=1024
shadows/directional_shadow/soft_shadow_quality=2
environment/ssao/quality=0 environment/ssao/quality=0
anti_aliasing/screen_space_roughness_limiter/enabled=false
environment/screen_space_reflection/roughness_quality=3 environment/screen_space_reflection/roughness_quality=3
global_illumination/sdfgi/probe_ray_count=2 global_illumination/sdfgi/probe_ray_count=2
global_illumination/sdfgi/frames_to_converge=0 global_illumination/sdfgi/frames_to_converge=0
global_illumination/sdfgi/frames_to_update_lights=4 global_illumination/sdfgi/frames_to_update_lights=4
anti_aliasing/quality/msaa=2
occlusion_culling/use_occlusion_culling=true occlusion_culling/use_occlusion_culling=true
mesh_lod/lod_change/threshold_pixels=3.0 mesh_lod/lod_change/threshold_pixels=3.0
shadows/shadow_atlas/size=1024
shadows/shadow_atlas/16_bits=false
shadows/shadow_atlas/quadrant_1_subdiv=3
environment/defaults/default_environment="res://default_env.tres" environment/defaults/default_environment="res://default_env.tres"

View File

@ -1,3 +1,9 @@
<h1>The project has moved here: https://codeberg.org/unfa/liblast !</h1>
_This repository is read-only (2022-01-09)_
---
<p align="center"><img src="https://git.gieszer.link/unfa/liblast/media/branch/main/Design/Logo.png" alt="Liblast - a Libre Multiplayer FPS Game"></p> <p align="center"><img src="https://git.gieszer.link/unfa/liblast/media/branch/main/Design/Logo.png" alt="Liblast - a Libre Multiplayer FPS Game"></p>
# Liblast # Liblast
@ -23,7 +29,7 @@ Secondary goals:
Subscribe to the [YouTube channel](https://www.youtube.com/channel/UC1Oi1eXwdr8RlqIslyht5AQ) for upcoming video updates! Subscribe to the [YouTube channel](https://www.youtube.com/channel/UC1Oi1eXwdr8RlqIslyht5AQ) for upcoming video updates!
[**Watch the latest public playtesting session**](https://youtu.be/0R40GuIn5GA) [**Watch the latest public playtesting session**](https://youtu.be/e5VvaMthQTQ?t=403)
--- ---
## Repository Bootstrap Snapshot ## Repository Bootstrap Snapshot
@ -54,9 +60,11 @@ To start playing Liblast it's recommended to first host a local game and adjust
| Left Click | Shoot | | Left Click | Shoot |
| Space | Jump | | Space | Jump |
| Shift (Hold) | Jetpack | | Shift (Hold) | Jetpack |
| 1 / 2 | Select weapon |
| T | Chat with Team | | T | Chat with Team |
| Y | Chat with All | | Y | Chat with All |
| Z | Zoom | | Z | Zoom |
| M | Mute audio |
| ESC | Main Menu | | ESC | Main Menu |