Forums for Mirror's Edge - The Game
You are not logged in.
Good news everyone! I'm happy to report that I've managed to get the editor running and I've decided to give those of you that are interested a sneak peek at what the development process for the game actually looks like.
Launching the editor
The editor is part of the game itself, and I believe the same holds true for all titles based on Unreal Engine 3 (UE3), unless the developers took the effort of explicitly removing it. However, there are some resources missing from the game distribution that make it less trivial to run, and if you try to do so it will crash. Luckily, this is easily circumvented by simply copying the missing files from another game, in my case - Unreal Tournament 3. The files in question are user interface bitmaps that can be found in the "Binaries/wxRes" (and possibly wxRC) folders. After copying them to the appropriate locations in your Mirror's Edge installation folder, you can run the editor with the following command line from the game folder: "Binaries\MirrorsEdge.exe editor"![]()
The main editor viewports, with the level used for the main menu loaded. Click for full version.
Please keep in mind that this is the bare minimum the editor requires to run. There are still a lot of game-specific configuration files that are probably missing, so it will pretty much look and act like a generic UE3 editor. Still, it's more than enough to browse around and get a taste for modding the game.
Getting to know the editor
If you don't have any experience with development tools for UE3, it can look pretty daunting. The Unreal Editor is a seriously complex piece of software and it takes a long time to understand, even longer to master. I've included some resources to get you started at the end of this post, be sure to check them out if you're just starting.![]()
The generic asset browser. Here you can explore the packages that make up the game. Click for full view.![]()
The actor browser showing a tree of the scripted classes comprising the game code. Click for full view.![]()
An overview of the main menu script inside Kismet, the UE3 visual script editor. Click for full view.![]()
The materials editor, used to create complex shaders for surfaces and actors inside the game. Click for full view.
Limitations
First off, the editor is highly unstable. Brace yourself for frequent crashes and otherwise unexpected results. Obviously, the team behind the game has made modifications to the engine and this is pretty apparent when browsing the actual levels. However, as the editor is not yet officially supported, it will be pretty hard to figure out the mechanics behind the levels, even for people with some degree of experience in UE3. DICE seem to make pretty heavy use of the level streaming capabilities of the engine, and as a result a single map you see inside the game is split across multiple files.
Another very important thing to note is that all of the game content has been "cooked", i.e. prepared for distribution on all platforms. As a result, modifying and exporting assets is virtually impossible (there is a way to duplicate content from cooked packages, however in my experience this doesn't help achieve anything meaningful at the moment).![]()
An overview for a part of chapter 3, a puzzle that resides within its own level. Click for full view.
Final thoughts
Even though I don't claim to have a very sound understanding of the engine, I can appreciate the effort the team at EA DICE has put into the game. Their profound knowledge of this complex framework makes it obvious that without their help and support it will be pretty much useless to try and come up with creations of our own. That of course won't stop us from trying, and seeing how many people are eager to dig into the game's internal workings, I thought I'd give you this brief look at the tools. Consider this a call to arms for people with technical experience, so that we can start studying the process of content creation ahead of the eventual release of a supported editor!
Resources
* Unreal Development Network - The official source for UE development documentation
* Epic Games' Forums on UT3 Mods & GoW Mods
* BeyondUnreal's Wiki for UE development
* Google is your friend
Offline
Very nice. Now i have to buy Mirrors Edge for the PC as well
. Can wait to get started on this.

Offline
Crikey. The Unreal Editor has changed a lot since I last used it. It's part of the game now? Didn't see that coming. I'll have to look into this, thanks.
Especially as I want to use some of those lovely high-res unlockable drawings as a background.
Offline
yesssssssssssssss. Not long then until Mirrors edge decide to allow custom maps in MP. xD
hint hint ..

Offline
wow this looks very interesting... I'm hoping to see alot more interest here to open up mirror's edge! very high hopes (possibly even MP, lol)...
would it be possible (since UT3 and ME run on the same engine) to jerryrig some of the network code from UT3 into ME? It'd be pretty crude and hard as hell but hey nothing's impossible right? (hell, look at MTA for GTA
)
Offline
is the editor for ME 1 or is it for 2 ??
and when can i download the editor ?? do i have to purchase ??
Offline
@Tonxey - That was kind of why I started experimenting with this in the first place. Unfortunately, I haven't had any success exporting content just yet. Will look into it more thoroughly next week, I'm really busy at the moment.
@Devlin1991 - I'm excited about that as well, but when you think about it maybe it's best if they don't allow custom game clients to connect to the servers. Some cheating dickhole will find a way to exploit it and ruin the good, clean fun for the rest of us. Besides, it's unreasonable for us to expect that they will dedicate their resources to tracking our maps in the leaderboards, store ghost runs, etc.
@John9600gt - I've seen a lot of people wishing for multiplayer in a more tranditional sense, but here's what I think: coding it won't be the hardest part. What's important here is to make it fun, and that's harder than it sounds. EA DICE have put a lot of thought in making the game play well from a first-person perspective, and the "multiplayer" maps (time trials) are designed for a single runner. Just try and imagine more people on a level like those - pure chaos. At leats you can clip through the ghost runners, if those were actual people, a whole new set of problems emerges, never mind the potential for griefers.
That being said, there is room for multiplayer in Mirror's Edge in my opinion. It just has to be a different game type, with different rules. The first thing that comes to mind is a sort of a tag race with two players - one is the hunter, the other's the hunted (sort of like those PK runner sequences in the singleplayer). The hunted player has a flying start, some time to distance him/herself from the hunter, and if he/she is taken down, the roles immediately switch, the hunter becomes the prey. Haven't figured out exactly how scores would be kept though, it's just a thought.
@Remies67 - If you've bought the game, you have the editor right now. But it's pretty technical, and there's not much we can do right now.
Last edited by wysiwtf (2009-01-21 14:12:17)
Offline
wat do you mean with technical ?? can i start the editor right now ?? does the editor almost look like in your pictures ??
where is the editor located ?? folder ??
sorry for asking like that.....^^ just so excited ^^
Last edited by Remies67 (2009-01-21 14:53:02)
Offline
I second Remies67, I would like to start playing with it asap. I am actually interested in making some urban visualization 'walk-abouts'. I don't need launch pads and run-along-wall features, just a map that I can walk around in, so I am not interesting in how to make special items that are exclusive to Mirror's Edge. Also, there won't be any need for 'objectives'. I'll just exit the level when I am done walking around in it.
Currently, I am only interested in
1) Is the process for importing models from 3ds max or other packages same as other Unreal Ed games? (I guess I'll have to find out about those myself once I can launch the editor)
2) How to launch a custom map in single player mode for walking around in. (via command line)?
Later when I get a hang of the basics:
1) When you mentioned that the UnrealEd is unstable here, is it because there are too many effects and entities, and that some files are missing when effects are triggered thus crashing the program? I assume that a simple level for walking around without scripted AI and stuff should be fairly simple and stable.
2) If a level consists of indoor and outdoor areas, are they treated as "different files", and if so is it easy to handle levels across different files?
Thanks to ****
Offline
Hi devshire.
1) I can't tell you for certain, but I suspect that, yes, the process should be pretty much the same. There should be lots of info around the net for importing models (either as static meshes or actors) from 3ds and other packages, but to be honest that's not really my area of expertise or interest.
2) Launching custom levels will probably be done from the console at this point, as there is no user interface hooks for user maps as in UT3 for example. I'll try and compile a reference with examples on how to do that shortly.
3) The stability of the editor seems to be undermined by doing things that are outside of the established workflow (sorry if that sounds even more confusing). The main reason for that, from what I know, is that all the content has been prepared for distribution, and some features of the editor rely on the source assets (be it code, models, textures or whatever). Also, I suspect that EA DICE have left out some files that are essential to authoring specifically for Mirror's Edge. However, I believe that if you start a level from scratch and use models and materials from the available packages (and save often!) it should be possible to create a level. I don't believe level complexity is the main reason for instability.
4) From what I've seen, yes, indoor/outdoor transitions require the engine to stream different level files. As to whether it's easy or not - it's about creating an illusion of seamlessness... To get a better feel for it it would be best if you look at the actual levels from the game.
Sorry if I can't answer your questions completely, but at this point I haven't spent much time studying the engine, for the simple reason that I've got other things going on. But I'll definitely dig into this and try and shed some more light on the subject sooner rather than later.
Cheers!
Last edited by wysiwtf (2009-01-21 16:08:26)
Offline
Thanks again ****:
I will play around with the editor soon, and make some really simple levels like a floor plate with a few boxes of stuff to test things out. I assume that I can launch a custom level via console like the way how it is done in Brothers in Arms Hell's Highway (another Unreal 3 game that I like). I guess the console command might be exactly the same since the launch command are the same. However, I need to study the folder and file structures for the map levels more carefully to spot differences.
Offline
****, you have just gained DICE another sale on the PC. I've been waiting for a reason to buy it on PC - I already have it on 360.
I'd love to help you with the editor, if you need it, but my C++ isn't too good.
Offline
Does anyone know how the streaming in UE3 games works? I know programming but it's been so many years since I did anything with games or 3D graphics I am a clueless noob once more
Unfortunately I think the details and documentation are only available under NDA.
Does it load levels (as opposed to chapters) in one shot? I had imagined that each level is laid down on the CD in a contiguous block that can be read directly into memory, so they know that it'll take about X seconds to load the level data for this section and it takes Y seconds for Faith to run through the previous section even in the best possible path, so if Y > X by a few seconds you get a seamless transition.
I wonder how assets are managed. Some stuff like rooftop textures and billboards will obviously be shared between the different levels. I can imagine that either level assets are organized into blocks and then levels say "I need the following asset groups: rooftops, billboards" or "I need: ropeburns office assets" etc. And then these asset groups are also laid down in one strip on the CD for max throughput. The risk being you load some data that isn't necessary.
Or, references could be done discretely for each object or texture in the level and there is no grouping, but levels can intelligently back-reference to previous levels to avoid dropping and then reloading stuff that is already in memory. Eg, if you run across a rooftop level, then through a door, a few corridors, then back onto a rooftop (seems very common in ME) then the first level for outdoors chains to the indoor corridor level that is intentionally simple and fast to load, then the third rooftop level can simply say "I am using materials A B and C from the level two loads prior to me", and because the game is linear it knows ahead of time that the third level will use assets from the first, so it can avoid dropping them whilst dumping the data for the second level. In such a system I guess you'd need some sophisticated statistics to group assets that are likely to be accessed together into contiguous sections on the CD. Perhaps the game engine in a special mode can "learn" what is accessed when and then figure out the optimal CD layout.
The way streaming works is almost certainly why doors slam closed on you a few moments after you run through them. The whole ME level design is set up so that you can only move forwards and never back. Whether that's by self-closing doors or just large drops that you can't get back up, at some point you cross a transition that you can't return to, so the old data can be freed to make room for the new data that's about to be loaded in. That implies there must be some kind of ordering constraint on the levels, and that it's not a PURE "load the level you are running towards over the level you're running away from" type function. Otherwise I'm sure ME would include at least a few places where you backtrack.
There are so many interesting tradeoffs in this kind of system. You want to maximize the available memory for the current scene, but you have to be able to load a ton of non-visible stuff in the background. So does that imply that at any given time, a big chunk (half?) of the systems memory is dedicated to holding the next scene, waiting for you to run into it? Or does it stream rooms in ahead of you "just in time"? There are points in the game where it pauses so it can complete loading the next section, but the points where it pauses seems arbitrary. I mean it's not just before you open a door, normally, it can apparently happen at any time. So it must have some sense of your progress through the currently loaded scene and how complete the next scene is.
I've been assuming that loading is IO bound, but when I installed ME to my x360 hard drive, I didn't notice any difference in level loading times and I still found places where the inter-mediate loading screen appeared. So I might be wrong and loading is CPU/GPU bound (texture decompression?).
It'd be nice if a DICE guy could chime in. Inquiring minds want to know ![]()
Last edited by cantarell (2009-01-23 08:08:08)
Offline
I got the editor running, and loaded a few levels to look at. However, it is difficult to judge as to the sequence or logic of how they break up the levels into different files and how they are linked by just navigating the modeling space in UnrealEd. I didn't bother checking the different tabs to do a deeper search, but I will in order to get a better understanding of how that is done.
It seems that the skybox is not loaded when I load the levels, therefore when I navigate in outdoor areas, I don't see the skies and there are 'graphic tear' or 'streaks' that develop. I've seen a youtube video on how to create a skybox for UT3 that talked about this problem briefly. I wonder if there is a display mode that I must enter into in order to see the skybox?
Also, any doorway or area that leads to the next section of the level behaves like that too. It will appear as streaks or blurs, and I have no idea which file the next area belongs to since I can't click on any icon that contains information about those areas beyond the local area.
I also wondered if the developers first made a massive level, and then begin to break it down since navigation with these bits of area is disorientating. Adding on top of that, one has to navigate the files structure too. I guess it isn't a problem for the devs when they know the levels well. I wonder if they just built a large model in a 3d modeling package, then break the big models into pieces and then export the pieces to Unreal Ed?
I will try to make a test level first by making simple platforms and existing buildings in the game just to test it out. It will be a large enough area that won't be broken into pieces, so that I can test out the limits on how the engine can handle a level. Until I can figure out how the linking area business can be done, I will limit to outdoors area.
Final weird little observation with the in-editor game environment: if I happen to walk around an area in the game where Faith is not supposed to be normally, ie on street levels instead of the roof top areas of the level, she'll suddenly die after a little while XD.
Offline
Wow this is awesome! too bad i dont have Unreal editor, but you can save textures using Texmod and take models using 3D Ripper Dx, so you can make texture mods atleast =P
Offline
Wow, this could allow a whole new level of depth to the game with home made mods! I really can't wait until some skilled people start making their own levels! MP would be freaking awesome too!
I don't understand much of this myself at all so I leave that for those who know it to take care of. ![]()
Offline
what does MP mean ???
Offline
Remies67 wrote:
what does MP mean ???
It means multiplayer.
Offline
It's going to be tough to significantly modify the levels without lighting getting messed up. Remember that the game uses the BEAST lighting engine:
http://www.illuminatelabs.com/products/beast
Which means the shadows and so on are all pre-calculated.
You can't add a huge feature like multi-player to a game just by using UnrealEd, even if it worked flawlessly.
Offline
cantarell can you explain why the precalculated lights will cause level editing to become more difficult? I thought that the BEAST engine will just work behind the scene in UnrealEd, and that the level builder will just need to put the contents in, and put the lights in afterwards. Afterwards, the lighting should be calculated by the engines when you bake the level.
Secondly, has anyone been able to take a look and explain how sections of the levels are linked through different files? Do you guys think that the level is built as one big model somewhere else, broken into pieces, and then exported to UnrealEd?
Offline
devshire wrote:
Final weird little observation with the in-editor game environment: if I happen to walk around an area in the game where Faith is not supposed to be normally, ie on street levels instead of the roof top areas of the level, she'll suddenly die after a little while XD.
Most likely there's a trigger volume there that you're walking into that's reducing health or set to kill the player upon entering. ![]()
Offline
Why images have been removed?
Offline
devshire wrote:
Secondly, has anyone been able to take a look and explain how sections of the levels are linked through different files? Do you guys think that the level is built as one big model somewhere else, broken into pieces, and then exported to UnrealEd?
Levels aren't loaded all at once, but are broken down in sections, and loaded as player progresses through
Offline
Thanks a lot to the OP for the posts here. I bought UT3 off Steam, and the editor did indeed work...I don't think I even had any crashes once I started opening the right files (I think I opened a UT3 map first which didn't work
).
Unfortunately, today isn't as good. I went through some UE3 tutorial stuff and had saved my maps, but today I can't seem to open any existing maps...the editor always crashes. I tried deleting some cache stuff in my documents\...\unpublished directory, and I haven't tried rebooting. If you're still around, did you (or anyone else) see this, and is there a way to fix it so you can open and play custom maps without it crashing in the editor? The editor will have to do unless I can find some way of getting the console working, which I've failed at so far. ![]()
*edit*
Okay, I can load one of the actual maps (tutorial level 1) still, but my custom-saved maps crash.
I can only seem to load a custom map if I save it in the same session...if I start fresh, or load the full tutorial map and then my custom map, the custom map always crashes the editor. Any advice would be awesome. ![]()
Last edited by Blizzard (2009-02-22 19:03:55)
Offline
Hi Blizzard:
Have you tried to load your custom map to play from the command line instead of from the editor? In other words, have you tried to load it from Mirror's Edge.exe MYTESTMAP by creating a new shortcut of Mirror's Edge and adding your custom level name to end of the exe path?
I notice that it takes longer for me to load a second level in one session in the editor, and at first I thought the editor was crashing but I just let it load and eventually it did load. This happened to many different sections across different levels of the game. So Blizzard, did the editor simply crashed back to desktop, or did it just kept on loading and appear frozen?
If you can, can you show us a screenshot of your level? I have yet to find time to play with making anything in the editor but is eager to see someone making a move to try it. Did you put a skybox in your level? As stated from my earlier post, I don't know why the skyboxes are missing from the outdoor levels of Mirror's Edge when I open them in the editor, and I just kept seeing tearing and streaking when I move around while facing the area of the sky.
Also, anyone been able to figure out how the sections of the levels are linked? I don't see any trigger points in the sections that triggers loading 1 section of the level to another. Maybe I've got some display options switched off?
Offline