diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json
new file mode 100644
index 00000000..327d8cc7
--- /dev/null
+++ b/.vscode/c_cpp_properties.json
@@ -0,0 +1,32 @@
+{
+  "configurations": [
+    {
+      "name": "Mac",
+      "includePath": ["${default}"],
+      "defines": [],
+      "macFrameworkPath": [
+        "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks"
+      ],
+      "compilerPath": "/opt/local/bin/clang",
+      "compilerArgs": ["-g"],
+      "cStandard": "gnu11",
+      "cppStandard": "gnu++14",
+      "browse": {
+        "path": [
+          "/opt/local/include",
+          "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include"
+        ]
+      }
+    },
+    {
+      "name": "Linux",
+      "includePath": ["${default}"],
+      "defines": ["XDG_ROOT"],
+      "compilerPath": "/usr/bin/gcc",
+      "compilerArgs": ["-ggdb"],
+      "cStandard": "gnu11",
+      "cppStandard": "gnu++14"
+    }
+  ],
+  "version": 4
+}
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 00000000..82ce041f
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,89 @@
+{
+  "configurations": [
+    {
+      "MIMode": "gdb",
+      "args": [],
+      "cwd": "${workspaceFolder}",
+      "environment": [],
+      "externalConsole": false,
+      "name": "(gdb) Launch (Linux Debug)",
+      "preLaunchTask": "Compile (Debug Linux x64)",
+      "program": "${workspaceFolder}/bin/linux-amd64-librw_gl3_glfw-oal/Debug/re3",
+      "request": "launch",
+      "setupCommands": [
+        {
+          "description": "Enable pretty-printing for gdb",
+          "ignoreFailures": true,
+          "text": "-enable-pretty-printing"
+        }
+      ],
+      "stopAtEntry": false,
+      "targetArchitecture": "x64",
+      "type": "cppdbg"
+    },
+    {
+      "MIMode": "gdb",
+      "args": [],
+      "cwd": "${workspaceFolder}",
+      "environment": [],
+      "externalConsole": false,
+      "name": "(gdb) Launch (Linux Release)",
+      "preLaunchTask": "Compile (Release Linux x64)",
+      "program": "${workspaceFolder}/bin/linux-amd64-librw_gl3_glfw-oal/Release/re3",
+      "request": "launch",
+      "setupCommands": [
+        {
+          "description": "Enable pretty-printing for gdb",
+          "ignoreFailures": true,
+          "text": "-enable-pretty-printing"
+        }
+      ],
+      "stopAtEntry": false,
+      "targetArchitecture": "x64",
+      "type": "cppdbg"
+    },
+    {
+      "MIMode": "lldb",
+      "args": [],
+      "cwd": "${workspaceFolder}",
+      "environment": [],
+      "externalConsole": false,
+      "name": "(lldb) Launch (macOS Debug)",
+      "preLaunchTask": "Compile (Debug macOS x64)",
+      "program": "${workspaceFolder}/bin/macosx-amd64-librw_gl3_glfw-oal/Debug/re3.app",
+      "request": "launch",
+      "setupCommands": [
+        {
+          "description": "Enable pretty-printing for lldb",
+          "ignoreFailures": true,
+          "text": "-enable-pretty-printing"
+        }
+      ],
+      "stopAtEntry": false,
+      "targetArchitecture": "x64",
+      "type": "cppdbg"
+    },
+    {
+      "MIMode": "lldb",
+      "args": [],
+      "cwd": "${workspaceFolder}",
+      "environment": [],
+      "externalConsole": false,
+      "name": "(lldb) Launch (macOS Release)",
+      "preLaunchTask": "Compile (Release macOS x64)",
+      "program": "${workspaceFolder}/bin/macosx-amd64-librw_gl3_glfw-oal/Release/re3.app",
+      "request": "launch",
+      "setupCommands": [
+        {
+          "description": "Enable pretty-printing for lldb",
+          "ignoreFailures": true,
+          "text": "-enable-pretty-printing"
+        }
+      ],
+      "stopAtEntry": false,
+      "targetArchitecture": "x64",
+      "type": "cppdbg"
+    }
+  ],
+  "version": "0.2.0"
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 00000000..10cb5627
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,30 @@
+{
+  "C_Cpp.default.cStandard": "gnu11",
+  "C_Cpp.default.cppStandard": "gnu++14",
+  "C_Cpp.default.includePath": [
+    "src/animation",
+    "src/audio",
+    "src/control",
+    "src/core",
+    "src/entities",
+    "src/extras",
+    "src/fakerw",
+    "src/math",
+    "src/modelinfo",
+    "src/objects",
+    "src/peds",
+    "src/render",
+    "src/rw",
+    "src/save",
+    "src/skel",
+    "src/text",
+    "src/vehicles",
+    "src/weapons",
+    "vendor/librw"
+  ],
+  "C_Cpp.vcFormat.indent.gotoLabels": "leftmostColumn",
+  "C_Cpp.vcFormat.space.pointerReferenceAlignment": "right",
+  "cSpell.enabled": false,
+  "files.trimFinalNewlines": false,
+  "files.trimTrailingWhitespace": false
+}
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 00000000..0f610d5f
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,95 @@
+{
+  "tasks": [
+    {
+      "args": ["--with-librw", "gmake2"],
+      "command": "./premake5Linux",
+      "label": "Premake (Linux)",
+      "problemMatcher": "$gcc",
+      "type": "shell"
+    },
+    {
+      "args": ["--with-librw", "gmake2"],
+      "command": "premake5",
+      "label": "Premake (macOS)",
+      "problemMatcher": "$gcc",
+      "type": "shell"
+    },
+    {
+      "args": [
+        "-j5",
+        "config=debug_linux-amd64-librw_gl3_glfw-oal",
+        "verbose=1"
+      ],
+      "command": "make",
+      "dependsOn": "Premake (Linux)",
+      "group": {
+        "isDefault": true,
+        "kind": "build"
+      },
+      "label": "Compile (Debug Linux x64)",
+      "options": {
+        "cwd": "${workspaceFolder}/build"
+      },
+      "problemMatcher": "$gcc",
+      "type": "shell"
+    },
+    {
+      "args": [
+        "-j5",
+        "config=release_linux-amd64-librw_gl3_glfw-oal",
+        "verbose=1"
+      ],
+      "command": "make",
+      "dependsOn": "Premake (Linux)",
+      "group": {
+        "isDefault": true,
+        "kind": "build"
+      },
+      "label": "Compile (Release Linux x64)",
+      "options": {
+        "cwd": "${workspaceFolder}/build"
+      },
+      "problemMatcher": "$gcc",
+      "type": "shell"
+    },
+    {
+      "args": [
+        "-j5",
+        "config=debug_macosx-amd64-librw_gl3_glfw-oal",
+        "verbose=1"
+      ],
+      "command": "make",
+      "dependsOn": "Premake (macOS)",
+      "group": {
+        "isDefault": true,
+        "kind": "build"
+      },
+      "label": "Compile (Debug macOS x64)",
+      "options": {
+        "cwd": "${workspaceFolder}/build"
+      },
+      "problemMatcher": "$gcc",
+      "type": "shell"
+    },
+    {
+      "args": [
+        "-j5",
+        "config=release_macosx-amd64-librw_gl3_glfw-oal",
+        "verbose=1"
+      ],
+      "command": "make",
+      "dependsOn": "Premake (macOS)",
+      "group": {
+        "isDefault": true,
+        "kind": "build"
+      },
+      "label": "Compile (Release macOS x64)",
+      "options": {
+        "cwd": "${workspaceFolder}/build"
+      },
+      "problemMatcher": "$gcc",
+      "type": "shell"
+    }
+  ],
+  "version": "2.0.0"
+}