Je suis curieux de connaître le flux de travail lors de la création d'un jeu dans Unity3D?
Génère-t-il beaucoup de code pour vous?
D'après ce que je comprends, vous décrivez le jeu dans Unity et effectuez des scripts à l'arrière pour faire la logique. Un peu comme vous utilisez Unity pour décrire les marionnettes et vous utilisez un langage de script en tant que maître des marionnettes.
Réponses:
Unity3D se compose d'un moteur de jeu et d'un éditeur 3D (assez rudimentaire). Il fournit des maillages, des textures, des shaders, du terrain, des caméras, des animations, des systèmes de particules, des échantillons audio et d'autres types d'objets utiles dans les jeux vidéo. Il comprend PHYSX (un moteur physique propriétaire appartenant à Nvidia) et Mono (l'implémentation open source du Common Language Runtime, alias .NET).
La quantité que vous utilisez dépend de vous. Vous pouvez représenter toutes vos structures de données comme des objets Unity, construire votre monde dans l'éditeur Unity, activer la physique et laisser les événements suivre leur cours, avec un minimum de scripts. Alternativement, vous pouvez désactiver le moteur physique, construire votre monde de manière algorithmique et programmer explicitement tout le comportement et la physique des objets.
Vous pouvez choisir de programmer le comportement entièrement en Mono (en utilisant l'un des langages C #, JavaScript ou Boo), ou vous pouvez l'écrire dans une autre langue et le lier à votre projet Unity. (L'intégration réelle avec les objets du jeu doit se faire via Mono, mais cela peut être une couche assez mince si vous le souhaitez.)
Le flux de travail est sensiblement le même qu'avec n'importe quel moteur de jeu. Les artistes créent des modèles, des textures et des animations, des spécialistes de l'audio font les sons, les programmeurs écrivent des shaders et des comportements.
La communauté des programmeurs Unity est très utile, à la fois sur answers.unity3d.com et forum.unity3d.com . (Et peut-être ici à Stack Exchange?)
La meilleure façon de le savoir est de l' essayer : la version de base est gratuite et vous bénéficiez d'une période d'essai de 30 jours pour la version "Pro".
la source
Unity3D est plus un wrapper / bibliothèque qu'un moteur de jeu «glisser-déposer». Il ne génère pas de code ni de scripts «standard».
Par exemple, Unreal a une caméra à la première personne par défaut, un contrôleur de personnage, une détection de collision et une IA.
Vous n'avez rien de tout cela dans Unity3D. Ce que vous obtenez de Unity3D est une boucle de jeu, un système d'entités basé sur des composants, une bibliothèque mathématique complète, des moyens de charger le support, la gestion des maillages, la caméra, l'interface graphique en mode immédiat, les shaders, le pipeline de rendu et d'autres fonctionnalités de bas niveau. Plus un bel éditeur. Vous n'avez qu'à vous soucier des fonctionnalités de haut niveau. Par exemple, vous devez toujours coder votre propre caméra à la première personne (si vous n'utilisez pas celle par défaut). Cependant, vous n'avez pas besoin de vous occuper du calcul des vecteurs d'observation et autres.
Unity3D ne génère aucun code pour votre jeu, strictement (il génère du code pour exécuter votre jeu, pour être plus précis, mais aucun pour votre gameplay)
Vous devrez utiliser l'API pour définir votre jeu. Vous pouvez consulter les exemples fournis avec Unity3D et réutiliser ces codes; il existe quelques scripts prédéfinis, mais vous devez généralement les personnaliser pour répondre à vos besoins.
Vous créez le jeu grâce à des scripts; vous écrivez des scripts pour les comportements, concevez le niveau dans Unity3D et attribuez ces comportements à des entités (ou des objets de jeu). C'est très flexible, mais cela nécessite encore des efforts pour écrire un jeu. Je le comparerais à Flash pour 3D.
la source
La surface d'Unity3D semble être super facile, et presque tout est pré-construit, mais rien de tout cela n'est vrai. Si vous ignorez d'utiliser des scripts déjà existants (qui existent pour chaque moteur, mauvais point contre Unity) et des plugins que vous décrivez comme quelque peu ultra puissants, ce qu'ils ne sont certainement pas, Unity n'est qu'une interface de programmation avec l'éditeur.
Vous avez la plupart du code par vous-même. J'ai vécu cela dans 2 projets différents.
la source
L'analogie avec le flash est tout à fait juste, mais je ne comprends pas vraiment votre analogie avec les marionnettes.
Les bonnes choses à propos de l'unité sont:
Les mauvaises choses:
La chose que je n'aime pas avec Unity, c'est que c'est comme si tout le travail était fait, donc les programmeurs ont beaucoup moins de valeur. D'un autre côté, c'est génial pour enseigner rapidement aux gens comment construire des choses rapidement.
Donc, pour conclure: Unity (ou un outil comme Unity) est plus pour les artistes qui ne peuvent pas tendre la main à de grands programmeurs, mais qui savent toujours faire un peu de script de jeu. Bien sûr, vous pouvez créer un jeu complet, ajouter une IA réaliste, faire un net-code mmo et quoi d'autre, mais les grandes entreprises n'utiliseraient pas Unity.
Les modèles de programmation permettent de proposer une solution adaptée aux 3/4 des outils de développement afin qu'elle s'adapte à ces créateurs de jeux «indépendants». Il valorise un outil particulier et il valorise également les artistes, mais pas les programmeurs (sauf ceux de l'équipe de l'unité, bien sûr).
Unity est un bon raccourci pour les non-programmeurs, mais ils doivent comprendre que les jeux vidéo proviennent de lignes de code, et que vous ne pouvez pas tout faire simplement avec un outil génial. À un moment donné, il faut savoir quelque chose sur la programmation de bas niveau.
Ayant un projet personnel en tête, je n'utiliserais pas Unity, car je n'aime pas C # ou Boo (Panda est bon avec python, alors pourquoi s'embêter avec un logiciel commercial?), Et parce que si je montre mon projet et c'est fait avec l'unité, ce sera beaucoup moins impressionnant.
la source
Unity vous oblige à script, mais sans tous les passe-partout. Dans un jeu OpenGL typique, vous devrez initialiser les matrices et les caméras comme des fous. Dans Unity, vous créez un script pour indiquer le comportement de quelque chose, puis vous l'attachez à un objet pour qu'il se comporte.
la source
Si en générant beaucoup de code pour vous, vous incluriez des fonctions prédéfinies que vous pouvez utiliser pour vous faciliter la vie en ce qui concerne la détection des collisions et les calculs de rotation (bibliothèque), alors oui, cela prend beaucoup de codage de l'image et donne vous avez optimisé les versions à portée de main et prêt à partir. Principalement des fonctions dont vous aurez besoin spécifiquement pour le développement de jeux dans toutes les versions.
Cela peut sembler redondant de le dire, mais d'après mon expérience, lorsque Unity3D n'est pas occupé à planter ou à construire, cela me facilite la vie en me permettant de changer tout ce que je veux et de laisser les mathématiques basées sur Quaternion aux personnes qui ont un master en mathématiques. et me faire toujours assez confiance pour me changer ce que je veux.
Il n'écrira rien pour vous, plutôt vous aidera dans la façon dont il pense être le mieux et vous permettra d'écrire ce que vous voulez.
En un mot, flexible
la source