I want to write a GUI toolkit for my MSc project and I
would really value any help since I have many ideas but dont know
which one to choose.
- My first thought was to go with C and opengl and write my own
toolkit of functions that will allow for this UI construction.
- Second I was thinking of using Visual C# and OGL to build a UI.
- Final choice was to use an existing engine functions for drawing
and rendering, was thinking of Cipher engine, and make a UI tool.
I dont have a problem with all the above but I want to know what
would be the industry more interested about if I was going to present
it to someone. Since my final goal is to built user interefaces like
for example the ones we see in Neverwinter nights, world of warcraft,
Doom III etc. what would be the best choice.
Use C++, you need the inheretence for efficient widget class implementations and you need something standard that game developers will use. i.e. not C#. OpenGL can produce some pretty effects don’t do something crazy like use an engine to implement on top of unless that’s your specific objective or you have very specific reasons for this. OpenGL will be cleaner and simpler.
Just code it up with raw event handling like mouse clicks, keyboard and mouse motion. Doom style interfaces are trivial to implement.
You can check for 2D containment within a button hold input focus while mouse is down, drag sliders with mouse motion and input focus. That the rendering uses OpenGL is just beautification. Your main focus will be event handling and mouse hit detection to make the widgets work well.
I can send you my C hacked effort if you’d like it has 3D textured buttons & sliders with dynamic lighting & simple audio. You’d want to really clean that code up and make some decent C++ classes with inheritence that you cold export efficiently for others to use. I hacked mine a few years ago over a weekend for an “OpenGL Challenge” that got cancelled, it’s rotting somewhere on my hard drive.
Email me if you want it.
Can I raccomand to take a look at Java’s “event listener” interfaces?
I am actually using function callbacks but after a friend pointed out this, I guess I’ll switch to this approach, much easier to handle than function pointers.