The three virtues of a programmer: Laziness, Impatience, and Hubris. – Larry Wall

Legacy:Jerome-X/Developer Journal

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search

UCEditor - The early stages (Part 1)[edit]

Inception (added 30.04.03)[edit]

Don't worry with the terminology... I just didn't find a better term for this :)

I started UCEditor mainly for two reasons: The lack of really good tools for UT, although there are one or two nice ones out there. But nothing really modular, scalable, open source and free. The second reason is that I simply want to get a grip on developing for eclipse, as I'm using eclipse at work :)

Elaboration (added 30.04.03)[edit]

This part was mainly to create a prototype that shows the capabilities of eclipse but also to find out what's needed to continue developing a solid, well designed and usable IDE for UT.

The prototype has been released and the situation is now as following:

The basic behaviour of the plugin (setting up a project, editing, launching/debugging, settings/preferences) are easy to set up and eclipse offers a lot of classes which can be used easily to get something up and runnin very quickly.

However everything that needs language specific stuff is a bit more difficult. The main issues here is that everything in eclipse that's not language-independend must be reimplemented. E.g. a content outline, code assist, hierarchical view etc. To fill these elements with life there need to be a parser that extracts all information from the UC class

files and creates objects with this information. These classes must be well designed.

The Java framework for eclipse has been developed as a separate feature which is a set of plugins. The so called JDT. Therefore we needs something like this as well. I decided to take the same approach as the JDT, but to prevent working on that for several years, this needs to be a lot slimmer. Fortunately UC is a bit simpler than Java, but also has some peculiarities, like states or properties, but no imports or classpaths, or no interfaces.

So the first steps will be to define a framework consisting of interfaces relating to a UC project structure. Elements in this domain must defined. This can be an interesting task.

That's it for now, once the design for the core framework is ready, I'll post some diagrams here :)

Solid Snake: Hey Jerome-X long time no see! How you been?