For exploration to matter in a game like this one, we're going to need bespoke maps that are randomly loaded as the player moves to new areas. Those maps must then become integrated into the environment so the player can return whenever they want. There's no point in exploring if there isn't something new worth finding, and there's no point doing all that traveling if the game doesn't keep track of where you've been. So what does this mean for the game? It means I can make map after map after map, content will be easily expandable! We're done here but keep reading if you want to know more about Arrays.
Arrays are the bane of my existence but they're also extremely powerful. Imagine an invisible one-dimensional excel spreadsheet that can contain quasi-infinite amounts of data in any form that you'd like. That's an array. Here's a more in depth explanation of an array but prepare your brain first. Now, let me be clear that arrays can be multidimensional, but I'm programming in Ruby which can't handle multidimensionality.
An array is expressed by two square parenthesis. Like this;
array = 
the word on the left could be anything. Here's an example of a filled array;
insects = ["bumblebee", "ant", "fly", "bee", "beetle"]
From now on, I can manipulate the array anyway I want just by recalling the name on the left and then do some mumbo jumbo to it.
insects.at(1) => "ant"
So I bet you can kind of figure out what I just did there. I asked the array for information at the first index and it gave me "ant." Arrays start at 0, which is why it didn't give me "bumblebee." Want to know something even more fun? Ruby is a case sensitive language which means that if I had typed;
I would have received an error message. Argggghhhh! Frustration!
Back to the game. So, how do we establish basic geographic coordinates (X and Y coordinates) and connect them to a map? That's three separate pieces of data that need to be cross-checked with each other, on a regular excel document we could just use the width and columns and insert the map information where the coordinates intersect. But remember, Ruby can't handle multidimensional arrays. I solved that problem with nested arrays - putting an array within an array within an array. This way the game fishes through the nested arrays, pulling out information based on the condition that the information in the final (deepest) array will exist. This is a fix that is pretty reasonable right now, but it may create memory problems later. We'll see how things go as I add content to the game. If memory demands spiral out of control, then I'll switch to using tables.