Che ruolo ha lo sviluppo con gli eventi nei giochi?


9

La maggior parte dello sviluppo di applicazioni si basa sullo sviluppo con eventi, ma considerando lo stile di sviluppo dei giochi e la (spesso) necessità di prestazioni / throughput elevate, quale ruolo ha lo sviluppo usando gli eventi e quali sono i compromessi? La sincronizzazione / blocco spesso coinvolti ha un impatto maggiore?

Ad esempio: - In che modo la rete [layer] notifica il loop di gioco dei dati ricevuti? - In che modo il sistema fisico notifica le collisioni

Chiedo, perché ricordo un momento in cui lo sviluppo del gioco usando gli eventi era un no-no rigoroso. È cambiato?

Risposte:


5

Il sistema di eventi è potente e può essere reso molto veloce.

Consentono inoltre di modulare sezioni di codice in una struttura di accoppiamento molto libera. Ti consentono di eseguire operazioni batch e di eseguire attività di thread. Funziona bene con funzioni multi-core e asincrone.

Fisica: richiami di collisioni, attivazione o riposo degli oggetti si traducono bene in eventi. Networking - Il più possibile dovrebbe essere un evento (chat vocale ecc. L'eccezione) Logica di gioco - Naturalmente si presta a un modello di evento Menu e interfaccia utente - Funziona alla grande in un sistema basato su eventi

Anche molte console moderne e librerie di middleware utilizzano eventi.

Il rendering e il polling dei dispositivi di input possono essere un po 'confusi per adattarsi. Soprattutto se si utilizzano i controlli di movimento, poiché gli eventi possono introdurre una latenza evidente ed essere contro-intuitivo nel formato di polling.


4

Direi che è ancora raccomandato l'uso dello stile del ciclo principale: è veloce, ti dà il controllo totale sull'ordine delle azioni (questo è importante in un gioco) ed è più difficile fare errori nel codificarlo. Tuttavia, se la tecnologia che stai utilizzando ti consente di utilizzare facilmente gli eventi, può essere davvero utile per molte cose. Ad esempio, li uso per avvisare quando e dove muoiono i nemici, quando vengono premuti i tasti della tastiera ...

In conclusione: usa il loop di gioco per controllare la logica principale del gioco, ma tieni presente che gli eventi possono essere utili in altre situazioni.


Non sono d'accordo sul fatto che sia raccomandato uno stile di loop principale. I giochi in stile loop principale perdono in un gioco ben controllato e controllato in diversi settori: 1) su un sistema multi-tasking, consumano una quantità inutilmente elevata di processore per un set fisso di funzionalità, 2) su dispositivi portatili, anche su singoli -tasking sistemi l'uso del processore extra influisce negativamente sulla durata della batteria, 3) più semplice è il gioco, maggiori sono questi problemi rispetto a un gioco basato sugli eventi.
Sam Harwell,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.