1. Questo sito utilizza i cookies. Continuando a navigare tra queste pagine acconsenti implicitamente all'uso dei cookies. Scopri di più.

Progetto : Implementazione di un Layer Strategico per Elmer (Programmed Opponent)

Discussione in 'The Operational Art of War' iniziata da traiano74, 14 Febbraio 2011.

  1. traiano74

    traiano74

    Registrato:
    16 Settembre 2007
    Messaggi:
    23
    Ratings:
    +0
    Ciao a tutti,
    è molto tempo che mi frulla per la testa l'idea di aggiungere alle funzionalità oggi esistenti per Elmer uno strato software che gestisca l'aspetto strategico dei conflitti simulati da TOAW.
    Come sapete oggi Elmer può essere considerato un buon tattico (specie dopo l'ottimo lavoro svolto da Ralph Trickey) ma ancora manca completamente di una visione più ampia delle cose.
    E' vero c'è l'Event Engine per aggiungere profondità, ma nella programmazione di Elmer saremo sempre limitati dalle Track da assegnare ad ogni Formazione, che per forza di cose sono predeterminate, e stabilite a prescindere dalla situazione specifica.

    Il mio problema ad oggi è sempre stato che non era possibile interagire con Elmer in maniera automatizzata (tramite un altro software per intenderci) durante lo svolgimento di una partita.
    Con l'introduzione della nuova Patch le cose sono cambiate, infatti ora e possibile ottenere un file "in game" (tramite la pressione del tasto X) in cui sono registrate in XML gli stati attuali dell'AI per ogni Formation (Umana e PO), ma cosa ancora più importante è che variando le informazioni in esso contenute è possibile variare gli obiettivi.

    E' quindi ora possibile, sulla base dell'analisi della situazione ad un dato momento, cambiare gli ordini alle Formazioni, avendo quindi un AI in grado di reagire non solo agli stimoli tattici (come è ora) ma anche a quelli strategici (come è in parte possibile fare ora con gli eventi, ma con le limitazioni sopra descritte).

    Dopo questo enorme preambolo vi espongo il mio problema, sperando che qualcuno mi possa aiutare :
    Sono in grado di dare gli ordini all'AI nel momento in cui io voglio, ma per stabilire la natura di questi ordini ho bisogno di formalizzare all'interno di un programma (che sarà sviluppato in Abap, e successivamente ritradotto in Java) gli algoritmi di analisi della situazione strategica. Per sviluppare questi algoritmi ho bisogno di alcuni dati che al momento non riesco ad ottenere, che nello specifico sono :
    I dati di posizione relativi alle unità controllate da Elmer, i dati di posizione relative alle unità che Elmer è in grado di vedere.
    Per le mie necessità avrei bisogno di questi dati ad ogni turno.
    Qualcuno ha idea se questi dati sono in qualche modo reperibili ?

    Grazie in anticipo a chiunque possa aiutarmi.
     
  2. traiano74

    traiano74

    Registrato:
    16 Settembre 2007
    Messaggi:
    23
    Ratings:
    +0
    Ciao a tutti,
    un aggiornamento sullo stato del mio progetto :
    Effettivamente tutte, o quasi, le informazioni che cercavo sono disponibili.
    Non avevo realizzato che il SAL file è equivalente ad uno SCE file.
    Intanto vorrei precisare lo scopo iniziale del progetto :
    1) Automatizzare la gestione di Elmer, in parole povere uno scenario privo di gestione di Elmer potrà essere giocato contro la PO.
    2) Rendere Elmer sensibile ai cambiamenti della situazione di gioco, quindi renderlo più dinamico.
    Il progetto è ambizioso ed indubbiamente problematico, ma essendo il mio un hobby non ho problemi di tempo.
    Come già detto tutto il codice inizialmente sarà sviluppato in ABAP, il linguaggio di programmazione che uso quotidianamente per il mio lavoro.
    In un secondo momento avverrà la traduzione in Java, per poter distribuire a tutti voi il codice.
    In ogni caso la sintassi di ABAP è simile a quella di Java, quindi chiunque conosca Java sarà in grado di ritradurre il codice.
    Per il momento è tutto, buona giornata.
     
  3. Sker

    Sker

    Registrato:
    10 Agosto 2006
    Messaggi:
    421
    Località:
    Legnano (MI)
    Ratings:
    +0
    Progetto interessante. Qualora riuscissi nel tuo intento comunica in qualche modo con Ralph o qualcuno che si occupa dello sviluppo di TOAW perchè l'aggiunta potrebbe essere inserita nella prossima patch.

    Credi che sia davvero possibile fare di Elmer un avversario almeno di livello medio e in grado di gestire le diverse situazioni in maniera indipendente?

    Purtroppo non ti posso aiutare non essendo un esperto di linguaggi di programmazione, ma se ti dovesse servire qualcosa di specifico credo che sul forum della Matrix potrai sicuramente trovare qualcuna delle persone che lavorano su TOAW in grado di aiutarti. Normalmente Ralph e gli altri sono molto disponibili a dare informazioni su come è strutturato il motore di gioco a chi volesse cimentarsi nello sviluppo di nuove modifiche.
     
  4. Darksky

    Darksky Admin Membro dello Staff

    Registrato:
    19 Novembre 2005
    Messaggi:
    3.368
    Ratings:
    +224
    Piccolo appunto, sei sicuro che l'ABAP sia simile al Java ? Onestamente neanche l'ABAP Objects lo sembra, ed ho visto più di un neolaureato che ha mangiato pane e java durante gli studi, storcere il naso davanti ad ABAP a oggetti.
    L'idea è molto interessante ma, per quanto detto prima, se posso permettermi un consiglio, ti conviene documentare pesantamente gli sviluppi per favorirne la traduzione in Java. D'altro canto, vero è che dalla tua avrai sicuramente il fatto che difficilmente userai chiamate a standard SAP che sono solo fini a SAP stesso e quindi quasi tutto il codice sarà facilmente interpretabile semplicemente riconoscendo la sintassi ABAP.

    In bocca al lupo.
     
  5. traiano74

    traiano74

    Registrato:
    16 Settembre 2007
    Messaggi:
    23
    Ratings:
    +0
    Si, ho parlato con Ralph che è stato determinante nell'indicarmi dove reperire i dati di cui ho necessariamente bisogno.
    Anche altri utenti del forum Matrix sono stati molto d'aiuto.
    Devo dire che quella di TOAW è una buona comunità.
    Ritengo di si.
    Mi spiego meglio :
    Sicuramente è possibile rendere Elmer "consapevole" della situazione generale (cosa che oggi in larga parte non fa, agendo principalmente solo ad un livello tattico), chiaramente la difficoltà starà tutta nel progettare delle risposte "strategiche" ottimali per la situazione corrente.
    Non è facile, però l'AI odierna ha buoni strumenti teorici alle spalle con i quali affrontare il problema (penso ad esempio ai meccanismi di apprendimento che in questo caso saranno di grande utilità, in quanto spero di riuscire a rendere Elmer in grado di imparare dai propri errori partita dopo partita).
    Chiaramente esistono delle limitazioni tecniche, ad esempio io non ho il controllo totale di Elmer, ma necessariamente dovrò appoggiarmi all'AI già implementata nel gioco per gli aspetti tattici (pathfinding e posizionamento delle unità).
    Questo è sia un problema che un aspetto positivo.
    Da un lato non ho la piena libertà di sviluppo, ed in caso di errori non ci posso fare nulla, però è anche vero che questo mi toglie una parte enorme di lavoro e comunque il lavoro di Norm Koger's e Ralph è stato ottimo, quindi a mio avviso la limitazione di libertà è ampiamente compensata dai benefici.
    Vedremo cosa ne uscirà fuori.
    Appunto sensato.
    E' vero, le sintassi non sono simili, anche se la filosofia di base è la stessa (chiaramente confrontando ABAP Objects e Java), quindi ereditarietà, polimorfismo, etc etc..
    Diciamo che non ho mai trovato particolari difficoltà nel tradurre un programma ABAP in Java, però è anche vero che un pò di Java lo mastico, quindi sono facilitato, diciamo che sarebbe stato più corretto esprimersi con le tue parole :

    Comunque sicuramente produrrò abbastanza documentazione, perchè sinceramente vorrei evitare di fare tutta la traduzione in Java, però anche in questo sul forum Matrix ho trovato gente disposta a fare questo lavoro.
    Chiaramente vi terrò aggiornati sulllo stato degli sviluppi.
     

Condividi questa Pagina