Page 1 of 3

BZWorkbench is in the Works

Posted: Tue May 22, 2007 11:42 pm
by jude-
Attention all BZFlag map developers:

This summer, as one of the four chosen Google Summer of Code developers for BZFlag, I will be developing a modern, graphical, BZW-2.0-compliant world editor to accompany this already great game. As some of you may know, development doesn't start until the end of May, so right now I'm just gearing up for the project by writing up the project specs, a timetable, etc. You can see some of my initial user interface specs here: http://www.u.arizona.edu/~jnelson/bzworkbench.html

There are three main design goals from the UI perspective: it must be easy to use, it must be easy to learn, and it must enable its user to make levels quickly. Before I start coding, I'm curious as to what you all, the end-users, would like to see in BZWorkbench, regarding the UI. I'll consider any additional usability features not present in the aforementioned link, but I won't promise I'll implement them :)

Regards,
Jude Nelson

Posted: Tue May 22, 2007 11:53 pm
by macsforme
WOW... looks like you've put a lot of effort into this already. Looking forward to see how it turns out!

Posted: Wed May 23, 2007 12:35 am
by Spazzy McGee
In iBZEdit, there was a handy little tank model that's freely moveable in the world - this acts as a kind of measuring stick. I found that quite a nice feature to have, during my minimal use of iBZEdit, (I'm more of a Wings3D kinda guy).

What may also be useful is some sort of wireframe mode.

Posted: Wed May 23, 2007 1:31 am
by Hannibal
I think the layout and interface could be improved, I think a touch of color and a better font would do nicely. But hey, seems you've got enough work as it is.

Posted: Wed May 23, 2007 5:01 am
by Mostly Harmless!
It's very well planned. I just disagree with the way selected objects look. I'd like to be able to see the shapes in more dimensions. When selected, they seem to become silhouettes which are harder to use then just a recolored model, maybe with bolder lines. It might not be a problem with simple objects, but with more complex groups it might lead to a little confusion.

Posted: Wed May 23, 2007 5:23 am
by jude-
Hannibal wrote:I think the layout and interface could be improved, I think a touch of color and a better font would do nicely. But hey, seems you've got enough work as it is.
Obviously. The real thing will use FLTK 1.1.7 widgets; the UI mock-ups were thrown together in The GIMP :)

What font do you recommend?
Spazzy Mcgee wrote:In iBZEdit, there was a handy little tank model that's freely moveable in the world - this acts as a kind of measuring stick. I found that quite a nice feature to have, during my minimal use of iBZEdit, (I'm more of a Wings3D kinda guy).
Yeah, that'll definitely be there :). One of the other things I was considering along with this is allowing the user to navigate the level from the in-game perspective, to get a feel for the level without launching the client.
Mostly Harmless! wrote:It's very well planned. I just disagree with the way selected objects look. I'd like to be able to see the shapes in more dimensions. When selected, they seem to become silhouettes which are harder to use then just a recolored model, maybe with bolder lines. It might not be a problem with simple objects, but with more complex groups it might lead to a little confusion.
It looks that way because of my inadequate knowledge of Blender :). The real thing will just shade the object green (or whatever color), rather than making the entire object one solid color. I agree--it IS confusing ;)

Thank you all for your replies!

Posted: Wed May 23, 2007 6:55 am
by Saturos
Welcome jude, nice to have you here. :)
I didnt have the time to read all of it yet, so maybe my question is already answered somewhere... will the editor be multiplatform? Seeing that you seem to work on Linux, I am glad it wont be Windows-only and that I'll be able to use it on my linuxbox. Still it would be nice to have it work on all platforms.

btw, you got a pm.

Cheers,
Satu

Posted: Wed May 23, 2007 7:16 am
by Grace F
I have a suggestion. With the objects, once you have 1 on your map could you add in a tool that allows your to change it so it leans to either side you choose. Much like this.

You click on the 'lean' tool then click and drag the object. So you could turn a Square, into a Rhombus.


The 3d User Interfaces is what interested me the most. I read almost all that was written at the link above. I absolutely cannot wait for this to come out :D

Posted: Wed May 23, 2007 8:49 am
by ts
Looks quite good but there are a few bad things I've spottet:

The menus are a no-go on Mac OS X that way.
"The Master Configuration Dialog" is limiting. Matrix multiplication is not cumulative so the order of scale, shift and shear operations do matter. The dialog implies you can't swap the order..leading to the requirement of computing the correct units of existing maps and the map authors may not understand what has been done to the shift and shear operations.

Posted: Wed May 23, 2007 7:04 pm
by jude-
Saturos wrote:Welcome jude, nice to have you here. :)
I didnt have the time to read all of it yet, so maybe my question is already answered somewhere... will the editor be multiplatform? Seeing that you seem to work on Linux, I am glad it wont be Windows-only and that I'll be able to use it on my linuxbox. Still it would be nice to have it work on all platforms.
It will DEFINITELY work on Windows, Linux, and Mac OS X; possibly other UNIXes.
Grace F wrote:I have a suggestion. With the objects, once you have 1 on your map could you add in a tool that allows your to change it so it leans to either side you choose. Much like this.

You click on the 'lean' tool then click and drag the object. So you could turn a Square, into a Rhombus.
Yup, it will have a shear (i.e. a "lean") tool.
ts wrote:The menus are a no-go on Mac OS X that way.
Could you elaborate please? I'm not sure what you mean.
ts wrote:"The Master Configuration Dialog" is limiting. Matrix multiplication is not cumulative so the order of scale, shift and shear operations do matter. The dialog implies you can't swap the order..leading to the requirement of computing the correct units of existing maps and the map authors may not understand what has been done to the shift and shear operations.
Hmmm...this is true. Thanks for catching that! Anyway, I've updated the UI to reflect that. What the user will be able to do is add or remove transformation operations, select what type of operation they are, and fill in the details specific to that operation.

Posted: Wed May 23, 2007 7:58 pm
by Goodbye2U
I'd like 2 things from this:

A nice long undo "log" (you can undo a lot of things you did, if necessary)

And be able to place 2.0 map objects (one-way drive-thru walls, circular arch
teleporters, stuff like that)

I'm sure everyone would like these. :D
BTW, I think what you are doing is great. :wink:

Posted: Wed May 23, 2007 8:27 pm
by CannonBallGuy
If you had looked at jude's link, you would have seen what map objects would be available.
Teleporters are 1.x objects. One-way walls are meshes.

Posted: Wed May 23, 2007 9:41 pm
by Mostly Harmless!
I think that maybe a different way to render an SW world weapon. Something that showed the approximate radius of an SW, and maybe a way to change the radius (for all SW's).

Posted: Wed May 23, 2007 9:54 pm
by jude-
Goodbye2U wrote:I'd like 2 things from this:

A nice long undo "log" (you can undo a lot of things you did, if necessary)

And be able to place 2.0 map objects (one-way drive-thru walls, circular arch
teleporters, stuff like that)
Long undo log...got it!
The editor will be completely BZW-2.0 compliant, and will support meshes, arches, etc. unique to BZFlag 2.0 and higher.
Mostly Harmless! wrote:I think that maybe a different way to render an SW world weapon. Something that showed the approximate radius of an SW, and maybe a way to change the radius (for all SW's).
Show world weapon radius...check!
What do you recommend?

Posted: Wed May 23, 2007 10:03 pm
by ts
jude- wrote:
ts wrote:The menus are a no-go on Mac OS X that way.
Could you elaborate please? I'm not sure what you mean.
There is an exact menu specification regarding Mac OS X. The system automatically creates a menu with the name of the application and puts system stuff inside (like services, quit etc) and, if the app requests, a preferences and about entry. Next menu follows is called "File" with open, save, print and similar entries. "Edit" is a half automatic menu where it's entries get activated/deactivated by the system on the fly, depending on context. More menus may follow, then "Window" menu application has to request from system if it deals with multiple windows and last a "Help" menu. Every context menu choice needs to have the same functionality right in the menus of menu bar, too.

That's platform specific but that is the spec, if one does not follow it will work but it will look like an alien application.
jude- wrote:
ts wrote:"The Master Configuration Dialog" is limiting. Matrix multiplication is not cumulative so the order of scale, shift and shear operations do matter. The dialog implies you can't swap the order..leading to the requirement of computing the correct units of existing maps and the map authors may not understand what has been done to the shift and shear operations.
Hmmm...this is true. Thanks for catching that! Anyway, I've updated the UI to reflect that. What the user will be able to do is add or remove transformation operations, select what type of operation they are, and fill in the details specific to that operation.
Hrm, now that I think of it, I tend to think the order of the scaling is irrelevant but order of shear and shift does matter for sure.

If any doubts feel free to ask the other devs. I tend to be a bit confused. :?

Posted: Wed May 23, 2007 11:15 pm
by Tanner
Oh nice work. Sounds like you're on the right road.

-Maybe shot paths (for tanks or world weapons) to determine if they will hit the right place.
-Trajectories for physics drivers (for ones that move the tank; not kill it) so you can get it to land on just the right object without testing 100 times.
-Flag display?

Keep up the great work!
-Tanner

Posted: Thu May 24, 2007 1:57 am
by jude-
ts wrote:
jude- wrote:
ts wrote:The menus are a no-go on Mac OS X that way.
Could you elaborate please? I'm not sure what you mean.
There is an exact menu specification regarding Mac OS X. The system automatically creates a menu with the name of the application and puts system stuff inside (like services, quit etc) and, if the app requests, a preferences and about entry. Next menu follows is called "File" with open, save, print and similar entries. "Edit" is a half automatic menu where it's entries get activated/deactivated by the system on the fly, depending on context. More menus may follow, then "Window" menu application has to request from system if it deals with multiple windows and last a "Help" menu. Every context menu choice needs to have the same functionality right in the menus of menu bar, too.

That's platform specific but that is the spec, if one does not follow it will work but it will look like an alien application.
Umm...the menu you see in the spec is activated by right-clicking the 3D scene. It isn't designed to be part of the menu bar...yet. It will be available via key combo for Mac users with 1-button mice.
Tanner wrote:-Maybe shot paths (for tanks or world weapons) to determine if they will hit the right place.
-Trajectories for physics drivers (for ones that move the tank; not kill it) so you can get it to land on just the right object without testing 100 times.
-Flag display?
I'll see what I can do--the 3D scene comes much later in the project :). The first thing I'll be developing (and will probably spend most of June on) are the dialog boxes, event handlers, load/parse/save level features, and (most importantly) a good, robust way to internally store, query, and modify level data. Once that's in place, adding a 3D scene is pretty trivial.

Posted: Thu May 24, 2007 3:44 am
by Mostly Harmless!
Well, for SW's a circle showing the maximum range on the radar and maybe a pretty transparent sphere/hemisphere to represent the SW on the map view itself. I don't think that any way to represent the minimum radius is needed, but I could be wrong.

Posted: Thu May 24, 2007 4:22 am
by Tropican8
Great work, this looks like it will be a very useful tool for rookie map makers.

I'm not sure if you're planning on having this feature already, but a "mirror" option that clones all of a map's objects over an axis might be useful for CTF maps.

Posted: Thu May 24, 2007 5:16 am
by meeba
Tropican8 wrote:Great work, this looks like it will be a very useful tool for rookie map makers.

I'm not sure if you're planning on having this feature already, but a "mirror" option that clones all of a map's objects over an axis might be useful for CTF maps.
I think the grouping option he is already planning might work out well for that. It would be ideal if the grouping actually wrote into the map file as defines/groups. That way maps are easier to go through by hand, also. :)

Posted: Thu May 24, 2007 5:33 am
by Saturos
In these forums here we have a section called "prefabs and map objects". I think it would be nice to have a library inside BZWorkbench, where you can save objects, groups or setups you often need, so you can just drag&drop them in any mapfile you have currently opened. So you dont have to open old maps when you know you always need the trees from blabla.bzw. Just load the tree into your library and you can place it in every new map with a few clicks.

I can imagine that would be quite useful and shouldnt be too hard to code in relation to the other stuff you are planning. :)

Posted: Thu May 24, 2007 6:06 am
by Mostly Harmless!
If you have time, maybe you can add a dialog to edit the options object, to be able to set variables, etc.

Posted: Thu May 24, 2007 6:42 am
by Peter
I can't wait to get my hands on this! Looks very good, atlast a map maker that looks easy to use :D, I love that you can add physics drivers with a visual aid.

rendered groups

Posted: Thu May 24, 2007 1:51 pm
by tadd
In a complex map it is rather hard to see what is part of one super-object and what is part of another, or to see what is on the 2nd floor of a building because all of the upper floors block your view.

It might be handy to allow each object to belong to one of a list of groups of items. Thus one could create a map-group, and then add a castle-group, and a underworld group, and a flying-platform group. Or, in the case of a skyscraper, the 1st floor group, 2nd floor group, 3rd floor group, roof group.

I suggest creating a group-dialog that lets you specify a list of groups, then each object would have a pull-down menu to select which object-group the object belongs to.

Now... the cool part, is that you could select which groups are visible at any given time. Right click someplace and bring up a check-list of the groups. Uncheck the ones you want hidden at this time, so you can focus your editing on the group(s) you want to see.

Re: rendered groups

Posted: Thu May 24, 2007 2:04 pm
by CannonBallGuy
tadd wrote:In a complex map it is rather hard to see what is part of one super-object and what is part of another, or to see what is on the 2nd floor of a building because all of the upper floors block your view.

It might be handy to allow each object to belong to one of a list of groups of items. Thus one could create a map-group, and then add a castle-group, and a underworld group, and a flying-platform group. Or, in the case of a skyscraper, the 1st floor group, 2nd floor group, 3rd floor group, roof group.

I suggest creating a group-dialog that lets you specify a list of groups, then each object would have a pull-down menu to select which object-group the object belongs to.

Now... the cool part, is that you could select which groups are visible at any given time. Right click someplace and bring up a check-list of the groups. Uncheck the ones you want hidden at this time, so you can focus your editing on the group(s) you want to see.
I could imagine this being handy - but also, allow individual objects to be hidden with a simple right-click option. :)