Comme je l'ai indiqué dans mon post précédent sur les moteurs 3D, Je vais faire quatre posts donner mon opinion sur chacun des quatre moteurs que j'ai regardé dans l'aide pour un projet récemment. Ces quatre moteurs sont Unity3D, Sio2, Ogre3D, Et Cocos3D. Je commence avec Unity3D, que nous avons sélectionnées pour l'un de nos récents projets.
Maintenant, permettez-moi de l'avant, que tous les quatre de ces moteurs sont compétents et j'ai pu voir des situations où je vous recommande trois des quatre moteurs pour des projets client et pourrait facilement imaginer des situations où tous les quatre d'entre eux serait une bonne choices.These quatre ne faites pas une liste exhaustive, il ya d'autres moteurs de là-bas, dont certains très bons, mais ils ont été les quatre que nous avons examiné pour ce projet spécifique. Autant que j'aime la UDK, Par exemple, je n'aime pas ça suffisant pour passer du bon temps dans Windows, de sorte que l'on est sur la table pour moi jusqu'à ce que l'amende gens de Epic décide de porter leurs dev et outils pour le contenu vers le Mac.
Une des meilleures choses à propos Unity3D est le fait qu'il supporte à la fois Windows et Mac OS tout aussi plates-formes de développement. Peu importe la plateforme sur laquelle vous développez, vous pouvez générer des jeux qui fonctionne sur tous les supports Unité plate-forme (en supposant que vous êtes autorisé pour lui). Vous pouvez même avoir une partie de votre équipe de développement sur Mac et l'autre partie sur Windows sans aucun problème.
Au moment où j'écris ceci, il est possible de générer des jeux de l'Unité qui fonctionnent sur Mac OS X et Windows (les deux applications natives ainsi que des jeux jouables à travers un plug-in Web), iOS, Android, Wii, Xbox 360 , et la PS3. Les gens de l'unité sont également activement sur l'ajout du support de Linux. Licences de la console sont négociés sur une base individuelle et sont susceptibles assez cher, mais c'est agréable d'avoir la possibilité de prendre un jeu à succès aux plates-formes tant sans avoir à faire un port plein à chaque fois.
Ayant eu à le portage d'applications OpenGL ES à partir d'iOS à Android plus d'une fois (ce qui n'est pas drôle), je peux honnêtement affirmer que le soutien Android devrait être un point de vente énorme que vous donnez toute pensée à soutenir à la fois iOS et Android.
L'autre inconvénient potentiel dans certaines situations, c'est que les sous-jacents C + + code source n'est pas disponible. Vous travaillez principalement en JavaScript ou C # (MonoScript) et à un niveau supérieur d'abstraction. Unity supporte quelques autres langues en plus de JavaScript et C #, mais seulement ces deux langues de travail pour le développement mobile.
Après environ deux semaines de passer mes soirées avec Unity, j'ai effectivement venu à la conclusion que ne pas avoir accès à la source n'est pas vraiment beaucoup d'un inconvénient, et pour beaucoup de développeurs, travaillant de cette manière sera better que de travailler en C + +. Le moteur prend en charge presque tous les trucs de bas niveau vous devez faire, mais même si elle n'a pas, l'unité a un langage de shader qui vous permet d'écrire du code qui s'exécute sur le GPU et tout ce qui doit fonctionner sur le CPU peut être fait par l'intérieur de l'unité de scripts.
Bien que la programmation en Unity3D se fait avec des langages de scripts, les scripts que vous écrivez sont réellement compilé, il n'ya donc pas une surcharge de performance énorme pour les utiliser. Dans la situation extrêmement rare, où C # ou Javascript n'est pas suffisante, il est possible d'envoyer des messages entrant et sortant de l'unité à partir de C de votre application ou de code Objective-C.
Si vous ne connaissez pas déjà quelque chose sur la programmation graphique, vous n'avez toujours pas besoin d'être trop effrayés ou intimidés. La plupart des choses sont amassés gnarly où vous ne le verrez pas jusqu'à ce que vous en avez besoin, et vous pouvez faire une quantité surprenante d'un peu de configurer les choses dans l'interface de développement. Vous pouvez créer, par exemple, une simulation physique assez complet, sans jamais écrire une seule ligne de code. Vous voulez empiler un tas de caisses et de rouler une balle en eux et les regarder tous les automne? Vous pouvez le faire sans jamais ouvrir un éditeur de texte. Heck, vous pouvez même le faire sans avoir à ouvrir un programme en 3D.
Unité contourne presque tous cet ennui. Lorsque vous enregistrez vos actifs à partir de votre programme 3D ou Photoshop, il vous suffit de les enregistrer dans votre projet Unity Assets dossier. Lorsque vous lancez l'unité, ou naviguez revenir si elle est déjà ouverte, l'unité détecte le nouveau fichier, ou toute modification que vous avez apportées à un fichier existant. Il l'importation et l'ajoute à la liste des assets.Anything disponibles que vous devez faire qui ne peut pas être fait dans votre programme 3D, tels que de spécifier un shader ou d'identifier les propriétés moteur physique de l'objet, vous n'avez droit à Unity, et la plupart de ce qui peut être fait sans écrire de code (bien que tout ce que vous pouvez configurer sans code peut également être modifiée à partir du code).
Quel programme avez-vous besoin 3D à utiliser? Quasiment toute celle que vous êtes confortable avec. Unity3D a en charge l'importation directe pour les formats de fichier natif de plusieurs programmes, notamment Blender, mais tout paquet qui peut exporter vers Autodesk FBX ou Collada peut être utilisé avec un support complet pour toutes les fonctions comme les os, les textures, les animations, etc.It prend également en charge native de Photoshop fichiers (. psd) pour les textures, l'aplatissement des couches d'une manière non-destructive lorsque vous construisez votre app.Assets peut même être donné des caractéristiques différentes pour différentes plateformes. Vous auriez pu, par exemple, un atout 2048x2048 texture pour la version desktop de votre jeu, mais dites Unité d'utiliser une version 1024x1024 pour les consoles de jeu et une version 512x512 sur iOS et Android.
Un bon programmeur expérimenté graphiques travaillant dans le droit mobiles peuvent désormais facilement demander 200 $ par heure ou plus, car la demande dépasse largement l'offre. Figure it out. Unity licence complète iOS est essentiellement l'équivalent de 15 heures de temps d'un programmeur graphique. Pourtant, l'unité sera facilement couper cinq fois ce nombre d'heures hors de l'horaire de tout projet logiciel de taille décente jeu, probablement beaucoup plus.
Je donne deux Unity3D big thumbs up. Je l'utilise sur un projet maintenant et nous espérons l'utiliser sur plus nombreuses à l'avenir parce que c'est amusant à utiliser et élimine une grande partie de l'ennui associé à la programmation 3D sans enlever le pouvoir.
1 Beaucoup de fonctionnalités plus avancées nécessitent le plus cher "Pro" de licence, cependant, et vraiment caractéristiques de pointe à partir les derniers jeux prennent généralement un peu de temps à apparaître dans les outils
Maintenant, permettez-moi de l'avant, que tous les quatre de ces moteurs sont compétents et j'ai pu voir des situations où je vous recommande trois des quatre moteurs pour des projets client et pourrait facilement imaginer des situations où tous les quatre d'entre eux serait une bonne choices.These quatre ne faites pas une liste exhaustive, il ya d'autres moteurs de là-bas, dont certains très bons, mais ils ont été les quatre que nous avons examiné pour ce projet spécifique. Autant que j'aime la UDK, Par exemple, je n'aime pas ça suffisant pour passer du bon temps dans Windows, de sorte que l'on est sur la table pour moi jusqu'à ce que l'amende gens de Epic décide de porter leurs dev et outils pour le contenu vers le Mac.
Aperçu unité
Unity3D précède en fait l'iPhone, et des quatre moteurs, c'est celui qui se sent le plus mature et possède les outils développeur les plus robustes. Il a également l'une des communautés de développeurs les plus actifs. Unity3D est un produit à code source fermé commerciales que vous devez payer, ce qui pourrait être un turn-off pour certains, mais il vaut chaque centime de la redevance.Unité pros
L'unité est en fait assez facile à apprendre, mais a un ensemble de fonctionnalités qui est se compare favorablement à la plupart des autres moteurs. Pipelines actifs Unity est vraiment robuste et de leurs outils vous donnent la possibilité de faire des changements très rapidement et de tester ces changements.Une des meilleures choses à propos Unity3D est le fait qu'il supporte à la fois Windows et Mac OS tout aussi plates-formes de développement. Peu importe la plateforme sur laquelle vous développez, vous pouvez générer des jeux qui fonctionne sur tous les supports Unité plate-forme (en supposant que vous êtes autorisé pour lui). Vous pouvez même avoir une partie de votre équipe de développement sur Mac et l'autre partie sur Windows sans aucun problème.
Au moment où j'écris ceci, il est possible de générer des jeux de l'Unité qui fonctionnent sur Mac OS X et Windows (les deux applications natives ainsi que des jeux jouables à travers un plug-in Web), iOS, Android, Wii, Xbox 360 , et la PS3. Les gens de l'unité sont également activement sur l'ajout du support de Linux. Licences de la console sont négociés sur une base individuelle et sont susceptibles assez cher, mais c'est agréable d'avoir la possibilité de prendre un jeu à succès aux plates-formes tant sans avoir à faire un port plein à chaque fois.
Ayant eu à le portage d'applications OpenGL ES à partir d'iOS à Android plus d'une fois (ce qui n'est pas drôle), je peux honnêtement affirmer que le soutien Android devrait être un point de vente énorme que vous donnez toute pensée à soutenir à la fois iOS et Android.
Moins unité
Les inconvénients d'Unity3D sont relativement rares, actually.It est la plus chère des moteurs j'ai regardé, et les coûts sont complètement à chargement frontal. Vous payez un appartement par développeur de licence par la plate-forme à l'avant, mais alors vous pouvez créer autant de matchs que vous voulez pour les plates-formes que vous êtes autorisé pour. Pour la licence de base iOS, c'est 400 $ par siège (un développeur utilisant jusqu'à deux machines), pour la licence Pro, vous cherchez à 3000 $ (parce que les 1500 $ iOS Pro nécessite l'Unité 1500 $ Pro), ce qui pourrait ressembler à un grand nombre d'argent, mais c'est vraiment une somme dérisoire par rapport à la quantité de temps de développement, il peut vous sauver. Le "Basic" version de l'unité, ce qui vous permet de générer Mac, Windows et le Web des jeux (quoique exclut certaines des fonctionnalités les plus avancées) est disponible entièrement gratuit.L'autre inconvénient potentiel dans certaines situations, c'est que les sous-jacents C + + code source n'est pas disponible. Vous travaillez principalement en JavaScript ou C # (MonoScript) et à un niveau supérieur d'abstraction. Unity supporte quelques autres langues en plus de JavaScript et C #, mais seulement ces deux langues de travail pour le développement mobile.
Après environ deux semaines de passer mes soirées avec Unity, j'ai effectivement venu à la conclusion que ne pas avoir accès à la source n'est pas vraiment beaucoup d'un inconvénient, et pour beaucoup de développeurs, travaillant de cette manière sera better que de travailler en C + +. Le moteur prend en charge presque tous les trucs de bas niveau vous devez faire, mais même si elle n'a pas, l'unité a un langage de shader qui vous permet d'écrire du code qui s'exécute sur le GPU et tout ce qui doit fonctionner sur le CPU peut être fait par l'intérieur de l'unité de scripts.
Bien que la programmation en Unity3D se fait avec des langages de scripts, les scripts que vous écrivez sont réellement compilé, il n'ya donc pas une surcharge de performance énorme pour les utiliser. Dans la situation extrêmement rare, où C # ou Javascript n'est pas suffisante, il est possible d'envoyer des messages entrant et sortant de l'unité à partir de C de votre application ou de code Objective-C.
Learning Curve
J'ai trouvé l'unité étonnamment facile à apprendre. Il ya quelques ressources très bonne là-bas, y compris de nombreux didacticiels et des vidéos pédagogiques. En fait, j'ai eu un jeu de fonctionnement après environ deux heures de jeu. Elle était laide et la mécanique du jeu étaient simples, mais il était jouable. L'unité a également un forum de développeurs assez active communauté où vous pouvez aller chercher de l'aide lorsque vous êtes coincé.Si vous ne connaissez pas déjà quelque chose sur la programmation graphique, vous n'avez toujours pas besoin d'être trop effrayés ou intimidés. La plupart des choses sont amassés gnarly où vous ne le verrez pas jusqu'à ce que vous en avez besoin, et vous pouvez faire une quantité surprenante d'un peu de configurer les choses dans l'interface de développement. Vous pouvez créer, par exemple, une simulation physique assez complet, sans jamais écrire une seule ligne de code. Vous voulez empiler un tas de caisses et de rouler une balle en eux et les regarder tous les automne? Vous pouvez le faire sans jamais ouvrir un éditeur de texte. Heck, vous pouvez même le faire sans avoir à ouvrir un programme en 3D.
Complexity
J'avais peur d'une chose entrer dans l'unité d'apprentissage: je craignais que parce qu'il était si facile (du moins je n'avais heard il était), que ça allait être un créateur de jeux dumbed qui sacrifiait des fonctionnalités plus avancées pour le bien de l'abaissement des obstacles à l'entrée. Mes craintes ont été complètement égaré, cependant. Ce n'est pas du tout le cas. Les gens de l'unité ont fait un travail vraiment formidable de faire de leurs outils faciles à utiliser tout en vous donnant la possibilité de faire la plupart tout ce que vous n'avais jamais besoin de faire. Il est même possible (bien que le processus est un peu alambiqué) afin d'intégrer et de UIKit Unity3D dans la même application.Pipeline d'actifs
La chose qui m'a vraiment le plus impressionné unité est ce qu'ils appellent leur «pipeline d'actifs», qui est le processus par lequel vous obtenez des modèles 3D, textures et autres éléments d'actif dans votre jeu. Si vous avez déjà développé un jeu ou mod de jeu pour l'UDK, un jeu Source de Valve, ou d'autres moteurs commerciaux, généralement il ya une sorte de processus alambiqué que vous avez à passer pour obtenir vos actifs de jeu, incluant des personnages, des textures, des accessoires et environnements, dans le match. Vous avez en général d'utiliser des applications distinctes pour préciser les shaders et les options de physique, parfois écrire un script de compilation ou autre document texte pour définir certains trains, et ensuite compiler l'objet et le forfait le tout dans une sorte de bundle ou l'emballage. Tout en développant un mod simple, vous avez l'habitude parcourir ce processus de nombreuses fois. Il peut être un peu fastidieux et difficile à apprendre et nécessite habituellement l'utilisation de multiples outils et beaucoup d'essais et d'erreurs.Unité contourne presque tous cet ennui. Lorsque vous enregistrez vos actifs à partir de votre programme 3D ou Photoshop, il vous suffit de les enregistrer dans votre projet Unity Assets dossier. Lorsque vous lancez l'unité, ou naviguez revenir si elle est déjà ouverte, l'unité détecte le nouveau fichier, ou toute modification que vous avez apportées à un fichier existant. Il l'importation et l'ajoute à la liste des assets.Anything disponibles que vous devez faire qui ne peut pas être fait dans votre programme 3D, tels que de spécifier un shader ou d'identifier les propriétés moteur physique de l'objet, vous n'avez droit à Unity, et la plupart de ce qui peut être fait sans écrire de code (bien que tout ce que vous pouvez configurer sans code peut également être modifiée à partir du code).
Quel programme avez-vous besoin 3D à utiliser? Quasiment toute celle que vous êtes confortable avec. Unity3D a en charge l'importation directe pour les formats de fichier natif de plusieurs programmes, notamment Blender, mais tout paquet qui peut exporter vers Autodesk FBX ou Collada peut être utilisé avec un support complet pour toutes les fonctions comme les os, les textures, les animations, etc.It prend également en charge native de Photoshop fichiers (. psd) pour les textures, l'aplatissement des couches d'une manière non-destructive lorsque vous construisez votre app.Assets peut même être donné des caractéristiques différentes pour différentes plateformes. Vous auriez pu, par exemple, un atout 2048x2048 texture pour la version desktop de votre jeu, mais dites Unité d'utiliser une version 1024x1024 pour les consoles de jeu et une version 512x512 sur iOS et Android.
The Bottom Line
Comme je l'ai indiqué précédemment, il ya des situations où je pouvais voir l'un des quatre moteurs j'ai regardé à être un bon choix, comme on pouvait beaucoup d'autres moteurs, je ne regarde pas. Mais, honnêtement, si je devais prendre une décision moteur sans informations détaillées, Unity3D serait ma première recommandation. Les outils sont solides, le soutien de l'entreprise et la collectivité est génial, il supporte de nombreuses plateformes, et d'obtenir des actifs dans votre jeu ne pouvait pas être plus facile. Il est relativement facile de commencer à utiliser à la fois pour les développeurs expérimentés et ceux qui ne sont pas.Un bon programmeur expérimenté graphiques travaillant dans le droit mobiles peuvent désormais facilement demander 200 $ par heure ou plus, car la demande dépasse largement l'offre. Figure it out. Unity licence complète iOS est essentiellement l'équivalent de 15 heures de temps d'un programmeur graphique. Pourtant, l'unité sera facilement couper cinq fois ce nombre d'heures hors de l'horaire de tout projet logiciel de taille décente jeu, probablement beaucoup plus.
Je donne deux Unity3D big thumbs up. Je l'utilise sur un projet maintenant et nous espérons l'utiliser sur plus nombreuses à l'avenir parce que c'est amusant à utiliser et élimine une grande partie de l'ennui associé à la programmation 3D sans enlever le pouvoir.
1 Beaucoup de fonctionnalités plus avancées nécessitent le plus cher "Pro" de licence, cependant, et vraiment caractéristiques de pointe à partir les derniers jeux prennent généralement un peu de temps à apparaître dans les outils
Aucun commentaire:
Enregistrer un commentaire