I’ve recently had some ideas for some potential mechanics/features I might use for future games.
My current project (The Battle of Hoag’s Object) has a pretty decent framework for an “Open-World” navigation system, and it works well enough for a space-exploration game… but it’d be a little too clunky for something more terrestrial.
So, I think it’d be a neat idea to have an actual map in the stats screen that updates with the player’s/reader’s location, as well as reveals different locations as you discover them.
I’m curious if anyone has taken any stabs at this, I mean it’s not the most original idea for games in general, but it’d be very tricky to pull off in a choice script game.
I have an inkling of how I might make such a system, but getting inspiration from those who’ve already done it or something close would help give me a boost, I think.
Here’s my current plan/thinking behind this:
Player Navigation and Map Updating
So I’m thinking there will be a scene dedicated to moving around/exploring the map.
I want to keep it relatively simple, so I’m thinking I’ll have options to move in your standard Cardinal Directions; North, East, South, or West. Maybe diagonals too but that could get complicated so, baby steps.
To match this, the locations on the map will be on a simple grid pattern. So, you move north, there’s a cave. South, a town. East or west, two other landmarks or something.
I’m thinking there will also be a fast-travel option on top of the cardinal directions, so you can “teleport” to any place you’ve already been instead of having to step-by-step cross a whole continent.
To track the player’s location on the map, I’ll first need a different picture of the map, featuring the player’s blip of sprite or what-have-you on every possible location you can be on.
I’ll need to use *if statements to activate whichever picture shows the player’s current location while hiding all the rest.
I plan on organizing this using a coordinate system. So, there will be two player location variables. One for X and one for Y. If a player moves North, it’ll be:
*set playerloc_y +1
If they move south?
*set playerloc_y - 1
East or West would be playerloc_x + or - 1.
Then, in the stats scene we’ll have this:
*if ((playerloc_y = 0) and (playerloc_x = 1))
*image maps/Y0X1.JPG
*comment This will display a map with the player’s blip at Y = 0 X = 1 coordinates (I know the x is supposed to come first but I already typed Y first for this whole thing and I’m too lazy to change it now)
Depending on the map’s size… this could be a very long chunk of the Stats scene… but it gets much, much longer if I attempt the next part:
Map Exploration/Hidden Locations
Here’s where the *if statements start getting out of control. Ideally I would want the locations on the map to be hidden until the player discovers them, because hey, it’s more fun to watch an empty map fill in with unexpected and exciting places instead of starting off with a filled map where you already know what you’ll find at the next location.
At first glance, I just need to do the same thing as with the player location tracking: a bunch of *if statements and corresponding images for every location the player can find, right?
But wait… the player can discover the locations in any order they choose… meaning I would need a new map, not just for every location, but for every possible order of locations the player might traverse, so that the map reveals the places the player has been in the same order.
On top of that (which, is honestly an already terrifying task) I still need to keep the player’s location updating… so now I need a new image of the map to feature every possible order of discovered locations that also accounts for every possible current player location at the same time.
We’re talking about potentially a thousand different images for a comparatively small amount of locations (I haven’t done the actual math on this but, I know for a fact it’ll be a ridiculous amount).
I can’t see any other way to do this in choice script which makes me sad because, it just isn’t practical for one person to attempt. My only hope for hidden/revealable locations on a dynamic map is if someone figured out a better system, which from what I know about choice script, I don’t think exists.
Maybe I could break it up into chunks… a smaller set of maps for separate “biomes” or nation borders or something? That could help keep the possible-discovered-location-order on a more manageable scale, maybe.
Anyways I’m going to try to get a proof-of-concept up eventually with maybe a map of 9 locations on a basic grid. No idea if I’m going to attempt the revealable locations, even with such a small map. If it isn’t feasible for a larger map, there’s not much of a point to doing the work on a smaller scale.