Design MVC nei giochi Cocoa: è possibile?

0

Sto lavorando alla creazione di giochi su OS X, utilizzando il framework Cocoa, probabilmente il solo e il modo migliore per utilizzare tutte le funzionalità di questo sistema operativo. Dato che Cocoa è MVC, devo incorniciare i miei giochi attorno a questo stile. C'è qualche problema con l'inquadratura del tuo gioco usando un design MVC? Cosa posso fare per rendere lo sviluppo del gioco più facile o più efficiente in Cocoa? Per essere particolare, il mio metodo per creare giochi è mostrato sotto:

Viste di gioco

Per ogni componente di un gioco che può essere visualizzato, utilizzo una vista di gioco. Ad esempio in un gioco 3D con una GUI, un menu, ecc., Ci saranno 3DView, GUIView, MenuView, ecc.

Modello di gioco e logica

I dati e la logica di un gioco sono accoppiati insieme in oggetti separati che non hanno molto a che fare con Cocoa stesso. Ad esempio, in un clone di Tetris creato, esisteva una classe per l'oggetto Tetrimino, con metodi che influivano su se stesso e su altri oggetti, ma non su Cocoa. Questo si applica a tutti gli altri oggetti di gioco.

Oggetti di gioco globali

Le visualizzazioni di gioco richiedono determinati dati per il rendering e il modello di gioco deve ricevere il suo input da qualche parte. Quindi gli oggetti globali sono fatti che il modello e la vista possono sia leggere che influenzare.

    
posta Jeffery Opoku-Mensah 09.06.2016 - 23:58
fonte

1 risposta

1

I modelli di progettazione non hanno molto a che fare con le lingue che usi. Tentano di separare un'applicazione a diversi elementi nel tentativo di facilitare l'accoppiamento e la portabilità su piattaforme diverse per menzionarne una.

Non vedo perché l'utilizzo di MVC non sia fattibile nello sviluppo del gioco. La natura dell'applicazione raramente definisce il modello di progettazione quando si tratta di visualizzazioni, ecc. È più la tua decisione su cosa vuoi utilizzare e le risorse disponibili, piuttosto che imporre scelte specifiche.

Riguardo ai tuoi elementi, uso molto lo spazio dei nomi. Ad esempio, ho Model.3D, View.3D e Controller.3D ma questo è ciò che trovo conveniente. Io, anche, uso le cartelle.

Non ho molta familiarità con MVC (utilizzo MVVM la maggior parte del tempo) ma penso che i dati e la logica debbano essere distribuiti sia sul modello che sul controller.

Inoltre, non sono sicuro del motivo per cui ritieni di aver bisogno di "oggetti globali". Presumo che all'avvio del gioco, avrai il tuo primo modello (chiamiamolo MainModel) e poi ogni volta che avrai bisogno di una nuova vista, creerai il modello e il controller corrispondenti. Quindi, i tuoi dati dai tuoi "oggetti globali" possono far parte del MainModel.

    
risposta data 10.06.2016 - 01:51
fonte

Leggi altre domande sui tag