What kind of hardware do you have? If you're using an older laptop, especially a non-gaming laptop, that could be the it.
Do you know which CPU you have? You can look it up here to get an idea of how well it should perform. http://www.cpubenchmark.net/cpu_list.php The CPUs with a mark/score in the 5000s should run the game at >1000fps (If I recall correctly).
If you want us to take a look at your code, refer to point #6 in this post.
Seems you have a NullPointerException somewhere in your RandomLevel class. It happens when you call your generateLevel() method.
If you post your RandomLevel class on Gist, we can take a look at it. =]
I apologise for not replying, I have been really busy lately and really haven't had time.
By save/load stuff I assume you mean any classes which need to load from the resources folder? If so I will upload them, if not I'm sorry but then I'm not sure what you mean, if you tell me I will be able to upload those.
However I have uploaded everything here https://www.dropbox.com/sh/nuea9rerjtvejs2/W2CY3lHbtZ
once again I would just like to add how grateful I am for your help and I am sorry because I'm sure this is annoying for you to try and help he me here.
After stepping back from The Cherno's tutorials and watching some of TheNewBoston's tutorials and also reading a good part of Head First Java, I have figured out my error.
Altuso, you were right in a way. I did have tiles initialized in the Level.class but I also had it initialized in the SpawnLevel.class. After probing around I saw that tiles was populated (maybe wrong term? Had the tile.grass, tile.rock, tile.flower info loaded properly when hovered over with the mouse) in the SpawnLevel.class but not in Level.class. So I removed it from SpawnLevel.class and now that info is properly being transferred to the Level.class