Solo Mode

NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Forum rules
NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Locked
Vasculio294
Posts: 52
Joined: Thu May 14, 2020 1:34 pm

Solo Mode

Post by Vasculio294 »

Is it possible to implant this into the exult. I miss this mode from the Ultima6/Martian Dreams and Savage Empire.
Uncle Rico: Napoleon, you know we can't afford the fun pack. What, do you think money grows on trees in this family? Take it back! And get some Pampers for you and your brother while you're at it.
Vasculio294
Posts: 52
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post by Vasculio294 »

Huh?

Whats with the neglect?

This is a very good topic so why "nah"?
Uncle Rico: Napoleon, you know we can't afford the fun pack. What, do you think money grows on trees in this family? Take it back! And get some Pampers for you and your brother while you're at it.
Garrett
Posts: 68
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post 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. :)
drcode
Site Admin
Posts: 2267
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post by drcode »

In Martian Dreams, couldn't you take control of one of your companions? Or am I thinking of another game...
Dominus
Site Admin
Posts: 5656
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post 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.
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
TdI

Re: Solo Mode

Post 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.
Vasculio294
Posts: 52
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post by Vasculio294 »

Ah ok!
Uncle Rico: Napoleon, you know we can't afford the fun pack. What, do you think money grows on trees in this family? Take it back! And get some Pampers for you and your brother while you're at it.
Wizardry Dragon
Posts: 1241
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post 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
Cheers, Wizardry Dragon
Lead Designer, Ultima VII: The Feudal Lands
www.thefeudallands.ca
drcode
Site Admin
Posts: 2267
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post 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.
Wizardry Dragon
Posts: 1241
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post 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
Cheers, Wizardry Dragon
Lead Designer, Ultima VII: The Feudal Lands
www.thefeudallands.ca
marzo
Site Admin
Posts: 1925
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post 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.
------
Marzo Sette Torres Junior
aka Geometrodynamic Dragon
[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
SB-X
Posts: 980
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post by SB-X »

Party members who aren't the Avatar shouldn't be allowed to talk to NPCs.
Wizardry Dragon
Posts: 1241
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post 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
Cheers, Wizardry Dragon
Lead Designer, Ultima VII: The Feudal Lands
www.thefeudallands.ca
SB-X
Posts: 980
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post by SB-X »

That's the way U6 did it.
Wizardry Dragon
Posts: 1241
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post 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
Cheers, Wizardry Dragon
Lead Designer, Ultima VII: The Feudal Lands
www.thefeudallands.ca
drcode
Site Admin
Posts: 2267
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post 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!".
Samatar

Re: Solo Mode

Post 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??
Wizardry Dragon
Posts: 1241
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post 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
Cheers, Wizardry Dragon
Lead Designer, Ultima VII: The Feudal Lands
www.thefeudallands.ca
drcode
Site Admin
Posts: 2267
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post 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.
artaxerxes
Site Admin
Posts: 1310
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post 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
drcode
Site Admin
Posts: 2267
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post 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).
Wizardry Dragon
Posts: 1241
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post 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
Cheers, Wizardry Dragon
Lead Designer, Ultima VII: The Feudal Lands
www.thefeudallands.ca
MV

Re: Solo Mode

Post 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.
Wizardry Dragon
Posts: 1241
Joined: Thu May 14, 2020 1:34 pm

Re: Solo Mode

Post 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
Cheers, Wizardry Dragon
Lead Designer, Ultima VII: The Feudal Lands
www.thefeudallands.ca
MV

Re: Solo Mode

Post by MV »

Maybe I should get around to running the latest versions of these things one day. :) I'm still playing classic mode.
Locked