Sorry if my objective wasn’t clear in my first post.
The game would be played like an old 8- or 16-bit Final Fantasy or Dragon Warrior game. A map is just a big grid of square tiles, and the player moves one square at a time. Monsters aren’t visible on the map; battles just seem to happen “randomly” as you walk around.
My understanding (which could be wrong) was that monster locations weren’t predefined on the map in cases like these. Rather some formula was used to determine whether a battle should occur whenever the player moved to a new tile (something that seems random, often involving variables like “steps the player has taken since the last battle”). The formula is designed and tweaked so that, to a player, it just seems like every 12 steps or so, a battle usually occurs.
I think malberts had the general idea right in his last post. Different “regions” of the map will spawn different enemies. These map regions aren’t explicitly told to the player, but the player can usually just figure it out because it’s based on the map’s “geography” - on grassy plains, for example, weaker monsters attack, in forests stronger monsters attack, when sailing around at sea, sea monsters attack, etc. Monster types shouldn’t be tied to tile types though, because a “grassy plain” towards the start of the game will have weaker monsters than a “grassy plain” closer to the final dungeon. My question was “how should this information be organized?”
My initial idea on implementing this was to have a regionID associated with each location in the map grid. This is kind-of what I meant by “stored in the map itself.” This regionID mapped to a Region object of some sort, which includes the formula that determines whether a battle should occur. If one should occur, then the Region would also know what kinds of monsters attack in it, how many attack at a time, etc., so it could set up the battle scenario.
This could also be implemented with events as malberts suggested. Each tile would have an event that used a formula to determine whether a battle should occur.
I hope that’s more clear. Let me know if I’m way off base with my ideas.