Red Mercury, LLC
palm software
palm software
Register / Buy
solitaire
card games
Solitaire
AcidSolitaire®
palm os card games AcidSolitaire
freecell
card games
AcidFreecell®
palm freecell palm OS freecell
card games
AcidSpiderTM
Palm Spider Palm OS Spider
Atom Smash
Atom SmashTM
Arcade Games
Video Games
arcade
Xmas2kTM
games games
Download
Support
Contact
About
News
RM Labs
Orange Code Camp:
Puppyshu Comes Through

(Director's Cut)
Orange Code Camp
France, 48 hours, lots of Coke Light...

Right before code camp, the brainstorm idea of implementing Puppyshu over the air came up at Red Mercury HQ. The game is part of a line of products based around the story of Puppyshu (a puppy), and her friends. Puppyshu and her pack practice their trick-combo skills against an evil pack of dogs that torments Puppyshu when she least expects it. The competition is fierce and the stakes are high - the winner of these competitions determines the alpha dog and the dominant pack.

But Puppyshu and her friends don't spend all of their time competing against their arch-rivals. They regularly come upon other pups who are willing to have a friendly competition. By competing against a wide variety of opponents, Puppyshu and her pack can improve their skills and increase their rank in the global hierarchy of puppies.

Competition is fierce and the stakes are high.
However, these puppies are spread across the globe, sometimes separated by thousands of miles. There is only one practical way for them to compete from this distance, and that is over the air from their mobile phones.

The Orange Code Camp provided the motivation and the time to make this over-the-air play a reality. I had no idea if it could be done at all, let alone in the short time before the final deadline, at 8AM on Wednesday, September 15th. Code Camp started on Monday afternoon, leaving only a day and a half to get things working.

On Monday, the first day of Code Camp, I arrived a bit exhausted from the flight from Chicago to Paris and the bus ride from Paris to Poitiers. The opening ceremonies provided a glimpse of what was ahead, including a video of the Orange CEO riding around on a Segway. That Segway was the grand prize in the contest sponsored by Orange and PalmSource for best application to add wireless support over the Orange network. Luckily, the opening ceremonies also provided a good opportunity for a nap - the lights were dimmed, the seats were comfortable, and I felt pretty well refreshed after sleeping through most of the opening ceremonies.

Only a day
and a half to get things working.
The code camp event was very immersive - the building was easy to navigate due to well placed signage, and the food / party areas, chill-out room, and coding lab were well suited to their tasks. People from Orange were all over the place, and they tended to be helpful and knowledgeable. But the most interesting aspect was that the environment really sucked some of us in to the Code Camp idea of working as hard as possible to get as much done as we could in these short few days.

As I was hanging out in the food & music area on the first day, relaxing a bit, I still wasn't sure if I should even try entering the contest. The alternative to working really hard all night was to enjoy a live band and free drinks provided by Orange right there at Code Camp. But then, there was this buzz about the PalmSource contest - every Palm developer I bumped into was entering something, and they all asked me if I had an entry. I finally decided that I had better get into the coding lab to see if this Puppyshu Over The Air idea was at all feasible.

The coding lab was pretty simple - tables and chairs, Internet access, and most importantly, peace and quiet. I spent the whole night trying to get my laptop to communicate with my Treo 600 over the Internet. No matter what I tried, I couldn't get things working. It was Step 1 of this project, and I had hoped it would be easy to just get one simple packet sent from my laptop to the Treo, and the rest would flow from there. But it wasn't happening. By the time I decided I needed help from Orange, it was past 2AM and their engineers were in bed. I continued on until 3AM Monday night and finally decided I should get some sleep.

Step 1 of this project, and I had hoped it would be easy.
The next morning, after a 7:30AM breakfast, I tracked down someone from Orange who could help me out. I described what I was trying to do - I just wanted to get my laptop talking directly to the phone, and then getting two Treos to talk directly to each other would be the next step. To my surprise, he said it wasn't possible to do it, and he gave me a quick but detailed description of the way the phones communicate with the Internet. Their IP addresses change, they don't have routable addresses anyway, sometimes random ports are blocked, and I most certainly could not have one of the two phones acting as a server, as I had planned.

This news was a bit devastating, because it not only meant that I had blown an entire night of effort on something that would never work, but also because it seemed like my plan of getting this game working over the air at all was not possible. Luckily, Tim Norman of Normsoft and Shannon Pekary of Hands High were there, both working on a contest entry. After a bit of brainstorming with them, the solution to the problem became clear - I had to create a game server on another machine somewhere on the Internet that could route the communications between the two phones.

The solution to the problem became clear.
That concept sounded easy, but I didn't have a clue how to do something like that. Three hours later I somehow had the game server portion up and running. I could finally send data back and forth between two Treos. Even though the two Treos were in Poitiers and the server was an ocean away in the US, the speed of communication was surprisingly fast.

By this time it was mid-afternoon on Tuesday. I had been counting on having some time to work on Wednesday as well, but then I was informed about the 8AM deadline for the contest. To complicate matters, the Code Camp Blowout Bash was scheduled for Tuesday Night. Any hope of getting things working before the Blowout Bash were out the window, and suddenly 8AM seemed to be coming very quickly. I had about 17 hours left before the deadline. Lots of time, but most of that 17 hours would again be in the middle of the night when anybody who could help get past a technical hurdle would be sound asleep.

Fortunately, Tim and Shannon both had the contest bug at this point as well, and we all shared a table in the coding lab. Some joking comments were made about pulling an all-nighter. The Blowout Bash down the hall started to get going, with live music and then a DJ. People would regularly pop in the lab to see how things were going, offering up champagne and wine and assorted selections of food. It was very tempting, but my diet for the evening was just a steady flow of Coke Light.

Suddenly 8AM seemed to be coming very quickly.
Tim, Shannon and I worked into the night. They worked on their submission, I worked on Puppyshu. Every so often one of us would mention a technical problem, and somebody else would have the answer. There were 5 or 6 people left in the coding lab by 1AM. Puppyshu was showing signs of hope - the Treos had been communicating since the late afternoon, but the gargantuan task of making the two-player game function over the air was underway. I was doing 100 things wrong, and I had to track down each and every one of those things, while keeping an eye on the clock. Deep concentration was essential. I needed to be in the zone.

At about this time, we started hearing shouting and large explosions from the room next to us. This went on for a while before we started wondering what the hell it was. Shannon ran over there, and found that in the Chill Out Room (right next to the Coding Lab), there was a group of people watching "Shaun of the Dead." The Americans in the lab all said, "what the **** is Shaun of the Dead", while the one Brit in the room simply informed us that "it's HILARIOUS." We had to take his word for it. Occasionally, Shannon would run over and give us an update on what was happening in the movie. It made no sense.

"What the **** is Shaun of the Dead"
By 3AM, only Tim, Shannon and I remained in the coding room. There would be long periods of quiet work, interrupted occasionally by some incredibly foul language and fist pounding. The 8AM deadline was approaching fast.

At about 3:01 AM, the Internet connection in the coding lab, and in the entire building, went dark. Profanities and fist-pounding ensued. Even though I had these nice Internet-enabled Treos to work with, I had to have the connection between my laptop and the Puppyshu game server in order to make updates and see if things were working as planned. Without an Internet connection, that was impossible.

I started walking around the building with my laptop, trying to see if the Code Camp wireless connection was working anywhere. It wasn't. I was about to head back to my hotel room to try dialing in via modem. A very sleepy looking guy from Orange saw me running around with my laptop, and asked if the Internet was down. He said he would wake up the guy who could fix it. There was hope.

I went back to the lab and noticed that there was another wireless network in range - it happened to be an Orange WiFi Hotspot located somewhere nearby. For 10 euros, I could get two hours of access. A bit expensive, but 30 seconds later I was back online.

Now I just had to cross my fingers.
Meanwhile, Tim and Shannon had gotten their contest entry working. They were streaming MP3s over the air from a shared folder on a Windows machine (via HandsHigh's WiFile) to NormSoft's PocketTunes. It was pretty cool. They finally knew they had it working when music started playing through the speaker on their Palm.

5AM rolled around, and the first successful 2-player game of Puppyshu over the air took place between a Treo and a simulator on my laptop. It actually worked. I quickly loaded it up on the second Treo, and played a game against myself between the two phones. That was it. I was done. I spent the next hour and a half cleaning things up and making sure the demo would work as planned. The demo was streamlined so that the judges could jump right into an over the air game without reading any instructions. At 7:20AM, I had the app ready to submit. I sent Puppyshu in via email, and breathed a sigh of relief. Now I just had to cross my fingers that it would actually work when the judges tried it - it had only been tested a handful of times.

I went back to my hotel, packed up my bags, checked out of the room, and headed back to Code Camp. I arranged a stack of bean bags in the hallway into a makeshift bed, and went to sleep. Doug MacMillan woke me up because the judges needed one of the Treos I had - a demo unit that Orange had let me borrow for testing the night before. I handed it to him, mumbled something incoherent, and went back to sleep.

The rest of Wednesday morning is a bit blurry - I ate some breakfast, took another nap in the hallway, but eventually the moment of truth arrived - the final closing ceremonies in that same darkened room that we had started in.

The closing event started with some Q&A, and some remarks from the Orange people about their impressions of the first Code Camp, and then it lead right into the contest results. There were 5 prizes to be awarded - four Treo phones and a Segway. The winners of the four Treos were announced, and then, after a bit of suspenseful build up, Puppyshu was announced as the winner of the Segway. The sleep deprivation went away immediately, and I ran up to the stage, shook hands with everyone, and got an up-close look at the Segway itself. There it was, with Doug MacMillan on it.

Puppyshu was announced as the winner!
We were applauded off the stage with the words, "OK, Scott, go back stage and Doug will show you how to ride your new Segway!" Of course, we just went off to the side stage where we watched the rest of the closing, complete with a video recap of the event. I never did get to ride the Segway at Code Camp. But there will be plenty of time for that when it arrives next week.

In the mean time, Puppyshu is now the hot product in development at Red Mercury. It is a new product, and part of its original design was to enable real-time head to head play. The thing is, I'm not sure I ever really believed that real time play over the air was possible. Now that it's working, things are moving fast on Puppyshu. We expect to have a playable demo running over the air in Munich at PalmSource 2004.

Puppyshu, who are you?
Puppyshu wins Grand-Prize.
Find out more about the Orange Code Camp.

Back to Red Mercury
Entire contents Copyright © 1999-2005 by Red Mercury, LLC. All rights reserved.
Red Mercury, AcidSolitaire, AcidFreecell, and AcidImage are registered trademarks, and AcidSpider, Atom Smash, Xmas2k, IntelliMove, Sparkle Hints, and EZ Play are trademarks of Red Mercury, LLC.
All other trademarks are property of their respective owners.
Privacy Policy