diff --git a/.idea/editor.xml b/.idea/editor.xml
index bf1be31..8900b9c 100644
--- a/.idea/editor.xml
+++ b/.idea/editor.xml
@@ -1,6 +1,7 @@
+
@@ -45,483 +46,244 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 01eca00..23ea1c4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -49,7 +49,7 @@ macro(blt_add_project name source type)
project(tower-defense)
endmacro()
-project(tower-defense VERSION 0.0.2)
+project(tower-defense VERSION 0.0.3)
option(ENABLE_ADDRSAN "Enable the address sanitizer" OFF)
option(ENABLE_UBSAN "Enable the ub sanitizer" OFF)
diff --git a/commit.py b/commit.py
index b885026..2af4749 100755
--- a/commit.py
+++ b/commit.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!python3
import subprocess
import argparse
diff --git a/default.nix b/default.nix
new file mode 100644
index 0000000..8259cac
--- /dev/null
+++ b/default.nix
@@ -0,0 +1,54 @@
+{ pkgs ? (import {
+ config.allowUnfree = true;
+ config.segger-jlink.acceptLicense = true;
+}), customPkgs ? (import /home/brett/my-nixpkgs {
+ config.allowUnfree = true;
+ config.segger-jlink.acceptLicense = true;
+}), ... }:
+pkgs.mkShell
+{
+ buildInputs = with pkgs; [
+ cmake
+ gcc
+ clang
+ emscripten
+ ninja
+ customPkgs.jetbrains.clion
+ #clion = import ~/my-nixpkgs/pkgs/applications/editors/jetbrains {};
+ renderdoc
+ valgrind
+ ];
+ propagatedBuildInputs = with pkgs; [
+ xorg.libX11
+ xorg.libX11.dev
+ xorg.libXcursor
+ xorg.libXcursor.dev
+ xorg.libXext
+ xorg.libXext.dev
+ xorg.libXinerama
+ xorg.libXinerama.dev
+ xorg.libXrandr
+ xorg.libXrandr.dev
+ xorg.libXrender
+ xorg.libXrender.dev
+ xorg.libxcb
+ xorg.libxcb.dev
+ xorg.libXi
+ xorg.libXi.dev
+ harfbuzz
+ harfbuzz.dev
+ zlib
+ zlib.dev
+ bzip2
+ bzip2.dev
+ pngpp
+ brotli
+ brotli.dev
+ pulseaudio.dev
+ git
+ libGL
+ libGL.dev
+ glfw
+ ];
+ LD_LIBRARY_PATH="/run/opengl-driver/lib:/run/opengl-driver-32/lib";
+}
diff --git a/include/enemies.h b/include/enemies.h
new file mode 100644
index 0000000..1e68b82
--- /dev/null
+++ b/include/enemies.h
@@ -0,0 +1,26 @@
+#pragma once
+/*
+ * Copyright (C) 2024 Brett Terpstra
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef ENEMIES_H
+#define ENEMIES_H
+
+namespace td {
+
+}
+
+#endif //ENEMIES_H
diff --git a/include/game.h b/include/game.h
new file mode 100644
index 0000000..3ff0350
--- /dev/null
+++ b/include/game.h
@@ -0,0 +1,28 @@
+#pragma once
+/*
+ * Copyright (C) 2024 Brett Terpstra
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef GAME_H
+#define GAME_H
+
+namespace td
+{
+ class game_t
+ {};
+}
+
+#endif //GAME_H
diff --git a/include/towers.h b/include/towers.h
new file mode 100644
index 0000000..9944885
--- /dev/null
+++ b/include/towers.h
@@ -0,0 +1,30 @@
+#pragma once
+/*
+ * Copyright (C) 2024 Brett Terpstra
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef TOWERS_H
+#define TOWERS_H
+
+namespace td
+{
+ class tower_base_t
+ {
+
+ };
+}
+
+#endif //TOWERS_H
diff --git a/res/particle.png b/res/particle.png
new file mode 100644
index 0000000..ce0d561
Binary files /dev/null and b/res/particle.png differ
diff --git a/res/tower.png b/res/tower.png
new file mode 100644
index 0000000..e55e059
Binary files /dev/null and b/res/tower.png differ
diff --git a/src/enemies.cpp b/src/enemies.cpp
new file mode 100644
index 0000000..a3c29ae
--- /dev/null
+++ b/src/enemies.cpp
@@ -0,0 +1,18 @@
+/*
+ *
+ * Copyright (C) 2025 Brett Terpstra
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
\ No newline at end of file
diff --git a/src/game.cpp b/src/game.cpp
new file mode 100644
index 0000000..ef3eb39
--- /dev/null
+++ b/src/game.cpp
@@ -0,0 +1,21 @@
+/*
+ *
+ * Copyright (C) 2025 Brett Terpstra
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace td
+{}
diff --git a/src/towers.cpp b/src/towers.cpp
new file mode 100644
index 0000000..3f6f0a9
--- /dev/null
+++ b/src/towers.cpp
@@ -0,0 +1,21 @@
+/*
+ *
+ * Copyright (C) 2025 Brett Terpstra
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include
+
+namespace td
+{}