Game Development Community

Plan for John Vanderbeck

by John Vanderbeck · 05/22/2004 (2:24 pm) · 7 comments

The Torque GUI Builder i'd say is for the most part built. The entire framework is done and working better than i'd originally planned. The only thing left to do is add in support for more control types (it currently only supports 3 types of controls) and perhaps more options for control positioning (currently there is support for absolute positioning, as well as "above, below, left, right" options). The fact that I need to add these in got me thinking about some things though. I was thinkign to myself how if I provided some easy way to add controls then perhaps some people in the community would be willign to help me flesh out the control support. Then that got my thinking what about people who have added custom control types to the engine. They would need an easy way to add those to the system. Custom controls then got me thinking that there might be soem cstom issues wth displaying those controls that I couldn't think of. That all got me thinking, "Why not make the controls and layout options dynamic. Stick those into a plugin system." So that's what i'm workign on now. When its done (which should be tonight), the control types and layout options will be completely abstracted away from the core system. There will be two directories named "controls" and "layouts". You will be able to put together a very simple script then drop it into the appropriate directory and the system will load and use it. This will make adding new control types and layout options as simple as writing the plugin (Which is really only a single function for either one) and dropping it into the directory.

My goal is to have that done tonight after work, but I have to be honest with myself and account for the fact that I might be too tired to do it. I have to work tomorrow as well but I think I have monday off (need to double check that). So at the very worst it will be finished by Monday. Once this part is finished, I can declare the Torque GUI Builder finished. At least the initial version/release of it. Anyone can then easily add controls and hopefully I can get some help on that. With that finished, I can then focus my efforts back on the Show Tool v2. The core of that is also done but I had it in limbo waiting on the GUI system which I need for it. With the GUI Builder done i'll refocus on the Show Tool and shoudl have a very basic initial relase sometime next week. It will NOT have ALL the features of the original show tool, but it will have the basic features such as loading a shape and playing animations. This will allow all you artists to see the direction i'm goign with it and complain or praise that direction so I can adjust things for the next release :)

If anyone would be willing to help out with the GUI Builder by writing some control plugins please let me know. This is really more grunt work then anything else, but the less controls I have to do myself the more time I have to work on the Show Tool. While the system isn't in place for me to show exactly how adding controls will work, it will basically be as simple as something like this:

// Control plugin for the control: GuiMLTextCtrl
package TGUIControl_GuiMLTextCtrl
{
	// override the function which actually creates the control
	function createGUIControl(%control)
	{
		// Dynamiclly create the code which will create this control
		%code = "%newControl = new GuiMLTextCtrl(" @ %control.name @ ") {" @
			"profile = \"" @ %control.profile @ "\";" @
			"horizSizing = \"" @ %control.definition.horizSizing @ "\";" @
			"vertSizing = \"" @ %control.definition.vertSizing @ "\";" @
			"position = \"" @ %control.x SPC %control.y @ "\";" @
			"extent = \"" @ %control.extentX SPC %control.extentY @ "\";" @
			"minExtent = \"" @ %control.definition.minExtent @ "\";" @
			"visible = 1;" @
			"command = \"" @ %control.command @ "\";" @
			"text = \"" @ %control.text @ "\";" @
			"groupNum = " @ %control.definition.groupNum @ ";" @
			"lineSpacing = " @ %control.definition.lineSpacing @ ";" @
			"allowColorChars = " @ %control.definition.allowColorChars @ ";" @
			"maxChars = " @ %control.definition.maxChars @ ";" @
		"};";
		// If the user has debug mode set, we display the code we generated
		if ($guiBuilder.debug)
			echo(%code);
		// evaluate (run) the code we created
		eval(%code);
		// return the control we created
		return %newControl;		
	}
};

#1
05/22/2004 (8:21 pm)
Have you considered adding this to the IDE that Davis and Harold were working on? Perhaps some of their own new controls would help?

(BTW, I could be totally wrong on this idea)

-Eric
#2
05/23/2004 (2:17 am)
John and I have already discussed some of that, plus some other heavy duty work I was planning on editor wise.
#3
05/23/2004 (3:11 am)
The plugin system is now finished and a first copy is in Davis' hands to beat on. Barring him finding any drastic bugs that take a long time to fix, a first public release will occur tomorrow (guess its actually today now, Sunday, but you know how it isn't even tomorrow until you go to sleep :p ) night.
#4
05/23/2004 (8:23 am)
There I go being psychic again.

Tomorrow's lotto: 4, 9, 16, 22, 48.
#5
05/23/2004 (3:30 pm)
Eric: Exactly how many times have you done this to me now - mention an idea, then I say "But... I'm already doing that?" :-) You gotta change your name on here to Eric "The Psychic" Forhan ;-)
#6
05/24/2004 (1:34 am)
I knew you were going to say that. ;-)
#7
05/28/2004 (5:27 pm)
Hello John.

How is the show tool coming these days.

Ben