Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 08-02-2006, 10:08   #21
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
Resta comunque il fatto che vadano spediti i timestamp...di fatto è necessario un aggiustamento del timer della finestra secondaria pari al ping fra i due utenti...
cionci è offline  
Old 08-02-2006, 10:40   #22
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
ma se dal gioco vengono considerati solo i comandi letti nel gameLoop, non basta loggare solo quelli?(od ho capito male io come funziona?)


ps. aggiustare il timer della seconda finestra a seconda del ping, puo essere fatto come ottimizzazione, ma il ping puo essere variabile, quindi non si puo usare come regola aurea
thebol è offline  
Old 08-02-2006, 10:47   #23
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
ma se dal gioco vengono considerati solo i comandi letti nel gameLoop, non basta loggare solo quelli?(od ho capito male io come funziona?)
Sicuramente può bastare, ma gli eventi vengono registrati con un proprio timer..."appiattire" tutti gli eventi al gameloop (che non avviene ogni 20 ms, ma gira di continuo, l'unica pausa che c'è è di 1 ms), e di conseguenza ad un timer costante per tutti, potrebbe significare la perdita o l'inserimento di una ripetizione che altrimenti non ci dovrebbe essere...

Nella storia è riportato erroneamente che ogni loop di Game finisce/inizia ogni 20 ms... Il loop gira continuamente...c'è solo una pausa di 1ms alla fine di ogni loop...
Quote:
Originariamente inviato da thebol
ps. aggiustare il timer della seconda finestra a seconda del ping, puo essere fatto come ottimizzazione, ma il ping puo essere variabile, quindi non si puo usare come regola aurea
Certamente, ma può essere una stima anche fatta molto spesso...
cionci è offline  
Old 08-02-2006, 10:58   #24
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 in mente di fare una modifica anche all'aggiornamento dei timestamp....

Vi spiego, ora, praticamente da ogni parte, funzina così:
Codice:
if(nuovoTimeStamp > vecchioTimeStamp + X)
{
  vecchioTimeStamp = nuovoTimeStamp;
  faiAzione(); 
}
Secondo me va SEMPRE trasformato in questo modo:
Codice:
if(nuovoTimeStamp >= vecchioTimeStamp + X)
{
  vecchioTimeStamp += X;
  faiAzione(); 
}
Il primo metodo va benissimo in locale, quando i ritardi sono minimi, ma il secondo, oltre ad andare bene in locale va bene anche per la griglia secondaria...che in questo modo non si perderebbe mai una "azione"...
inoltre sarebbe compatibile con l'aumento/diminuzione dello sfasamento del timer...
cionci è offline  
Old 08-02-2006, 11:07   #25
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Cionci, penso che la storia del loop ogni 20ms dipenda da un refactoring da fare a Game.
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline  
Old 08-02-2006, 11:17   #26
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
Mi sembra strano che sia ogni 20 ms... Anzi, sarebbe dannoso, visto che l'UpdateRate viene fatto ogni 10 ms e lo stesso FrameRate ogni 20 ms... Di fatto si antrebbe ad aumentare queste due grandezze...
cionci è offline  
Old 08-02-2006, 12:46   #27
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da Jocchan
Cionci, penso che la storia del loop ogni 20ms dipenda da un refactoring da fare a Game.
No il refactoring di Game serve solo a togliere la logica del gioco da Game e spostarla in GameLoop.

Quanto dice cionci mi ha fatto riflettere.
GameTurn ci serve? Per ora non è altro che un'astrazione del timestamp da scrivere su un file. Ma il timestamp lo dobbiamo scrivere quindi non vedo la necessita di averlo.

ciao
VICIUS è offline  
Old 08-02-2006, 13:59   #28
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
ehm... non ho capito bene...
dovremmo inviare TUTTI gli eventi generati da un utente al diamonds dell'altro utente???
ma supponendo anke 3 ms come intervallo per leggere un evento avremo la bellezza di circa 300 eventi al secondo...
mi sembrano un pò tantini onestamente... già trasmettendo 10 byte ad evento arriveremmo a 3 KB/s ke secondo me è il limite massimo...
inoltre per le considerazioni effettuate nell'altro thread secondo me non possiamo basarci sulla ricostruzione della storia del gioco basandoci sugli eventi perchè ci troveremmo a trattare con problematiche di ritrasmissione in caso di errore che non ci possiamo permettere di utilizzare per problemi di latenza..
imho la cosa migliore è usare (tanto x fare un esempio "alla femminina") la stessa tecnica utilizzata nei satelliti artificiali.... aumentare la ridondanza per prevenire gli errori piuttosto che effettuare ritrasmissioni... in questo modo avremo un pò di ridondanza in + ma in caso di errori potremo sempre e comunque gestire l'aggiornamento del gioco senza rimanere blokkati anke per 300 ms e ritrovarci comunque un evento fuori sequenza ke non potremo piu' gestire avendo già processato gli eventi precedenti e perdendo quindi la consistenza tra le due piattaforme del gioco....
spero di essermi spiegato anke se forse sono stato un pò criptico...
__________________
^TiGeRShArK^ è offline  
Old 08-02-2006, 14:37   #29
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
Qui si parla solamente di scrivere gli eventi su un file...mi sembra che abbiate già parlato di questa cosa su nsn... Credo comnuque che la trasmissione sulla rete e questa storia siano relazionati strettamente...

Quello che ora c'è da capire è: questo storia è relativa alla comunicazione sulla rete e semplicente riguarda solo quel famoso "log dei tasti"...
cionci è offline  
Old 08-02-2006, 14:50   #30
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Emulando il nostro coach, fek, mi viene da dire YANGI.
La storia riguarda un log degli eventi locale.
La rete....ci si pensa quandò sarà il momento. Non è compresa nella storia. Stiamo rischiando una confusione infinita!!!

L'obbiettivo è ottenere un file con il log degli eventi dell'utente locale per poi avere la possibilità di debuggare...per adesso.
Il punto è....come lo facciamo sto file. Non ci dovrebbe interessare la rete.
Il gameturn è una astrazione utile o no?? Il timestamp è obbligatorio da spedire??
Come fa il log a tenere conto delgi avvenimenti ripetuti com e doppia pressione o mantenimento della pressione per più tempo??

Queste sopno le cose alle quali dobbiamo rispondere...il resto YANGI

Ora dico la mia.
Il gameTurn semplifica il file rispetto un timestamp: quindi ci vuole
__________________
Software engineer
Bonfo's Blog
Bonfo è offline  
Old 08-02-2006, 15:03   #31
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
IMHO il GameTurn toglie informazioni...e potrebbe portare ad una intepretazione errata del log...
Poi ancora...il GameTurn non è definito come tale... Cosa si intende per GameTurn ?

1) il tempo fra un update dello stato delle gemme in grid e il successivo
2) il tempo fra un rendering e il successivo
3) il tempo fra un'elaborazione degli ingressi e la successiva
4) il tempo fra l'inizio e la fine di un gameloop (ricordo che in questo caso non ci sono temporizzazioni a regolare tale intervallo)

In ogni caso potremmo fare direttamente un log degli eventi nel momento in cui vengono gestiti (quindi da dentro l'event handler)... In tal caso sì, potremmo riprodurre esattamente le mosse (e le ripetizioni) ed in questo caso proprio in base al gameturn che però definirei come il punto 3 sopra...
cionci è offline  
Old 08-02-2006, 16:12   #32
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Ne ho discusso con Fek, ed abbiamo definito meglio a cosa vogliamo arrivare con questa storia: un sistema di logging degli eventi facilmente intellegibile.
I gameturn servono solo per semplificarci la vita. Avranno applicazioni anche più avanti, ma (YAGNI) per ora li implementiamo solo per il logging.
Cambieremo però alcuni dettagli, ed ora insieme a Vicius vedremo di riorganizzare anche i task, in modo da rendere il tutto ad un livello di astrazione ancora superiore: invece dei codici dei tasti e del loro stato, loggheremo direttamente delle stringhe che descrivano l'azione che è effettivamente avvenuta su schermo, saltando ovviamente i gameturn in cui non è successo nulla, ed ordinando gli eventi di ogni gameturn in base ai timestamp (non loggati).
La forma finale sarà qualcosa del tipo:

Codice:
01
ruby-topaz pair created

02
move left

05
move right
rotate clockwise

11
move right
mirroring

17
pair dropped
diamond-emerald pair created

...
I gameturn li usiamo insomma per separare questi "blocchi" di eventi, e per avere un'idea del tempo trascorso tra l'uno e l'altro (20ms significa 1/50 di secondo).
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline  
Old 08-02-2006, 16:29   #33
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da Jocchan
Ne ho discusso con Fek, ed abbiamo definito meglio a cosa vogliamo arrivare con questa storia: un sistema di logging degli eventi facilmente intellegibile.
ah ecco... perfetto..
essendomi perso la discussione su nsn pensavo fosse collegato alla trasmissione in rete.... non avevo capito ke era per debug
__________________
^TiGeRShArK^ è offline  
Old 08-02-2006, 17:41   #34
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 Jocchan
I gameturn li usiamo insomma per separare questi "blocchi" di eventi, e per avere un'idea del tempo trascorso tra l'uno e l'altro (20ms significa 1/50 di secondo).
Ok...allora ci si può sincronizzare direttamente con il lancio degli eventi (un turno ogni InputRate ms).... In questo modo, come ho scritto sopra, ogni volta che viene chiamata GridController.reactToInput vengono loggati tutti gli eventi che vengono svolti i quel turno...di fatto è molto più semplice e lineare...
cionci è offline  
Old 08-02-2006, 18:51   #35
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
Perchè non si salva il random seed invece di scrivere i nomi delle gemme generate ?
cionci è offline  
Old 08-02-2006, 20:00   #36
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Quote:
Originariamente inviato da cionci
Perchè non si salva il random seed invece di scrivere i nomi delle gemme generate ?
eh ma poi come ricrei la sequenza?
Ufo13 è offline  
Old 08-02-2006, 20:18   #37
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
Se salvi il random seed e reinizializzi il random generator con lo stesso seed, la sequenza è automaticamente identica alla precedente...
Dopo il log sarà così:

423422543 <- random seed

01
pair created

02
move left

05
move right
rotate clockwise

11
move right
mirroring

17
pair dropped
pair created
cionci è offline  
Old 08-02-2006, 20:32   #38
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da cionci
Se salvi il random seed e reinizializzi il random generator con lo stesso seed, la sequenza è automaticamente identica alla precedente...
Dopo il log sarà così:

423422543 <- random seed

01
pair created

02
move left

05
move right
rotate clockwise

11
move right
mirroring

17
pair dropped
pair created
dipende se si vuol dare leggibilità al log oppure no(secondo me sarebbe opportuno fosse leggibile)
thebol è offline  
Old 08-02-2006, 20:35   #39
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
Ma a cosa servirebbe farlo leggibile ?!?!? Secondo me dovrebbe solamente essere riprodubile...la leggibilità credo che sia secondaria...
cionci è offline  
Old 09-02-2006, 00:27   #40
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Mi sembra che l'ultima proposta fattaci sia mooolto più orientata alla leggibilità che alla riproducibilità...
...anche se io sono d'accordo con te, cionci.
__________________
Software engineer
Bonfo's Blog
Bonfo è offline  
 Discussione Chiusa


Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
Scoperto grande ''filamento cosmico'' do...
Il razzo spaziale cinese Landspace Zhuqu...
Micron uccide Crucial e dice addio agli ...
Il cosmonauta Oleg Artemyev non sar&agra...
Samsung conferma il nuovo Exynos 2600: p...
Una tecnologia spaziale verrà uti...
Anche a Bergamo controlli sulle e-bike: ...
Mario Kart World, con l'ultimo aggiornam...
Oracle apre una seconda Region per il cl...
Euro NCAP 2026, cambiano completamente i...
In Russia centinaia di Porsche diventano...
Gli operatori mobile italiani offrono se...
realme GT 8 Pro in promo lancio con 100€...
Autostrade, dal 2026 arrivano i rimborsi...
Carenza di memoria flash NAND e prezzi a...
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: 04:46.


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