Il leggermente dipende da come è strutturato il gioco.
Nel primo caso hai sicuramente un tempo di elaborazione più ridotto ed avendo un range fisso ipotizzo (perchè non so nei vari giochi come la cosa sia realmente gestita) che ci sia anche un numero minore di controlli (ad es. se dovessi programmarlo io ed alla creazione di una casa creo tot pippotti che vivono metti 5 minuti il job della morte lo farei girare dopo 5 minuti con rischedulazione uguale ad ogni nuova costruzione).
Nel secondo caso dipende come funziona l'algoritmo che calcola X, non è detto che sia banale e va chiamato per ogni npc generato, può anche essere velocissimo ma se lo moltiplichi per centinaia di migliaia di volte comincia ad avere un impatto.
Di conseguenza hai anche il job della morte che sei costretto a far girare ogni secondo perchè non hai più modo di prevedere quando scatta il t1...quindi ogni secondo deve esaminare qualsivoglia struttura sia usata ed eliminare i record che hanno raggiunto t1.
Devi guardare nel complesso, Cities può fare milioni di npc.
Cmq il discorso non è se questo flusso è "tanto" o "poco" impattante ma semplicemente che è un aspetto che richiede anche lui i suoi calcoli, che non sono banalissimi e si aggiungono a tutti gli altri
Btw questo ragionamento (non è tanto esoso) è uno dei motivi per cui non basta più un 486 per andare sulla luna
Soprattutto i simulatori hanno così tante logiche che è figo (e spesso utile ovviamente) aggiungere che butti su anche senza ottimizzare troppo, a volte sia perchè non è possibile mentre altre perchè al momento non sembra un problema ma lo diventa poi.
In tal senso i blog della paradox sono spesso illuminanti (quelli di stellaris parlano spesso dei cicli di check per la gestione dell'IA e dei compromessi per le performance).
- - - Aggiornato - - -
Esatto, era quello a cui mi riferivo con questa frase:
Mr Pink, Guerriero da tastiera !!! Profilo su steam.
Lista chiavi Steam
Problemi con l'inutile svapo o altri? La soluzione è qui.
Hm, no. Il check lo devi fare comunque. Se tutti muoiono a 80 anni devi comunque fare il check per verificare quali sono tutti quelli di 80 anni e farli morire, avere durate di vita diverse non cambia quanti controlli fai. Anzi, è più gravoso farli morire tutti insieme (devi attivare tutto ciò che riguarda la morte per n-mila oggetti tutti insieme).
Voto anche io per pigrizia.
Qualunque cosa è meglio di "muoiono tutti insieme" dai
Non ho scritto che non lo devi fare, ho scritto che sapendo quando cadono le morti puoi schedulare i check.
Chiaro, di nuovo i miei post erano solo per far capire che una cosa così "semplice" non è poi così "semplice"...non che non si debba fare
Mr Pink, Guerriero da tastiera !!! Profilo su steam.
Lista chiavi Steam
Problemi con l'inutile svapo o altri? La soluzione è qui.
Il punto è che comunque le morti scadono dopo X anni dalla nascita, quindi di fatto non sai quando cadono le morti. Cioè, non hai momenti prefissati in cui cadono, dipende sempra da quando il cittadino è nato (il che se ho capito bene leggendo il thread dipende da quando crei l'area residenziale), e quello non è fisso. A ogni ciclo - o comunque in ogni momento in cui decidi che si fa il check delle morti - devi controllare chi ha X anni, non lo sai prima perché dipende da quando sono nati. A quel punto fare X variabile non cambia nulla.
Mmm tu sai quando nascono, hai l'evento e quindi da quello puoi schedulare il job di morte
Faccio un esempio per tutti: prendiamo il tempo in secondi e che la vita di un npc sia 5 secondi.
Al tempo 2 nascono un tot di npc quindi al tempo 7 girerà il job per eliminarli.
Al tempo 5 nascono altri npc quindi al tempo 10 il job girerà di nuovo.
Risultato: nei primi 10 secondi il job è girato 2 volte.
Nel caso di morte variabile il job dovrebbe girare ogni secondo quindi 10.
Vabbè...il primo potresti farlo partire dalla prima nascita quindi risparmi 2 che è ininfluente, risultato 8.
Metti in scala e vedi la differenza
Ultima modifica di von right; 20-03-24 alle 16:25
Mr Pink, Guerriero da tastiera !!! Profilo su steam.
Lista chiavi Steam
Problemi con l'inutile svapo o altri? La soluzione è qui.
Ma come fa il job a sapere che deve girare al tempo 7? Ci sarà uno scheduler che gira continuamente e arrivato al tempo 7 troverà che c'è gente da uccidere nella coda. E si torna al controllo costante che rende ininfluente raggruppare le morti.
Anche perché il grosso del lavoro è fare ciò che è conseguenza della morte (mi immagino svuotare le abitazioni, cancellare posti di lavoro occupati, modificare il traffico e chissà quali altre cose), controllare se un intero è maggiore di X è veramente una roba trascurabile.
Non è banale già simulare la morte dei pippotti, introdurre un controllo che eviti la contemporanea morte di più pippotti, evidentemente non è semplice altrimenti l'avrebbero patchato già.
Restarting
Hanno rilasciato tante modifiche al gioco rispetto all'uscita in questi 7 anni, evidentemente hanno valutato che la soluzione era troppo impegnativa e l'hanno cannata.
Restarting
No, sono cose diverse
Chiaro che c'è sempre un job che gira ogni istante e lancia tutto ciò che va lanciato in quel momento ma quello è la base di funzionamento di...tutto
Cmq vabbè, ragà, se volete pensare che non abbiano voglia fate pure, a me non cambia nulla, vi ho solo spiegato cosa comporta quel caso (al netto che poi vai a sapere come hanno fatto realmente)
Mr Pink, Guerriero da tastiera !!! Profilo su steam.
Lista chiavi Steam
Problemi con l'inutile svapo o altri? La soluzione è qui.
No beh io non penso sia davvero pigrizia, penso che ci sia un PO che dice su cosa lavorare e quello non è mai sulla lista. Faccio però davvero enorme fatica a pensare che non sia stato fatto per questioni di carico sulla CPU, non è proprio una cosa tecnicamente ragionevole.
asd il dlc a 10 €, un quinto del costo del gioco
https://store.steampowered.com/app/2...p_reviews_hash
Io sto giochicchiando col primo, ho toccato da poco i 40k
Restarting
-
Il primo quanto costa incluso un minimo di dlc utili?
Il primo anche vanilla è un giocone
Restarting