Ciò che ha portato via molto tempo è stato un lavoro abbastanza pesantuccio di ristrutturazione del codice.
Molti problemi erano scaturiti dal fatto che non stavo "ragionando ad oggetti". I metodi che gestivano l'IA del nemico erano... "metodi volanti", senza capo né coda. Non appartenevano ad alcuna classe, a nessun oggetto che fosse il nemico. I nemici, quando dovevano muoversi o fare qualsiasi altra cosa, richiamavano metodi di un altro oggetto che li gestiva. In sintesi? Si davano il turno, perché i metodi, facenti parte di un oggetto esterno, erano condivisi da TUTTI gli altri oggetti "nemico".
E' come se ciascun nemico avesse dovuto rendere conto ad uno sportello per poter registrare l'azione, che so, di "ronda". C'erano tutti questi nemici in coda, bloccati ad uno sportello che attendevano che il prossimo in fila finisse prima di passare davanti. Questo perché solo ed unicamente quello sportello gestiva le direttive. Quindi "sì, siamo una squadra di ricerca che si coordina, ma finché io non ho finito il mio, tu il tuo non lo fai". Efficienza zero.
Almeno, mi dava un problema del genere.
Quindi niente, ho dovuto spostare e riadattare tutto per la classe che gestiva il nemico, così che ogni oggetto "nemico" avesse le proprie funzioni, i propri campi, ecc.
Ora non c'è alcun "sportello" e i singoli nemici devono render conto solo a sè stessi (e possibile team leader se vengono assemblate squadre di ricerca).
Più logico, decisamente.
E son banalità, eh. Cose a cui avrei dovuto pensare molto prima...
Quindi, devono agire da soli durante un'operazione di ricerca senza attendere che finiscano gli altri? Possono farlo. Hanno le proprie direttive ora, i propri metodi.
Ho risolto anche un problema molto scomodo che rendeva i nemici "ciechi" mentre portavano a compimento azioni abbastanza complesse.
Parlando potabile: ora i nemici si organizzano meglio di prima.
Per quanto concerne la loro capacità di organizzarsi in squadra e andare ad investigare, è stato portato avanti il sistema ma presenta delle problematiche. Figurati se c'azzeccavo al primo colpo...
E si parla di problematiche a livello di algoritmi. Quindi ci sarà parecchia roba da rifare. *Sigh*
Ma io procedo imperterrito. L'idea è riuscire ad avere un prototipo semi-decente prima di cominciare la stagione lavorativa. Ciò taglierà di brutto il mio tempo libero e allora saran rogne se non avrò una base pronta...