Loading 1

[Loading] Irvin : UDK, ou quand Epic Games décida de faire un gros cadeau




En ce jeudi placé sous le signe du repos, nous avons le plaisir de laisser la parole à un lecteur qui nous suit depuis le début et qui ne connaît pas la langue de bois : Irvin ! Pour ce [Loading] il va nous parler d’Epic Games (Gears of War, Unreal Tournament 3, etc.) mais surtout de l’innovation que cette boîte a mise sur le marché et qui a créé une petite révolution dans le milieu de la création numérique, son moteur graphique : l’Unreal Engine. Avec l’Unreal Development Kit elle a permis aux autres entreprises de profiter de sa technologie, ce qui a débouché sur des jeux comme Batman : Arkham Asylum, BioShock, Mirror’s Edge, et j’en passe… Mais cet article vous dévoilera aussi un aspect surprenant de l’avenir des Indie Games ! Je lui laisse la parole pour une explication plus en profondeur !



UDK.

Non, ce n’est pas l’Union Démocratique des Koalas, seulement le Unreal Development Kit.

De prime abord, on aurait tendance à se dire « boarf, c’est l’éditeur d’Unreal… ». C’est à la fois vrai et faux.


Unreal Engine.

Unreal, c’est avant tout un engin de jeu, un moteur graphique performant. Sa dernière mouture est dérivée en 3 variantes :

  • Unreal Engine 3, dont la licence coûterait approximativement dans les 700kilos de patates US (négociable), et qui se cache derrière Mass Effect 2, Borderlands, Batman Asylum machinchouette, Gears of War, etc. En gros, ça crache du lourd, du coriace, du solide niveau graphique. En général on reconnaît assez rapidement les jeux développés avec cet engin car tout semble « ciré ».

  • Unreal Engine 3 Atlas, développé par Epic Games China, et qui a vocation à faire tourner des meuporg (les fonctions réseaux requises sont déjà implémentées, etc), et dont NCsoft a déjà fait l’acquisition de deux licences (une pour le futur Blade&Soul notamment)

  • UDK : sa mouture « gratuite ».


J’ai dit gratuit ?

Oui, gratuit.

Bien sur, il existe un certain nombre de « mais », tant financiers que techniques. Epic Games n’est pas l’Armée du Salut des Dev Indépendants, et ils ne saboteront pas leur principale source de revenu en donnant leur engin gratuitement.

Les conditions générales d’usage de l’UDK sont les suivantes :

  • Si vous utilisez UDK en interne, sans distribution extérieure, à des fins de développement : 2500$/an et par machine. En gros, si vous développez en interne un simulateur d’évacuation en cas d’incendie (tout à fait faisable avec UDK), ça vous coûte des sous.

  • Si vous comptez VENDRE votre application, cela vous coûtera 99$ à donner de suite, puis 25% du revenu généré à partir du moment où vous dépassez les 5000$ US de chiffre d’affaire grâce à votre application. Revenus incluant bien sûr la publicité, les abonnements, les sponsors, etc. Il ne faut pas les prendre pour des imbéciles, ils ont prévus les bidouilles de petits malins.

  • Si votre application est totalement gratuite, sans aucun but lucratif, cela vous coûtera la modeste somme de keudal, keutchi, 0, niet, nada.


Ouais mais alors il sert à rien l’engin à 700k patates US !

Arrêtez donc de les prendre pour des idiots chez Epic Games.

Il y a d’autres mais, et pas des moindres, qui attendent le développeur indépendant qui, des étoiles pleins les yeux, envahit les forums de UDK sans faire de recherche, en posant un bon gros sujet bien laid :

« bjr, gé 12 an, g sui kévin, é je ve fér 1 meuporg tro kewl !!! on fé com3n ? »

On rigole, on rigole, mais malheureusement ce genre de petits punks en culottes courtes ont effectivement commis ce type d’atrocités sur le dit forum. Paix à leur âme.

Globalement, et sans entrer dans les détails techniques scabreux, une licence d’UDK et une licence d’UT Engine 3, c’est comme un stéphanois à côté d’un Lyonnais, comme un ch’ti à côté d’un Parisien, comme un type de québec à côté d’un Montréalais : c’est attachant, un peu pathétique, mais ça ne sait pas encore que l’on a inventé l’eau tiède, l’électricité et ce genre de choses.

Ah, il vaut mieux que je reste dans le domaine technique ? Bon et bien, voilà :

  • le support : à 700k $US, vous avez un support technique fiable, l’accès à une documentation avancée, là où avec le UDK, la documentation reste minimale, et soumise au bon vouloir de la communauté.

  • le code natif : aie aie aie. Ce petit point fut pendant un moment « final » pour bien des rêves d’indépendants. UDK ne permet pas de faire du « code natif ». En gros, au lieu de faire du bon gros code C++, java ou j’en passe, on doit se bouffer du UTScript maison (qui tourne bieeeen moins vite) et rester dans les cases définies par Epic. C’est tout à fait suffisant pour transformer des mods d’UT3 en « stand alone », mais pour du lourd, pour du meuporg, c’est pas possib’, l’architecture réseau et graphique d’UT3 n’étant pas conçue pour gérer autant de joueurs, et étant plutôt orientée FPS. De plus, cela force les programmeurs à apprendre le UTScript. Mais il y a un moyen détourné d’exécuter du code externe, C++, java et j’en passe, pour UDK : les dll. Par l’usage de librairies externes, on peut exécuter nos fonctions maisons, et donc transformer en profondeur le UDK, notamment en lui ajoutant des fonctions serveur plus avancées. De plus, elles tourneront plus vite que le UTscript. C’est un peu du bricolage, ça ne remplace pas le code natif, mais ça permet de compenser.


En définitive.

Malgré ses limitations, le UDK est un vrai bijou à côté des solutions gratuites open source, comme Unity, JME, Ogre3D. Contrairement à ces solutions gratuites bien mignonnes de pingouins, le UDK conserve la plupart des fonctionnalités de l’éditeur de l’Unreal Engine, possède un moteur graphique au top, moderne, stable, robuste.

Là où le graphiste travaillant sur Ogre3D ou JME doit supplier le programmeur de lui coder des shaders (simplifions grossièrement: les matériaux), UDK lui offre une superbe interface graphique orientée nodes (des boitiers de fonctions à relier) qui va générer ces shaders ! Plus besoin d’un type maîtrisant le C pour faire un superbe matériel d’océan animé, le level designer ou le graphiste peut le faire SEUL.

Il en va de même pour l’importation d’objets décoratifs, statiques ou animés, de la gestion du niveau de détail (affichage en basse résolution des éléments graphiques au loin, en haute résolution des éléments proches), des collisions, des particules !!

Là encore, pour des scripts simples, le level designer peut travailler directement dans l’éditeur pour les conçevoir. Vous voulez un piège qui, si un joueur marche dans la zone, déclenche un élément animé, des particules, et blesse le joueur ? Pas besoin d’appeler le programmeur, le level designer peut le faire directement via kismet, un éditeur d’évènements là encore par nodes, avec qui le codeur peut éventuellement communiquer.  


This is the end, my only friend, the end…

Vous connaissez déjà les jeux commerciaux conçus avec l’Unreal Engine, sans forcément savoir que c’est lui qui tourne sous le capot. Par contre, connaissez vous les jeux qui peuvent être conçus avec le UDK ?

Quelques maquettes jouables ici : http://udk.com/showcase

Plus que jamais, l’avenir du jeu vidéo viendra des indépendants. Et ça, les studios l’ont compris. On verra probablement de plus en plus des jeux/éditeur comme Never Winter Nights. Valve a déjà fait un pas dans cette direction, il est désormais possible d’envoyer nos chapeaux/armes/accessoires en 3D pour Team Fortress 2, et si l’objet correspond au style et aux contraintes techniques propres à TF2, il sera intégré au jeu.

A quoi bon payer un type à ajouter du contenu quand vos clients sont près à le faire avec un grand sourire et pour pas un rond ?


Le grain de pixel d’Eskarina :

[Loading] est une rubrique publiée tous les jeudi, et c’est la vôtre. Elle a pour but de publier sur le blog les écrits / dessins / etc. de nos lecteurs. N’hésitez pas à nous faire parvenir vos tests, strips, coup de cœur et de gueule si vous voulez les faire partager sur Kiss My Geek ! Vous pouvez nous envoyer tout ça à eskarina@kissmygeek.com et à oujiz@kissmygeek.com.


Recommandé pour vous

1 Comment

  • Reply
    Xonark
    17 Mai 2010 1:26

    Je sais pas trop quoi penser d’UDK…

    M’étant plus intéressé à la partie coding, il faut savoir que l’UnrealScript est un langage orienté objet, avec une syntaxe plus ou moins proche du C, mais c’est là que les similitudes s’arrêtent. Il faut aussi savoir que l’UnrealScript n’a pas été inventé avec UDK : il existe depuis les premiers Unreal. L’UnrealScript, lui, a grandement évolué depuis, et beaucoup de tutoriels sur ce langage ne sont plus vraiment valables. Enfin, UnrealScript est lent, il faut alors coder intelligemment, et utiliser au plus les fonctionalités du moteur (qui lui est codé en C++). Personnellement, je conseille d’avoir déjà une expérience en programmation avant de se lancer là dedans.

Répondre à Xonark Annuler la réponse.

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *