PDA

View Full Version : Trying to create a level editor, how much can I do?


NickThissen
01-07-2011, 10:32 AM
Hi,

First of all let me say: great game! :)


Now, I see many people requesting a level editor, and that's not very surprising, it's the first thing that popped into my mind too after playing a few levels.

So after playing the game for a few days (stuck on hard at the moment :o) I was curious how the levels were set up so I had a look in the game files. I was surprised to find that the levels were defined almost completely in simple XML files! I was pretty happy with that as it meant I might be able to read the levels and maybe even modify them or create my own levels.

So the first thing I tried is editing a level, just by hand in the XML file. I was able to change the cube spawn points, the pattern and speed of the cubes, the exit points, even the zoom level of the camera (a tip to people who are complaining about the inability to zoom: change the zoom level in the xml file if you really want to).

However, then I tried to edit the actual level geometry and I reached a disappointing conclusion: I can't.

While I can edit the locations of the 'level blocks' (basically the geometry of the level, walls), this does not seem to change the appearance of the level at all. It does change the way the cubes behave, so I am actually editing the physical location of the level blocks, but that is not reflected in the appearance of the level.

As an example, if I look up the level block that sits underneath a cube spawnpoint (the position in the level is simply an attribute of the level_block element) and remove that, then the level does not look any different, but the cube will fall through the level.

It seems like the appearance of the level is just a separate model which does not need to correspond to the actual level_block definitions in the XML file.

I tried looking for the model that corresponded to the level I was editing, but I had no clue where to look, how to open the model files, etc, so I basically gave up.



Is there any possibility at all that I could create my own level editor?

I can foresee a number of other problems beside my current problem:

- There might not be any way to add levels. Possible dirty solution: replace existing levels.

- There won't be any practical way to test my own level, besides keeping the game open in the background and switching to it every time I want to test (or even worse; load the game every time). Possible solution: besides re-writing the game from scratch, none :p

- Your levels (at least the ones I have finished) all seem to have only ONE solution. I don't know if there would be a problem with a level having multiple solutions (I don't think so) but if there is a level with multiple solutions then the hint system wouldn't work (unless you happen to have chosen the solution that is defined in the level file), so that's not very good...


My final question really: are you considering releasing a level editor? If not, can you consider releasing some information that might make it possible for others (like me) to make one? Reading the level won't be a problem, but the issues I've mentioned would make it impractical to use without some support from your end.


Thanks for any answers!

sarcacid
01-08-2011, 04:17 AM
The models are *.eso files in the steamapps\common\rush\guide\models directory. Good luck deciphering the format, though.

TRTerror
01-08-2011, 04:23 AM
oops wrong tab :x

hesselTwoTribes
01-10-2011, 03:16 AM
Nice work figuring out the XML files :)

I'd think that creating a level editor would be very hard. As you have discovered the gameplay data is simple XML but the level geometry are models in a our own custom format. Even if you could generate models in that particular format, you'd still have to recreate the look of the rest of the levels (assuming you'd want that).

Internally we have tools that automatically generate the geometry based on the gameplay data. The same tool also lets us place the gameplay data visually so we don't really edit the XML by hand (levels look like this in the "editor": http://i55.tinypic.com/28kqyyv.jpg). But I'm afraid we can't really release those tools :(

So, in short: it's pretty hard to do.

NickThissen
01-11-2011, 01:41 AM
Thanks for your reply. I thought it would be automatically generated (it would be pain to keep the models in sync with the xml otherwise).

Why can't you release the tools (or at least a 'user friendly' version, I can imagine the tools require specialized information on how the game works which is fine for you developers but would make it impossible for us to work with them). So there will never be a level editor? That's too bad :(

TwoTribes
01-11-2011, 05:44 AM
Hi Nick!

The tools are too error sensitive to be released to the public. It would kill our support department :)

We are definitely considering a level editor, but perhaps that would be something for a sequel.

BTW: really nice that you figured out how to use those XMLs :D

Cheers,


Martijn

NickThissen
01-11-2011, 06:39 AM
If you could maybe release some information on the format of the model files, then maybe people can get to work and create their own tools.

I would at least want to give it a try. The difficult part is likely how to represent the model and let the user interact with it (rotate around it, place 'blocks' in it etc). I was planning to use WPF for this as it has a very simple to use 3D framework. In fact with a bit more work I'm sure I could at least draw your levels in a WPF application (based on the XML files only) and let the user fly around them (much like the camera in the game itself). Editing the files is a whole different issue however... But if I could open and write the model files at least I have a chance and I could work on it when I have some spare time.
At the moment I wouldn't stand a chance opening the model files. It looks like plain bytes but without knowing what each byte represents I'm obviously never going to be able to read the files :p

Amander
01-12-2011, 07:54 AM
Maybe you could just release the tools with a note saying "The tools have not been made for public release, they're totally unsupported, if you screw the game up, the best you can do is redownloading the game"

TwoTribes
01-12-2011, 08:15 AM
Hi Amander,

Sorry but we can't do that. It isn't a simple "run out of the box" application. It is created with tools that are part of our proprietary engine and SDK. And this is not available to the public. Sorry.

Cheers,


Martijn

Salty-b
01-17-2011, 04:07 AM
I just hopes that a sequel don't come up to soon, so it will become a milk machine, at least support this game fully first:)

progger1986
02-16-2011, 08:18 AM
It should be possible to create a visual-level model with the given <levelcubes>, so creating a level-editor is very easy.
For user-levels it should be enough.

So you just need to create a visual-game model for user-levels and to add the ability to load user-levels. the rest can be done by us. :)

progger1986
02-16-2011, 11:55 AM
After ca 2h of work i was able to display the geometry of a level.
And all my work was from scratch.
My small porgram runs smotth even with not optimized code. (there is much space for speedup)

So it is possible to show the level via its level_cubes. So please add support for user-levels. You have almost everything to do that. The only things that are missing:

1. Show Level via <level_cube>'s : Very easy.
2. Ability to load user-leves : Should not be that difficult.

progger1986
02-23-2011, 08:42 AM
For those who are interestet:
I have created a level-spec that describes how the level in rush are discribed.

http://www.linux-ecke.de/rushSpec.pdf

progger1986
02-27-2011, 01:27 AM
Afer exerimenting eith the eso files if found out:
- The frist 224Bytes are for the header

- The Model is described by triangles (12Byte per Triangle). The First 4 Bytes gives the X coordinate, the next 4 Bytes Y and the last 4Byte Z.

What still needed to find out:

- How are the textures applied ?
- Negative coodinates
- How big is one Cube ?
- When does the triangle begin ?
- How to get the filename (The last 6 letters of each filename is 16A8DF) And each file has 16 letters (my conjecture: It is a 8Byte hash of a name)
- Perhaps some more things