Objectives:
These objectives split the interactive into two separate applications: Pledge and Display.
The user can select from 4 main categories: resources, food, travel, and trash.
Each category contains 4 subcategories. For example, travel contains: carpooling, community bike paths, avoiding car idling, and vehicle emissions. Each subcategory comes with a description, giving the user more information about how to act on their pledge.
After the user has selected a category and a subcategory, they begin to create their postcard:
We then send the personalized postcard to the appropriate email address. This literally gives the user something to take home with them, a gentle reminder of their pledge to help the environment. We send the key aspects of their pledge (name, category, and subcategory) over to the display applcation.
Here’s an example of what would be shown if I pledged to “Use Renewable Energy Sources”.
I was tasked with making the two applications communicate. The client, Boston Productions, provided roughly the following objectives:
The first two objectives are part of the same solution: store information in a file on the computer. Just keep a tally for each type of pledge. If they want to reset it, all they need to do is set the count to 0 in the file. All other information is discarded.
That third objective mandates some form of local communication. After a bit of experimenting with C#’s Sockets, I learned of Unity’s NetworkDiscovery. The description of which is:
… allows Unity games to find each other on a local network. It can broadcast presence and listen for broadcasts …
NetworkDiscovery turned out to be a great fit. The end result is a very simple client-server model. The Display application broadcasts regularly so that any number of Pledge applications can find it. Once a connection is established, the process is fairly straightforward. Pledge applications will send information about which pledges have been completed, and the Display will keep count and show a visual for each pledge.