2009-07-24 8 views
9

Sono abituato a sviluppare applicazioni aziendali e di riferimento. Ora devo fare un gioco per iPhone. Quali consigli puoi condividere di aiutarmi con:Quali sono i "trucchi" quando si sviluppa un gioco per iPhone?

  1. comprendere la portata del progetto
  2. definire gli elementi da fornire
  3. specificando il gioco ed altri parametri
  4. stimare lo sforzo di sviluppo
  5. testare la gioco

Una grande domanda, lo so. Grazie!

+1

Il processo di revisione dell'App Store –

+1

Se stai chiedendo suggerimenti e suggerimenti, questo dovrebbe essere Wiki di comunità? – Xetius

risposta

2

La principale differenza tra le app aziendali e i giochi, in particolare sui dispositivi mobili, è l'importanza delle prestazioni. Un'app che crea un modulo e attende l'input dell'utente probabilmente non sta facendo nulla nel frattempo. Un ciclo di gioco, d'altra parte sta andando tutto il tempo e probabilmente facendo molto. I programmatori di business non sono abituati a pensare in questi termini, ma i giochi riducono la potenza della batteria e, che ci crediate o no, il modo in cui implementate il vostro gioco avrà un grande effetto sulla velocità con cui viene scaricata la batteria.

Quindi, una domanda è, qual è questo gioco che devi "sviluppare"? Se è sudoku, non preoccuparti. Se si tratta di una battaglia spaziale 3D in tempo reale, questa è un'altra storia.

Se le applicazioni aziendali erano su iPhone, probabilmente hai usato il 100% Objective-C. (Se stai facendo applicazioni C# o Java sui desktop, allora benvenuti a gestire la tua memoria.) C'è chi ti dirà che la gestione del tipo di runtime di Objective-C è troppo lenta per i giochi complessi. La gente certamente fa i giochi OK usandolo con Cocos2D e altri motori, ma ancora dipende dal gioco. Ci sono sviluppatori professionisti che lavoreranno solo con C++ o anche direttamente C.

36

La mia risposta non sta seguendo la risposta metodologica cascata che stavi cercando perché penso che sarà necessario imparare l'abilità della programmazione del gioco prima di poter pianificare, progettare, implementare e testarlo. La programmazione del gioco è MOLTO diversa dalla programmazione aziendale e da un altro campo in sé e per sé.

A causa della tua mancanza di esperienza nella programmazione di giochi, ci sono alcuni concetti che dovrai imparare prima di poter programmare un periodo di gioco, figuriamoci uno su iPhone.

Alcune di queste cose dipenderanno dalla programmazione di un gioco 3D o dallo stile di piattaforma 2D.

OpenGL ES La prima cosa che dovrete imparare è il OpenGL ES programming language. Questa è fondamentalmente un'API 3D che ti consente di disegnare primitive 3D. Dovrai comunque usarlo se stai codificando un gioco 2D in quanto è veloce grazie all'utilizzo della GPU per l'accelerazione. Ci sono alcuni buoni tutorial su Google da cui iniziare.

matematica vettoriale Se stai facendo qualcosa di 3D, è necessario conoscere matematica vettoriale 3D, i vettori sono essenzialmente utilizzati per tutto, nei giochi, direzione della telecamera aspetto, posizione dei caratteri, la velocità, il rilevamento delle collisioni, ecc I vettori 2D (x, y) meno il componente z sono ancora necessari per la programmazione di giochi 2D.

Rilevazione collisione Come faccio a sapere quando la mia palla colpisce il muro? La risposta è il rilevamento delle collisioni. Ci sono molte forme di rilevamento delle collisioni, come sfera in sfera, AABB, OOBB, convesso Carene, Triangolo Mesh, ecc

AI Come faccio ad avere il nemico ad attaccare il mio personaggio? L'intelligenza artificiale è un altro grande campo essenziale per dare a NPC/Nemici la capacità di prendere decisioni intelligenti. L'intelligenza artificiale può essere semplice, ad esempio se altre affermazioni, ma in genere richiede che le macchine a stati finiti o la logica fuzzy siano efficaci.

Pathfinding Se si desidera spostare un personaggio dal punto A al punto B, evitando i nemici e gli ostacoli in movimento, è necessario utilizzare un algoritmo di pathfinding. Una stella (A *) è una delle più popolari.

Scene Graph Se si desidera avere 10-20 + nemici sullo schermo in un momento, è necessario codificare un grafico scena per la gestione del disegno dinamico, la logica e la creazione e la cancellazione delle risorse. Se non sai quale polimorfismo devi conoscere, è essenziale che i tuoi oggetti di gioco aderiscano e si integri con il grafico della scena.

Fisica posizione, velocità, accelerazione, Gravità e Raggi sono tutti rappresentati usando vettori e potrebbe essere necessario rispolverare il tuo matematica fisica al fine di codificare qualsiasi gioco. Inizia con la seconda legge del moto di Newton F = MA (Force = Mass * Acceleration). Un motore fisico open source come Bullet, ODE, Newton, Tokamak renderà le cose più facili, il che significa che non avrai bisogno di scrivere queste regole fisiche da solo.

Objective-C++ Questo è opzionale sebbene consigliato. Se non conosci C++, questo è essenzialmente un misto di C++ e Objective-C. Tendo ad usare C++ per il motore di gioco di base e la programmazione a causa della velocità del C++ e della disponibilità di librerie di terze parti in C++.

suono Se avete bisogno di suono si può solo andare avanti e usare le semplici framework audio che Apple forniscono, tuttavia l'audio posizionale 3D sta per richiedere qualcosa di meglio. Consiglierei di imparare l'SDK FMOD per iPhone. Come menzionato da @Stowelly, FMOD richiede una licenza per la distribuzione commerciale, ma ci sono altri che puoi cercare e che sono esenti da royalty.


Usare un motore di gioco Ci sono motori di gioco disponibili per l'iPhone in questo momento che renderanno molto più facile per voi per ottenere una partita in corso, nel tuo caso questo sarà più veloce, anche se sarà comunque bisogno di imparare i concetti che ho citato sopra.

Ecco alcuni motori di gioco che conosco:

Unity3D Questo probabilmente il più popolare quella che io sappia. Unity è un motore di gioco per PC/Mac che ti permette di scrivere codice su Mac e compilare per Windows/Linux/Mac OS X. Dubito che l'edificio per iPhone sia compatibile direttamente con altre piattaforme, immagino che verrai limitato all'iPhone se hai iniziato un nuovo progetto. Questo motore ha tuttavia un costo di implementazione commerciale di $ 199- $ 399.

Cocos2D Questo è un motore di gioco 2D fonte aperta che potrebbe essere utile per un sacco di giochi. Vale la pena dare un'occhiata a Ospitato su codice Google.

Ecco alcuni altri di controllare:

Ston3D for iPhone

OOlong Engine

SIO2Engine

iTGB for 2D Games

+2

Buona risposta. Non ho idea del motivo per cui questo è stato downvoted, anche se l'OP non sembra sapere quello che vogliono a parte "un gioco per iPhone" – Xetius

+0

un consiglio, se hai intenzione di pubblicare il tuo gioco nell'app store, lo sdk FMOD richiederà una licenza ..... ma nel complesso, informazioni eccellenti :) – Stowelly

+0

Hai detto che ci sono dei motori di gioco disponibili per lo sviluppo di iPhone, potresti elencarne alcuni che conosci o che consigli? - Grazie. – Shrill

Problemi correlati