Travelling

descriptive description

Hi.

I don't really like the travel system in coldstone, so I decided to make my own. I thought that it would be nice if, when you reach the border of the map, you are taken to a large map with all the areas you have travelled to available to go back to. Like in baldur gate, geneforge, etc.

Anyway, I think this could be done with an awful lot of globals and conditionals, but how? And would it not give me a hard time if I decide to make an add-on later on (or someone else does)?

Any help would be greatly appreciated.

Actually, it should not be difficult at all, just take some time.

Place a separate global in every map location. This way, when the Player enters the map, it adds one.

Make a MAIN location that's a picture of all of your maps.

Make two sets of events for every map.

Event One: If the map global is greater or equal to 1, then call Event Two. If false, then a dialogue appears "You haven't been there yet. Sorry."

Event Two: sound, map position, teleport into the map

Make an EVENT location for every Event One of every map.

Define all of the Event locations in your MAIN location.

If you absolutely HAVE to have the overall map hide where the Player hasn't been, then just use the stamp control and place a black graphic over the area of the map you don't want the Player to see, using the same map globals. Do this in the MAIN location. (edit: Actually I don't know if this will work in a Main location or not. You'd have to try it.)

Hope this helps.

I thought more like having a large map and then adding small squares that have symbols on them, like a tower. And that would work with stamp control, I guess.

Made myself a test, added a small stamp to my main menu and told it to "on click" start the game. But that didn't work. Is there a bug which prevents me from using that feature?

Even if there are, that won't be a problem since I can just make the location itself have a clickable square under the stamp. But that'll still be a problem if I want to make an add-on.

Ah, I worry too much :p. Thanks for the help.

Note: Do ambrosia have any kind of problem with their forums? Because there was another topic here just a minute ago which magically disappeared when I clicked it. :huh:

freaking bulletin board killed my line breaks, posted in the code tag...don't question me about the freak happenings or my guard chimpanzee will tear off your face, foot and special parts.

I believe i did some testing on this matter, stamp control doesn't work on maps, main locations yes, but no on maps.

one way would be to create paths blocking access on the map.

then they click on the NPC map icons, which represent locations, they'll walk the paths and when they get to the location they'll do whatever ( use proximity events ).

you could attempt to lock the player in place, by blocking movement tile to all locations ( or current location ), then giving them a spell that unlocks the path, something like popping up a textdialog, with 3 options.
move, save, menu
when they select move, it unblocks the spaces around the player or the space or whatever...then the player can select an npc location icon to travel towards...the player will walk the appropriate path.

you can give the player a 'destination' global if you don't want the other locations to act when passing by their  proximity. and make the npc's event fire only when the player's destination global matches their ID

the gb_destination evaluation event would go something like;
gb_destination is exactly 23?
no( end event; )
yes( do_something; )

side note the travel map, when its called should have in its launch event the dialog "menu" that gives the options of; move, save, menu. It could also lock the player in place. If you call this event here you' won't have to call it everytime the player leaves each map.

so one global, and say 30 NPCs posing as locations...and you've got yourself travel system.

be careful i might actually build another game :-P

This post has been edited by ellrx : 10 March 2005 - 05:38 PM

The little rat race game (below) is a map, not a main location. The two rats at the start waiting to begin are stamps. When it's time, the horn blows, the two stamps are deleted. Coldstone randomizes two sets of stamp animations and they are placed on the map. The rats moving are animations. All of this by using stamp control. The first set (not moving) are placed from the map location window, so they load in. The second set (moving) is placed via an event.

In my large game, I've created a pretty extensive crafting system. This is done in a main location (several actually). The Player can click on a stamp that loads in and its label shows below. The Player can click on a number beside the stamp, and that stamp is deleted and added below. The Player can click on the stamp that just showed up, and it will be deleted and appear back where it was. When the Player hits "Craft", yet another stamp appears. What that says depends on whether or not the Player has the needed materials or a congrats that he was successful. All of this is done via stamp control.

What strikes me is just how easy it all looks when it's finished. The Player hardly notices anything. This seamlessness alone tells me just how good Coldstone really is. It took me about 4 months learning Coldstone, and the next two years I've just been plugging away and placing in all of these things that, once in and if I do things right, simply works. It looks like nothing. And that's good theatre.

Instead of "on click (which I haven't gotten to work), start the game", use an event. Then create an event location, using the same name as the event. Then in the main location window, define the area of the event location. Then it'll work.

Aye. And when you click it would check if, say, "area_mountain" is equal to 1. I think that'd work.

The problem with making a map is that the game will have to load twice. First when you get to the edge of the map and teleports to the worldmap. Then once more when you have chosen where you want to go.

Anyway, I just had a thought. Would it be possible to make the player appear at different coordinates in the map, depending on weather they are north, south, east or west of the map? Might be a bit frustrating if you travel from the west to a rather large map and appear on the oppoiste side of it...

Edit: 300th post! Jubilation! :laugh:

This post has been edited by Ledorax : 11 March 2005 - 10:45 AM

Make sure the conditional's "greater or equal to 1".

Anyway, the game doesn't load, the maps/locations load. I find that main locations load pretty quickly.

I think that it depends on what kind of feel you want to have in your game. If you teleport the player to a map where he can click on and teleport to another side of the realm, then the Player would know that. On the other hand, having to stop off at your map every time he goes from one border to another (and I don't know if the NSEW border thing will work with Main locations), it might become rather frustrating to him. It seems to me that the answer is to place your map as a keydown and a clickable graphic on your main interface. What a wonderful way to travel! That would mean that the Player would be able to choose to travel that way or not. I have the usual "portals" in my game. Yours is more imaginative.

Oh, and to answer your question about different coordinates, in a main location, I don't think so, although I'm not 100% sure. Keep in mind that your map graphic of your main location will have to be small enough to appear without scrolling. If you use a map location, of course you can determine the coordinates via "map position."

Congrats on your 300.

Debra, on Mar 11 2005, 06:20 PM, said:

Place your map as a keydown and a clickable graphic on your main interface.

View Post

Hey, that's a good idea!

Yet, if they walk off the border the map would need to be brought up, too. At least I think so.

Anyway, why does the global need to be "greater or equal to 1"?

(1) In the map location, you can determine which map the Player goes to by defining the NSEW borders. Simply define the map that would be next to the map, or the map that you want the Player to go to next. Throughout my realm, I have roads and rivers and mountains. The Player stays on the road when he hits the border and the bordered map loads. Since the road matches the coordinates, he stays on the road from map to map. This way, the Player does not have to go to a "map of the realm" to travel through the realm.

You have Map G. East is Map H, north is Map B, south is Map M, and west is Map F. You'd define these in your map locations.

Sorry if you already know this, as I suspect you do.

But in Map B, the south border is Map G. and so on.

You can do this even when your "realm" is disjointed, even as space travel. It's a nifty way for you to determine where the Player goes once he hits the border.

In other words, no, you don't need for him to go to your realm map all the time. He can choose to do that.

(2) You would place your global in the map location window. That means that whenever the Player enters the map, the global would add 1. Because the Player would enter the map more than once when playing the game, you would need to define your conditional as greater or equal to 1. If it just equalled 1, then once he enters again, your map realm would not know that he'd been there, as it would no longer equal 1, but greater than 1. BUT if the global equals 1 or greater than 1, then you know that the Player had been in the map, so it would be revealed in your realm map.

Sorry I write so much.

So you mean if the player walks off the edge of the map, he would instantly be telported to another map which is a few miles away? Wouldn't that just be confusing?

Edit: Okay, I drew myself a worldmap. See my worldmap

This post has been edited by Ledorax : 12 March 2005 - 06:05 AM

Nope, not confusing at all. I take it that the light brown is ground and the other color is water or something. You'd have to use access tiles to keep the Player from walking into the water.

Cut up your world map into squares and name each square. Each square is a map of, let's say 100 by 100 tiles. (Mine is 150 x 150 as I wanted the Player to have the space to explore and I can have a town in a square/map.) As the Player walks through the realm, he goes from map to map. This is exactly what I've done. Just make sure that it makes sense graphically. For instance, one map is the "Flaming Forest." So I have trees with red, yellow, and orange leaves. So I place a few of those trees at the edge of the map that borders the forest. So when the Player enters the Flaming Forest map, it seems right. Or if you have roads, you would have to match the borders from map to map.

So the maps would NOT be a few miles away. The Player automatically teleports into the next map as if he stepped onto the next tile. So he doesn't teleport into the middle of a map. Coldstone does this for you when you define the borders in the map location window.

Ledorax, on Mar 12 2005, 06:45 AM, said:

So you mean if the player walks off the edge of the map, he would instantly be telported to another map which is a few miles away? Wouldn't that just be confusing?
View Post

In many games the next map is adjoining the map you are leaving. You are just entering a new area of continuous land. You walk from map A to map B only because you've run out of room in map A to display any more territory. If your areas are not connected, then you probably don't want to use the border teleportation.

You could set up events in each edge tile which would teleport the player to the area and spot you would like him to be. Thus, walking north would send the player to the south edge of the new map he is entering. You can control exactly where you want him to be. In other words, if he leaves map A in the northeast corner he would enter map B in the southeast corner, etc. Or you could eliminate border teleportation entirely and have a portal (or cave, or tunnel) which takes the player to a similar portal in the new area.

You can even have several portals in the same map. One has a sign which says, "To the mountains." Another says, "To the forest." The signs, of course, are optional. You don't have to tell him where he's going. 🙂

I updated the map (if you are too lazy to scroll up, click here) to include the beginning areas.

Fact is, my maps are not aligned at all. The reason why I don't want them to be near each other is that the starting village (Browen) is very peaceful and has never been attacked, so it would seem strange if there were orcs wandering around just outside the village. This way, I can have a massive kingdom without having to build hundreds of maps (I'm lazy 😛 ).

Edit: lousy slimey

This post has been edited by Ledorax : 12 March 2005 - 08:30 AM

Ah! Well, RD's signs would work. Or, indeed, your original thought about a world map.

I did another test, in which I added a stamp to the main menu, on click it would play an event (dialogue pop up with some text).

My game crashed on startup. Or, well, it didn't really crash, all it did was stop loading.

Edit: Uh, nevermind. My startgame event was broken for some reason. Works now 🙂

This post has been edited by Ledorax : 12 March 2005 - 09:38 AM

I hope you keep at it until it works right for you.

I can't tell you how many times I said to myself, "Man, this is just too much work." And I can't really tell you why I stick with it. Right now, I'm feeling this way while I place in timers for some of the employment. But, you know, I think that if you really want to create something that might be worthwhile to other people, I guess you have to put in the effort. Just remember to think about your audience and how they might feel when playing your game as you make your choices. When what you place in actually works right, it's really sweet!

You could always try to create something like the worldmap views in Final Fantasy style games - I made one of these back when I was still able to almost use Coldstone. You just make the edges of your area map teleport you to the world map area, and change the players animation etc. when you appear/disappear from the world map. Simply make a scaled down version of the world and have the player wander around in it - when you come to a new location, simply place another teleport to the new location, perhaps on a picture of a town or whatnot. You can even have semi-random encounters with invisible NPCs calling battle areas if you wanted - also a lá FF or Breath of Fire.

Maybe I'm not understanding how you want it to work, though. All good. 🙂

-Andiyar

Never played final fantasy, but I suppose that could work. Alas, having to wait for the loading screen each time you get the worldmap up might be a bit frustrating, and it would have to if I used a map.