Shaviro
Team Future Chief

Posts: 10753
Registered: 06-00 |
printz said:
So, which are the main problems? Too buggy, unresponsive, too many operations to do to accomplish low-level crap? All this can be solved (I hope), Doom 3 is open-source now.
Most of our problems originate around the editor and the hard-coded limitations of the engine (sound familiar? ;) ). The editor is kinda half-baked and it puzzles me that they never corrected some of these errors/design flaws. Simple things like rotating part of a map is a hassle. Sure, you can rotate brushes and patches no problem. If you have entities (lights, models, monsters, etc.) selected as well, it'll seriously fuck up.
The reason for this is simple. When rotating, the editor finds a pivot point which is most likely the center of gravity, rounded down to the nearest grid point. It then subtracts the pivot point from the individual brushes and patches, rotates them and adds it back in to the geometry. That's fine. Works like a charm. The problem is that the editor skips the whole pivot point thing for the entities, so they rotate around their own axis (They use a rotation matrix instead of actually rotating the coordinates of the brush planes etc.).
Our solution for this was that I wrote a map-loader in C# (XNA) which could parse the .map file, load the entities and objects into their respective object representations, rotate the map properly and save the file. Writing the code for rotating entities took 1½ minutes. Seriously. I can't believe they didn't fix this themselves. Did they never have to rotate anything other than brushes? :P
That said, the bug hasn't even been fixed in GTK Radiant or Dark Radiant, so maybe there's some sort of fucked up structure in the editor code. Either that or there is a setting hidden away somewhere that we never found ;)
We've used the map-loader tool to circumvent quite a few problems, errors and slave tasks since then. Like searching for specific brush patterns to find a lot of similar structures and make them func_static, part of the worldspawn or just add/delete keyvals from the entities.
As for using the source code to correct the flaws, well. One problem with that is that you'll be forced to use an inferior version of the shadow algorithm because Carmack's reverse was patented by creative. That will put a strain on the performance and our levels are already doing that, so ;)
We also don't want to overextend ourselves. The map-loader tool can fix most of our problems for us.
|