CEGUI Development process

Discussion regarding the development of CEGUI itself - as opposed to questions about CEGUI usage that should be in the help forums.

Moderators: CEGUI MVP, CEGUI Team

User avatar
baxissimo
Quite a regular
Quite a regular
Posts: 60
Joined: Tue Feb 22, 2005 08:04
Location: Tokyo, JAPAN
Contact:

CEGUI Development process

Postby baxissimo » Tue Mar 14, 2006 14:27

This is just my opinion, but to me it seems like the development process behind CEGUI is rather too opaque for its own good. From my perspective, anyway, things like this new ItemEntry list widget thing just seem to come out of the blue. How was it decided that all the list-based widgets would be redone? Why? Who is responsible? What were the design goals? How are those goals going to be met by the new design? Was there a review process of some sort for the rewrite? Etc. etc. The ItemEntry thing is just one example. You could substitute pretty much any line item on the Roadmap page. The roadmap page itself is another example. How were those priorities and milestones decided and why?

I CEGUI ultimately suffers from the current situation for several reasons.

First, people who might be willing to contribute have no idea what's going on or where contributions are most needed, so they just sit back and wait for things to appear, or just beg on the forums for them to appear.

Second people who do decide to try and contribute can end up going through a whole lot of trouble only to be told in the end -- "oh that part is being completely rewritten, so your patch is useless". I recall reading such a scenario unfold in the forum a while back relating to the ItemEntry change. That's very discouraging not only for the budding young contributor, but also for everyone who sees such exchanges unfold on the forums. They think "man, I'm glad I'm not that guy who just wasted all that time."

Third, it doesn't make the best use of all the brainpower out there. Even if folks aren't able to contribute code directly, or don't have time to code, having design reviews out in the open can solicit insightful feedback and spark discussions of ramifications of changes that perhaps the designer hadn't considered. I know I don't really have much time to contribute code right now, but I do have experience using other UI toolkits like Qt, wxWidgets, FOX, GLUI, FLTK, and one other not really worth mentioning. Who knows, if I had a chance to read over design plans ahead of time, I might just have some useful suggestions.

Perhaps I'm wrong and all this does happen here on the forums. I just don't seem to recall having ever seen any such thing. I have seen things like "I'm working on an X patch and I'll post a link when I'm done", but by the time a patch is posted, or code is checked into CVS most of the design work is already done. Then after it's posted you'll see "let me know if you have any suggestions." Well, reading code is hard. It's not a very efficient way to determine the intents, goals, high-level mechanisms, etc. that were in the developer's mind.

If these types of discussions are happening on the forums then I humbly suggest that they're kind of hard to find amongst all the other myriad topics being discussed. In that case it would be nice to get in the habbit of adding a page to the wiki summarizing the arguments surrounding the design of a particular feature. But even better would probably be if a wiki page was created from the beginning discussing the rationale and proposed design of the new feature or rewrite, and a message posted to the forum soliciting feedback.

Ok, well, that's just my 2jpy.
If you want to know what put the bee in my bonnet to post this, it was mainly reading Stani's messages about starting a new Python IDE project that unites the developers of all the existing Python IDEs (http://groups.google.com/group/pyxides).

User avatar
lindquist
CEGUI Team (Retired)
Posts: 770
Joined: Mon Jan 24, 2005 21:20
Location: Copenhagen, Denmark

Postby lindquist » Wed Mar 15, 2006 05:07

You are completely and absolutely right. The CEGUI development process it locked up tightly in our private dev forum and the IRC channel.

First I'd like comment on the ItemEntry matter.
The whole incidence you're mentioning is very unfortunate. DrPain did an awesome job and I pretty much killed that. The ItemEntry Listbox was at that time almost ready for public review, but I ran into some trouble with the MultiColumnList and realised that my trouble were'nt unique, but rather coming from some missing/lacking features in CEGUI.
Some of the work needed has been done now, but it's still not really there...

Had I known then that I would fail to commit my work over the next 4 months, I would certainly not have discouraged DrPain like I did.

Enough of that. Unfortunate as it is - it's how it is.

I competely agree that CEGUI needs public review and discussion of the design. The thing is that CrazyEddie and I are really the only developers on this project. Dalfy - our newest team member - is starting get involved, but we're really just two busy people working on the base library.
Often when something is aired on the IRC channel or the forum, feedback is extremely sparse. So I personally just move on and implement it like I feel is right. This is obviously not the best way to go about things...

So as you can probably tell by now, CEGUI is developed in a manner that solely suit us. The developers. We do what we find fun, needed, but most importantly what we feel like. For this to change the community would need to step in and demand a place around the design table - like you're doing now.

Anyway, I'm extremely glad that you have brough this issue to the foreground, as it's very serious, and have been hiding for too long. I'm just not sure where to start.

P.S. One problem I see as probably the biggest is that our leader CrazyEddie tends to disappear now and then. In these times CEGUI stalls. I'm not sure what to do. I have plenty ideas, but I'm not committing anything "new" without talking it through with the master. Dont take this badly CE.

User avatar
baxissimo
Quite a regular
Quite a regular
Posts: 60
Joined: Tue Feb 22, 2005 08:04
Location: Tokyo, JAPAN
Contact:

Postby baxissimo » Wed Mar 15, 2006 06:06

lindquist wrote:You are completely and absolutely right. The CEGUI development process it locked up tightly in our private dev forum and the IRC channel.


Losing things that happen on IRC is only natural. That makes sense. But what's the need for a private dev forum? Do you mean literallly that there's some forum somewhere where you guys discuss design stuff that other folks cannot see?

lindquist wrote:So as you can probably tell by now, CEGUI is developed in a manner that solely suit us. The developers.


That's perfectly fine and the way it should be since you are the ones putting in the time. Especially in the initial stages. There has to be some sort of fire burning first before people will come to huddle around it. But once it's burning, everyone can start brining their own logs to add to the fire. But I think you've pretty much got the flame started now. Time to go to the next stage.

I'm not really sure the best way myself, but for starters, open up that private dev forum. Post IRC logs about design stuff on the Wiki or the forum.

It takes effort to communicate the status of a project. Maybe you could start keeping a public developer's blog where you jot down notes about what you're thinking about doing, what you think needs doing etc., problems with how the ListItem API is turning out. I could just be a top-level Forum topic, for that matter: "Developer Blogs".

lindquist wrote:P.S. One problem I see as probably the biggest is that our leader CrazyEddie tends to disappear now and then.

Well, it could be worse. At least CE is willing to let other people join the dev team. I was using the FOX toolkit for a while, and the main guy behind that holds it very close to his chest. No one has access to CVS besides him, so when he's away or distracted by other priorities, nothing can get fixed, or progress forward. Kudos to CE for opening up his creation to other developers besides himself. And for bringing you on board. You seem to be a great asset to the CE team.

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Postby CrazyEddie » Wed Mar 15, 2006 10:44

Hi,

I do agree that more openness and input on the design side of things would be a good thing. Indeed, it is true that such an arrangement was basically how things started out for CEGUI; the original version as posted about on the GameDev.Net forums was pretty much built and refined based solely on feedback from the guys over there, and then a similar situation occurred again on the Ogre forums as the early Mk-2 system was developed.

To be truly honest about the way that CEGUI has been developed since those early days, the real issue has been a lack of solid direction and planning. Once the base systems and core widgets had been implemented, I think that most of the time we've have no real idea where we're heading, much less how to get there. Is this a good situation? No, it's not. Who is to blame for this? Well, that would have to be me. Whilst around 85% to 90% of the code was written by me, I feel that it is true that in many ways, by and large, for the past 18 months, my leadership of the project (or lack thereof) has probably been of huge detriment.

This lack of overall direction has meant that development on the system is largely re-active. What I mean by this is that somebody, usually one of the developers, will suggest some new idea or feature, and if any of us find it interesting or inspiring enough, they will go off and code that feature in whatever manner they see fit, whilst getting input from the other developers on any part they're unsure of. Any idea or suggestion that does not cause such “instant inspiration” is put on a TODO list somewhere and will get implemented 'whenever', which in many cases means it will be lucky to ever see the light of day.

As mentioned by lindquist, my many spontaneous, unexplained and unannounced disappearances also do not help things. I can only apologise for this, but the fact is that I have absolutely enormous motivational issues regarding my work on CEGUI, and indeed with computing / programming in general. I have pretty much been sat in front of a computer, coding in some form or another for over 20 years; over this time pretty much everything else has been sacrificed to feed the obsession. But the problem is, when I look back and think about whether or not it was “worth it”, whether what I have gotten out of that time was valuable and worthwhile, more and more, I find the answer is no.

I know that I am not alone in being in such a situation, and that some of you guys out there will have been “at it” even longer than I have, and that maybe you do not have these same 'issues' that I have, and you know what? That's great. But, I can only express what I am feeling, the position that I find myself in. If that makes people think of me as lame or whatever, then that's also fine.

So, does me saying things like this mean that 12 months after my original “departure” as project lead for CEGUI, I am going to pull the same stunt again? I don't know. I care about the project immensely. I would never purposefully do anything that held back the project, or that caused the project to die, or any of those bad things. Am I still interested in working on the project? Yes, I think I will always hold some desire to add to and contribute further to CEGUI, though currently I am sorely lacking in motivation.

I mentioned on IRC after I returned from a break at Christmas that I would prefer others to take over development of CEGUI and the day to day running of the project. It would be my preference to perhaps stay on as a general overseer, co-ordinator, or figure-head; a role that would require a vastly reduced amount of overall activity from what I have held until now. After stating this, we all kind of got swept up in things again, and this momentum kept things ticking along – especially with some excitement about a 0.5.0 release and a license change and what have you. Unfortunately, I have again found myself in, what has more recently been, ever-familiar territory; I just feel a total lack of interest in not only this project, but all things computer related.

I'm in a position with regards to the project that I just don't know what to do. I could take some time off, like I did last time, but ultimately, we're just going to end up in the same situation again. I really don't want to keep leaving you guys in the lurch, and then coming back, then a few months later I go off on one again.

CE.

User avatar
baxissimo
Quite a regular
Quite a regular
Posts: 60
Joined: Tue Feb 22, 2005 08:04
Location: Tokyo, JAPAN
Contact:

Postby baxissimo » Wed Mar 15, 2006 12:52

Wow. Thanks for putting it all out there like that, CrazyEd. I hope you are out having a raging good time living life during those "mysterious disappearances" of yours, and making some great memories to look back on 20 years from now.

Meanwhile, CEGUI is definitely poised to take over the world. :-) It would be a shame to just see it fizzle out due to lack of direction. Seriously though, there've been a bunch of 3D HW-based GUIs over the years from mui, to pui, to glui, to glgooey, to GLOW, and probably many others I've never heard of, but none of them made it to the place where CEGUI is today. It's got a pretty solid foundation with support (or at least hooks) for skinning, internationalization, multiple drawing back-ends, input system independence, a fairly decent event system, and scripting. Anyway, any number of people, including the folks at Ogre3D have surveyed the land and come to the conclusion that CEGUI is the most promising thing out there when it comes to on-screen game-guis, so I'm not saying anything new here.

So what's the best way forward? I think it's quite possible for you to get to the place where you'd like to be, as a somewhat remote BDFL of CEGUI. I think there just needs to be some sort of effort made to bring in the wider community in now.

How about making a big push to solicit proposals and enhancement requests. Something like "CEGUI is approaching a milestone, so where should it go from here? Post your thoughts on what CEGUI really needs."

And it could be both big and small. Looking at the tutorial Xadeck posted just recently, you can see he has several insightful comments about how how CEGUI could be made better with some small changes. I'm not sure why he chose to sneak them in as asides in a tutorial rather than bring them up on the forum or something, but that's what he did. There may be a lot of people with bees in their bonnet who just haven't felt that there was any point in bringing it up.

At any rate, a simple approach like the developers just coming straight out and asking the community "what do YOU think CEGUI needs?" might be an easy and fruitful step to take. Just start a thread like that on the forum. But it should be a dev and not just someone like me, cause if I say it it'll just sound like I'm complaining like I always do :roll: Then maybe later if there are several big categories that come out of that, there can be a poll to see which one most people would like to see prioritized. Seeing that can help motivate someone watching from the wings, who kinda wanted that feature too, but just didn't want to go at it alone, or didn't feel it was worth it to go to the trouble if no one else needed it.

Another thread to start might be one to solicit usage cases. "How do you use or plan to use CEGUI?" What kind of apps are you making? Games? Something else? How complex are the GUIs you need? Just button based menus a la most FPS games? Or do you need the full list widget business? Will you have a another more traditional non-integrated GUI system too (like wx or Qt)?

I like the PEP thing that Python uses. If you'd like to see something added to Python, and you're willing to spend the time to design and code it, you can submit a PEP. Everyone can read over it then and comment on its worthiness, and in the end the BDFL decides whether it's in or not. Fundamentally I guess it's not so different from an enhancement request in a bug tracker, but PEPs are supposed to be more thought out than that. Not just "dood, we need a scrollbar widget". It should be something that the submitter is serious enough about to spend time doing the design and implementation of. The PEPs explain the rationale, and the possible downsides, and implementation issues, along with usage examples. I don't know if it could work for CEGUI, but at the very least it could end up providing an interesting archive of GUI ideas. On-screen game gui is neat because you have the potential to totally break the mold. Everything can be animated for instance. Or you can include 3D widgets like the arc-ball rotation widget in GLUI.

Anyway, I do hope, CE, that you can get to the point where you don't have to spend any more time on CE than you really want to, just making high-level architecture decisions, and taking the occasional bow when people rave about how great CEGUI is. :-)

BTW, this new forum is already a great step in the right direction. At least I know I'm coming here more often now, and think Jacmoe drops by much more than he used to.

User avatar
Dalfy
CEGUI Team (Retired)
Posts: 130
Joined: Tue Oct 11, 2005 16:13
Location: Paris, FRANCE
Contact:

Postby Dalfy » Wed Mar 15, 2006 19:20

Hello, like lindquist says, I am new and I am not able at the moment to contribute large change to the system. I am discovering step by step the internals of this wonderfull beast and learn a lot by trying helping on IRC. We have a talk before I join the team with CE, lindquist on this topics and did not find a perfect solution.


I just want to add a little thing about CEGUI, what you are asking even if it's perfectly justified is something that can be expected of a compagny. CEGUI project is a community project and so it's also up to the communauty to get involve and make some steps toward a better project management approach more visibility, etc. The community can start pages on the wiki and ask for the team to enhance them, this section of the forum is here for you to make your comment and suggestion and feature request, poll and other. If it's always the core team that start discussion the discussion are always oriented where "what we want to implement" which might not be what user like you want. But I don't think there is a way for us to provide commercial level practice around the library. CEGUI have to be fun for devs too ;)


Wiki and forum is a place for any user to ask what he misses or proposes some solutions as you are doing at the moment. Thanks for it ;)

User avatar
baxissimo
Quite a regular
Quite a regular
Posts: 60
Joined: Tue Feb 22, 2005 08:04
Location: Tokyo, JAPAN
Contact:

Postby baxissimo » Thu Mar 16, 2006 00:09

Dalfy wrote:Hello, like lindquist says, I am new...


Howdy Dalfy! Glad to have you on board.

Dalfy wrote:I just want to add a little thing about CEGUI, what you are asking even if it's perfectly justified is something that can be expected of a compagny. CEGUI project is a community project and so it's also up to the communauty to get involve and make some steps toward a better project management approach more visibility, etc.
The community can start pages on the wiki and ask for the team to enhance them, this section of the forum is here for you to make your comment and suggestion and feature request, poll and other. If it's always the core team that start discussion the discussion are always oriented where "what we want to implement" which might not be what user like you want. But I don't think there is a way for us to provide commercial level practice around the library. CEGUI have to be fun for devs too ;)


I guess the main point I'd like to make is that the culture surrounding an open source project depends heavily on the tone set by the lead developers. I think what you are saying is that the community shouldn't expect corporate-level support because the developers are just doing this for their own enjoyment. That's valid, but that's not really what I'm suggesting. I'm just saying that what you do sets the tone. If people come in and see a forum filled with exciting ideas about future directions for the project that can get them excited about the possibilities too, and make them want to participate and contribute. But if they see just a bunch of bug reports and support requests, and occasionally a post saying "the next version will be done soon" it's not very interesting, and it doesn't make me feel like I'm a member of an open source developer community. It makes me feel like there's a wall between us like in commercial software where I'm on the USER side, and you guys are on the DEVELOPER side. There shouldn't be such a hard line distinction.


Anyway, thanks to all of you for responding to this post. It definitely shows that you care. :-) And I agree Dalfy, the fact that I could post this here and get such thoughtful responses shows that the system is working to some extent now. I just think it could be even better.

Some more thoughts about specific steps that could be taken:

Blender developers have weekly IRC meetings to discuss the project direction milestones etc. Not that many people actually attend these meetings, but summaries are always posted to the mailing list afterwards to keep everyone who's interested up to date on the latest developments and what's in coming down the pipe.

As I mentioned before I have seen occcasionally developers blogs, that devs of projects use as a mostly one-way channel to keep users and developers up-to-date on the current thinking and issues with the project.

Lets see... other successful open source projects ...

OpenSceneGraph has a couple of guys that are real iron horses. If you have a few lead devs like that, then well, you're set. But that's not really a best practice that can be easily emulated. :-)

wxWidgets has a few iron horse guys, Julian Smart, Vladim Zeltin, et al.
wxPython has Robin Dunn.

There's sinbad and mental and a few others over at Ogre3D.

Numpy has Travis Olliphant.

...hmm. I guess the bottom line is most projects that do well are doing well because of a handful of maniacal devs who just keep cranking.

Which I guess is why I'm suggesting the best strategy for CEGUI is to be as open as possible to try to attract some more of those iron horses. Will it work? Er, I don't know. But at least it could make these forums a more interesting place to hang out. :-)

[edit]
I've been poking around the forums a little more, and I have to admit, that perhaps you guys are doing more in the openness and community encuragement etc than I gave you credit for. I myself disappeared from CEGUI for about 6moths for various reasons, but finally I'm gearing up to return to my CEGUI-using project, so you'll probably be seeing more of me around here as I get back into it. I still think that more design and planning info on the wiki, and things like summaries of design discussions on IRC, polling for the most desired features, etc would be a very good thing for CEGUI, and may pay off more in the long run even if it diverts time from answering questions on the forum.

Long live CEGUI!
[/edit]

User avatar
jacmoe
Just can't stay away
Just can't stay away
Posts: 136
Joined: Sun Apr 03, 2005 14:18
Location: Holbaek, Denmark
Contact:

Postby jacmoe » Fri Mar 17, 2006 22:30

Wow.
This topic is really laden. :)

Thank you baxissimo for eloquently letting the cat out of the bag!

And for Crazy Eddie for creating this gem of a GUI library! :hammer:

I tried a whole lot of GUI libs - and none came even close to CEGUI.
When Antiarc on Tue Feb 10, 2004 posted a link to Crazy Eddie's Gui Library in a topic called Possible GUI Solution, I saw the light!
There was absolutely no doubt in my mind: this gem of a GUI library had everything one could possibly want! :D
I really wanted a GUI like in Morrowind, and CEGUI delivered all that - and more!

Kudos to spoke for sending that email which started the mk2! :)

No wonder OGRE decided to make it the one and only GUI. :D

Lately, I have also sensed some lack of direction - and agree that CEGUI maybe needs a brainstorm or two.

<edit>
In contrast to the 0.4 release of CEGUI, I have no clear picture of what CEGUI 0.5 means.

It probably has to do with the hype of the Falagard skinning extensions, which sounded great. And opened up a lot of new possibilities.
I think many CEGUI users - myself included - are still trying to figure out how to actually put this to good use.

And then we heard that just about everything CEGUI is about to change with the advent of 0.5 - that's where I lost track of things.. :?

I mean - CEGUI is great - but maybe we should concentrate on what to make of what we already have?
</edit>

I have a pretty good overview of the Ogre community, and I know that several people are (more or less openly) trying to make a competing Ogre GUI solution.
And I know that some people have said that CEGUI has its quirks, but is worth it.
Most people, however, are very pleased with CEGUI.
Sure, the learning curve might seem a bit steep for newcomers.
And sometimes the way to do CEGUI programming is not that obvious.

The Ogre community is probably unique, because Ogre has no other GUI than CEGUI.

IMO, it would be very constructive to perform open discussions about CEGUI - simple questions like:
What do you like the most about CEGUI?
What do you like the least?
What features would you like to see in CEGUI?
Etc.

I think it would be a good idea to open a topic @ the Ogre Feature Request Forum.
More traffic there, and people who are not frequenting the CEGUI Forum would be given a chance to speak up.

I am glad that the traffic is slowly building up here - the CEGUI Forum is a more interesting place now. :)

<post_scriptum>
I will be lurking here not much longer - when I get to the CEGUI parts of my project, I will start being an active forum user.
I just haven't done enough CEGUI programming to answer questions, or be of any use in other ways, yet. :)
</post_scriptum>


Return to “CEGUI Library Development Discussion”

Who is online

Users browsing this forum: No registered users and 12 guests