I really like the consistent esthetic of your pixel art. As a fellow love2d developer, I had to browse your code to figure out how you did the particle effect on the menu. That was a really well done effect and it popped out to me as being over the top polish. I also learned that love.graphics.printf exists by looking at your code, so thank you for that. I was calculating the string length per font/string and offsetting it from the middle of the screen...
I also see you used a similar approach to each game being a different screen/table. You can clean up your already very clean (and readable) main.lua by setting your global GameState to the table, instead of a string and doing string comparisons in your update and draw callbacks.
PongGame = require "scripts.pongGame" ReflexGame = require "scripts.reflexGame" function love.load() GameState = PongGame GameState:load() end function love.update(dt) GameState:update(dt) end function love.draw() GameState:draw() end
Not that you asked, but I found that to be a very clean way to handle states and you may appreciate it too. Good work on your submission!