Sto progettando un gioco di strategia di combattimento in flotta spaziale 3D-6DOF basato su turni che si basa fortemente sulla personalizzazione della nave. Lasciami spiegare un po 'il gioco, dal momento che devi sapere un po' su di esso per porre la domanda.
Quello a cui mi rivolgo è la capacità di creare la tua flotta di navi con forme personalizzate e moduli collegati (eliche, travi del trattore ...) che darebbero vantaggi e svantaggi a ciascuna nave, in modo da avere molte diverse distribuzioni di flotte. Ad esempio, una nave lunga con due eliche a lato permetterebbe alla nave di girare facilmente attorno a quell'aereo, le navi più grandi si muoverebbero lentamente a meno che non si posizionino molte eliche sul retro (quindi spendendo più punti di "costruzione" ed energia durante lo spostamento, e lo farà andare solo velocemente verso quella direzione.) Ho in programma di bilanciare tutto il gioco attorno a questa funzione.
Il gioco ruoterebbe attorno a due fasi: ordini e fase di combattimento. Durante la fase degli ordini, comandi le diverse navi. Quando tutti i giocatori terminano la fase degli ordini, inizia la fase di combattimento e gli ordini della nave vengono risolti in tempo reale per qualche tempo, quindi l'azione si interrompe e c'è una nuova fase di ordini.
Il problema si presenta quando penso all'input del giocatore. Per muovere una nave, devi attivare o disattivare diverse eliche se vuoi guidare, avanzare, frenare, ruotare in posizione ... Queste eliche non devono lavorare alla loro massima potenza, quindi puoi ottenere più movimento combinazioni con meno eliche.
Penso che questo approccio sia un po 'noioso. Il giocatore non vuole giocherellare con motori o altro, vuoi solo MUOVERSI e UCCIDERE. Il modo in cui intendo che il giocatore impartisca ordini a queste navi è tramite una destinazione e una rotazione , e quindi l'IA calcolerebbe la potenza corretta dell'elica per raggiungere quel movimento e rotazione. La propulsione non deve essere la stessa per tutto il calcolo del turno (dopo che gli ordini sono stati dati), quindi sarebbe bello se le navi reagissero mentre si muovono, regolando la potenza delle eliche per le loro esigenze dinamicamente, ma potrebbe essere troppo difficile da implementare e non è davvero necessario per far funzionare il gioco.
In entrambi i casi, come potrebbe quell'intelligenza artificiale decidere quali eliche attivare per la traiettoria migliore (o almeno non peggiore) da raggiungere?
Ho pensato ad alcuni approcci:
- Apprendimento dell'intelligenza artificiale: i tipi di nave imparerebbero a conoscere i loro movimenti per tentativi ed errori, adeguando il loro comportamento con più usi e infine diventando "intelligenti". Non voglio essere così coinvolto nella codifica AI e penso che possa essere frustrante per il giocatore (anche se puoi lasciarlo imparare senza giocare).
- Movimento temporale predeterminato: al momento della creazione della nave, TUTTI i movimenti possibili vengono calcolati per ciascuna configurazione dell'elica e potenza per un dato delta-tempo. Memoria intensa, brutta, cattiva.
- Traiettorie pre-calcolate: le stesse di cui sopra ma non per ogni delta-tempo ma per l'intera traiettoria, che verrebbe quindi adattata il più possibile. Richiede una configurazione fissa dell'elica per l'intera fase di combattimento ed è ancora ad alta intensità di memoria, brutta e cattiva.
- Forzatura bruta continua: l'IA controlla continuamente TUTTE le possibili configurazioni dell'elica durante l'intera fase di combattimento, calcola alcuni passi temporali e decide quale sia la migliore in base a quello. Contro: ciò che è buono ora potrebbe non essere così buono in seguito, ed è troppo intenso per la CPU, brutto e anche cattivo.
- Forzatura singola: come sopra, ma solo forzatura bruta all'inizio della simulazione, quindi ha bisogno di una configurazione dell'elica costante durante l'intera fase di combattimento.
- Controllo dell'angolo continuo: questo non è un metodo di movimento completo, ma forse un modo per scartare configurazioni di eliche "stupide". Dato il vettore normale dell'elica corrente e quello finale, è possibile approssimare la potenza necessaria per l'elica in base all'angolo. Devi farlo continuamente per tutta la fase di combattimento. L'ho capito di recente, quindi non ci ho pensato troppo. A priori, ha anche lo svantaggio di "ciò che è buono ora potrebbe non esserlo più tardi" e non si preoccupa delle altre eliche che potrebbero agire insieme per creare una migliore configurazione di propulsione.
Sono davvero bloccato qui. Qualche idea?