FAQ:
cocos2d per iPhone: Come velocemente è cocos2d (rispetto ad altri motori di gioco)? How fast is cocos2d (compared to other game engines)?Cerchi il mio cocos2d d'iPhone FAQs & Tutorials
Per favore annoti che la ricerca di blog nell'angolo giusto superiore non cerca il mio FAQs e Seminari universitari sotto la guida di un tutor.- Annoti: per favore non condivida collegamenti di trasferimento di dati diretti con file PDF, i collegamenti di trasferimento di dati finiscono dopo di dei minuti di coppia!
La domanda è troppo generale per esser risposta. Capisco la nozione - se Lei sta per comprare un'automobile Lei vuole sapere come velocemente può andare. Ma come con automobili, se Lei solo avanza intorno alla città il topspeed semplicemente non Le importa. But as with cars, if you only drive around in the city the topspeed simply doesn't matter to you.
La maggior parte programmatori di gioco comincianti stanno soltanto avanzando intorno alla città per il futuro forseeable. Se il codice loro stanno lavorando è lento, non è quasi mai l'errore del motore di gioco. Ho visto molto codice di gioco di principiante o semiprofessionista. In quasi tutti i casi ci furono solo due problemi che causarono problemi di svolgimento severi: il progettista fu l'uno o l'altro sovrambizioso (di solito insieme a nessuno comprensione di restrizioni della piattaforma e strozzature) o il codice non fu semplicemente scritto con velocità a mente (di solito insieme a una mancanza di capire il motore di gioco, il linguaggio di programmazione e la piattaforma). I've seen a lot of beginner's or semi-professional's game code. In almost all cases there were only two issues that caused severe performance issues: the developer was either over-ambitious (usually coupled with not understanding the platform's limitations and bottlenecks) or the code was simply not written with speed in mind (usually coupled with a lack of understanding the game engine, programming language and platform).
Per quasi tutti i progettisti non importa come velocemente il cocos2d è in confronto ad altro motore. La domanda vera deve essere: che può questo fare per Lei? Quanto tempo La salverà questo costruendo il Suo gioco? Ha questo redattori di gioco? È facile da costruire elementi d'Interfaccia d'Utente come pulsanti? Lo fa questo diritto e facile da collaborare con altri? E così via... questi sono le domande che Lei ha bisogno di chiedere prima di tutto valutando un motore di gioco. what can it do for you? How much time will it save you building your game? Does it have game editors? Is it easy to build User Interface elements like buttons? Does it make it straightforward and easy to collaborate with others? And so on ... these are the questions you need to ask first and foremost when evaluating a game engine.
In ogni caso è un processo d'istruzione per tutti noi. Se Lei si preoccupa di svolgimento, inizi semplice. Sono sicuro che Lei troverà cocos2d abbastanza velocemente per cominciare con, e i programmatori esperti possono fare cose meravigliose con lui e non sono limitati affatto. Penso che questo dice tutto questo. I'm sure you'll find cocos2d fast enough to begin with, and experienced programmers can make wonderful things with it and aren't limited at all. I think that says it all.
Se Lei proprio vuole sapere quello che cocos2d può portare a termine in circostanze molto specifiche allora danno un'occhiata alle Prove di Svolgimento cocos2d.
Lezione di trasferimento di dati PDF
Esempi per scopi sovrambiziosi
- il disegno 100 + i Folletti grandi con multi-layered parallaxing gli sfondi più effetti di particella e oggetti di fisica e aspettativa di 60 fps
- l'utilizzazione di troppi oggetti di gioco quale induce cappi semplici a computare milioni d'articoli ogni struttura
- l'emulazione shader gli effetti in software manipolando la memoria di struttura ogni struttura
Lo PSP-3000 in quest'immagine è soltanto un promemoria che Lei non può aspettare lo stesso livello di qualità visiva e complessità sull'iPhone che sullo PSP. Ancora comunque. L'iPhone 3GS può venire vicino e l'iPad può veramente essere superiore - ma la maggioranza dei Suoi clienti sta ancora dirigendo l'iPhone i 1i e 2i dispositivi di generazione! Provi a tenere le Sue attese su un Nintendo DS il livello, e poi quando Lei riceve quell'esecuzione bene, Lei può sempre pensare ad addizione di più buoni visivi più tardi. The iPhone 3GS may come close and the iPad may actually be superior - but the majority of your customers is still running iPhone 1st and 2nd generation devices! Try to keep your expectations on a Nintendo DS level, and then when you get that performing well, you can always think about adding more visual goodies later on.
Gli esempi per codice non scritto con velocità a mente
- ogni oggetto di gioco controlla ogni altro oggetto di gioco se è più vicino che x a si. Con 1000 oggetti questo causa 1 000 * 1 000 = un milione di conti compiuti. La soluzione migliore è quella di passare attraverso la lista di tutti i 1000 oggetti e il fare del conto sul rimanere di 999 oggetti, il vicino cappio solo controlla il rimanere di 998 oggetti, e così via. Questo lavora perché se A non è vicino a B, allora B non può essere vicino ad A, allora possiamo saltare quelli. Vedi l'esempio di pseudocodice nell'immagine sopra. The better solution is to go through the list of all 1000 objects and doing the check on the remaining 999 objects, the next loop only checks the remaining 998 objects, and so on. This works because if A isn't close to B, then B can't be close to A, so we can skip those. See the pseudocode example in the image above.
- il disegno di grande quantità d'oggetti fuori dello schermo senza alcun conto semplice per tirare solo oggetti che non sono almeno parzialmente sullo schermo
- il movimento di molti oggetti le solo piccole distanze usando cocos2d le Azioni - questo causa molti cicli alloc/dealloc e può trascinare giù lo svolgimento. Per migliorare questo codice commuovono gli oggetti manualmente manualmente aggiungendo una velocità ogni struttura a posizioni dell'oggetto. Una strada piuttosto efficace di fare questo deve usare un motore di fisica per avere il movimento d'oggetti a velocità fisse in una direzione data. One rather effective way to do this is to use a physics engine to have objects move at fixed speeds in a given direction.









Schiarimento di posto. Grazie!
E, certamente, ho alcuni la domanda
- tutto è relativo, ma per codice comune è migliore per usare NSString, NSArray (e pagare il costo di creare nuovi oggetti) o i mutabili? Quale può essere i parametri per scegliere tra ognuno?
- Mi sto chiedendo se il nuovo iPhone 4.0′s il più grande svolgimento sarà un problema. I giochi che dirigono pianamente in iPhone 1i e 2i dispositivi di generazione probabilmente funzioneranno troppo velocemente?
Ciao Max,
dubito che i NSMutable* datasets siano sicari di svolgimento. Non ho fatto nessuna prova ma sono piuttosto sicuro che se Lei non li cambia affatto loro probabilmente si comporteranno così buono come i nonmutabili. Adesso, una volta Lei *do* ha bisogno di cambiare gli assortimenti o gli spaghi è buono averli mutabile in modo che la roba sia avuta cura per Lei dietro le quinte. D'altra parte, se Lei sa che Lei starà solo creando gli articoli una volta, ma riordinare mai, togliere o aggiungere che gli altri allora usano i nonmutabili. Per me è una questione di caso d'uso, piuttosto che svolgimento. Now, once you *do* need to change the arrays or strings it’s good to have them mutable so that stuff is taken care for you behind the scenes. On the other hand, if you know that you’ll only be creating the items once but never re-order, remove or add others then use the non-mutable ones. For me it’s a matter of use case rather than performance.
I giochi non funzioneranno più velocemente su più nuovi dispositivi. il cocos2d's CCDirector si assicura di questo. Lei migliora framerates certamente, ma non più velocemente gameplay. Questo tiene true per tutti i motori di gioco moderni. You do get better framerates of course but not faster gameplay. That holds true for all modern game engines.