A minor setback
July 30, 2007 at 4:51 am | In Uncategorized | Leave a CommentUnfortunately, it turns out that BZW 1.x objects like boxes and pyramids render differently than I had expected–their textures tile their faces, rather than being stretched with them. Getting that to be reflected in the editor has been a long and tedious process this week, and I’m only just getting boxes to work. This means that my original goal of reaching beta by August 1st is pretty lofty; it’ll probably happen a few days to a week later if all goes well.
On the upside, the editor is BZW 1.x compliant, as far as what it can render. All four bases, boxes, pyramids, and now teleporters show up in the 3D view. There is still some work to be done with teleporters (i.e. creating the dialog boxes that allow you to link them, rendering the linkage, etc), but those will come as soon as I get the proper texturing working. From the looks of things, getting texturing to work properly is only especially difficult in BZW 1.x objects, since BZW 2.x objects are all meshes anyway, and as such more easily managed by OSG
Here are some screenies of BZWorkbench in action as of late July 29th:
As you can see, the main method of manipulation is a set of 3D axes like in Blender. Simply click and drag. If I want to move an object along the X axis, I double-click the object, and click-n-drag the X axis (and all selected objects will move along the X axis). Same goes for Y and Z. To scale objects, do the same but hold down the “S” key. The tips of the axes will be replaced by cubes to indicate you’re about to scale. To rotate objects, hold down the “R” key and click-n-drag perpendicular to the axis. The tips of the axes will be replaced by spheres; the idea of dragging perpendicular to the axes is that you’re rolling the sphere at the end like a trackball*. The 4th picture from the left is a pic of Winny’s Cornered map. That last picture is one of the texture distortion I’m trying to correct.
*Yes, I know the UI sucks right now. I’m open to any suggestions; I’m putting off changing it until most of if not all of the objects can be rendered and configured via FLTK GUIs, so you have until then to let me know
Nearing BZW 1.x compliance…
July 21, 2007 at 4:23 am | In Uncategorized | Leave a CommentSorry for the late-ish post…I haven’t had a reliable internet connection for a few days :/. Anyway, we are on schedule! BZWorkbench now supports boxes, pyramids, and all types of bases, it can load and save files using these objects, simple editing tools like “cut,” “copy,” and “paste” work properly, and objects can be individually tweaked using the Master Configuration Dialog. All I need is teleporter support, and it’ll be compliant with 1.x levels. It’s looking more and more like an editor now!
To do: Some of BZFlag’s developers have expressed distaste with the current user input scheme and menu organization…this will change soon! Also, I’ll be refactoring “material”, “dynamicColor”, and “texturematrix” to be extensions of OpenSceneGraph’s similar classes this week, making them easier to apply to objects.
mybzflag.net has posted a screenie of BZWorkbench in action…here’s the link: http://mybzflag.net/?p=61
3D Manipulation is Functional
July 10, 2007 at 9:19 pm | In Uncategorized | Leave a CommentAll the necessary code to allow objects to be manipulated in the 3D scene is functional. Although right now the user can only translate selected objects using a 3D cursor, adding scaling and rotating event handlers won’t be difficult. This week, we should see the development of a toolbar and the necessary code to invoke configuration dialogs for boxes. We should see some semblance of a functional (but simple) editor within the next 10 days. Once boxes are completely supported, I’ll add the rest of the BZW 1.0 objects, because they’ll behave in a similar fashion.
Implementing the 3D UI
July 3, 2007 at 7:17 am | In Uncategorized | Leave a CommentWhile I was able to meet the goals of last week’s to-do list, there haven’t been any commits for the last few days. This is because I am focusing on (1) solidifying the Model-View-Controller design pattern in this project, to make it easier to (2) implement a Strategy design pattern for the 3D UI to allow it to handle user input in different ways depending on how the user is currently interacting with it, which will let me (3) develop the code that will allow object manipulation in the 3D scene. Unfortunately, this all needs to be done before the next commit; otherwise there is nothing meaningful to upload (i.e. there would be a lot of unused code). Please be patient; the next commit will be worth it
.
In case you are wondering why the 2D UIs are still lacking, this is because the development methodology for this project has been changed at the recommendation of my mentor. Basically, I’m currently focusing my efforts on creating a level editor that will use only Boxes. Doing so will let me get the most of the infrastructure in place necessary for the other objects, while (a) still having something slightly useful and functional in SVN, and (b) allowing me to make necessary design changes early on without a ton of refactoring. Once things have been ironed out in the Box editor, I’ll start adding other objects. They’ll all come quickly once the infrastructure is in place
Blog at WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.