A level-based game demonstrating the law of conservation of energy
Location: Ohio STEAM Private Island in the Teen Grid
Built by Josh Schendel (a.k.a Squash Otoro)
- Sponsor: The National Science Foundation
- Target audience: students in Athens Middle School in Ohio
- SL location: The Ohio STEAM sim in the Teen Grid
- Synopsis: Game demonstrating the law of conservation of energy
Project Description:
Energy Golf came as one of many results of the ongoing STEAM project, which aims to improve learning in science courses for middle-school children in the Appalachian area by providing cutting-edge educational games and simulations to schools in the surrounding community. The original idea for the game and the overall direction of its development has been driven largely by one of the schoolteachers involved in the project.

Energy Golf provides both competitive and collaborative opportunities for play. Like many projects, the game is designed to support groups of students working together to beat the game faster than the other groups. The catch comes in that, instead of grouping with people sitting next to you, the children organize and collaborate within the virtual world of Second Life!

One challenge we faced was creating it in a modular, maintainable way. Since there are nine holes per course, and four identical courses (one for each group), each object of each hole was originally created to be a different; this minimized crosstalk between holes and across courses by allowing each separate object to communicate on a different band of channels. As more content was added, this method became tedious to maintain. It was replaced by a system by which "base channels" for the course were passed into each object by multiplexing the start_param integer of the on_rez() method. By allowing for dynamic control of the channel numbers to use, we were better able to reuse our objects and create a more maintainable, extendable project.
The process of developing moderately-sophisticated software in Second Life is considerably different than in more conventional development environments. By looking out for any tricks and techniques (including the one I've described) you can find, you may be able to save yourself a lot of time and effort.