TA meeting day? Monday (after 5 or at 10) Blog/NG? Blog Java3D versus OpenGL/Java versus Graphics2D? Graphics2D MDD Game loop check key presses don't actually change anything, but tell the objects tick all motion (including friction & gravity) try not to rely on information from other gizmos ordering shouldn't matter much for ticking hold on to old position information for later collision resolution collision handling including triggers objects should deal with key presses now redraw dirty rectangles use old position information as well as new to find correctly Are there any problems with collision resolution and friction/gravity editor UI combination of The Incredible Machine and Qt3 Designer don't separate "tools" from "gizmos" arrow tool have "create connection tool" have "create key trigger tool" for controls (ie rotate), place clickable zones immediately adjacent to the selected gizmo "frobbers" pie-menu-like Fitt's law! Rotate, delete, color? Maybe connect snap to grid option connections Create connection tool and drag between two objects Also support clicking on one, then the other Easy to determine which the user is doing Flexibility! One problem What if the user clicked on one, but then changes their mind and wants to connect from another? Modality of clicking should fix this Click on a not gizmo to cancel Draw arrow as they move Indicates mode When an object is selected, display arrows to everything it is connected to View options for displaying: Gizmos that trigger it Gizmos it triggers User control and freedom if you can't place something, put an X over it setting ball velocity Have a frobber the switches to set-velocity mode, then next click places velocity vector But this is modal Difficult to set to zero Always have a velocity vector whose tip can be dragged Difficult to set to zero May conflict with other clickable things Displaying a vector may get confusing with connection arrows Decided on frobber Snap to common directions and zero Hold down a modifier to disable snap Bad, but standard Triggers pane What to display? Names of objects User can set if they want, but at least it gives the type of the gizmo Highlight arrow when selected Even if connection display is off No, wait. Put these in the properties list, but make it a tree Property for incoming triggers and another for outgoing triggers Able to switch back and forth between playing and editing quickly Without saving Toolbar Load, save Visibility Snap Switch between play and edit Undo A great way to support exploration! Will need a good, generalized properties system to support this and simultaneously keep our sanity Always display toolbar, but change (or change which toolbars are visible) How to connect something to itself? Draw a loopy edge Gizmo properties type orientation color triggers name location velocity Stuff to do tomorrow Agree on TA meeting time MDD Timeline Who writes what