Mr Vociferous said:
I'm anxious to check this out. We gave Ghaleon's and Omlet's walkthroughs last night and I was pretty impressed with both of their work.
I've been frustrated with Forge lately -- merging or not, sometimes these objects just don't do what you want them to do. For example, I'll set two identical objects together, side-by-side and one will be higher than the other. It's slight and almost unnoticeable to the naked eye, but the change becomes horribly egregious as it is built on, or even when simply walking across it.
When I attempt to fix the height difference, the object is rent free from its place as if the monitor has the gravitational impact of a small gas giant. I'm finding that to do anything visually precise in Forge, you need makeshift forms and levels to keep everything even.
Can't wait to see some of the stuff that's going to come from the full-time Forge groups though. Everytime I want to do a remake, I realize that there's probably a dozen people, ten times more talented who will have this done in half the time of any attempt on my part. I'll wait for them.
I agree. I hadn't done much Forging before, but it's pretty difficult. I'm not as concerned with flat surfaces as you guys seem to be, but just general editing is harder than it needs to be.
A few fairly simple changes would have made forge far easier to use:
1. Using the "monitor" to drag objects around is an interesting idea, but I don't think it works very well as the only way to move and rotate objects. It has multiple problems:
a) Objects appear directly in front of you when you're holding them and larger objects completely block your view.
b) When you select an object it immediately attaches to you, and often moves out of position immediately. This makes attempts to make small changes to position very difficult.
c) Movement is painful in general because it's based on the current position and orientation of *you*.
Solution: Have an option that allows you to move an object directly without it being "attached" to you. When using this option, you'd select an object and then be able to drag it along a single axis, X, Y, or Z, without your distance or orientation having any affect on the object's movement. This can be done even with the relatively limited functionality of a controller. To make this simpler, it could only allow movement along two planes, X and Y (assuming Z is up) in combination with the build plane idea below for controlling Z. You should be able to choose between local or world coordinates as well. Local means that if you rotate an object 45 degrees so it is at an angle, then the X and Y axis are rotated as well. Then if you move the object along the X axis, it moves local to the new orientation. World means that the axis always stay the same direction.
Rotation should work the same way - the ability to rotate an object around specific axis, local or world.
2. Angle and position snapping. The ability to set a snap angle and a position snap distance. Even with a physics based editor like this, it would have been relatively simple to add the ability to snap to angles such as 15 degrees and positions such as every 0.5 or 1.0 meters.
3. Set arbitrary build plane height. Pretty simple concept - would allow you to set the plane on which you're building and on which all objects sit when you create them or move them around using the X and Y axis.
4. Undo? Might be very difficult in a collaborative environment like Forge, but would be nice to see at least a single level of undo for those "oh crap what did I just do?" moments. I'd be fine with undo only working when you're in Forge by yourself and as soon as other players join it is disabled.
5. Show the object name under the reticle before you select it.
*edit*
6. Copy and paste a single selected object.
*end edit*
There are plenty of other things that would be nice to have, such as object snapping that would allow objects to snap together automatically based on predefined snap points, etc. but the 5 things above wouldn't actually be too much work. Object snapping is a lot of work and requires additional data associated with every 3d object, whereas the suggestions above can be purely editor changes within the code.
*edit*
Parametric objects would be nice specifically for Forge. Parametric objects (a term we use in the home design software I work on, which by the way is basically an advanced editor) are objects which you can change the size of by changing parameters. The simplest way to implement this is by making it so you can only changing the size of an object by increments. For example, a wall could be defined as a 1x1 meter mesh. You could change the object to a 2x1 meters but not 1.234x3.34 meters. To do this the artists would have to break the mesh into parts - the corners, the sides, the middle area, etc. and then in code the mesh is assembled and the pieces are placed in the proper spot based on the length and width of the object specified by the user.
*end edit*
Obviously we're not going to get any improvements to Forge for Halo 3 but let's hope we see some improvements if Bungie implements something similar for their next big game (after ODST).