I accidentally left my game running overnight, but when I came back there were no performance issues. At least I know now that there aren't any problems with memory being eaten up over time or something (I was worried that a few things that might cause that).
Additionally, I've written out the pseudocode for the objects larger than 1x1. Generally with more complicated pieces of functionality, I write out what should happen before I actually code it. For example, when adding the mines, I came up with this equation:
where A is the final amount of an ore given to the player when the mine is clicked,
v is the maximum amount of that ore that can be mined in one click,
x is the Perlin noise multiplier (between 0-255) from the perlin noise map generated for that type of ore,
y is the current depth the mine has mined to,
z is the minimum depth that the ore can be found,
w is the max depth that the ore can be found,
and b is an integer that is either 0 or 1.
(I named the variables randomly; the letters have no correlation to their meaning).
I basically wrote this out then solved a few problems by plugging in different numbers each time and seeing if this idea was balanced. Which, for the most part, it is; however, I might want to make the Perlin Noise maps sharper so that some ores can't even be found at all in some places. After I tested it mathematically, I then put it into Stencyl code (with a few of the variables rearranged):
This part of the code doesn't have the
±b, but it's still in the code before it returns this value.
Anyways, this is how I usually start with tackling large problems- just writing it out.