Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso
Titan Army P2712V è un monitor da 27 pollici che unisce due anime in un unico prodotto: da un lato la qualità visiva del 4K UHD a 160 Hz, dall'altro la velocità estrema del Full HD a 320 Hz. Con pannello Fast IPS, HDR400, Adaptive-Sync, illuminazione RGB e regolazioni ergonomiche, punta a soddisfare sia i giocatori competitivi che i content creator
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 09-02-2006, 00:38   #41
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Meglio andare sulla leggibilità
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline  
Old 09-02-2006, 06:08   #42
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Vabbè...in ogni caso niente vieta di salvare anche il random seed ed usare quello per riprodurre la sequenza... Scrivere le gemme generate ci può anche stare, ma sicuramente leggerle da lì per poi riprodurre la sequenza è diversi ordini più complicato che usare il random seed
cionci è offline  
Old 09-02-2006, 07:20   #43
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da cionci
Vabbè...in ogni caso niente vieta di salvare anche il random seed ed usare quello per riprodurre la sequenza... Scrivere le gemme generate ci può anche stare, ma sicuramente leggerle da lì per poi riprodurre la sequenza è diversi ordini più complicato che usare il random seed
in genere il compito di un log, è illustrare cosa sta facendo l'applicazione(in caso di errore/eventi particolari), e il dare in pasto il log a un programma per vedere cosa fa è "complicato".

Certo nulla vieta di mettere anche il seed all'inizio(cosa che si puo aggiungere in caso si voglia fare riprodurre il log a Diamonds)
thebol è offline  
Old 09-02-2006, 09:27   #44
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Allora, se questo ci dà dei vantaggi in termini di riproducibilità, nella prima riga salveremo il seed.
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline  
Old 09-02-2006, 12:13   #45
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Potrebbe servirci per controllare se la lista delle gemme è corretta. Se vogliamo un po' di leggibilità in più basta fare cosi:
Codice:
seed 234518458724
ciao
VICIUS è offline  
Old 09-02-2006, 13:59   #46
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da thebol
in genere il compito di un log, è illustrare cosa sta facendo l'applicazione(in caso di errore/eventi particolari), e il dare in pasto il log a un programma per vedere cosa fa è "complicato".
Secondo me il log non serve a niente se non può essere riprodotto dall'interno di diamond... A leggere il log non capiremmo mai niente
cionci è offline  
Old 09-02-2006, 14:59   #47
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Basterebbe poter inserire manualmente il seed in modalita` debug... Con la lista dei comandi si riproduce...
Ufo13 è offline  
Old 10-02-2006, 10:07   #48
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cionci
Secondo me il log non serve a niente se non può essere riprodotto dall'interno di diamond... A leggere il log non capiremmo mai niente
Bingo. Il log e il record interno ci devono servire per poter riprodurre come un replay cio' che e' accaduto dall'interno del gioco. Ci servira' anche per fare regression testing: in pratica avremo tutta una batteria di test che leggono dei log e testano che qualche particolare proprieta' sia valida. Quando qualcuno ci manda un log con un bug, ad esempio, questo verra' inserito nella batteria di test, e poi ci sara' il fix.
fek è offline  
Old 10-02-2006, 12:03   #49
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da fek
Bingo. Il log e il record interno ci devono servire per poter riprodurre come un replay cio' che e' accaduto dall'interno del gioco. Ci servira' anche per fare regression testing: in pratica avremo tutta una batteria di test che leggono dei log e testano che qualche particolare proprieta' sia valida. Quando qualcuno ci manda un log con un bug, ad esempio, questo verra' inserito nella batteria di test, e poi ci sara' il fix.
Allora il gameturn e la legibilità ci servono veramente a poco. Ci serve sapere il momento esatto in cui avviene un evento quindi dobbiamo per forza di cose stampare il timestamp del timer.

ciao
VICIUS è offline  
Old 10-02-2006, 13:55   #50
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da VICIUS
Allora il gameturn e la legibilità ci servono veramente a poco. Ci serve sapere il momento esatto in cui avviene un evento quindi dobbiamo per forza di cose stampare il timestamp del timer.

ciao
Dove ci serve sapere il momento esatto di preciso? Si puo' modificare il codice di modo che non serva piu'? Oppure spostare il capture degli eventi a valle rispetto a quel codice?
fek è offline  
Old 10-02-2006, 17:29   #51
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da fek
Dove ci serve sapere il momento esatto di preciso? Si puo' modificare il codice di modo che non serva piu'? Oppure spostare il capture degli eventi a valle rispetto a quel codice?
Se vogliamo riprodurre esattamente l'input del utente mi pare sia l'unico modo.

IL gameturn non lo trovo una semplificazione ma una informazione superflua visto che abbiamo il timer. Con soli 20 millisecondi tra un gameturn e l'altro l'unico modo per far avvenire due eventi nello stesso è riuscire a premere più di 50 tasti nello stesso istante che è semplicemente inumano. In sostanza il file sarebbe composto da:
Codice:
gameturn
evento

gameturn
evento
Inoltre venendo incrementato ogni 20 millisecondi il numero del gameturn aumenta molto velocemente e perde ogni significato per un osservatore umano.

Anche le stringhe leggibili sono superflue. Lo sviluppatore non andrà mai a leggere direttamente il file di log per confermare la presenza del bug o fare del debugging. Come hai detto tu stesso sarà dato in pasto ai test o ad una versione per il debug del gioco quindi preferisco avere una versione più scarna ma facile da leggere.

In pratica qualcosa di simile a questo:
Codice:
4532184645513

00021232 left
00021245 up
00021325 mirror
00032099 clockwise
Se fosse per me scriverei direttamente tutto in binario e userei i codici dei tasti al posto delle stringhe ma forse è un po troppo.

ciao
VICIUS è offline  
Old 10-02-2006, 19:31   #52
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
No...VICIUS...a questo punto sono contrario al timestamp... Seguite il mio discorso:

Teniamo un contatore che conta le volte che viene chiamata InputReactor.reactToInput (quindi viene incrementato una volta ogni 60ms circa)...

Ora sappiamo che verrà fatta la gestione degli eventi (e qui è di fatto come se gli eventi avvenissiro tutti al momento della chiamata di reactToInput)...quindi memorizzando il contatore e gli eventi (anche le ripetizioni) riusciremo a riprodurre la sequenza esatta degli eventi...

Manca solo una cosa...la GridController.update e la GridController.reactToInput non sono sincronizzate fra loro o meglio lo sono ma non strettamente... Questo potrebbe provocare sfasamenti nell'applicazione della gravità fra la sequenza riprodotta e quella originale...

Basta sincronizzare strettamente GridController.update e GridController.reactToInput (ad esempio eseguendo la seconda ogni 6 volte che viene eseguita la prima)... Ecco ora abbiamo la garanzia che sia la caduta verticale che i movimenti saranno sincronizzati esattamente e la sequenza potrà essere riprodotta senza problemi...

Ultima modifica di cionci : 10-02-2006 alle 19:42.
cionci è offline  
Old 10-02-2006, 19:40   #53
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
e spostare il gameturn nell processInput()?
è qua che viene controller.reactToInput(timer)(viene fatto un update sulla keyboard è ne viene preso lo stato e in base a questo stato vengono sparati gli handler dei vari tasti); è qua che avviene effettivamente l'azione utente, percui il timestamp (imho) non serve. Serve sapere l'ennesimo ciclo di lettura degli input in cui abbiamo trovato il tasto z premuto.

come ottimizzazione del traffico, si potrebbe stabilire la regola che logga il gameturn di quando il tasto viene premuto e il gameturn in cui viene rilasciato.(anche se sarebbe meglio l'evento...)

per cui la struttura sarebbe

[code<gameturn>
<evento1 stato='i'>
<evento2 stato='e'>
</gameturn>
[/code]

ho usatlo l'xml per chiarezza
thebol è offline  
Old 10-02-2006, 19:42   #54
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
chiamate contatore che conta le volte che viene chiamata InputReactor.reactToInput come gameturn, e io e cionci diciamo piu o meno la stessa cosa

Ultima modifica di thebol : 10-02-2006 alle 19:47.
thebol è offline  
Old 10-02-2006, 19:50   #55
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
thebol: sì, ho fatto una modifica...boh...

Quote:
Originariamente inviato da thebol
viene fatto un update sulla keyboard è ne viene preso lo stato e in base a questo stato vengono sparati gli handler dei vari tasti
L'update dei tasti viene fatto in Input.update()...
Direi comunque che quello che dobbiamo memorizzare siano gli eventi eseguiti (AbstractKeyEventHandler.execute)...
cionci è offline  
Old 10-02-2006, 19:54   #56
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da cionci
thebol: sì, ho fatto una modifica...boh...


L'update dei tasti viene fatto in Input.update()...
Direi comunque che quello che dobbiamo memorizzare siano gli eventi eseguiti (AbstractKeyEventHandler.execute)...
Codice:
    public void update()
    {
        keyboard.update();
    }
l'update di Input

ho solo saltato un passaggio

in teoria si potrebbe modificare la reactToInput di gridController per ritornare un lista degli eventi processati a quel giro
thebol è offline  
Old 10-02-2006, 20:11   #57
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Come dicevo, basterebbe andare a scrivere gli eventi al momento dell'esecuzione, sarebbe la cosa più semplice...
cionci è offline  
Old 11-02-2006, 10:45   #58
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ho spostato qualche post nella discussione sul netcode...
cionci è offline  
Old 11-02-2006, 11:22   #59
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da cionci
Manca solo una cosa...la GridController.update e la GridController.reactToInput non sono sincronizzate fra loro o meglio lo sono ma non strettamente... Questo potrebbe provocare sfasamenti nell'applicazione della gravità fra la sequenza riprodotta e quella originale...
Era proprio di questi sfasamenti e perdite di sincronia. Scrivere direttamente i timestamp mi sembrava l'unica maniera per ora di realizzare qualcosa di affidabile, pero se mi dici che con qualche modifica possiamo ottenere lo stesso risultato allora sono perfettamente favorevole alla soluzione del gameturn.

ciao
VICIUS è offline  
Old 11-02-2006, 11:42   #60
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Sicuramente... Come dicevo basta eseguire una reactToInput ogni TOT (pari al rapporto fra InputRate e UpdateRate) update... Di fatto la reactToInput avverrà sempre prima (o dopo) dello stesso (se si contasse) update che ha generato l'input...

Faccio un esempio:
Codice:
int numeroDiUpdateFraDueReactToInput = 6;

if(timeStampUltimoUpdate + UpdateRate <= timeStamp)
{
   timeStampUltimoUpdate += UpdateRate;
   if(timeStampUltimoReactToInput + UpdateRate * 6 <= timeStamp)   
   {
      timeStampUltimoReactToInput += UpdateRate * 6;
      controller.reactToInput();
   }
   controller.update();
}
In questo modo la sequenza che ha generato il log verrà sempre riprodotta...

Ad esempio questa è la sequenza delle chiamate:
Update1
Update2
Update3
Update4
Update5
ReactToInput1 -> eseguo MOVE_LEFT e scrivo nel log #1 MOVE_LEFT
Update6
Update7
Update8
Update9
Update10
Update11
ReactToInput2 -> eseguo ROTATE_CCW e scrivo nel log #2 ROTATE_CCW
Update12


Nella riproduezione:
Update1
Update2
Update3
Update4
Update5
ReactToInput1 -> nel turno #1 devo eseguire MOVE_LEFT
Update6
Update7
Update8
Update9
Update10
Update11
ReactToInput2 -> nel turno #2 devo eseguire ROTATE_CCW
Update12
cionci è offline  
 Discussione Chiusa


Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla OPPO Watch X2 Mini, lo smartwatch compatto a cui...
Intel rivede la sua strategia open sourc...
Intel: ciclo di rilascio annuale per gli...
Intel XeSS 3 porta la Multi-Frame Genera...
PlayStation 6 e nuove Radeon, ecco le te...
New York porta in tribunale TikTok, Meta...
L'intelligenza artificiale canceller&agr...
Battlefield 6: analisi grafica e DLSS
Gauss Fusion presenta GIGA: l'Europa acc...
Lo sapete che anche le auto elettriche d...
Oltre un miliardo di dati sensibili sott...
iPhone 17, segni sui modelli in esposizi...
Sviluppatore Microsoft confessa: la cele...
Sfrutta l'IA per migliorare a lavoro, l'...
iPhone 18 Fold: un leak indica i materia...
Instagram testa nuove opzioni per contro...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:19.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v