Quali sono alcuni dei modelli di progettazione più comuni utilizzati durante lo sviluppo di giochi 3D? Esistono schemi di progettazione architettonica di alto livello comunemente usati? E i modelli software generali all'interno dell'architettura?Quali sono alcuni pattern di gioco 3D comuni?
risposta
- Composito per fare tutto per passaggio di aggiornamento (ad esempio rendering) (Ed effettivamente comune tra tutte le librerie UI).
- mosca per disegnare molti dello stesso tipo di elemento sullo schermo (alberi/cespugli/proiettili)
- Observer per un sacco di librerie UI (di nuovo, non gioco specifico)
- Stato per la transizione tra gioco/menù/console/pausa/etc. states
- Fabbrica astratta in alcuni tipi di giochi beat-em-up per la creazione di mob/NPC (i giochi con quantità ridicole di personaggi IA alla volta, ad esempio Left 4 Dead).
- Strategia per l'euristica di scambio in algoritmi di ricerca del percorso come A *
- modifica> Comando per giochi come MMO che hanno una barra di azione con pulsanti intercambiabili su cui è possibile fare clic per lanciare incantesimi e quant'altro.
Questo è tutto ciò che posso pensare di vedere adesso.
Le variazioni sul modello di stato sono utili per modellare lo stato del gioco. Lo Enginuity series of articles è una buona panoramica di alcuni degli aspetti di basso livello del design dei motori di gioco. È incompleto, ma buono. I progettisti del framework Guff outlined the use of state hierarchies per la gestione dello stato del gioco. Il concetto di gerarchia è buono, sebbene la loro visione di uno stato di gioco sia limitata (comprende l'intero ciclo di gioco invece del solo stato). Hanno anche un paper on real-time game loops.
Quando si implementa lo scripting, è estremamente utile e potente per utilizzare un linguaggio di scripting che supporti una sorta di multithreading cooperativo. Stackless Python offre questo. Dal momento che Mono 2.6, si can do this in C# using continuations, ma solo sulla piattaforma Mono (non. NET), in quanto ha richiesto modifiche alla VM.
Esistono soluzioni comuni per grafica 2D e 3D, animazione, input, ecc. Molti di questi sono gestiti da DirectX, SDL o framework simili.
Non penso che esistano modelli di progettazione software specifici per il gioco. I giochi utilizzano gli stessi linguaggi, librerie, piattaforme come tutti gli altri e affrontano praticamente gli stessi problemi a livello di software.
Esistono alcuni metodi o approcci che sembrano essere popolari, ma che non sono formalizzati a livello di codice nel modo in cui i modelli di progettazione classici sono. Un esempio sono gli attori basati su componenti, spesso non aggregati nello stesso oggetto ma tramite la condivisione di un ID, che comunica tramite un meccanismo di tipo segnali/slot. Un altro sarebbe l'incorporamento di una seconda lingua per scopi di scripting, come Lua, Python o Javascript.
Ho trovato this PDF dettagli architetture di gioco possibili. Sebbene, potrebbe essere "spiacevole per i lettori che sono più inclini a pensare in termini di design orientato agli oggetti".
- 1. Quali sono alcuni buoni tutorial di gioco per iPhone 3D/2D OpenGL ES?
- 2. Quali sono alcuni comuni algoritmi di messa a fuoco?
- 3. Quali sono i pattern DDD (Domain-Driven Design) comuni?
- 4. Quali sono gli usi comuni di UDP?
- 5. Quali sono alcuni metodi comuni per causare perdite di memoria utilizzando JQuery/JavaScript?
- 6. Quali sono alcuni buoni tutorial di Wireshark?
- 7. Quali sono alcuni usi intelligenti di LINQ?
- 8. Quali sono alcuni script di shell interessanti?
- 9. Quali sono alcuni esempi di interfacce Go?
- 10. Quali sono alcuni casi d'uso per le strutture di tupla?
- 11. Quali sono i modelli di progettazione di servizi Windows comuni?
- 12. Quali sono i problemi del pattern MVVM?
- 13. Quali sono alcuni usi dei metadati Clojure?
- 14. Quali sono i colpevoli comuni della lentezza del TMP
- 15. Scrivere il mio motore di gioco 3D
- 16. Scelta di un motore di gioco 3D
- 17. Volare in un gioco 3D?
- 18. Quali sono i modelli di progettazione più comuni in Cocoa Touch?
- 19. Quali sono alcuni esempi di utilizzo di Datagrid di WPF?
- 20. C++: quali sono le vulnerabilità più comuni e come evitarle?
- 21. Quali sono alcuni esempi di programmazione a livello di caratteri?
- 22. Quali sono alcuni esempi di utilizzo di Nokogiri?
- 23. Quali algoritmi comuni sono usati per C's rand()?
- 24. integrazione di iAD in gioco 3d
- 25. rilevamento collisione gioco di corse in 3D
- 26. Quali sono alcuni fantastici tutorial di disegno in Quartz 2D?
- 27. Quali sono alcuni usi interessanti delle funzioni di ordine superiore?
- 28. Quali sono alcuni suggerimenti per il debug di Objective-c?
- 29. Quali sono alcuni principi di base del design dell'interfaccia?
- 30. Quali sono alcuni esempi impressionanti di codice funzionale?
Sto davvero cercando alcuni schemi architettonici generali, ad esempio come organizzare tutte le diverse componenti del gioco in qualcosa che sia comprensibile e mantenibile da un livello elevato. Qualcosa come l'equivalente di sviluppo del gioco di un'architettura di tipo MVC o un'architettura a strati. –
Non esistono, ho paura! Questo tipo di domande viene ripetutamente visualizzato su GameDev.netto ma in realtà non esiste un approccio standard o qualcosa che assomigli a uno. Tutto ha un ciclo input-update-render/output, e spesso c'è un sistema di stato del gioco simile a quello descritto da Matt Olenik, ma oltre a questo, è una disposizione ad-hoc di vari sistemi e pattern su piccola scala. Potrei dare qualche consiglio, ma mentirei se affermassi che i miei suggerimenti erano "comuni". – Kylotan