Page 1 of 1

Solo Mode

Posted: Fri May 05, 2006 6:50 pm
by Vasculio294
Is it possible to implant this into the exult. I miss this mode from the Ultima6/Martian Dreams and Savage Empire.

Re: Solo Mode

Posted: Sun May 07, 2006 1:03 am
by Vasculio294
Huh?

Whats with the neglect?

This is a very good topic so why "nah"?

Re: Solo Mode

Posted: Sun May 07, 2006 1:24 pm
by Garrett
You can do this already, kinda. Just tell your companions to "leave" then "stay here", and you can do as you please. Not a perfect fix, but it does work.

If you leave them on the flying carpet you can even have more than seven with you at a time. :)

Re: Solo Mode

Posted: Mon May 08, 2006 11:54 am
by drcode
In Martian Dreams, couldn't you take control of one of your companions? Or am I thinking of another game...

Re: Solo Mode

Posted: Mon May 08, 2006 1:52 pm
by Dominus
you could do this in the whole U6 series (U6, Savage Empire, Martian Dream), AFAIK. In U6 there was a certain plot element you could only solve with a certain NPC in your party and in solo mode.

Re: Solo Mode

Posted: Mon May 08, 2006 10:18 pm
by TdI
I guess it would be relatively easy to implement this "quick and dirty", but hard to make it work correctly with the game.

The reason for this is that all NPC conversations assume they are dealing with the avatar. You could disable conversation when controlling a different party member, but some conversations or events, especially in Serpent Isle, are scripted and would be triggered assuming the avatar regardless.

On some ocasions, especially in SI, the game would have to make sure that the party is united, otherwise you could travel to Moonshade with Shamino and the Avatar would be left behind, possibly braking the plot and weird stuff like that.

Maybe it would be possible to implement this as an option for future games, but making it work correctly with the current Ultimas, (especially SI -again) would be a daunting task.

Re: Solo Mode

Posted: Mon May 08, 2006 10:50 pm
by Vasculio294
Ah ok!

Re: Solo Mode

Posted: Thu Jun 01, 2006 8:51 am
by Wizardry Dragon
If they did implement this, I could make all the appropriate fixes in SI to address the problems TdI has brought up. I have to more or less rewrite everything (code-wise, not plot-wise, before anyone freaks out on me) for SI when I do take a hack at it anyways.

That's why I'm putting it off for now ^_-

--------
Peter M Dodge aka Wizardry Dragon
[/i]Lead Designer,[/i]
Ultima VII: The Feudal Lands

Re: Solo Mode

Posted: Thu Jun 01, 2006 10:36 am
by drcode
I think most conversations use a 'magic' NPC # (-356) to refer to the Avatar. So perhaps if there were a solo-mode, we interpret that to be the current NPC the user is controlling. That might solve some of the problems.

Re: Solo Mode

Posted: Fri Jun 02, 2006 9:24 am
by Wizardry Dragon
Just add a check to the converse() structure that sees if the character is the Avatar. You could even make it have an alternate dialogue if the character in question is not the Avatar. I, for one, would love something like that for use in my mod.

--------
Peter M Dodge aka Wizardry Dragon
Lead Designer,
Ultima VII: The Feudal Lands

Re: Solo Mode

Posted: Fri Jun 02, 2006 1:51 pm
by marzo
Some intrinsics might need to be changed as well; off the top of my head, and at the very least, the is_pc_female, get_avatar_ref, is_pc_inside, path_run_usecode and approach_avatar intrinsics should refer to the active actor or conversations and certain scripts would result in weird things. And even then, conversations might be weird; they all assume that the NPC is talking to the avatar after all.

Re: Solo Mode

Posted: Fri Jun 02, 2006 2:16 pm
by SB-X
Party members who aren't the Avatar shouldn't be allowed to talk to NPCs.

Re: Solo Mode

Posted: Sat Jun 03, 2006 10:00 am
by Wizardry Dragon
The easy way to make all those intrinsics work is to disable conversations when you're another character.

However, I don't believe, speaking on a game design angle, that'd be the correct way to fix the problem.

Peter M Dodge aka Wizardry Dragon,
Lead Designer,
Ultima VII: The Feudal Lands

Re: Solo Mode

Posted: Sat Jun 03, 2006 6:50 pm
by SB-X
That's the way U6 did it.

Re: Solo Mode

Posted: Mon Jun 05, 2006 9:31 am
by Wizardry Dragon
Doesn't mean it's the correct way ^_-

Either way, you could have it point to null conversations for the alternate characters by default, which would be better than outright disallowing it, because it would leave the door open for mod designers such as I that would want to use alternate conversations.

(In particular I have an idea of splitting the story into two seperate, concurrent segments in TFL in an instance where the party has to split up. Obviously, the Avatar cannot be in two places at once.)
-------
Peter M Dodge aka Wizardry Dragon,
Lead Designer,
Ultima VII: The Feudal Lands

Re: Solo Mode

Posted: Mon Jun 05, 2006 1:22 pm
by drcode
We already have the notion of "camera actor", as opposed to the "main actor", who is always the Avatar. This was needed in Serpent Isle for scenes like the one where Cantra and Batlin fight it out. If you're writing mods, I guess you could have each conversation (yea, I know that's a lot) check for whether the "camera actor" is the Avatar, and branch accordingly. In most cases, you could call a routine that has the NPC say samething, like, "Sorry, but I don't feel like talking to you!".

Re: Solo Mode

Posted: Mon Jun 05, 2006 7:59 pm
by Samatar
'In most cases, you could call a routine that has the NPC say samething, like, "Sorry, but I don't feel like talking to you!".'

That would be fairly easy in Moonshade, since alot of the mages won't speak to mundanes anyway... you could do the same thing in Monitor since they don't like anyone who isn't a knight... and in Fawn... hmmm... they could say you were too ugly to talk to??

Re: Solo Mode

Posted: Tue Jun 06, 2006 9:56 am
by Wizardry Dragon
I was thinking more in the conversation code along the lines of:

if actor is Avatar:
call 0x[npc conversation usecode number here]
else:
call 0x[npc conversation usecode number here].alternate

... or something.

From the sounds of it, all that would need done then is a handler to allow a camera actor to be manipulated just as the PC. This could be used for times when the player is incapacitated as well, maybe, allowing it to be like Ultima 4 and 5 that way - combat wouldn't be over until everyone's incapacitated. At the very least, it would open the door for any NPC to use 'manual' control mode.

NPC conversations could be useful as well - the pssibilities there are almost endless. Romance plots, NPCs that react more favourably to one NPC over the other, NPCs that interact negatively to a character (such as the pub-keepers with Dupre), and perhaps Jaana's adherence to Justice may allow her to get the truth out of someone being difficult. Just ideaqs - but surely you can see the merit in them.
--------
Peter M Dodge aka Wizardry Dragon
Lead Designer,
Ultima VII: The Feudal Lands

Re: Solo Mode

Posted: Tue Jun 06, 2006 3:16 pm
by drcode
That would be cool if you're able to write all those scripts.

As for manually controlling the alternate NPC, I'd have to go through a fair bit of code changing "main_actor" to "camera_actor". Or maybe "main_actor" should be set to the alternate NPC. Could be a little messy either way.

Re: Solo Mode

Posted: Wed Jun 07, 2006 7:04 am
by artaxerxes
maybe too only the Avatar understands the NPC language, while the companions don't.

The reason why it is the case can be left to modders to do.

Artaxerxes

Re: Solo Mode

Posted: Wed Jun 07, 2006 9:00 am
by drcode
Thinking about it a little more, maybe the terminology should be changed. Instead of "main_actor" and "camera_actor", it should be "avatar" and "player". The "avatar" is always the same, but "player" can switch to the NPC controlled by the user (and the one that the camera follows).

Re: Solo Mode

Posted: Wed Jun 07, 2006 10:00 am
by Wizardry Dragon
That makes sense.

As I suggested, in Exult itself it should point just to a null usecode statement, such as

Lord_British_Conv.alternate ()
{
}

or something (probably would be the number, such as 0x401.alternate, but I wanted to clearly illustrate what I meant), and then leave it open for modders to overwrite that default alternate conversation.
--------
Peter M Dodge aka Wizardry Dragon
Lead Designer,
Ultima VII: The Feudal Lands

Re: Solo Mode

Posted: Wed Jun 07, 2006 3:45 pm
by MV
Oh, that sounds pretty cool. U6 style companion control.

But if I feel like a solo game, I wait until I'm free of trinsic, then hoof it on over to Iolos house and tell him to leave and to go home. :)

Or sometimes I feel like an all Girls game, so I make a female avatar, ditch Iolo and then just recruit juilia, yarna and katrina. This one is more challenging to keep everyone alive as those companions arn't very strong and are low in HP, so it's a little slower going at first until I get them up in level.

Re: Solo Mode

Posted: Thu Jun 08, 2006 8:45 am
by Wizardry Dragon
Jaana's pretty potent with Marzo's spellcasting system :D

--------
Peter M Dodge aka Wizardry Dragon
Lead Designer,
Ultima VII: The Feudal Lands

Re: Solo Mode

Posted: Thu Jun 08, 2006 2:05 pm
by MV
Maybe I should get around to running the latest versions of these things one day. :) I'm still playing classic mode.