Travel System Idea

Post » Sun Jun 27, 2010 10:49 pm

I'm working on a mod to recreate the original Fallout and we've been having some discussion lately about the travel system. I only have a basic knowledge of the scripting and UI and since we currently don't have a programmer, I wanted to run this idea by some of the more experienced individuals out there and see if this even sounds reasonable.

So currently, when you look at the PIPBoy map you can maneuver around and select objects to fast travel to. From my understanding the map inside the pipboy is just a UI .xml file that can be modified and I would assume the clicking and fast traveling are scripted. My thought is to customize the UI so that you have a blank map the only thing visible is a little marker that shows where you are and any locations you've already found. Then when you click on the map to "travel" somewhere there would be some sort of display that says you are traveling and a scripted pause. Additionally in the script, there is a script that calculates a random chance to have an encounter and then fast travel you to that encounter location, if nothing happens and you don't discover anything new you are prompted with another menu to either return to your original location or select a new location to travel to on the map. As you explore the map if your travel path would discover a new location then you are fast traveled to the appropriate location and you come out of the "You are traveling" screen. Then obviously on top of this you can travel between locations you've found or been told about just by clicking directly on the location that is visible on the map. You will still get the "You are traveling" message and the chances for random encounters, but you will move across the map directly to the location you selected and automatically enter that location after the "You are traveling" pause has completed.

Obviously this would require some UI work and heavy scripting, but wanted to get everyone's thoughts on the feasibility of this before we start looking into any more. It wouldn't be an exact replication of the classic fallout travel, but I think it would feel pretty close. Also, I know about the GTS and it's not exactly what we are looking for in case anyone suggests it :)

The only other thing I was thinking and not sure if this is even close to possible, is to make it so when you enter "travel mode" you are fast traveled to a new worldspace and your view is forced really high up in 3rd person so your character is barely visible (not sure if that is possible) and then you are equipped with some armor or something that makes you look like a red dot. Obviously you wouldn't be able to access your inventory or anything like that while on this screen, you would only be able to move your character around, open the game menu, etc. This worldspace would be layed out to look like the map. Then you can actually move your character to simulate traveling on the map. Scripts in the backend would calculate random chance of encounter, and there would be selectable items on the map that would be the "towns" and once selected would bring up a prompt to "Enter the town" and fast travel you to the location. This would be a lot cooler and closer to what we would want, but doesn't sound nearly as feasible as the above mentioned method.

Anyway thanks for the input!
User avatar
dav
 
Posts: 3338
Joined: Mon Jul 30, 2007 3:46 pm

Post » Mon Jun 28, 2010 12:51 am

I once started something comparable in oblivion, which was quite a while ago, but there are some things I remember on how I generally approached this.

First of all, fast travelling is not scripted, you can't just interrupt it or inject your own behaviour as far i know. You would have to disable the original fasttravel and completely replace it with a scripted equivalent to add random encounters etc. Replacing it generally isn't difficult (check for combat, move to map marker, fade screen out, forward time based on distance etc), but to do this you would need FOSE functions to detect when the player tries to travel.

OBSE(!not FOSE) functions you could use to accomplish this are GetMapMenuMarkerName and GetMapMenuMarkerRef, to get the highlighted map marker when the menu is open. if this mapmarker is != null, check with CanTravelToMapMarker if fast travel should be possible or not. These functions do not yet exist in FOSE.

My thought is to customize the UI so that you have a blank map the only thing visible is a little marker that shows where you are and any locations you've already found.

I didnt quite get this part, isnt this how it already works? :D

I think there even is a mod for oblivion that implemented the random encounters on fast travel, though I do not know how and to which extend. Maybe you can find it on tesNexus.

Edit: Oh, missed that whole part :)
The only other thing I was thinking and not sure if this is even close to possible, is to make it so when you enter "travel mode" you are fast traveled to a new worldspace and your view is forced really high up in 3rd person so your character is barely visible (not sure if that is possible) and then you are equipped with some armor or something that makes you look like a red dot. Obviously you wouldn't be able to access your inventory or anything like that while on this screen, you would only be able to move your character around, open the game menu, etc. This worldspace would be layed out to look like the map. Then you can actually move your character to simulate traveling on the map. Scripts in the backend would calculate random chance of encounter, and there would be selectable items on the map that would be the "towns" and once selected would bring up a prompt to "Enter the town" and fast travel you to the location. This would be a lot cooler and closer to what we would want, but doesn't sound nearly as feasible as the above mentioned method.


It's certainly an interesting idea! Still, not having functions to check map marker properties would probably make it difficult. anyway, here's how i would implement it:

Don't use a worldspace, but a custom UI element displaying the map. the red dot marking your position also would be an element displayed there at the players current position. use FOSE to detect keypresses for directional keys which move the dot around. Right now i cant think of an easy way for collision detection between existing map markers and the players position, but you could always do this statically (would not work with mod added mapmarkers then) or not at all (meaning, you can travel anywhere). you can use FOSEs ref walking functions to process encounter zones or enemy spawns etc in the cell that would be translated to the current position of the player on the map. Based on the perception skill of the player, these would either be displayed warning/danger symbols on the map, or not. Once you get too close, theres an increasing chance for a random encounter.
User avatar
Liii BLATES
 
Posts: 3423
Joined: Tue Aug 22, 2006 10:41 am

Post » Mon Jun 28, 2010 6:14 am

doesn't sound nearly as feasible as the above mentioned method.

You are like 900% wrong. It's almost always easier to add new mechanics than to interrupt or edit existing ones (beyond gamesettings).

Making a new worldspace and equipping some carmour then driving around in it looking for doors into other worldspaces would be pretty trivial and has already been done in Oblivion, although I don't know the name of the mod offhand. Changing the camera angle is more difficult (surprise- it involves editing an existing mechanic) but you can make an animation that alters the camera position, or just force the player into 3rd person.
User avatar
Sylvia Luciani
 
Posts: 3380
Joined: Sun Feb 11, 2007 2:31 am

Post » Sun Jun 27, 2010 5:37 pm

It's certainly an interesting idea! Still, not having functions to check map marker properties would probably make it difficult. anyway, here's how i would implement it:

Don't use a worldspace, but a custom UI element displaying the map. the red dot marking your position also would be an element displayed there at the players current position. use FOSE to detect keypresses for directional keys which move the dot around. Right now i cant think of an easy way for collision detection between existing map markers and the players position, but you could always do this statically (would not work with mod added mapmarkers then) or not at all (meaning, you can travel anywhere). you can use FOSEs ref walking functions to process encounter zones or enemy spawns etc in the cell that would be translated to the current position of the player on the map. Based on the perception skill of the player, these would either be displayed warning/danger symbols on the map, or not. Once you get too close, theres an increasing chance for a random encounter.


That sounds like an interesting twist, my only concern is that with a UI would you be able to have an object move around based on player key press? I thought the UI's were rather static, IE you couldn't really have dynamic content/animation.

You are like 900% wrong. It's almost always easier to add new mechanics than to interrupt or edit existing ones (beyond gamesettings).

Making a new worldspace and equipping some carmour then driving around in it looking for doors into other worldspaces would be pretty trivial and has already been done in Oblivion, although I don't know the name of the mod offhand. Changing the camera angle is more difficult (surprise- it involves editing an existing mechanic) but you can make an animation that alters the camera position, or just force the player into 3rd person.


I'm talking some serious third person view though, as in gods looking down on the character third person. The whole idea would to have the character so far away that you equip them with armor that makes them look like a little red dot instead of a person walking around. Then you make some custom models that you put on the worldspace to look like little towns etc. Effectively turning an area into a map instead of an actual playable area.
User avatar
Russell Davies
 
Posts: 3429
Joined: Wed Nov 07, 2007 5:01 am

Post » Sun Jun 27, 2010 11:59 pm

I'm talking some serious third person view though, as in gods looking down on the character third person. The whole idea would to have the character so far away that you equip them with armor that makes them look like a little red dot instead of a person walking around. Then you make some custom models that you put on the worldspace to look like little towns etc. Effectively turning an area into a map instead of an actual playable area.

Since, as you said you would actually try to simulate a map, you should rather use a real map :) I don't using a worldspace would work particulary well.

That sounds like an interesting twist, my only concern is that with a UI would you be able to have an object move around based on player key press? I thought the UI's were rather static, IE you couldn't really have dynamic content/animation.

Well, you can. The element would look like this:
<image name="PlayerPositionDot">	<filename> red_dot.dds </filename>	<x><copy src=http://forums.bethsoft.com/index.php?/topic/1079440-travel-system-idea/"io()" trait="_PlayerPosX" /><sub>25</sub></x>	<y><copy src="io()" trait="_PlayerPosY" /><sub>25</sub></y>	<width> 50</width>	<height> 50 </height>	<systemcolor> &nosystemcolor; </systemcolor></image>

_PlayerPosX / _PlayerPosY are set with SetUIFloat. IsKeyPressed 17 (=W) -> PlayerPosy -= 5 etc. Maybe I'll create a small prototype if I find the time (and if you don't mind), because as I said, the idea sounds really cool, like a small mini-game instead of direct fast-travelling :)
User avatar
Quick draw II
 
Posts: 3301
Joined: Thu Nov 08, 2007 4:11 pm

Post » Mon Jun 28, 2010 3:59 am

Since, as you said you would actually try to simulate a map, you should rather use a real map :) I don't using a worldspace would work particulary well.


Well, you can. The element would look like this:
<image name="PlayerPositionDot">	<filename> red_dot.dds </filename>	<x><copy src=http://forums.bethsoft.com/index.php?/topic/1079440-travel-system-idea/"io()" trait="_PlayerPosX" /><sub>25</sub></x>	<y><copy src="io()" trait="_PlayerPosY" /><sub>25</sub></y>	<width> 50</width>	<height> 50 </height>	<systemcolor> &nosystemcolor; </systemcolor></image>

_PlayerPosX / _PlayerPosY are set with SetUIFloat. IsKeyPressed 17 (=W) -> PlayerPosy -= 5 etc. Maybe I'll create a small prototype if I find the time (and if you don't mind), because as I said, the idea sounds really cool, like a small mini-game instead of direct fast-travelling :)


Like I said, I'm still learning the scripting and UI stuff so if it can be done I definitely think that would be the best option. A little mini-game is pretty much exactly what it would be. As far as you working on a prototype I wouldn't mind at all. You seem to have a good grasp on the workings of things so if you could make it work that would be awesome!
User avatar
Marcia Renton
 
Posts: 3563
Joined: Fri Jan 26, 2007 5:15 am

Post » Sun Jun 27, 2010 4:34 pm

I'm talking some serious third person view though, as in gods looking down on the character third person. The whole idea would to have the character so far away that you equip them with armor that makes them look like a little red dot instead of a person walking around. Then you make some custom models that you put on the worldspace to look like little towns etc. Effectively turning an area into a map instead of an actual playable area.
You don't need to change the scale or make it zoom out. What does that achieve over making the player wear a very small 'car' or 'dot' item that covers everything else? And all you need to do to make it a 'non-playable area' is disable controls as appropriate and not add any content to interact with. Play an idle that changes the rotation of the 3rd-person camera and you're done.
User avatar
Amy Masters
 
Posts: 3277
Joined: Thu Jun 22, 2006 10:26 am


Return to Fallout 3