Day four finds team Marble-ous boisterously integrating code. Doug implemented really cool shaders for the track and ball, Paul finished the rendering and editing for the track and ball, Deron finished the simulation trace, Jordan and Deron wrapped up multiuser issues, Jordan got the reset button working, and Bernard finished the segment editor. Kevin is still working on the stretch goal of adding sound effects. The day’s goal of having an adequate demo for Friday was met, with revision 922. Team Marble-ous has checked in 7197 lines of code this week, so far.
The plan for Friday: fix bugs and polish things up until lunch, then prepare for the demo at 4.
Here’s a recap of the project:
Big Picture: Teaching Newtonian Physics
Goals: Usable software by the end of the week; reflecting on using Wonderland as a developer and improving the developer experience to make Wonderland the best platform for developing virtual worlds.
Approach: Nominate a non-developer as a customer (Mike), and capture user requirements. Provide incremental value to the customer during the week. "What’s the simplest thing that could possibly work?" (Don’t boil the ocean.)
Acceptance Test Scripts:
- AT1: Student user uses 3 fixed pieces of track (straight, loop, ramp) to construct the track and then drops a marble on it.
- AT 1.5: The user is able to remove segments of track.
- AT 2: Multiple users are able to achieve the above
- AT 3: After dropping the marble the user is able to see a timeline of the position and velocity of the marble as it traveled down the track and other data than can be derived, including acceleration, potential and kinetic energy, and force.
- AT 3.5: The user is provided with icons identifying types of track segment.
- Stretch 1: The user can select more types of track segment
- Stretch 2: The user is able to change the properties of a segment of a track
- Stretch 3: The user hears an appropriate sound when dropping the marble on the track (Plus a non-customer goal of documenting how to add sound to a cell.)
- Find and integrate a physics simulation engine
- Create track, segments and segment types
- Create visual representation of track, create specialised shader for the track and marble
- Integrate physics engine and collision system with representation of track
- Create 2D HUD to add/remove track segments, and start/stop/reset sim
- Make the whole thing multi-user
- Add icons to 2D UI
- Capture simulation data
- Add 2D timeline slider
- Add billboarded data points
- Add sound
- Create 2D UI for editing track segments
- Extend the number of segment types
Here’s the latest screen shot:
And for those of you who’d like more details on the code interfaces, here’s a diagram: