Skip to content

Commit 440fb64

Browse files
committed
something
1 parent 2a22643 commit 440fb64

File tree

14 files changed

+248
-8
lines changed

14 files changed

+248
-8
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ example:
7777
* updaterate
7878
* chat
7979
* on server remove textures etc.
80+
* decouple code with signals
8081
* instancing grass, trees, stones (either via particle or multimesh or shader?)
8182
* create new world, add more assets
8283
* player with custom bones, (mixamo? whats the license?) animations and root motion

client/assets/bullet/bullet.gd

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
extends Area3D
2+
3+
var from_player : int
4+
#var bullet_state : Array
5+
6+
func _ready():
7+
# $AudioStreamPlayer3d.play()
8+
#func _physics_process(_delta):
9+
# # if category bullet doesnt exist in global_state add it
10+
# if !get_node("/root/Main").global_state.has("bullet"):
11+
# get_node("/root/Main").global_state["bullet"] = {}
12+
#
13+
# # add global bullet_state into vars
14+
# if get_node("/root/Main").global_state["bullet"].has(name):
15+
# bullet_state = get_node("/root/Main").global_state["bullet"][name]
16+
# position = bullet_state[1]
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
shader_type spatial;
2+
render_mode specular_schlick_ggx;
3+
4+
uniform float Glow_Power : hint_range(0,10) = 3;
5+
uniform float Lightness_Difference : hint_range(0,10) = 3;
6+
uniform vec4 Sun_Color : source_color;
7+
uniform vec3 Base_Color : source_color;
8+
9+
uniform sampler2D voronoi_noise;
10+
uniform sampler2D emission_noise;
11+
varying vec3 vertex_pos;
12+
uniform float waveSpeed : hint_range(0,1) = 0.1;
13+
uniform float fresnel : hint_range(0,2) = 1.0;
14+
15+
uniform float scale : hint_range(0,2) = 0.01;
16+
uniform float blendSharpness : hint_range(0,2) = 0.0;
17+
18+
// TRIPLANAR FUNCTION
19+
vec4 triplanar_texture(vec3 position, vec3 normal, vec2 offset, sampler2D noise) {
20+
vec4 colX = texture(noise, position.xy * scale + offset);
21+
vec4 colY = texture(noise, position.xz * scale + offset);
22+
vec4 colZ = texture(noise, position.zy * scale + offset);
23+
24+
vec3 blendWeight = abs(normal);
25+
blendWeight = vec3(pow(blendWeight.x, blendSharpness), pow(blendWeight.y, blendSharpness), pow(blendWeight.z, blendSharpness));
26+
blendWeight /= (blendWeight.x + blendWeight.y + blendWeight.z);
27+
28+
return colX * blendWeight.x + colY * blendWeight.y + colZ * blendWeight.z;
29+
}
30+
31+
void vertex() {
32+
vertex_pos = VERTEX;
33+
}
34+
35+
void fragment() {
36+
// Fresnel
37+
float fresnel_out = pow(fresnel - clamp(dot(NORMAL, VIEW), 0.0, fresnel), fresnel);
38+
39+
vec2 waveOffsetA = vec2(TIME * waveSpeed, TIME * waveSpeed * 0.8);
40+
vec2 waveOffsetB = vec2(TIME * waveSpeed * - 0.8, TIME * waveSpeed * -0.3);
41+
vec2 result_offset = waveOffsetA + waveOffsetB;
42+
43+
vec3 cloud_tex = triplanar_texture(vertex_pos, NORMAL, result_offset, voronoi_noise).rgb;
44+
vec3 cloud_tex_with_light = cloud_tex * vec3(Lightness_Difference);
45+
vec3 cloud_tex_with_light_with_color = cloud_tex_with_light * Sun_Color.rgb;
46+
vec3 cloud_tex_with_light_with_color_with_glow = vec3(Glow_Power) * cloud_tex_with_light_with_color;
47+
48+
vec3 noise_tex = triplanar_texture(vertex_pos, NORMAL, result_offset, emission_noise).rgb;
49+
vec3 result = cloud_tex_with_light_with_color_with_glow * noise_tex;
50+
51+
EMISSION = vec3(fresnel_out) * result;
52+
ALBEDO = Base_Color;
53+
}

client/assets/bullet/bullet.tscn

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
[gd_scene load_steps=10 format=3 uid="uid://dou6ktciha523"]
2+
3+
[ext_resource type="Script" path="res://assets/bullet/bullet.gd" id="1_1qs75"]
4+
[ext_resource type="Shader" path="res://assets/bullet/bullet.gdshader" id="2_saywm"]
5+
6+
[sub_resource type="SphereMesh" id="SphereMesh_nafve"]
7+
radius = 0.1
8+
height = 0.2
9+
10+
[sub_resource type="FastNoiseLite" id="FastNoiseLite_fbj2i"]
11+
12+
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_lk214"]
13+
generate_mipmaps = false
14+
seamless = true
15+
noise = SubResource("FastNoiseLite_fbj2i")
16+
17+
[sub_resource type="FastNoiseLite" id="FastNoiseLite_onjur"]
18+
19+
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_7gc7f"]
20+
generate_mipmaps = false
21+
seamless = true
22+
noise = SubResource("FastNoiseLite_onjur")
23+
24+
[sub_resource type="ShaderMaterial" id="ShaderMaterial_t1htj"]
25+
render_priority = 0
26+
shader = ExtResource("2_saywm")
27+
shader_parameter/Glow_Power = 3.0
28+
shader_parameter/Lightness_Difference = 3.0
29+
shader_parameter/Sun_Color = Color(0.843137, 0.231373, 0, 1)
30+
shader_parameter/Base_Color = Color(0.368627, 0, 0.419608, 1)
31+
shader_parameter/waveSpeed = 0.1
32+
shader_parameter/fresnel = 1.0
33+
shader_parameter/scale = 2.0
34+
shader_parameter/blendSharpness = 0.0
35+
shader_parameter/voronoi_noise = SubResource("NoiseTexture2D_7gc7f")
36+
shader_parameter/emission_noise = SubResource("NoiseTexture2D_lk214")
37+
38+
[sub_resource type="SphereShape3D" id="SphereShape3D_dstp7"]
39+
radius = 0.1
40+
41+
[node name="Bullet" type="Area3D"]
42+
script = ExtResource("1_1qs75")
43+
44+
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
45+
mesh = SubResource("SphereMesh_nafve")
46+
surface_material_override/0 = SubResource("ShaderMaterial_t1htj")
47+
48+
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
49+
shape = SubResource("SphereShape3D_dstp7")
50+
51+
[node name="AudioStreamPlayer3d" type="AudioStreamPlayer3D" parent="."]
52+
visible = false

client/assets/maps/curiosity_islands.tscn

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
[gd_scene load_steps=10 format=3 uid="uid://gikh84r7bxud"]
1+
[gd_scene load_steps=17 format=3 uid="uid://gikh84r7bxud"]
22

33
[ext_resource type="PackedScene" uid="uid://bdfobcupaogw" path="res://assets/water/water.tscn" id="1_udmok"]
44
[ext_resource type="PackedScene" uid="uid://c6j0apdpcaxsy" path="res://assets/terrain/terrain.tscn" id="2_a0one"]
55
[ext_resource type="PackedScene" uid="uid://bvpvtmnku47ur" path="res://assets/moving_cube/moving_cube.tscn" id="3_ljq1y"]
66
[ext_resource type="PackedScene" uid="uid://bd7uifbiu5ykr" path="res://assets/rigid_cube/rigid_cube.tscn" id="4_df8jg"]
77
[ext_resource type="PackedScene" uid="uid://bul1nbhutnctq" path="res://assets/tree_1/tree_1.tscn" id="6_l33sk"]
88
[ext_resource type="PackedScene" uid="uid://mn2pbnsnbb3y" path="res://assets/grass_1/grass_1.tscn" id="7_5ipbm"]
9+
[ext_resource type="Shader" path="res://assets/bullet/bullet.gdshader" id="7_5uy65"]
910

1011
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_w2r3g"]
1112
sky_top_color = Color(0.211765, 0.313726, 0.552941, 1)
@@ -29,6 +30,38 @@ ambient_light_energy = 3.0
2930
tonemap_mode = 3
3031
tonemap_white = 6.0
3132

33+
[sub_resource type="SphereMesh" id="SphereMesh_avsux"]
34+
radius = 2.0
35+
height = 4.0
36+
37+
[sub_resource type="FastNoiseLite" id="FastNoiseLite_ekwrd"]
38+
39+
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_7g5vw"]
40+
generate_mipmaps = false
41+
seamless = true
42+
noise = SubResource("FastNoiseLite_ekwrd")
43+
44+
[sub_resource type="FastNoiseLite" id="FastNoiseLite_c8uim"]
45+
46+
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_7o3lw"]
47+
generate_mipmaps = false
48+
seamless = true
49+
noise = SubResource("FastNoiseLite_c8uim")
50+
51+
[sub_resource type="ShaderMaterial" id="ShaderMaterial_6tyty"]
52+
render_priority = 0
53+
shader = ExtResource("7_5uy65")
54+
shader_parameter/Glow_Power = 3.0
55+
shader_parameter/Lightness_Difference = 3.0
56+
shader_parameter/Sun_Color = Color(0.780392, 0, 0.788235, 1)
57+
shader_parameter/Base_Color = Color(0.368627, 0, 0.419608, 1)
58+
shader_parameter/waveSpeed = 0.1
59+
shader_parameter/fresnel = 1.0
60+
shader_parameter/scale = 0.236
61+
shader_parameter/blendSharpness = 0.0
62+
shader_parameter/voronoi_noise = SubResource("NoiseTexture2D_7o3lw")
63+
shader_parameter/emission_noise = SubResource("NoiseTexture2D_7g5vw")
64+
3265
[node name="curiosity_islands" type="Node3D"]
3366

3467
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
@@ -55,3 +88,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 709.746, 163.147, 0)
5588

5689
[node name="grass_1" parent="." instance=ExtResource("7_5ipbm")]
5790
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 698.398, 163.848, -11.1547)
91+
92+
[node name="ball" type="MeshInstance3D" parent="."]
93+
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 692.518, 166.388, 52.4874)
94+
mesh = SubResource("SphereMesh_avsux")
95+
surface_material_override/0 = SubResource("ShaderMaterial_6tyty")

server/assets/bullet/bullet.gd

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
extends Area3D
2+
3+
var from_player : int
4+
#var bullet_state : Array
5+
var target : Vector3
6+
7+
var g : float = ProjectSettings.get_setting("physics/3d/default_gravity")
8+
var velocity := Vector3.ZERO
9+
10+
@onready var ray_dir : Vector3 = global_position.direction_to(target).normalized()
11+
@export var bullet_velocity := 40
12+
13+
func _ready():
14+
print("hello world from: " + str(name))
15+
# var timer := Timer.new()
16+
# self.add_child(timer)
17+
# timer.connect("timeout", destroy)
18+
# timer.set_wait_time(3)
19+
# timer.start()
20+
21+
#func _physics_process(delta):
22+
# velocity.y += g * delta
23+
# velocity=ray_dir * bullet_velocity
24+
# global_transform.origin += velocity * delta
25+
26+
#Add bullet_state to global_state after physic calculations
27+
# bullet_state = [from_player, position]
28+
29+
#if bullet doesnt exist add it to global_state
30+
# if !get_node("/root/Main").global_state.has("bullet"):
31+
# get_node("/root/Main").global_state["bullet"] = {}
32+
33+
# add bullet_state to global_state
34+
# get_node("/root/Main").global_state["bullet"][name] = bullet_state
35+
36+
func _on_body_entered(body):
37+
print(str(name) + " collided with " + str(body.name))
38+
# if body is CharacterBody3D:
39+
# body.damage(10)
40+
41+
#TODO: Why doesnt it get deleted from global_state????????????
42+
# get_node("/root/Main/").global_state["bullet"].erase(name)
43+
# queue_free()
44+
45+
func destroy():
46+
# get_node("/root/Main/").global_state["bullet"].erase(name)
47+
queue_free()

server/assets/bullet/bullet.tscn

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
[gd_scene load_steps=5 format=3 uid="uid://dou6ktciha523"]
2+
3+
[ext_resource type="Script" path="res://assets/bullet/bullet.gd" id="1_q075n"]
4+
5+
[sub_resource type="SphereMesh" id="SphereMesh_nafve"]
6+
radius = 0.1
7+
height = 0.2
8+
rings = 4
9+
10+
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ksp6s"]
11+
12+
[sub_resource type="SphereShape3D" id="SphereShape3D_dstp7"]
13+
radius = 0.1
14+
15+
[node name="Bullet" type="Area3D"]
16+
script = ExtResource("1_q075n")
17+
18+
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
19+
mesh = SubResource("SphereMesh_nafve")
20+
surface_material_override/0 = SubResource("ShaderMaterial_ksp6s")
21+
22+
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
23+
shape = SubResource("SphereShape3D_dstp7")
24+
25+
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

server/assets/maps/curiosity_islands.tscn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,4 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 709.746, 163.147, 0)
5757
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 698.398, 163.848, -11.1547)
5858

5959
[node name="Camera3D" type="Camera3D" parent="."]
60-
transform = Transform3D(-0.379231, -0.267133, 0.885903, -0.017992, 0.959368, 0.281583, -0.925127, 0.0908457, -0.368628, 826.175, 230.033, 0)
60+
transform = Transform3D(0.970296, 0.0759616, -0.229687, 0, 0.949425, 0.313992, 0.241922, -0.304666, 0.921223, 676.927, 184.52, 91.225)

server/assets/net/client_to_server.gd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ func send_input_unreliable(input_json_string: String):
4646
func send_input_reliable(input_json_string: String):
4747
var id = multiplayer.get_remote_sender_id()
4848
var input: Dictionary = JSON.parse_string(input_json_string)
49+
# print("received_input_tcp: " + str(input))
4950
if input.has("jump"):
5051
var jump = true
5152
get_node("/root/main/players/" + str(id) + "/" + str(id) + "/inputs").jump = jump

server/assets/net/net.gd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,11 +219,11 @@ func _physics_process(delta):
219219
# update_states_on_clients.rpc_id(int(str(p.name)), states)
220220
if !states_udp.is_empty():
221221
var states_udp_json_string: String = JSON.stringify(states_udp)
222-
print("udp: " + states_udp_json_string)
222+
# print("udp: " + states_udp_json_string)
223223
$/root/main/net/server_to_client.send_output_to_client_unreliable.rpc_id(int(str(p.get_name())), states_udp_json_string)
224224
if !states_tcp.is_empty():
225225
var states_tcp_json_string: String = JSON.stringify(states_tcp)
226-
print("tcp: " + states_tcp_json_string)
226+
# print("tcp: " + states_tcp_json_string)
227227
$/root/main/net/server_to_client.send_output_to_client_reliable.rpc_id(int(str(p.get_name())), states_tcp_json_string)
228228
states_udp = {}
229229
states_tcp = {}

0 commit comments

Comments
 (0)