diff --git a/tilted-world/.editorconfig b/tilted-world/.editorconfig
new file mode 100644
index 0000000..f28239b
--- /dev/null
+++ b/tilted-world/.editorconfig
@@ -0,0 +1,4 @@
+root = true
+
+[*]
+charset = utf-8
diff --git a/tilted-world/.gitattributes b/tilted-world/.gitattributes
new file mode 100644
index 0000000..8ad74f7
--- /dev/null
+++ b/tilted-world/.gitattributes
@@ -0,0 +1,2 @@
+# Normalize EOL for all files that Git considers text files.
+* text=auto eol=lf
diff --git a/tilted-world/.gitignore b/tilted-world/.gitignore
new file mode 100644
index 0000000..0af181c
--- /dev/null
+++ b/tilted-world/.gitignore
@@ -0,0 +1,3 @@
+# Godot 4+ specific ignores
+.godot/
+/android/
diff --git a/tilted-world/assets/gfx/banner.png b/tilted-world/assets/gfx/banner.png
new file mode 100644
index 0000000..6414afb
Binary files /dev/null and b/tilted-world/assets/gfx/banner.png differ
diff --git a/tilted-world/assets/gfx/banner.png.import b/tilted-world/assets/gfx/banner.png.import
new file mode 100644
index 0000000..a3b68d4
--- /dev/null
+++ b/tilted-world/assets/gfx/banner.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://3dgdehdn7fex"
+path="res://.godot/imported/banner.png-32fa8f819bf080792454b7d05dbf96d2.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/gfx/banner.png"
+dest_files=["res://.godot/imported/banner.png-32fa8f819bf080792454b7d05dbf96d2.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+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/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+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
diff --git a/tilted-world/assets/gfx/player.svg b/tilted-world/assets/gfx/player.svg
new file mode 100644
index 0000000..5174318
--- /dev/null
+++ b/tilted-world/assets/gfx/player.svg
@@ -0,0 +1,168 @@
+
+
diff --git a/tilted-world/assets/gfx/player.svg.import b/tilted-world/assets/gfx/player.svg.import
new file mode 100644
index 0000000..7e898ee
--- /dev/null
+++ b/tilted-world/assets/gfx/player.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://l2q3ql4ek7d7"
+path="res://.godot/imported/player.svg-f76d3946ec0dc8e9ca18a70ddd3ee1d4.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/gfx/player.svg"
+dest_files=["res://.godot/imported/player.svg-f76d3946ec0dc8e9ca18a70ddd3ee1d4.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+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/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+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
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/tilted-world/icon.png b/tilted-world/icon.png
new file mode 100644
index 0000000..1566620
Binary files /dev/null and b/tilted-world/icon.png differ
diff --git a/tilted-world/icon.png.import b/tilted-world/icon.png.import
new file mode 100644
index 0000000..9cafa69
--- /dev/null
+++ b/tilted-world/icon.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cboxd6nc3tkp2"
+path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://icon.png"
+dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+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/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+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
diff --git a/tilted-world/old_icon.svg b/tilted-world/old_icon.svg
new file mode 100644
index 0000000..c6bbb7d
--- /dev/null
+++ b/tilted-world/old_icon.svg
@@ -0,0 +1 @@
+
diff --git a/tilted-world/old_icon.svg.import b/tilted-world/old_icon.svg.import
new file mode 100644
index 0000000..dc68842
--- /dev/null
+++ b/tilted-world/old_icon.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dt734h2fb7b8p"
+path="res://.godot/imported/old_icon.svg-405b1294d87d67ceae80b10d0ad0326b.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://old_icon.svg"
+dest_files=["res://.godot/imported/old_icon.svg-405b1294d87d67ceae80b10d0ad0326b.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+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/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+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
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/tilted-world/project.godot b/tilted-world/project.godot
new file mode 100644
index 0000000..a87f96f
--- /dev/null
+++ b/tilted-world/project.godot
@@ -0,0 +1,15 @@
+; Engine configuration file.
+; It's best edited using the editor UI and not directly,
+; since the parameters that go here are not all obvious.
+;
+; Format:
+; [section] ; section goes between []
+; param=value ; assign values to parameters
+
+config_version=5
+
+[application]
+
+config/name="Tilted World"
+config/features=PackedStringArray("4.5", "Forward Plus")
+config/icon="res://old_icon.svg"
diff --git a/tilted-world/scenes/control.tscn b/tilted-world/scenes/control.tscn
new file mode 100644
index 0000000..adb013d
--- /dev/null
+++ b/tilted-world/scenes/control.tscn
@@ -0,0 +1,9 @@
+[gd_scene format=3 uid="uid://dcrkta0lqwdys"]
+
+[node name="Control" type="Control"]
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
diff --git a/tilted-world/scenes/title.gd b/tilted-world/scenes/title.gd
new file mode 100644
index 0000000..e0fac50
--- /dev/null
+++ b/tilted-world/scenes/title.gd
@@ -0,0 +1,10 @@
+extends Node
+
+@export var next_scene: String = "res://scenes/control.tscn"
+
+func _ready() -> void:
+ $AnimationPlayer.play("fade_in_out")
+
+func _on_animation_player_animation_finished(anim_name: String) -> void:
+ if anim_name == "fade_in_out":
+ get_tree().change_scene_to_file(next_scene)
diff --git a/tilted-world/scenes/title.gd.uid b/tilted-world/scenes/title.gd.uid
new file mode 100644
index 0000000..222abe3
--- /dev/null
+++ b/tilted-world/scenes/title.gd.uid
@@ -0,0 +1 @@
+uid://bgunk60wk747g
diff --git a/tilted-world/scenes/title.tscn b/tilted-world/scenes/title.tscn
new file mode 100644
index 0000000..f28b675
--- /dev/null
+++ b/tilted-world/scenes/title.tscn
@@ -0,0 +1,68 @@
+[gd_scene load_steps=6 format=3 uid="uid://bsiog87fercwt"]
+
+[ext_resource type="Texture2D" uid="uid://3dgdehdn7fex" path="res://assets/gfx/banner.png" id="1_4ignj"]
+[ext_resource type="Script" uid="uid://bgunk60wk747g" path="res://scenes/title.gd" id="1_wosw1"]
+
+[sub_resource type="Animation" id="Animation_4ignj"]
+resource_name = "fade_in_out"
+length = 5.0
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("CanvasLayer/FadeRect:modulate")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 1.5, 3.5, 5),
+"transitions": PackedFloat32Array(1, 1, 1, 1),
+"update": 0,
+"values": [Color(0, 0, 0, 1), Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 1)]
+}
+
+[sub_resource type="Animation" id="Animation_wosw1"]
+length = 0.001
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("CanvasLayer/FadeRect:modulate")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Color(0, 0, 0, 1)]
+}
+
+[sub_resource type="AnimationLibrary" id="AnimationLibrary_p6dhs"]
+_data = {
+&"RESET": SubResource("Animation_wosw1"),
+&"fade_in_out": SubResource("Animation_4ignj")
+}
+
+[node name="Title" type="Node"]
+script = ExtResource("1_wosw1")
+
+[node name="BackGround" type="TextureRect" parent="."]
+offset_left = -50.0
+offset_right = 1200.0
+offset_bottom = 650.0
+texture = ExtResource("1_4ignj")
+expand_mode = 3
+
+[node name="CanvasLayer" type="CanvasLayer" parent="."]
+
+[node name="FadeRect" type="ColorRect" parent="CanvasLayer"]
+modulate = Color(0, 0, 0, 1)
+z_index = 100
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+color = Color(0, 0, 0, 1)
+
+[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
+libraries = {
+&"": SubResource("AnimationLibrary_p6dhs")
+}