Progress is documented more on beyondunreal forums. Although he has had to rewrite it from the ground up so there isn't a whole lot to see yet.. but the description of the back end system sounds promising, a nice front end is nothing without functionality.
Announcement
Collapse
No announcement yet.
UWindow 2 Development Blog
Collapse
X
-
Sorry about the enormous delay
Yes, as Bersy has mentioned I frequent the BeyondUnreal forums more than I do here as I have belonged to that community for a longer period of time. I'll probably try to switch between the forums as much as I can. Here's some updates straight from the horse's mouth.
I'm pushing for a progress release set for the 29th of May, or, in about three days time. A progress release is simply a snapshot of the work I have already done, it certainly won't be a complete user interface but it is an important milestone. Since uWindows2 has never graced any other machine than my own, I have no idea about performance over a range of machines and I'd simply like to get some feed back on my current code. The progress release will have the bot match window working at the very least. The bot match window will allow you to select the game type, map, number of bots, mutators and lets you start a match. The number of options for each is the bare minimum. I offer no support for custom game types, maps, advanced bot configuration or mutators (for this progress release!), thus simply all the stock content should work as expected. If custom content works, then that's a bonus. A progress release is just a 'progress' release, it's not alpha, it's not beta. So if you have a few minutes on the 29th, please help me test it out (just don't expect a fully working user interface!).
I'll work out a test plan, and a document which let's you know what is working and what bugs are recognised.
One of the aspects of UT3's user interface that I did actually like, was the idea of Data Providers. The only aspect which I am not terribly fond about with it, is that it's native. This makes it very difficult for people outside Epic who can't view the source code see how it actually works. The stub functions inside the script declaration don't help an awful much, and it is prone to crashing if you provide odd values. But the concept itself is neat. Thus I've also decided to create a similar system. Right now the map data provider class is created and working. It will automatically fill a UW_Component with a list of UW_Component_Label's that have appropriate actions bound to them. The actions select the label when clicked, and also change the map image. Note how I am selecting components now. I use a relative structure, and this will allow other components and other objects to select components to then modify their values. Data providers in my case are script driven, so it will be open for other people to add their own data providers in. Here's the current results of the current code base. While coding this version, I noticed that I have to refactor quite a few designs soon, which I will do during the week.
Click here for the screenshot
This is the configuration file that I currently use to drive the entire interface. Different themes are allowed to have their own configuration files + resource packages and themes are switchable without having to restart Unreal Tournament 3 (at this point it is). This will mean that when people develop their own themes or tweak existing ones to how they like it, they won't need to override uWindow2's original themes.
Code:[canvas UW_StyleSheet] Ln=background-image:UWindowResource.MaterialInstance.Background Ln=background-coordinates:0.f,0.f,1.f,0.768f Ln=dimensions:0.f,0.f,1.f,1.f [maplist UW_StyleSheet] Ln=dimensions:0.f,0.f,1.f,1.f Ln=padding:2,2,-4,-4 [mapimage UW_StyleSheet] Ln=dimensions:0.f,0.25f,1.f,0.5f Ln=padding:2,2,-4,-4 [window UW_StyleSheet] Ln=background-image:UWindowResource.Texture.WindowFrame Ln=background-style:stretched Ln=dimensions:0.25f,0.25f,0.5f,0.5f Ln=padding:4,14,-8,-18 [text UW_StyleSheet] Ln=dimensions:0.f,0.f,1.f,16 [text UW_Component_Label] Text="Test text" TextPadding=3,3,3,3 StyleSheetNames=text [window_botmatch UW_Component] StyleSheetNames=window AlignmentClassName="UWindow.UW_Alignment_Horizontal" BoundsDefinitions=(Dimensions="0.f,0.f,1.f,1.f",Actions=((ActionClassName="UWindow.UW_Action_BringToTop",Parameters=""))) BoundsDefinitions=(Dimensions="0.f,0.f,1.f,10",Margin="4,4,-8,0",Actions=((ActionClassName="UWindow.UW_Action_Drag",Parameters=""))) BoundsDefinitions=(Dimensions="0.f,0.f,4,1.f",Actions=((ActionClassName="UWindow.UW_Action_ResizeL",Parameters=""))) BoundsDefinitions=(Dimensions="0.f,0.f,1.f,4",Actions=((ActionClassName="UWindow.UW_Action_ResizeT",Parameters=""))) BoundsDefinitions=(Dimensions="1.f,0.f,4,1.f",Margin="-4,0,0,0",Actions=((ActionClassName="UWindow.UW_Action_ResizeR",Parameters=""))) BoundsDefinitions=(Dimensions="0.f,1.f,1.f,4",Margin="0,-4,0,0",Actions=((ActionClassName="UWindow.UW_Action_ResizeB",Parameters=""))) ChildComponents=mapimage ChildComponents=maplist [maplist UW_Component] StyleSheetNames=maplist AlignmentClassName="UWindow.UW_Alignment_Vertical" DataProviderClassName="UWindow.UW_DataProvider_MapList" DataProviderParameters="label-class:text" DataProviderParameters="game-type:DM" DataProviderParameters="image-component:../../mapimage" [mapimage UW_Component_Image] StyleSheetNames=mapimage
Comment
-
Awesomeness. Any way I can help?
I'm a fairly inexperienced programmer, but I have a decent understanding of C/C++/C#, as well as basic OOP, polymorphism, data structures (stacks, linked lists, binary trees).
I'm a fast learner, I just need a project to motivate me. Having seen the syntax, I don't think learning UScript will be much of a challenge.
Comment
-
Originally posted by Solid Snake View PostThank you for the offer, but with a lot programming only projects adding another programmer doesn't always speed up the whole process.
ps. Also very experienced in Photoshop if you need any graphic work done for the front-end. But it looks like you probably have that covered too.
Comment
-
Update, pushing on with getting the progress release done.
The game type list now works, and theres also interaction between the two independent tabs. Changing a game type will also change the map list. Basic feature, but it's done without too much hard coding.
Click here for the screenshot
Looks a bit prettier as I did some new graphics for the tab components. Suppose all I have to do now is link up the 'Start' button, and then add another two tabs for 'mutators' and 'bots'.
Code:[canvas UW_StyleSheet] Ln=background-image:UWindowResource.MaterialInstance.Background Ln=background-coordinates:0.f,0.f,1.f,0.768f Ln=dimensions:0.f,0.f,1.f,1.f [tabpanel UW_StyleSheet] Ln=dimensions:0.f,0.f,1.f,0.9.f [buttonbar UW_StyleSheet] Ln=dimensions:0.f,0.f,1.f,0.1.f Ln=background-image:UWindowResource.RaisedBacking Ln=background-style:stretched [button UW_StyleSheet] Ln=dimensions:1.f,1.f,45,16 Ln=margin:-49,-20,0,0 Ln=background-image:UWindowResource.Texture.Button_Active Ln=background-style:stretched [panel UW_StyleSheet] Ln=dimensions:0.f,0.f,1.f,1.f Ln=padding:2,2,-4,-4 Ln=background-image:UWindowResource.Texture.TabFrame Ln=background-style:stretched [maplist UW_StyleSheet] Ln=dimensions:0.f,0.f,1.f,1.f Ln=padding:2,2,-4,-4 [mapimage UW_StyleSheet] Ln=dimensions:0.f,0.25f,1.f,0.5f Ln=margin:2,2,-4,-4 [window UW_StyleSheet] Ln=background-image:UWindowResource.Texture.WindowFrame Ln=background-style:stretched Ln=dimensions:0.25f,0.25f,0.5f,0.5f Ln=padding:4,14,-8,-18 [tabtext UW_StyleSheet] Ln=dimensions:0.f,0.f,1.f,16 Ln=background-image:UWindowResource.Texture.Tab Ln=background-style:stretched [text UW_StyleSheet] Ln=dimensions:0.f,0.f,1.f,16 [text UW_Component_Label] Text="Test text" TextPadding=3,3,3,3 StyleSheetNames=text [tabtext UW_Component_Label] TextPadding=3,3,3,3 StyleSheetNames=tabtext [window_botmatch UW_Component] StyleSheetNames=window AlignmentClassName="UWindow.UW_Alignment_Vertical" BoundsDefinitions=(Dimensions="0.f,0.f,1.f,1.f",Actions=((ActionClassName="UWindow.UW_Action_BringToTop",Parameters=""))) BoundsDefinitions=(Dimensions="0.f,0.f,1.f,10",Margin="4,4,-8,0",Actions=((ActionClassName="UWindow.UW_Action_Drag",Parameters=""))) BoundsDefinitions=(Dimensions="0.f,0.f,4,1.f",Actions=((ActionClassName="UWindow.UW_Action_ResizeL",Parameters=""))) BoundsDefinitions=(Dimensions="0.f,0.f,1.f,4",Actions=((ActionClassName="UWindow.UW_Action_ResizeT",Parameters=""))) BoundsDefinitions=(Dimensions="1.f,0.f,4,1.f",Margin="-4,0,0,0",Actions=((ActionClassName="UWindow.UW_Action_ResizeR",Parameters=""))) BoundsDefinitions=(Dimensions="0.f,1.f,1.f,4",Margin="0,-4,0,0",Actions=((ActionClassName="UWindow.UW_Action_ResizeB",Parameters=""))) ChildComponents=tabpanel ChildComponents=buttonbar [startbutton UW_Component_Label] StyleSheetNames=button Text="Start" TextPadding=12,2,3,3 TextColor=0,0,0,255 [buttonbar UW_Component] StyleSheetNames=buttonbar ChildComponents=startbutton [tabpanel UW_Component_Tabs] StyleSheetNames=tabpanel TabHeight=16 TabClassName="tabtext" TabNames="Gametype" TabNames="Map" ChildComponents=gametypepanel ChildComponents=mappanel [mappanel UW_Component] StyleSheetNames=panel AlignmentClassName="UWindow.UW_Alignment_Horizontal" ChildComponents=mapimage ChildComponents=maplist [maplist UW_Component] StyleSheetNames=maplist AlignmentClassName="UWindow.UW_Alignment_Vertical" DataProviderClassName="UWindow.UW_DataProvider_MapList" DataProviderParameters="label-class:text" DataProviderParameters="game-type:DM" DataProviderParameters="image-component:../mapimage" [mapimage UW_Component_Image] StyleSheetNames=mapimage AspectRatio=0.5f [gametypepanel UW_Component] StyleSheetNames=panel AlignmentClassName="UWindow.UW_Alignment_Horizontal" ChildComponents=gametypeimage ChildComponents=gametypelist [gametypelist UW_Component] StyleSheetNames=maplist AlignmentClassName="UWindow.UW_Alignment_Vertical" DataProviderClassName="UWindow.UW_DataProvider_GameTypeList" DataProviderParameters="label-class:text" DataProviderParameters="game-type:CTF" DataProviderParameters="image-component:../gametypeimage" DataProviderParameters="maplist-component:../../mappanel/maplist" [gametypeimage UW_Component_Image] StyleSheetNames=mapimage AspectRatio=0.5f [canvas UW_Component] StyleSheetNames=canvas
Comment
-
[screenshot]http://i19.photobucket.com/albums/b178/SolidSnakeNZ/uWindow12062008.jpg[/screenshot]
- Components are now able to also apply an alignment onto themselves horizontally and vertically (left, center, right or top, middle, bottom)
- Fixed mouse cursor reverting back to default cursor when hoving over other components that used the same cursor
- Adjusted the way the combo boxes worked
- Created a toggle component which can toggle between different numbers of styles. These were used to create the check boxes.
Comment
-
[screenshot]http://i19.photobucket.com/albums/b178/SolidSnakeNZ/uWindow13062008.jpg[/screenshot]
- Added a scrollable panel. Still have not quite finished it, but label components are now able to be smoothly scrolled using this. This 'fixes' the problem where lists were often going out of the window frame when the window frame was too small to contain it. Images can also be partially rendered to achieve a smooth scrolling system. Actions are also handled appropriately
- Removed various redundant configuration options, and shifted them to the style sheet system (such as text padding, and text color)
- Changed the style sheet system to use strict typed parameters instead of loose strings. This is so that a lot more errors can be parsed by Unreal Engine instead of hiding the errors.
- Added another parameter to the coordinate system called 'Scroll'. This is used to achieve the smooth scrolling effect.
Comment
-
me too.. please consider us using this in www.tacticalops3.com
we really want to recreate that ut99 feel
Comment
-
Originally posted by martinblank View PostOMG!!!1!!eleven!!!2
But, will you be able to use it, even if servers you are playing on are not? Like will it work when you hit ESC on a server that does not have it serverside?
I would imagine that Epic would help him with that, especially since this guy is doing their job for them.
Comment
Comment