Pages: 1 ... 3 4 [5] 6
|
|
|
Author
|
Topic: Ideas for "Ur-quan masters 2" engine (Read 20850 times)
|
Culture20
Enlightened
Offline
Posts: 917
Thraddash Flower Child
|
That's why you get the Mark II, modular out the wazoo.
|
|
|
Logged
|
|
|
|
|
Death 999
Global Moderator
Enlightened
Offline
Gender:
Posts: 3874
We did. You did. Yes we can. No.
|
I think that if there is the capacity for an upgrade, it should be expensive compared to the ship itself. Otherwise no one would build ships without upgrading them...
Do you want a yehat for 2300 RU, or a Yehat with 6 extra battery for 3800? Hrm, that isn't so easy.
|
|
|
Logged
|
|
|
|
Death 999
Global Moderator
Enlightened
Offline
Gender:
Posts: 3874
We did. You did. Yes we can. No.
|
Stepping out of combat and into the realm of character interaction...
I like the idea of having a roster of playable characters, e.g. Zelnick, Talana, Fwiffo, Hayes, Tanaka, and other characters who are not playable. Starship captains would be characters randomly generated in a manner similar to the planets -- so if you meet the same ship, the captain will be the same person. You can take over being any one of them, and send the others away on missions, or have them stick around to help out close by (provide some bonus). Your control over them is not unlimited. Fwiffo won't go on a suicide mission, and Talana may fly off the handle if you manage to convince Zelnick to have dinner with the daughter of the Utwig Proctor.
Also, each of the characters (playable or not) knows things, and you can tell them things and ask them arbitrary questions. Conversation would be sort of a cross between Exile's format, Blood-speak, the negotiation palette in Spaceward Ho!, and the classic SC2 conversation-options type. So, you choose a subject to talk about, then the character relations and the character's skill in diplomacy determines how it comes out of their mouth. Then that factors in to how positive a response you get. The statement and response are determined ALGORITHMICALLY, using conversational templates with pluggable information. This would require far far more text than static conversations, but then again you could spend hours talking to the ZFP about Frungy, if that information was in the game's data.
And just because someone is on your side doesn't mean that you can't talk to them or ask them questions. This is a major flaw in every multiple-character CRPG I've ever seen with the sole exception of Cythera.
How the heck are we going to handle this? Well, it is a fairly tall order, especially if it's to be done in real time. I think there could be something done with knowledge matrices multiplied by opinion matrices. The knowledge matrix handles what the character knows about. The opinion matrix handles what the character cares about. Both of these matrices will be very large very sparse matrices, so straightforward implementations would fail immediately.
The model for knowledge I am thinking of right now is that each bit of knowledge has a subject, a predicate, and a relation. For example, the Dnyarri enslaved the Ur-Quan.
Characters would have different reactions to this fact if they are aware of it. Most characters find slavery distasteful and would be less sympathetic to the Dnyarri and more sympathetic to the Ur-Quan.
Other examples could be Zelnick loves Talana; Zelnick betrayed the Mycon; The Mycon know that Zelnick betrayed the Mycon.
It's with that last one where you get knowledge as a predicate that things get messy. When AI-controlled characters have to think about what other people know, that causes a massive explosion in the amount of knowledge out there to be known that is hard to limit. But then again, how are AI characters really going to react based on the knowledge of what other people know? Are they going to scheme and plan algorithmically, or are their REACTIONS done algorithmically, but their ACTIONS done by static plot? If we have the characters' actual ACTIONS handled by hard-coding, then we can drop all track of knowledge about other peoples' knowledge.
</pie-in-the-sky>
|
|
|
Logged
|
|
|
|
FalconMWC
Enlightened
Offline
Gender:
Posts: 1059
Avatar Courtesy of Slyrendro
|
Ouch - That was a long post D_999, but here is what I have to say about it:
I like that you can "switch" characters at the beginning of the game. For instace being Talana would result in you planing attacks on the mycon etc.
That is a lot of work though - especially if a player first time through will just go through 1/8 of it. But if were ever to be implemiented - I would buy it.
|
|
|
Logged
|
|
|
|
|
FalconMWC
Enlightened
Offline
Gender:
Posts: 1059
Avatar Courtesy of Slyrendro
|
I think their last post was over a month ago....
|
|
|
Logged
|
|
|
|
Chrispy
Enlightened
Offline
Gender:
Posts: 917
Vlik Dweller
|
but wasnt that last post not without a month of silence before it
|
|
|
Logged
|
|
|
|
FalconMWC
Enlightened
Offline
Gender:
Posts: 1059
Avatar Courtesy of Slyrendro
|
I don't understand....
|
|
|
Logged
|
|
|
|
|
FalconMWC
Enlightened
Offline
Gender:
Posts: 1059
Avatar Courtesy of Slyrendro
|
Well - Considing what a great job they did with Star Control 2 other people are begging them to do their games so they are very busy.
|
|
|
Logged
|
|
|
|
Chrispy
Enlightened
Offline
Gender:
Posts: 917
Vlik Dweller
|
i ment that they dont come to this forum that much, and they rarely post.
|
|
|
Logged
|
|
|
|
JonoPorter
Enlightened
Offline
Gender:
Posts: 656
Don't mess with the US.
|
Death_999 your idea is a interesting one, but you ould have to make sure it was done right. if you want to see dynamic dialogs done utterly wrong look at Master of Orion 3.
I think it would be better to have a huge database of static conversations.
|
|
|
Logged
|
|
|
|
Culture20
Enlightened
Offline
Posts: 917
Thraddash Flower Child
|
And just because someone is on your side doesn't mean that you can't talk to them or ask them questions. This is a major flaw in every multiple-character CRPG I've ever seen with the sole exception of Cythera. Arcanum, Torment, and Ultimas 5-7 allowed you to ask things of your followers, and you'd have very indepth conversations in Torment.
Other examples could be Zelnick loves Talana; Zelnick betrayed the Mycon; The Mycon know that Zelnick betrayed the Mycon.
It's with that last one where you get knowledge as a predicate that things get messy. When AI-controlled characters have to think about what other people know, that causes a massive explosion in the amount of knowledge out there to be known that is hard to limit. But then again, how are AI characters really going to react based on the knowledge of what other people know? Are they going to scheme and plan algorithmically, or are their REACTIONS done algorithmically, but their ACTIONS done by static plot? If we have the characters' actual ACTIONS handled by hard-coding, then we can drop all track of knowledge about other peoples' knowledge.
What you're looking for is an AI that can win the Turing-test. If I were trying to make this a reality, I would definitely make knowledge similar to C++ classes, maybe using something similar to prolog syntax: What X knows can be labeled public, protected, or private. An AI can inherit the knowledge of another, but only naturally obtains the public knowledge, protected knowledge is granted only if the "parent" AI is listed as a friend AI. Special syntax might be used to define specific knowledge (the mycon might learn that the Captain tricked them, but they wouldn't know everything else his friend AIs know). Some sort of special syntax also might be able to override private knowledge so that it can be shared with just one AI, and not all friend AIs. fact(betrayed "The Captain" Mycon protected) - the captain betrayed the mycon (only the captain and his knowledge-inheriting friends know) fact(betrayed "The Captain" Thraddash public) - the captain betrayed the Thraddash (everyone who inherits the captain's knowledge knows) fact(defeated "The Captain" Sa-Matra public) - the captain destroyed the sa-matra (everyone who inherits the captain's knowledge knows) fact("died from a plasmoid leak" Floosh private) - floosh died from a plasma leak; only he knows that, no matter how many people inherit his knowledge. Special syntax can grant others this knowledge (I suppose it would be added to their data as a private symbolic link?) if floosh tells them in conversation. fact("experienced problems implanting deep child in organon" Mycon public) - Anyone who inherits the general-mycon race's knowledge knows that they are having trouble implanting deep children in organon.
The biggest problem I see with this approach is how much data needs to be processed every time a question is asked. The inheritance and symlinks reduce storage costs, but if you're talking to an all-knowing race like the Melnorme or arilou, everytime you ask something, the entire DB needs to be accessed. Maybe in the future when we're all using multi-processor machines or the computers stiched into our clothing operate in tandem like beowulf clusters we could get this to work, but right now conversations would take a little time inbetween sentences.
Edit: maybe instead of public, private, protected, there could be a % scale of privacy, allowing for a little more fluidity? and oops, forgot that you mentioned partitioning the subjects into a tree structure, everything wouldn't have to be accessed for every sentence when talking to the Melnorme.
|
|
« Last Edit: January 30, 2004, 12:59:33 am by Culture20 »
|
Logged
|
|
|
|
Death 999
Global Moderator
Enlightened
Offline
Gender:
Posts: 3874
We did. You did. Yes we can. No.
|
Arcanum, Torment, and Ultimas 5-7 allowed you to ask things of your followers, and you'd have very indepth conversations in Torment.
good.
What you're looking for is an AI that can win the Turing-test.
No, just not repeat identically and have fixed converation options, like in SC2.
If I were trying to make this a reality, I would definitely make knowledge similar to C++ classes, maybe using something similar to prolog syntax: What X knows can be labeled public, protected, or private.
How much do you actually know about C++ classes? Because publicity of an item in terms of a programming API has little to do with the kind of privateness or publicity you're talking about...
An AI can inherit the knowledge of another, but only naturally obtains the public knowledge, protected knowledge is granted only if the "parent" AI is listed as a friend AI. Special syntax might be used to define specific knowledge (the mycon might learn that the Captain tricked them, but they wouldn't know everything else his friend AIs know).
I see what you're getting at here. Here is my model for this: Characters have information sources and then specific tidbits. Most bits of information about the world are labelled statically, not described dynamically. This should save tons of space. For example, Yehat all share a Yehat information base. Yehat captains all share a yehat captain information base. Yehat scientists share a Leage scientist information base. Then if you have told a specific named Yehat scientist about mycon egg cases, that will be noted and recorded for later. If on the other hand, the scientist said he would share this info with his colleagues, then the league scientist knowledge base would get the info instead. The propagation speed might be unrealistic, but that could be accounted-for with time delays and such.
The biggest problem I see with this approach is how much data needs to be processed every time a question is asked. The inheritance and symlinks reduce storage costs, but if you're talking to an all-knowing race like the Melnorme or arilou, everytime you ask something, the entire DB needs to be accessed.
Note that most opinions are fixed over time and can be looked up. When changes occur, relatively little needs to be done. We can manually program in all moments of enlightenment (e.g. explaining the probes' behavior), so no inference work needs to be done in the AI.
Remember, it is mainly their reactions to you which is determined here. That can be handled pretty quickly by grabbing the RELEVANT bits of info talked about in your statement and handling them. And you can grab them the moment you go into that category rather than waiting until you finalize the statement.
Also, if there is a character voice, you have until your character has delivered the statement to calculate the response.
|
|
« Last Edit: January 30, 2004, 03:59:57 am by Death_999 »
|
Logged
|
|
|
|
Pages: 1 ... 3 4 [5] 6
|
|
|
|
|