Re: [Avatarsdev-general] AI e Will
Status: Inactive
Brought to you by:
andreavalente
From: Inglima M. D. S. <st9...@ed...> - 2003-02-03 12:57:05
|
On Sun, 2 Feb 2003, K wrote: > Dicendo che l'intelligenza artificiale =E8 un client di Avatars =E8 la > stessa cosa (allo specchio) di quando io parlo di utenti come > "pluggabili" nell'omino: abbiamo l'avatar che viene controlato da > un'intelligenza, la cui natura =E8 un dettaglio implementativo. :-P > Il problema =E8 che cos'=E8 la Will. > Nei mostri pi=F9 stupidi si pu=F2 avere un thread, mentre per gli > algoritmi pi=F9 pesanti si pu=F2 prevedere l'esecuzione su un'altra > macchina, ma questo si decide istanziando un oggetto con la giusta > implementazione di Will (thread, IA su rete, giocatore, ..). > :-) K, ti faccio una piccola annotazione: non hai espresso bene quello che alla fine pensavamo essere la Will :) Probabilmente hai fatto flush del buffer ;) Non ti preoccupare, avevamo sparato cosi' tante stronzate (almeno, io stronzate, non valuto le cose che hai detto perche' sarei di parte :p) che te ne sei dimenticato. Cmq. Dalla memoria di quello che aveva detto Mamma qualche decennio fa, e reinterpretandolo con la struttura che vorremo dare al gioco, abbiamo appurato che la Will e' il sottile strato che: 1) manda gli stimoli del mondo di gioco (server) con l'utente IA/giocatore. 2) prende i comandi dell'utente IA/giocatore e li invia al server (eventualmente, aggiungo io, facendo echo alla IA/giocatore) [snippino] > Un problema =E8 la gestione della memoria (o comunque notifica degli > eventi): ogni evento dovrebbe essere comunicato a tutte le will > dell'omino (nativa, e giocatore)... Quello lo si vedra' alla fine, comunque e' un problema del client. Io penso potremmo tranquillamente considerare una sola Will per ogni "Anima" che fa da multiplexing/demultiplexing del segnale fra gli utenti, e che decide la precedenza del controllo degli utenti sull'omino. > La AI deve rimanere attiva quando ne subentra un'altra, o dovrebbe > "addormentarsi" (e quando l'omino si sveglia si chiede che ca***io ci > sta facendo l=EC..)? In questo caso l'utente AI puo' anche rimanere attiva capendo che ad un certo comando inviato dagli altri utenti riceve una determinata reazione dal mondo. La Will farebbe echo alla AI dei comandi che il corpo dell'omino invia al mondo, cosi' la AI potrebbe imparare da cio' che fa il giocatore. Altrimenti, se volessimo implementare la Will che addormenta la Ai quando l'utente giocatore controlla l'omino ("non e' colpa mia! Quando mi possiedono mi addormento!") potremmo farlo tranquillamente, semplicemente la Will smette di mandare segnali alla AI e gli dice "hai sonno". > Poi visto che non ha senso avere pi=F9 di una will nativa e una del > giocatore non sembra una buona idea avere uno stack delle Will. Dobbiamo > prevederne un massimo di due? A sto punto potrebbero essercene N di giocatori... Magari anche finti giocatori logger... Figata che mi e' venuta ora in mente: lo spirito dell'eroe. Scegliamo degli omini che vengono "eletti dagli dei". Questi omini avranno _due_ AI/utenti. Una attiva, una passiva. Quando l'omino muore, l'AI del suo primogenito si freeza, quindi l'AI passiva fa un merge con l'AI attiva del primogenito, in questo modo tutte le esperienze ereditate dal padre vengono trasmesse al figlio. Quindi il figlio torna a giocare, con la ai attiva e una nuova ai (logger) passiva. Se l'omino muore, e non ha figli, la sua esperienza va ai fratelli (o sorelle). Magari i giocatori umani dovrebbero controllare non gli eroi, ma i loro spiriti familiari, che li aiutano in caso di pericolo e li indirizzano. Il gioco termina quando la stirpe che porti avanti crepa :) Questo pero' sicuramente richiederebbe un server particolare che tenga traccia degli omini/eroi, degli omini/familiar. > Finalmente ho finito! [incollino] Incollo qui una domanda che avevi posto poco piu' sopra. > E' bellissimo che con questa meccanica potremmo avere (volendo > prevederlo) ad es stregoni avatars che prendono il controllo di altri > avatars come se fossero giocatori... (yuk yuk!) Io penso che questo sarebbe da fare attraverso il gioco. In pratica, con l'incantesimo "possessione demoniaca", il server manda gli stimoli dell'omino posseduto alla will dell'omino stregone [1]. Il motivo e' presto detto: e' il server che decide a quale omino fa capo ad un anima. Se volessimo, ad un anima potrebbero fare capo n omini, oppure l'anima potrebbe controllare uno spettro che entra ed esce dagli omini possedendoli. Per sicurezza e priorita' (e compatibilita' col passato), e' il server che decide nei suoi meccanismi interni a quale _anima_ associare una _creatura_ vivente... Altrimenti, conoscendo le password appropriate, uno potrebbe dire "Ciao, sono il giocatore A, e controllo gli omini B, C, D, E, F, G" (dove questi sono i + forti e non sono stati fatti da lui). Immagino cmq che questo fosse lapalisiano. Questo cosa cambierebbe in Avatars nella sua concezione di oggi? ("Posso controllare qualsiasi omino che io decida di prendermi") Semplice :) Il server tiene una lista delle anime-avatars che sono attaccate. Il giocatore chiede quali coppie omino/anima-avatars sono disponibili e quindi ne sceglie una di loro. Il giocatore quindi si collega alla anima-avatars (che fa da server secondario) e sceltala collega il proprio client come utente alla will dell'anima dell'omino scelto. Solo in questo modo (in my opinion) potremo avere il gioco di Avatars come lo avevamo pensato :) *** RICAPITOLANDO *** L'architettura che sta saltando fuori e' questa. Server: Un server stile Ultima Online che riceve "comandi" dalle "anime", e passa gli "stimoli" degli "omini" alle anime. Omino: (sin: Creatura) Abitante (con "anima" o meno) che razzola nel mondo. Anima: Complesso che invia "comandi" al "server" e ne riceve degli "stimoli" in cambio. [2] Nella nostra proposta contiene una "will" che ha legati a se diversi "utenti" Will: Lo strato dell'anima che fa da ponte fra gli "utenti" ed il "server", replicando gli "stimoli" ricevuti, decidendo una priorita' fra gli "utenti" per dar loro il comando. Utente: Intelligenza artificiale o giocatore o qualsiasi altra cosa (es: un programmino di logging o un "borg") legato alla "will") Borg: Programmino AI "a script", tradizionalmente che cerca di spacciarsi per giocatore umano. [3] [1] Magari limitandolo ad un sottinsieme di stimoli oppure mischiando gli stimoli visivi/uditivi/tattili di uno con gli stimoli tattili dell'altro, cosi' se palano lo stregone, lo sente e gli fa pure male :) In un gioco di ruolo (Rolemaster) c'e' un incantesimo di possessione che ha questa limitazione: scambia l'anima di un personaggio con quella dell'altro. Non solo, se uno dei due muore, muoiono tutti e due. Durante un combattimento avevamo abbattuto uno stregone, che era rimasto con le gambe schiacciate da delle macerie. Il bastardo prende il controllo della mia paladina e cerca di ammazzare il personaggio di un altro giocatore... per fortuna che lo bloccano, e meno male che non hanno ammazzato il suo corpo mentre mi possedeva dall'altra parte, perche' saremmo crepati entrambi -__- [2] O viceversa. Anzi, in teoria sarebbe corretto che una Anima riceve prima gli stimoli, e che poi puo' mandare comandi per muovere la creatura. [3] La cosa e' contorta, lo so, ma su Internet ci sono diversi giochi, ad esempio Netrek oppure il gioco roguelike Angband, o anche Ultima Online che hanno gia' client automatizzati piu' o meno intelligenti. Con questa entry volevo solo indicare che se i giocatori volevano rimpiazzare la fighissima, ma probabilmente esosa, Ai della Mamma con una serie di script stupidi ma veloci, avrebbero potuto farlo tranquillamente... tecnicamente parlando. Poi sarebbe bello trovare il modo per riconoscere una Ai da un giocatore umano :) Ciao. --=20 Davide Silvio Inglima-Modica "Mana is rapidly disappearing from the world, Even the" "mana tree has begun to wither" - Seiken Densetsu 3 http://web.tiscali.it/inglima/davide/ mailto:had...@li... |