The most complicated thing was the Save/Load system of GameEdit (Actually sometimes it may be still a problem). Why? Pretty easy. I don't have ANY influence into the WMP and $$M format. That means I have to write and parse the WMP / $$M 100% correctly. If I would wrote an own file format I could have often used easier ways (no object groups like in the WMP format, less information - paths! - etc.).

A second big problem is simply said C-Script. In C++ you could parse a big WMP (3MB +) file at once (because of local strings, delete/new instructions etc.). I have to split the WMP file into 50KB chunks. This will result into new problems (The WMP file itself consits of Object Cunks). If I split a file into 50kb chunks I can not say if after 50KB there is a block I would have to read.

A I forgot.. The 3rd problem is that I often have to think around 4 corners. Why? Because I'm not allowed to change ANYTHING of the User-Objects / Map etc. if he don't want me to do this. I'm not allowed to Save temporary data into skills, because they might be filled. I'm not allowed to temporary change some Material information, because they might be filled with some other information.

There are many many other problems.. but okay