I would like to work on a new samples framework for CEGUI, here is my proposal:
Motivation
The current samples have to be compiled and started seperately which is unconvenient for people who want to have quick look at the capabilities of the CEGUI library. The samples framework of the Ogre engine manages to put all samples together in one framework, where users can preview, select, and start demos from within a single executable. Something like this would be nice to have for CEGUI as well. Additionally a lot of the samples are not up-to-date anymore or do not represent CEGUI as good as it would deserve. These demos could be improved, removed or replaced with better demos.
Project
As one part of the project i suggest to unify the samples/demos into one executable which would show all demos in side-reel, the specific visual implementation can be discussed. For example a couple of screens, each rendering a GUI would be an option. Then a specific screen could be selected, which will focus this demo in full-screen which will then be optimized to run in best render performance. Or a more distant view can be chosen that grants more overview and also shows a small summary next to each screen, telling the users what the specific sample will do. The demos/samples that are desired to be shown in the framework would be compiled as part of the project or be loaded as lua/python script files. The possibility to use Lua and Python projects would be offered by the samples framework.
The next part would be refurnishing the demos. First i would investigate which demos could be improved or replaced or which ones need to be fully removed. Then I will determine which functionalities are not yet covered by the demos, and would make a good addition to the demos. It might also be of interest to create a very simple and small demo, which will show the user a minimum but graphically and skin-customised case, so he/she won't be overwhelmed by the existing full-functionality look'n'feels, and might get a better feeling for what can be done in which of the xml files and to what extent modifications can and should be done.
If there will be time left after all this , i would like to create a visually appealing 3D viewer for the sample browser instead of a simpler 2D view.
Timeline
April - June:
- Work out detailled plan with mentor(s) how the framework should be structured internally and how the samples should be loaded and be displayed in the viewer
- Look through all samples and make suggestions to the CEGUI team which ones should be changed and what demos could be added
- Work out a plan for the changes in the samples
- Setup a basic project for the framework, so the work can be started without delays in July
July:
- Setup a basic version for the samples viewer, so that the existing C++, python and Lua demos can already be displayed in the viewer
- If Python/Lua demos are not available, create simple ones so they can be used in the samples viewer
End of July - August:
- Rework the samples together with the associated layout, looknfeel and imageset files. Eventually add samples.
- Refurnish the samples viewer and its code, so it reaches a releasable status
September:
- Improve the samples viewer and the samples furtherly, according to suggestions of CEGUI team and the community
- Reach a status where the code and the other files are refactored, documented and the changes could be merged into CEGUI's trunk without problems
Why I would be a good choice
I'm currently studying my master "Visual Computing" at TU Vienna and I am very interested in computer graphics, games and anything related to that. Since I've got acquainted with the CEGUI library, it has been the library of my choice for my leisure and university projects that needed a GUI. While working on my projects using CEGUI, I have also made a few contributions to the library in the past.
I am motivated to create this samples framework, as I think it would make people notice CEGUI's potential better. As for the requirements, I have a lot of experience with C++ and some experience with Lua, but I am interested to learn more about Lua and Python and how they work in relation to CEGUI.
Edit1: Timeline updated, edited the project description according to Martin's comment
... I will update the rest soon