Les loulous de On Mirror’s Edge ont réussi à le débloquer à l’aide d’une méthode extrêmement simple : copier les fichiers manquants à partir d’une version d’Unreal Tournament 3.

Du coup, on a accès à l’éditeur et également à la façon dont l’équipe de DICE s’y est prise, pour monter leurs niveaux. C’est l’occasion de voir des choses complètement aberrantes comme le fait de quasiement tout avoir balancé dans le Persistent et de gérer le stream via des scripts kismet, mais aussi des choses assez intelligentes comme une gestion de préfabs bien foutue et un système de navpoints upgradé permettant aux hélicos de se comporter ‘normalement’ dans les airs.

Par contre, il n’y a pas eu énormément de développement niveau ergonomie de l’éditeur,et du coup les LDs de DICE ont du un peu galérer. Difficile de distinguer une map normale de sa version Time Trial par exemple. La plupart des éléments custom se retrouvent en Kismet, il n’y a pas des masses de nouveaux actors.
On se rend compte également des contraintes de prod, notamment avec le système de collisions un peu foireux qui les à conduit à remplacer les coll créées dans Max par de simple Blocking Volumes afin d’économiser en mémoire sur console (chose que l’on a nous aussi vécue en interne).
Si vous voulez vous amuser avec, gardez à l’idée que les maps sont assez lourdes (entre 900 et 1,2Go de RAM prise et près de 2Go de SWAP). Les systèmes 32bits crasheront donc plus souvent. Les forums de On Mirror’s Edge sont bourrés de tips, servez-vous en 🙂
15 réponses sur « Mirror’s Edge editor »
Tu devrais essayer de vulgariser tes articles, ou au moins d’y ajouter un petit lexique. Ca permettrait aux gens « normaux » de comprendre, et de s’instruire un peu. Je suis sûr que c’est intéressant, mais je doute que grand monde sache ce qu’est un script Kismet ou des blocking volumes.
Et la GI, c’est possible de la recalculer ?
Faire des maps perso c’est possible alors? Faudrait voir si le jeu est moddable en profondeure.
Le stream sous UT est gérer directement par sont moteur non ? Enfin ca sera pas la première fois qu’un jeu sort et que les lvl designer n’ont jamais toucher a l’éditeur (ex: Dark Messiah).
J’ai été complètement largué niveau mapping à partir, à peu près, de l’arrivée des textures avec du bump mapping.
Mais je me souviens qu’à l’époque, on remplissait quasiment tous le niveau avec des blocking volumes, et ce n’était donc pas le décors qui servait à la gestion des collisions, mais bien le squelette des blocking volumes.
En quoi mirrors’ edge diffère-t-il ?
Le « Blocking volumes » je pense que c’est l’équivalent du « Player Clip » sous Half Life 2, Après moi je trouve pas si con d’utiliser cette technique dans certain cas. Après ça dépend bien sur du moteur graphique qui le gère, je suis limite sur du Hammer et pas du UEdit.
Persistent : map qui réfère l’ensemble des sub-levels (voir ça comme les layers de Photoshop) d’un niveau de jeu. Il contient les informations liées au streaming.
Kismet : le système de script nodal d’Unreal (avec des boites que l’on relie entre elles avec des connecteurs).
Prefabs : groupe d’objets aux propriétés différentes servant à faciliter la pose dans le niveau.
Navpoints : réseau de navigation à partir de points qui permet aux bots de se déplacer dans un niveau
Actors : ce sont des objets que l’on pose dans le niveau (static meshes, playerstarts, skeletal, lights, sons…)
Blocking volumes : comme ca a été dit précédemment, ce sont des volumes qui servent à simuler les collisions. Normalement on utilise davantage les collisions dans 3dsmax, ca évite que les LD se tapent toutes les coll à refaire à la main.
Divide : forcément non vu qu’il faut Beast 🙂 On a toujours accès cependant à l’éclairage de base d’Unreal.
SPTX : il est possible de faire des maps perso ouais. On tatonne encore pas mal, mais on a tous les outils pour le faire. On peut même ajouter des Speedruns et des Time Trials.
Expmini : le stream est géré par Unreal en « dur », mais c’est aux LDs de lui dire où et quand il doit streamer une nouvelle zone. Ca n’est pas du stream « Distance » à la GTA (quoique la fonctionnalité est présente), mais du stream par « Sas » qui offre pas mal de contrôle, mais manque cruellement d’ergonomie.
Quant aux blocking volumes à placer à la main, c’est tellement long et chiant à placer que ca en devient carrément contre-productif :/
Ca donne envie de faire quelques maps dessus ! (fais chier, je l’ai que sur PS3 …)
Par contre faut oublier les maps solo à mon avis (ça m’étonnerait qu’on puisse builder Kynapse, pour la navitation des IA).
Sinon c’est marrant de voir comme la plupart des boites galèrent à utiliser l’UE3 (toujours cette impression que la productivité est pas terrible sur ce moteur alors que c’est le plus utilisé).
Et je peux pas m’empêcher de répondre à EXpMiNi : parmi les devs de Dark Messiah, il y avait pas mal d’anciens moddeurs HL1 et 2, donc des gens qui connaissaient pas mal l’éditeur (les problèmes du jeu étaient plutôt un gros manque de finission/stabilité par manque de temps :/). (ça reste un avis très peu objectif vu que j’étais LD sur Dark Messiah :p)
@squintik Très probablement, juste quand y jouant il y avait des Fad distance foireux, des textures manquante, HDR mal maîtrisé, enfin des erreurs a la con, donc oui peut-être que c’est un manque de finissions ou pas, certaine maps ramer alors que si Hammer été correctement utiliser elle ne devrait pas.
L’avantage aussi de l’UEdit c’est que visuellement on peut voir se qu’on fait contrairement a Half-Life 2.
Ouais, faire le blocking des collision c’est long et chiand, mais ça c’est toujours fait après tout, je vois pas pourquoi il y aurait du avoir de changements. Les créations de collisions sous max sont encore plus longues et chiantes à l’échelle d’un niveau complet.
Les systèmes de botpathing par contre, détaille un peu, ça m’intéresse : on voit que les flyingRoadPathNode habituels sur les screens, qu’est-ce qui a été révélé de plus 🙂
Hellkeeper : Le but sous l’unreal engine 3 est en général de faire des mesh assez « génériques » pour pouvoir les réutiliser au maximum dans chaque map, du coup les collisions sont sensées être assez simple pour chaque mesh. (dans les cas les plus simple, on peut directement générer ces collisions dans l’éditeur).
C’est laaaargement plus efficace (productif) d’avoir des collisions sur le mesh plutôt que de faire des tas de BlockingVolume dans l’éditeur (surtout que l’édition de BSP est bien naze dans l’éditeur …).
Et pour le pathfind des IA, il me semblait avoir lu quelque part qu’ils avaient utilisé Kynapse (un middleware souvent utilisé avec l’UE3), mais je retrouve plus l’info donc je me suis peut-être planté.
D’ailleurs en parlant des collisions générées par l’éditeur, on peut enfin faire des trucs concaves où c’est toujours comme sous UED 3.0 où il fallait se cantonner aux 6,10,18 et 26 DOP box (qui permettait donc de générer environ rien à partir de l’éditeur) ?
Du peu que j’ai touché l’editeur, il (l’éditeur) peu définir automatiquement la collision du static, t’as le choix entre box, cylinder, complex, dans le dernier cas il se base sur les vertex du mesh.
Donc t’es beaucoup moins limité. Essayes-le au moins.
heu ya moyen d’exporter ume map mirror edge sur gtkradiant ?
ou comment faire pour
enfin bref c’est l’ued j’y ai jamais touché…
car le jeu ca me fait penser a defrag !!! un mod q3 de trickjumping…
Hellkeeper : Les collisions ca restera toujours convexe sous unreal. Pour le reste, vaut mieux les faire sous Max même si c’est galère.
nico: non, ça n’est pas possible. Il n’existe pas d’outil de conversion à ma connaissance.