Index: docs/DESIGN.txt
===================================================================
--- docs/DESIGN.txt	(revision bf4744dcf318a4d17acd890bb1f15b97ca798bd0)
+++ docs/DESIGN.txt	(revision bf4744dcf318a4d17acd890bb1f15b97ca798bd0)
@@ -0,0 +1,6 @@
+UPDATING VULKAN CODE TO USE MULTIPLE VERTEX/FRAGMENT SHADER PAIRS (AKA DIFFERENT PIPELINES)
+
+-Change createDescriptorSetLayout() since that specifies the uniforms. This will
+ need to take some parameters based on the specifics of each shader.
+
+-Create a new graphics pipeline for each vertex/fragment shader pair
Index: docs/README.txt
===================================================================
--- docs/README.txt	(revision bf4744dcf318a4d17acd890bb1f15b97ca798bd0)
+++ docs/README.txt	(revision bf4744dcf318a4d17acd890bb1f15b97ca798bd0)
@@ -0,0 +1,120 @@
+Installation Instructions for Linux
+---------------------------------------
+
+sudo apt-get install xorg-dev  libglew-dev libglm-dev
+
+make newgame && ./newgame
+
+(Old Linux instructions for compiling game.cpp)
+-sudo apt-get install cmake xorg-dev  libglew-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev
+
+-Compile GLFW3 from source
+ (cmake . && make && sudo make install)
+
+Installation Instructions for OSX
+---------------------------------------
+
+brew install glew
+brew install glfw --without-shared-library
+brew install glm
+
+This should place all necessary files (or possibly symlinks to them) in
+/usr/loca/include and /usr/local/lib.
+
+Run 'xcode-select --install'
+This should make g++ check for libraries in /usr/local/
+
+If the above command gives you the following error, you should be able to move on and compile the game.
+"xcode-select: error: command line tools are already installed, use "Software Update" to install updates"
+
+make newgame && ./newgame
+
+Installation Instructions for Windows
+---------------------------------------
+
+Create lib/ and include/ folders in the root opengl-game directory you cloned.
+
+Download the pre=compiled 64bit binaries of GLFW and GLEW.
+Copy the include/GL/ and include/GLFW/ folders into your include/ folder.
+
+For GLEW, copy lib/RELEASE/Win64/glew32s.lib into your lib folder.
+For GLFW, copy lib-vc2019/glfw3.lib into your lib folder.
+
+Download GLM and copy the glm folder (the one with all the .hpp files) into the include/ folder you made above.
+GLM is a header-only library, so there is nothing to copy into the lib/ folder.
+
+Open and run NewOpenGLGame.sln in Visual Studio 2017 and run it.
+
+
+--------------------
+VULKAN INSTRUCTIOS
+--------------------
+
+Windows
+--------
+
+Create an include directory inside the opengl-game folder
+
+Download GLM and copy the glm folder into your include directory
+
+Download the 64bit pre-compiledbinaries of GLFW3
+ - Copy lib-vc2019/glfw3.lib into your lib directory
+ - Copy the whole include/GLFW directory into your include directory
+
+Download the SDL2 pre-built Windows binaries
+ - Copy the SDL2 include folder into /include and rename it SDL2
+ - Copy the contents of lib/x64 to lib
+
+Download the SDL2_image Visual C++ development libraries from https://www.libsdl.org/projects/SDL_image/
+Download the SDL2_ttf Visual C++ development libraries from https://www.libsdl.org/projects/SDL_ttf/
+(Might use SDL2_gfx later as well)
+
+Copy the 64-bit static libraries to the lib directory you created above
+
+TODO: Figure out how to do static compilation with SDL2
+
+Since I'm currently using dynamic SDL2 libraries for Windows, some DLLs from sdl2-ttf and sdl2-image
+
+Download the vulkan sdk
+ - Add the location of the Include folder to the VS2019 project properties under C/C++ -> General -> Addition Include DIrectories
+ - Add the location of the Lib folder to the VS2019 project properties under Linker -> General -> Addition Library DIrectories
+
+Linux:
+--------
+
+Download the vulkan sdk (make sure VULKAN_SDK_PATH in the makefile points to it)
+
+sudo apt-get install libxcb1-dev xorg-dev libglm-dev libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev
+
+source setup-env.sh into your current shell
+
+make vulkangame && ./vulkangame
+
+OSX
+--------
+
+Download the vulkan sdk (make sure VULKAN_SDK_PATH in the makefile points to it)
+
+brew install sdl2 sdl2_image sdl2_ttf
+
+make vulkangame && ./vulkangame
+
+REFERENCE
+----------
+
+UV coords   0  u  1       x, y, z  -1  (untransformed z ranges from 0 to 1, glm::perspective seems to make the z range negative)
+         0  ------->                ^
+           |                        |
+         v |                  -1    | 0   1
+           |                  <-----|----->
+         1 V                       /|
+                                  / |
+                                1   v
+                                    1
+
+DEPLOYMENT
+-----------
+
+The deploy folder has an old Inno Setup script for deploying the game on Windows.
+
+I should check out IzPack. Seems to be a cross-platform solution.
Index: docs/TODO.txt
===================================================================
--- docs/TODO.txt	(revision bf4744dcf318a4d17acd890bb1f15b97ca798bd0)
+++ docs/TODO.txt	(revision bf4744dcf318a4d17acd890bb1f15b97ca798bd0)
@@ -0,0 +1,19 @@
+TODO
+==========
+- Switch the game to use SDL and Vulkan (based on the test program I already made)
+  - Will require switching the UI from IMGUI to Vulkan
+- Make window resizing and fullscreen mode work correctly
+
+
+LONGTERM TODO
+==============
+
+Phase 1
+-Allow the ship laser to be upgraded after killing a certain amount of asteroids
+   -There will be two upgrade levels that change the laser color and increase its damage
+-Go over the code again and fix the remaining TODO items
+
+Phase 2
+-Look for ways to make the game engine more generic
+   -Maybe separate out the camera controls
+-Turn the game into more of an overhead view RTS where you can use the mouse to select and move ships
Index: docs/notes.txt
===================================================================
--- docs/notes.txt	(revision bf4744dcf318a4d17acd890bb1f15b97ca798bd0)
+++ docs/notes.txt	(revision bf4744dcf318a4d17acd890bb1f15b97ca798bd0)
@@ -0,0 +1,5 @@
+One important thing to note with the transformation matrices is that any scaling needs to be the first
+operation to be applied. Otherwise, any translations done before that get messed up. Since I will be scaling
+things pretty rarely, not sure if it's worth doing anything special about this.
+
+model_transform is only changed outside of transformObject() for lasers.
Index: docs/scene-notes.txt
===================================================================
--- docs/scene-notes.txt	(revision bf4744dcf318a4d17acd890bb1f15b97ca798bd0)
+++ docs/scene-notes.txt	(revision bf4744dcf318a4d17acd890bb1f15b97ca798bd0)
@@ -0,0 +1,14 @@
+In opengl, (-1, -1) is lower left
+In vulkan, it is upper left, so I set the projection matrix [1][1] cell to -1 to flip the y-axis and make it match opengl
+
+depth ranges ([-1, 1] in OpenGL, [0, 1] in Vulkan)
+
+Vulkan coordinates:
+X+ points toward right
+Y+ points toward down (but I flip it in vulkangame in the perspective matrix to point up)
+Z+ points toward inside the screen
+
+In opengl, all 3 coordinates range from -1 to 1
+
+For the perspective matrix, after the vertex shader finishes, the x, y, and z of the final point are automatically divided
+by the w. For testing the projection matrix in the console, I could do that manually as well.
Index: docs/upgrade-TODO.txt
===================================================================
--- docs/upgrade-TODO.txt	(revision bf4744dcf318a4d17acd890bb1f15b97ca798bd0)
+++ docs/upgrade-TODO.txt	(revision bf4744dcf318a4d17acd890bb1f15b97ca798bd0)
@@ -0,0 +1,26 @@
+TODO
+-----------
+
+- Create shader configs in Vulkan and sample vertex data for all the shaders currently used in OpenGL
+- Rewrite the system to store scene objects, copy their vertex data to vertex buffers and
+  resize the vertex buffers as needed to be used with Vulkan
+- Copy the UI overlay system from the Vulkan implementation to build the UI on top of
+- Upgrade the UI from ImGui to SDL
+  - Could probably use the existing window / event system
+  - Create buttons with text and events in SDL
+- Implement the ability to listen for mouse clicks and keystrokes
+  - Assuming SDL supports detecting key presses and key releases, re-implement the key state array
+  - On mouse clicks, re-implement the ability to detect clicks on scene objects
+- Implement the actual game functionality
+
+CONMPLETED
+-----------
+
+- Add CrashLogger functionality
+
+
+opengl-game TODO
+--------------
+
+- Make sure new-game.cpp is updated with the TODO lines
+- Implament the window resize callback and related functionality in opengl-game / game-gui-glfw
