****************************************************************** ** Quick issues ** + Error reporting + load/save errors. Currently I think IOExceptions are ignored by the UI, whereas they should be displayed (I made sure to use descriptive exception messages) + Full support for settable gravity/friction + Loader/saver support + GameBoard support + Ball support + Test - Properness cleanups - RI for propertyified - Tests for AFG circles and line segments - Tests for rotating AFG + Tests for AFG bounding box + The focus issue + Completely phase out AGWPG + The XML stuff validates the loaded file, but doesn't do anything with the validation results currently + Optimize copious logging output - Bug with editing balls in the absorber - UI bits + Editor collisions + Key press input indicator dialog thingy - Indicate existing key press triggers + Dragging frobbers for move/rotate + Relative move/rotate - Deleting triggers - The start button is confusing when there's an empty board + There should be a way to get a cleared board + Grid snapping when moving gizmos - Orientation snapping + Save versus Save as - Dealing with the mouse moving off the board ****************************************************************** ** Medium issues ** - Machiavellian timing loop - Split design document sections on game loop and gizmos - We should have a "Design Philosophy" section that talks about things like generality (gizmo\emph{all}!), drop-in replace-ability, zero knowledge design, and having lots of small, largely isolated components - Perhaps have a section on possible extensions, partially to show off what is possible with our design - Tetris - R3 ****************************************************************** ** Slow issues ** + When gizmos are placed closely in the editor, it can become possible for certain orientations to become invalid (ie, consider two square bumpers right next to each other attempting to rotate at a non-multiple of 90 degrees). Thus, the blob reported by the gizmo to the editor should reflect the current orientation, and the editor should simply disallow certain rotations if they would cause blob intersections. Orientations that are multiples of 90 should be snapped to. + Scratch arbitrary orientation and this (and many other problems) go away - GameBoard depends on OuterWallsGizmo, which is now part of the standard gizmos package instead of the game package. This could be solved by either: 1) completely removing GameBoard's dependency on OuterWallsGizmo and just creating that gizmo when appropriate, or 2) make OuterWallsGizmo no longer dependent on AGWPG. I think 1 is preferable because OuterWallsGizmo really is part of the standard gizmos (ie, it wouldn't make sense to have one in, say, antichess or traffick, or anything else that used a different physics model), and because it assumes knowledge of the ball, which is definitely a standard gizmo. + Collisions should be known as "interactions" by the game system, since it's general + We should create a collision manager that allows collision handlers to registered for the interaction of two types. This is similar to our original idea of having a central collision manager class, except that the collision handlers can exist in any class, as long as they're registered (probably in a static block).