diff --git a/assets/roadtexture.png b/assets/roadtexture.png new file mode 100644 index 0000000..3be0dcc Binary files /dev/null and b/assets/roadtexture.png differ diff --git a/assets/roadtexture.png.import b/assets/roadtexture.png.import new file mode 100644 index 0000000..3f3b87a --- /dev/null +++ b/assets/roadtexture.png.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/roadtexture.png-f1b1ad8f7882e3d1a4409d2c23babb77.s3tc.stex" +path.etc2="res://.import/roadtexture.png-f1b1ad8f7882e3d1a4409d2c23babb77.etc2.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/roadtexture.png" +dest_files=[ "res://.import/roadtexture.png-f1b1ad8f7882e3d1a4409d2c23babb77.s3tc.stex", "res://.import/roadtexture.png-f1b1ad8f7882e3d1a4409d2c23babb77.etc2.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/tyretexture.png.import b/assets/tyretexture.png.import index ce66637..26733f2 100644 --- a/assets/tyretexture.png.import +++ b/assets/tyretexture.png.import @@ -2,28 +2,30 @@ importer="texture" type="StreamTexture" -path="res://.import/tyretexture.png-815a19f346dc8bb593f48a3a9b625018.stex" +path.s3tc="res://.import/tyretexture.png-815a19f346dc8bb593f48a3a9b625018.s3tc.stex" +path.etc2="res://.import/tyretexture.png-815a19f346dc8bb593f48a3a9b625018.etc2.stex" metadata={ -"vram_texture": false +"imported_formats": [ "s3tc", "etc2" ], +"vram_texture": true } [deps] source_file="res://assets/tyretexture.png" -dest_files=[ "res://.import/tyretexture.png-815a19f346dc8bb593f48a3a9b625018.stex" ] +dest_files=[ "res://.import/tyretexture.png-815a19f346dc8bb593f48a3a9b625018.s3tc.stex", "res://.import/tyretexture.png-815a19f346dc8bb593f48a3a9b625018.etc2.stex" ] [params] -compress/mode=0 +compress/mode=2 compress/lossy_quality=0.7 compress/hdr_mode=0 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 +flags/repeat=true flags/filter=true -flags/mipmaps=false +flags/mipmaps=true flags/anisotropic=false -flags/srgb=2 +flags/srgb=1 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false @@ -31,5 +33,5 @@ process/invert_color=false process/normal_map_invert_y=false stream=false size_limit=0 -detect_3d=true +detect_3d=false svg/scale=1.0 diff --git a/menu/start_menu.gd b/menu/start_menu.gd index 4b9041b..ebe8537 100644 --- a/menu/start_menu.gd +++ b/menu/start_menu.gd @@ -7,10 +7,11 @@ const TEST_SCENE = preload("res://scenes/test_level.tscn") const INFINITE_LOOP_SCENE = preload("res://scenes/infinite_loop_track_level.tscn") const ROUNDING_ERROR = preload("res://scenes/rounding_error_track_level.tscn") const SCARAB = preload("res://scenes/scarab_track_level.tscn") +const RACE_CONDITION = preload("res://scenes/race_condition_track_level.tscn") const GUI_SCENE = preload("res://player/gui.tscn") var vehicles = [BEETLE, BUGGY, BUGMOBILE] -var tracks = [INFINITE_LOOP_SCENE, ROUNDING_ERROR, SCARAB, TEST_SCENE] +var tracks = [INFINITE_LOOP_SCENE, ROUNDING_ERROR, RACE_CONDITION, SCARAB, TEST_SCENE] # gdlint: ignore=max-line-length onready var vehicle_selector = $MarginContainer/VSplitContainer/CenterContainer/VBoxContainer/VehicleSelector @@ -26,6 +27,7 @@ func _ready() -> void: track_selector.add_item("Infinite Loop") track_selector.add_item("Rounding Error") + track_selector.add_item("Race Condition") track_selector.add_item("Scarab") track_selector.add_item("Testing grounds") diff --git a/player/camera.tscn b/player/camera.tscn index 49058f1..3976e3c 100644 --- a/player/camera.tscn +++ b/player/camera.tscn @@ -4,7 +4,7 @@ [node name="camera" type="Camera"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.88022, 23.0639 ) -far = 457.7 +far = 450.0 script = ExtResource( 1 ) target_distance = 12.0 target_height = 6.0 diff --git a/scenes/race_condition_track_level.tscn b/scenes/race_condition_track_level.tscn new file mode 100644 index 0000000..06d2161 --- /dev/null +++ b/scenes/race_condition_track_level.tscn @@ -0,0 +1,213 @@ +[gd_scene load_steps=18 format=2] + +[ext_resource path="res://scenes/base_track_level.tscn" type="PackedScene" id=1] +[ext_resource path="res://assets/tyretexture.png" type="Texture" id=2] +[ext_resource path="res://assets/roadtexture.png" type="Texture" id=3] + +[sub_resource type="SpatialMaterial" id=11] +albedo_color = Color( 0.0980392, 0.247059, 0.00392157, 1 ) + +[sub_resource type="PlaneMesh" id=12] +material = SubResource( 11 ) +size = Vector2( 600, 600 ) + +[sub_resource type="ConvexPolygonShape" id=3] +points = PoolVector3Array( -300, 0, -300, -300, 0, 300, 300, 0, -300, 300, 0, 300 ) + +[sub_resource type="SpatialMaterial" id=1] +albedo_texture = ExtResource( 2 ) +uv1_scale = Vector3( 0.15, 10, 1 ) + +[sub_resource type="PlaneMesh" id=2] +material = SubResource( 1 ) +size = Vector2( 600, 600 ) + +[sub_resource type="BoxShape" id=4] +extents = Vector3( 290.122, 2.1347, 299.772 ) + +[sub_resource type="Curve3D" id=5] +_data = { +"points": PoolVector3Array( 0, 0, 0, 0, 0, 0, 1, 0, 128, -128, 0, -0.2, 128, 0, 0.2, 129, 0, 128, 0, 0, 64.3, 0, 0, -64.3, 256, 0, 1, 127.8, 0, -0.4, -127.8, 0, 0.4, 128.388, 0, -127.842, 0, 0, 0, 0, 0, 0, 0.565611, 0, -127.842, 128.1, 0, -0.4, -128.1, 0, 0.4, -127.658, 0, -127.842, 0, 0, -63.9, 0, 0, 63.9, -255.882, 0, -0.422239, -128.7, 0, 0.4, 128.7, 0, -0.4, -127.658, 0, 128.204, 0, 0, 0, 0, 0, 0, 1, 0, 128 ), +"tilts": PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0 ) +} + +[sub_resource type="Shader" id=9] +code = "shader_type spatial; + +uniform sampler2D road_texture; + +void fragment() { + vec2 road_uv = vec2(UV.y * 5.0, UV.x * 0.02); + + vec4 color = texture(road_texture, road_uv); + ALBEDO = color.rgb; + METALLIC = 0.0; + ROUGHNESS = 0.8; +}" + +[sub_resource type="ShaderMaterial" id=10] +shader = SubResource( 9 ) +shader_param/road_texture = ExtResource( 3 ) + +[sub_resource type="SpatialMaterial" id=7] +flags_transparent = true +albedo_color = Color( 0.67451, 0.992157, 1, 0.168627 ) + +[sub_resource type="SpatialMaterial" id=8] +albedo_color = Color( 0.584314, 0.584314, 0.584314, 1 ) +metallic = 1.0 +roughness = 0.63 + +[sub_resource type="SpatialMaterial" id=13] +albedo_color = Color( 0.192157, 0.192157, 0.192157, 1 ) + +[sub_resource type="SpatialMaterial" id=14] +albedo_color = Color( 0.294118, 0.243137, 0, 1 ) + +[sub_resource type="SpatialMaterial" id=15] +albedo_color = Color( 0.203922, 0.203922, 0.203922, 1 ) + +[node name="Spatial" instance=ExtResource( 1 )] + +[node name="Track" parent="." index="1"] +track_path = NodePath("../Path") +checkpoint_polygon = PoolVector2Array( -20, -4, -20, 10, 20, 10, 20, -4 ) + +[node name="Grass" type="StaticBody" parent="." index="2"] +transform = Transform( 0.8, 0, 0, 0, 1, 0, 0, 0, 0.4, 0, 5, 0 ) + +[node name="MeshInstance" type="MeshInstance" parent="Grass" index="0"] +mesh = SubResource( 12 ) +material/0 = null + +[node name="CollisionShape" type="CollisionShape" parent="Grass" index="1"] +shape = SubResource( 3 ) + +[node name="StaticBody" type="StaticBody" parent="." index="3"] + +[node name="MeshInstance" type="MeshInstance" parent="StaticBody" index="0"] +mesh = SubResource( 2 ) +material/0 = null + +[node name="CollisionShape" type="CollisionShape" parent="StaticBody" index="1"] +shape = SubResource( 3 ) + +[node name="ResetArea" type="Area" parent="." index="4"] + +[node name="CollisionShape" type="CollisionShape" parent="ResetArea" index="0"] +shape = SubResource( 4 ) + +[node name="Path" type="Path" parent="." index="5"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9, 0 ) +curve = SubResource( 5 ) + +[node name="Track" type="CSGPolygon" parent="Path" index="0"] +use_collision = true +polygon = PoolVector2Array( -20, -4, 20, 4, -19, -4 ) +mode = 2 +path_node = NodePath("..") +path_interval_type = 0 +path_interval = 1.0 +path_simplify_angle = 1.0 +path_rotation = 2 +path_local = true +path_continuous_u = true +path_u_distance = 1.0 +path_joined = true +material = SubResource( 10 ) + +[node name="LeftRail" type="CSGPolygon" parent="Path" index="1"] +use_collision = true +polygon = PoolVector2Array( -21, 3, -20, 3, -20, -4, -21, -4 ) +mode = 2 +path_node = NodePath("..") +path_interval_type = 0 +path_interval = 1.0 +path_simplify_angle = 0.0 +path_rotation = 2 +path_local = true +path_continuous_u = true +path_u_distance = 1.0 +path_joined = true +material = SubResource( 7 ) + +[node name="LeftRailTop" type="CSGPolygon" parent="Path" index="2"] +use_collision = true +polygon = PoolVector2Array( -21, 4, -20, 4, -20, 3, -21, 3 ) +mode = 2 +path_node = NodePath("..") +path_interval_type = 0 +path_interval = 1.0 +path_simplify_angle = 0.0 +path_rotation = 2 +path_local = true +path_continuous_u = true +path_u_distance = 1.0 +path_joined = true +material = SubResource( 8 ) + +[node name="RightRail" type="CSGPolygon" parent="Path" index="3"] +use_collision = true +polygon = PoolVector2Array( 20, 4, 20, 7, 22, 7, 22, 4 ) +mode = 2 +path_node = NodePath("..") +path_interval_type = 0 +path_interval = 1.0 +path_simplify_angle = 0.0 +path_rotation = 2 +path_local = true +path_continuous_u = true +path_u_distance = 1.0 +path_joined = true +material = SubResource( 13 ) + +[node name="Seats" type="CSGPolygon" parent="Path" index="4"] +use_collision = true +polygon = PoolVector2Array( 40, 4, 60, 20, 22, 7, 22, 4 ) +mode = 2 +path_node = NodePath("..") +path_interval_type = 0 +path_interval = 20.0 +path_simplify_angle = 0.0 +path_rotation = 2 +path_local = true +path_continuous_u = true +path_u_distance = 1.0 +path_joined = true +material = SubResource( 14 ) + +[node name="Walls" type="CSGPolygon" parent="Path" index="5"] +use_collision = true +polygon = PoolVector2Array( 40, 4, 60, 20, 70, 7, 70, 50, 60, 40, 40, 4 ) +mode = 2 +path_node = NodePath("..") +path_interval_type = 0 +path_interval = 20.0 +path_simplify_angle = 0.0 +path_rotation = 2 +path_local = true +path_continuous_u = true +path_u_distance = 1.0 +path_joined = true +material = SubResource( 15 ) + +[node name="Roof" type="CSGPolygon" parent="Path" index="6"] +use_collision = true +polygon = PoolVector2Array( 70, 50, -50, 70, 20, 68 ) +mode = 2 +path_node = NodePath("..") +path_interval_type = 0 +path_interval = 20.0 +path_simplify_angle = 0.0 +path_rotation = 2 +path_local = true +path_continuous_u = true +path_u_distance = 1.0 +path_joined = true + +[node name="DirectionalLight" type="DirectionalLight" parent="." index="6"] +transform = Transform( 1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 69, 0 ) +shadow_enabled = true +directional_shadow_max_distance = 1000.0 + +[connection signal="body_entered" from="ResetArea" to="." method="_on_ResetArea_body_entered"] diff --git a/vehicles/buggy.tscn b/vehicles/buggy.tscn index 12e1ef5..4a6455a 100644 --- a/vehicles/buggy.tscn +++ b/vehicles/buggy.tscn @@ -52,7 +52,7 @@ max_brake_force = 80.0 throttle_power = 10000.0 max_rpm_loss_ps = 4000.0 base_engine_pitch = 0.45 -gear_ratios = [ 3.4, 2.5, 2.0, 1.5, 1.25, 1.0 ] +gear_ratios = [ 3.8, 2.7, 2.2, 1.75, 1.4, 1.2 ] power_curve = SubResource( 2 ) sound_curve = SubResource( 4 ) automatic_gear_up_threshold = 0.85