diff --git a/Dependencies.lua b/Dependencies.lua
new file mode 100644
index 00000000..bb02c35e
--- /dev/null
+++ b/Dependencies.lua
@@ -0,0 +1 @@
+IncludeDir = {}
diff --git a/Premake/premake5.exe b/Premake/premake5.exe
new file mode 100644
index 00000000..f081fe1f
Binary files /dev/null and b/Premake/premake5.exe differ
diff --git a/SHADE.sln b/SHADE.sln
new file mode 100644
index 00000000..a337b7c4
--- /dev/null
+++ b/SHADE.sln
@@ -0,0 +1,26 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SHADE_Application", "SHADE_Application\SHADE_Application.vcxproj", "{BDC70008-29DE-FE9D-7255-8ABFDEAACF25}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SHADE_Engine", "SHADE_Engine\SHADE_Engine.vcxproj", "{3F92E998-2BF5-783D-D47A-B1F3C0BC44C0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {BDC70008-29DE-FE9D-7255-8ABFDEAACF25}.Debug|x64.ActiveCfg = Debug|x64
+ {BDC70008-29DE-FE9D-7255-8ABFDEAACF25}.Debug|x64.Build.0 = Debug|x64
+ {BDC70008-29DE-FE9D-7255-8ABFDEAACF25}.Release|x64.ActiveCfg = Release|x64
+ {BDC70008-29DE-FE9D-7255-8ABFDEAACF25}.Release|x64.Build.0 = Release|x64
+ {3F92E998-2BF5-783D-D47A-B1F3C0BC44C0}.Debug|x64.ActiveCfg = Debug|x64
+ {3F92E998-2BF5-783D-D47A-B1F3C0BC44C0}.Debug|x64.Build.0 = Debug|x64
+ {3F92E998-2BF5-783D-D47A-B1F3C0BC44C0}.Release|x64.ActiveCfg = Release|x64
+ {3F92E998-2BF5-783D-D47A-B1F3C0BC44C0}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/SHADE_Application/SHADE_Application.vcxproj b/SHADE_Application/SHADE_Application.vcxproj
new file mode 100644
index 00000000..ef176bf2
--- /dev/null
+++ b/SHADE_Application/SHADE_Application.vcxproj
@@ -0,0 +1,103 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ {BDC70008-29DE-FE9D-7255-8ABFDEAACF25}
+ true
+ Win32Proj
+ SHADE_Application
+ 10.0
+
+
+
+ Application
+ true
+ Unicode
+ v142
+
+
+ Application
+ false
+ Unicode
+ v142
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ bin\Debug_x86_64\SHADE_Application\
+ bin-int\Debug_x86_64\SHADE_Application\
+ SHADE_Application
+ .exe
+
+
+ false
+ bin\Release_x86_64\SHADE_Application\
+ bin-int\Release_x86_64\SHADE_Application\
+ SHADE_Application
+ .exe
+
+
+
+ Use
+ SBpch.h
+ Level4
+ _DEBUG;%(PreprocessorDefinitions)
+ .;..\SHADE_Engine_y2\src;..\SHADE_Editor_y2\src;src;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+ stdcpplatest
+
+
+ Console
+ true
+ SHADE_Engine_y2.lib;SHADE_Editor_y2.lib;%(AdditionalDependencies)
+
+
+
+
+ Use
+ SBpch.h
+ Level4
+ _RELEASE;%(PreprocessorDefinitions)
+ .;..\SHADE_Engine_y2\src;..\SHADE_Editor_y2\src;src;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ true
+ stdcpplatest
+
+
+ Console
+ true
+ true
+ SHADE_Engine_y2.lib;SHADE_Editor_y2.lib;%(AdditionalDependencies)
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SHADE_Application/premake5.lua b/SHADE_Application/premake5.lua
new file mode 100644
index 00000000..f672db0e
--- /dev/null
+++ b/SHADE_Application/premake5.lua
@@ -0,0 +1,53 @@
+project "SHADE_Application"
+ kind "ConsoleApp"
+ language "C++"
+ cppdialect "C++latest"
+ targetdir ("bin/" .. outputdir .. "/%{prj.name}")
+ objdir ("bin-int/" .. outputdir .. "/%{prj.name}")
+ systemversion "latest"
+ pchheader "SBpch.h"
+ pchsource "%{prj.location}/src/SBpch.cpp"
+ staticruntime "on"
+
+
+ files
+ {
+ "%{prj.location}/src/**.h",
+ "%{prj.location}/src/**.c",
+ "%{prj.location}/src/**.cpp",
+ "%{prj.location}/src/**.glsl",
+ }
+
+ includedirs
+ {
+ "%{IncludeDir.GLFW}",
+ "%{IncludeDir.GLAD}",
+ "../SHADE_Engine_y2/src",
+ "../SHADE_Editor_y2/src",
+ "src"
+ }
+
+ flags
+ {
+ "MultiProcessorCompile"
+ }
+
+ links
+ {
+ "SHADE_Engine_y2",
+ "SHADE_Editor_y2"
+ }
+
+ postbuildcommands
+ {
+ }
+
+ warnings 'Extra'
+
+ filter "configurations:Debug"
+ symbols "On"
+ defines {"_DEBUG"}
+
+ filter "configurations:Release"
+ optimize "On"
+ defines{"_RELEASE"}
\ No newline at end of file
diff --git a/SHADE_Engine/SHADE_Engine.vcxproj b/SHADE_Engine/SHADE_Engine.vcxproj
new file mode 100644
index 00000000..876a5e3b
--- /dev/null
+++ b/SHADE_Engine/SHADE_Engine.vcxproj
@@ -0,0 +1,107 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ {3F92E998-2BF5-783D-D47A-B1F3C0BC44C0}
+ true
+ Win32Proj
+ SHADE_Engine
+ 10.0
+
+
+
+ StaticLibrary
+ true
+ Unicode
+ v142
+
+
+ StaticLibrary
+ false
+ Unicode
+ v142
+
+
+
+
+
+
+
+
+
+
+
+
+ bin\Debug_x86_64\SHADE_Engine\
+ bin-int\Debug_x86_64\SHADE_Engine\
+ SHADE_Engine
+ .lib
+
+
+ bin\Release_x86_64\SHADE_Engine\
+ bin-int\Release_x86_64\SHADE_Engine\
+ SHADE_Engine
+ .lib
+
+
+
+ Use
+ SHpch.h
+ Level4
+ _LIB;_GLFW_INCLUDE_NONE;MSDFGEN_USE_CPP11;_DEBUG;%(PreprocessorDefinitions)
+ src;.;%(AdditionalIncludeDirectories)
+ EditAndContinue
+ Disabled
+ false
+ MultiThreadedDebug
+ true
+ stdcpplatest
+
+
+ Windows
+ true
+
+
+ fmodstudioL_vc.lib;fmodL_vc.lib;%(AdditionalDependencies)
+ libs;%(AdditionalLibraryDirectories)
+
+
+
+
+ Use
+ SHpch.h
+ Level4
+ _LIB;_GLFW_INCLUDE_NONE;MSDFGEN_USE_CPP11;_RELEASE;%(PreprocessorDefinitions)
+ src;.;%(AdditionalIncludeDirectories)
+ Full
+ true
+ true
+ false
+ true
+ MultiThreaded
+ true
+ stdcpplatest
+
+
+ Windows
+ true
+ true
+
+
+ fmodstudio_vc.lib;fmod_vc.lib;%(AdditionalDependencies)
+ libs;%(AdditionalLibraryDirectories)
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SHADE_Engine/premake5.lua b/SHADE_Engine/premake5.lua
new file mode 100644
index 00000000..c2439b8c
--- /dev/null
+++ b/SHADE_Engine/premake5.lua
@@ -0,0 +1,65 @@
+project "SHADE_Engine"
+ kind "StaticLib"
+ language "C++"
+ cppdialect "C++latest"
+ targetdir ("bin/" .. outputdir .. "/%{prj.name}")
+ objdir ("bin-int/" .. outputdir .. "/%{prj.name}")
+ systemversion "latest"
+ pchheader "SHpch.h"
+ pchsource "%{prj.location}/src/SHpch.cpp"
+ staticruntime "on"
+
+ files
+ {
+ "%{prj.location}/src/**.h",
+ "%{prj.location}/src/**.c",
+ "%{prj.location}/src/**.cpp",
+ "%{prj.location}/src/**.glsl"
+ }
+
+ includedirs
+ {
+ "%{prj.location}/src",
+ "%{IncludeDir.GLFW}",
+ "%{IncludeDir.GLAD}",
+ "%{IncludeDir.stb_image}",
+ "%{IncludeDir.yaml_cpp}",
+ "%{IncludeDir.fmod}",
+ "%{IncludeDir.fmod_studio}",
+ "%{IncludeDir.Mono}",
+ "%{IncludeDir.msdf_atlas_gen}",
+ "%{IncludeDir.msdfgen}"
+ }
+
+ libdirs
+ {
+ "%{prj.location}/libs"
+ }
+
+ links
+ {
+ }
+
+ defines
+ {
+ "_LIB",
+ "_GLFW_INCLUDE_NONE",
+ "MSDFGEN_USE_CPP11"
+ }
+
+ flags
+ {
+ "MultiProcessorCompile"
+ }
+
+ warnings 'Extra'
+
+ filter "configurations:Debug"
+ symbols "On"
+ defines {"_DEBUG"}
+ links{"fmodstudioL_vc.lib", "fmodL_vc.lib"}
+
+ filter "configurations:Release"
+ optimize "On"
+ defines{"_RELEASE"}
+ links{"fmodstudio_vc.lib", "fmod_vc.lib"}
\ No newline at end of file
diff --git a/generate.bat b/generate.bat
new file mode 100644
index 00000000..ce7f2916
--- /dev/null
+++ b/generate.bat
@@ -0,0 +1,2 @@
+call Premake\premake5 vs2019
+PAUSE
\ No newline at end of file
diff --git a/premake5.lua b/premake5.lua
new file mode 100644
index 00000000..b6229d90
--- /dev/null
+++ b/premake5.lua
@@ -0,0 +1,24 @@
+include "Dependencies.lua"
+
+workspace "SHADE"
+ architecture "x64"
+ startproject "SHADE_Application"
+
+ configurations
+ {
+ "Debug",
+ "Release"
+ }
+
+ flags
+ {
+ "MultiProcessorCompile"
+ }
+
+ outputdir = "%{cfg.buildcfg}_%{cfg.architecture}"
+
+ group "Dependencies"
+ group ""
+
+ include "SHADE_Application"
+ include "SHADE_Engine"
\ No newline at end of file