Un breve cheat sheet per valutare librerie, framework, motori e SDK e scegliere il meglio
- Le librerie, i framework, i motori SDK e così via sono strumenti che hanno lo scopo di risolvere i problemi per te o di aiutarti a risolvere i problemi e soddisfare determinati requisiti.
- Valutare significa capire quale soddisfa i requisiti più elevati.
Pertanto, prima ancora di iniziare a valutare, è necessario essere chiari in quale scenario ci si trova e quali requisiti si hanno / si desidera avere perché queste sono le domande alle quali dovrebbe rispondere la valutazione.
Lo scenario definisce la provenienza dei requisiti (chi decide cosa è un requisito e cosa non lo è).
Gli scenari tipici sono:
Lo scenario più avido del progetto
Da solo o insieme ad alcuni amici, vuoi creare il tuo (forse primo) gioco. Perfetto, puoi decidere tutto da solo e sei limitato solo alle decisioni tecniche e ai requisiti tecnici di base (se si tratta di un gioco per cellulare, un gioco per PC, un gioco per console, un gioco Web, ....). Puoi decidere quello che vuoi.
I requisiti impliciti saranno che potresti voler imparare qualcosa di specifico (una lingua, un quadro / motore specifico)
Lo scenario dello studente
I requisiti possono venire dal tuo insegnante. Requisiti tipici che avevo in quel caso: il gioco deve avere alcuni elementi fisici e supporto di rete multiplayer. O deve essere scritto in C ++. Quindi la valutazione diventa facile. Stai cercando un motore di gioco che ti permetta di scrivere codice in c ++ e che possa già includere un motore di rete e fisico.
Un requisito più malvagio (vita reale): tutto deve essere scritto da zero (ma è consentito l'uso delle librerie). Quindi non è permesso nessun editor (es. Unity3D). Quindi non stai cercando engine / sdks ma librerie.
Lo scenario di gioco indie
Vuoi fare soldi con il gioco in seguito. Pertanto dovrai venderlo in qualche modo che ti porta a verificare su quali requisiti provengono dal negozio in cui vuoi vendere il tuo gioco.
Permette giochi Java, giochi HTML5, ....)
Richiede di includere librerie specifiche (se sì, in quali lingue sono disponibili quelle librerie)
Google Playstore ti richiederà di scrivere il tuo gioco come gioco Android, Apple AppStore ti richiederà di scrivere il tuo gioco come app iOS. Oppure hai l'obbligo di scegliere un motore multipiattaforma.
Lo scenario professionale
Non hai solo un negozio che fornisce requisiti, ma molto probabilmente un editore o un cliente ha la propria immaginazione di requisiti. In questo scenario avrai anche un team più grande di sviluppatori impiegati. A seconda delle loro competenze emergono nuovi requisiti (i nostri programmatori possono scrivere solo c ++, quindi non possiamo usare un motore di gioco Java / Android puro senza che abbiano bisogno di (molto) tempo per imparare qualcosa di nuovo).
Non vado nei dettagli per questo scenario, una volta che sei riuscito a formare un team di dipendenti e trovare un cliente / editore sai già cosa stai cercando per valutare le cose.
Come faccio a decidere quali sono i miei requisiti quando sono un più hobbista o indi e nessun altro me lo dice?
Fai domande a te stesso riguardo ai tuoi obiettivi e al tuo gioco?
Quale dovrebbe essere il mio gioco? mobile, pc, web (html / Js), quali controller userò (touch screen, giroscopio, game pad)
Cosa c'è di nuovo nel mio gioco e cosa hanno anche altri giochi. Quelle parti che hanno anche altri giochi (rendering, audio, gestione degli input) saranno eseguite dalla maggior parte degli strumenti (motori di gioco) che puoi trovare o è facile raggruppare librerie con quella funzionalità nel tuo gioco o motore di gioco.
Qual è la dimensione del mio progetto: uccelli arrabbiati o skyrim? Angry Birds può essere eseguito in quasi tutti gli strumenti e skyrim sarebbe limitato a strumenti ad alte prestazioni con (presunti) anni di personalizzazione aggiuntiva (i motori per terreni ad alte prestazioni non sono facili)
Il mio unico obiettivo è solo quello di fare una partita? sì? perfetto, puoi usare qualcosa di molto avanzato come Unity, Unreal, ... avere un editor utile e una grande comunità che ti fornisce tutorial e risponde alle tue domande. Elimina l'onere della gestione di attività di basso livello come il caricamento delle mesh, l'implementazione delle proprie funzioni matematiche, ....
Il mio obiettivo è imparare qualcosa di specifico? sì? cosa vuoi imparare?
Quale lingua dovrei scegliere? Se l'obiettivo è ancora solo quello di fare il tuo gioco scegli quello che tu / la tua squadra conosci meglio? Se vuoi imparare una lingua specifica, sceglierai uno strumento in quella lingua.
Lo strumento X avrà prestazioni sufficienti per il mio gioco? Forse non lo saprai mai. Anche nelle grandi produzioni la fase di ottimizzazione e lucidatura richiede molto tempo ed è un grande aiuto per farlo. Inizia a preoccuparti delle prestazioni quando si verificano problemi di prestazioni. Non sai come funzionerà lo strumento se non per raggiungere i suoi limiti. Tutto sul sito web dello sviluppatore degli strumenti è solo una supposizione approssimativa. Dopo anni di valutazione degli strumenti ho smesso di credere a qualsiasi cosa dal sito web degli sviluppatori.
Rispondere a tali domande ti porta ai requisiti. La valutazione sta trovando un elenco di strumenti e TEST (non solo la lettura della homepage) ciò che lo strumento può fornire o meno.
I requisiti non sono tagliati nella pietra ma sono dinamici. Verranno e verranno durante lo sviluppo. Se il gioco ha bisogno di fisica o no, ad esempio, dipende dal design. Se il design cambia, anche il requisito può cambiare.
Prendi i requisiti che hai e inizia. I requisiti mutevoli sono il pane quotidiano della sofferenza, ahm, sviluppatori felici indipendentemente dalle dimensioni del progetto e dal livello di esperienza.