An important part of our culture at Red Interactive Agency involves exploring new possibilities in rich online experiences.
We’re constantly striving to understand the way people interact with our sites, and searching for innovative ways to enhance that connection.
One of the byproducts of our discussions and experiments was the birth of the multiuser environment that currently serves as our corporate presence online, The Red Universe.
Origins of the Universe
A few years ago I attended a presentation by Colin Moock at Flash in the Can in Toronto. He was presenting his Unity application along with some ideas on developing multi-user applications.
I was intrigued by his suggestion that browsing the Internet was an unnaturally solitary experience that didn't reflect the way we are constantly interacting with each other in the real world. I purchased a copy of Unity when I got home with the intention of exploring the possibilities of a less lonely web.
Soon my team and I found ourselves brainstorming multi-user experiences over lunch each day.
Our original concepts included flying sheep, cannibalistic fish, and giant robots—but we eventually settled on the more obvious idea of an urban environment set in the future where people could go in and out of buildings, up and down stairs, engage in hand to hand combat, chat, dance, fly jetpacks, and of course take a hot air balloon to the moon.
After thinking the concept through we came to the conclusion that this was completely impossible and began development in our spare time.
It didn't take us long to put together a simple prototype where users could see each other and walk back and forth through an environment. It wasn't exactly real time and seemed to only be able to support a grand total of four users, but it was amusing nonetheless.
Progress slowed to a near halt as we found ourselves wasting all of our time frolicking in the world we had created, functionally limited as it was.
We were soon thereafter forced to shelve the project as we had more than exhausted our budget of zero dollars and found it difficult to focus on anything else while it was around. We hoped to one day resurrect it,
perhaps when a paying client came along asking for a multiuser environment where people could take a hot air balloon to the moon.
A year and a half went by. My team in Salt Lake was assigned to build a new portfolio site for Red, and our CEO, Brian Lovell, was flying out to meet with us about some initial ideas and concepts.
At this point we were starting to doubt that a client was ever going to ask for a multi-user jetpack world and thought this might be our only chance. We dusted off our old prototype swfs, re-installed Unity, and posted it to pitch as an option for our portfolio.
A few days later we were back developing what would become known as "The Universe." Man, Brian is such a sucker.
In February of 2007, it was the deadline to submit to the Flash in the Can festival and we thought we had a sure shot at taking the multiuser category (which we ending up losing). Though it wasn't ready to become our corporate site, we posted what we had at ff0000.com/universe and called it a Beta launch.
We really just wanted it to be "live" so we could submit it to the festival. The judges would be the first people outside of Red to see it because we never released the URL anywhere else. We figured we had a good couple of weeks to work out the kinks before the nominations were posted and the site would become public.
A few days after submitting to FITC, I was working in Flash and published the Universe to test it. Upon connecting I suddenly realized I was not alone. I found myself surrounded by some 40 birdmen, chatting it up and punching each other in the face.
It was alive—and there was no turning back. Within 10 days the beta Universe received over 250,000 unique connections, all thanks to those blabbermouth FITC judges.
The Universe has since taken on a life of its own. It continues to receive thousands of visitors every day, ranging from daily regulars to curious and mildly confused first-timers.
It has survived (barely) being Site of the Day and Month on FWA as well as the front page of Digg. It remains the most ridiculous project I have yet to participate in, and probably my favorite.
During the course of its development we learned a lot about building multiuser environments. We learned even more about approaching creative challenges in general. Below are a few of the lessons learned, most of them the hard way.
Lesson No. 1: Dream big
Perhaps the best thing we had going for us in this project was that it was audacious from the beginning—mostly because we had no idea what we were doing.
We were challenging ourselves more than the technology itself, and consequently our creativity was unfettered by ignorance of the many limitations involved with creating a multiuser application in Flash.
Sometimes it's good to put limitations to one side when brainstorming.
Lesson No. 2: You didn't dream big enough
For whatever reason, we decided early on in the project that this level of character animation would not be possible to achieve in real-time.
We figured there would be anywhere from a one to two second delay on character movement due to network latency and discrepancies in performance on users' machines, and that only text chat would be close to real time. I don't remember how or why we came to that conclusion, but we carried it with us for far too long during development.
Of course since we were expecting a two second delay we ended up with something closer to fifteen, leaving users entirely unable to interact with each other. It turns out that it's really not that cool to see what other people were doing just a short while ago.
We somewhat conceded that we were in over our heads with this multiuser stuff, avoided showing it to our superiors, and moved on to other performance issues we were having. When we implemented some basic fixes to the environment engine, we suddenly realized that we had inadvertently cut the fifteen second delay down to virtually nothing—by accident.
A rather simple solution had eluded us simply because we were operating under the assumption that it wasn’t possible. It's important to constantly remind yourself that you more than likely have no idea what you're talking about.
Lesson No. 3: The Incubation Period
Even the year and a half that this project collected dust on the shelf, we still talked about it all the time. The idea kept evolving and when we finally sat down to really build and launch it we had already built it in our heads a hundred times.
Having time to let an idea incubate relieves a lot of stress during development. It also leads to ideas that are better than the original concept. Even on regular production schedules, we try to keep room in our creative process to make adjustments when those new ideas arrive.
Although you can’t always force the best ideas to come in a timely fashion, your subconscious will eventually work it out. The trick is to keep yourself engaged in something thought-provoking, even if unrelated to the project, and strive to stay in a healthy creative state overall.
Have you ever arrived at a destination and as you park your car you realize you have no recollection of driving there? Somewhere in that functional daydream state where you’re able to safely navigate your vehicle while your mind is working on something else entirely…that’s where the best solutions are often born.
Lesson No. 4: Resolving Conflicts
We had some serious discussions about jetpacks during the development of the Universe. It was by far the hottest issue. Although jetpack based flight was a concept that everybody enjoyed from the beginning, we arrived at a point in development when we had the characters flying (sans jetpacks) but not chatting (you have to keep your priorities straight).
We noticed how fun it was to fly around the environment and how most users hardly ever touched the ground.
The sudden suggestion that maybe we didn't need jetpacks created an intense division in the team. While one faction felt that flying should be reserved for those who discover and utilize the jetpack rental stand in an obscure corner of the site, others felt that every character should be able to take to the skies automatically, resulting in a quicker payoff for the user.
There were a few days of heated debate. Things were said that can't be taken back, and some friendships would never be fully restored.
In the end we scrapped the jetpacks—and now I don't even remember why. I guess mostly for the quick user pay-off, but probably because it meant less development. The funny thing is that the issue that spawned the debate turned out to be irrelevant when the project was complete.
Once users could talk to each other, they spent much more time on the ground. It's still handy to be able to fly around, but how excited would you have been when a guy came cruising by with a jetpack, and upon inquiring of him where he obtained such a device, he explains there was a rental stand just up the street?
Maybe in version two...
Sometimes there just isn't a right or wrong answer but you have to talk it through anyway and collectively make some decision. The fact that you are focusing on the project down to the smallest detail is more important than the actual topic of discussion itself. That team dedication transfers to everybody’s work in all areas of the project and shows in the final project.
When disagreements arise concerning a site concept, we try to find a solution that everybody feels comfortable with, even if it takes a little while.
Sometimes an idea may seem really brilliant to you, but if nobody else is getting it, maybe it's just not the right time for that idea.
Lesson No. 5: A combination of failures often equates success
The Universe benefited from some prototypes that fell flat on their faces during development. The original model for moving characters through the environment was based on a series of ground pieces rotated at different angles.
We had the idea to orient the character to the angle of the ground piece, since that information was so readily available. So your character always stayed perpendicular to the ground no matter how steep the incline you were standing on. Although this model was scrapped, we went out of our way to recreate the unrealistic character angling again in the final model to keep the comic effect.
Another attempt was making the environment an actual spherical planet. We were rotating the environment as you moved around it, and you could make a complete round trip back to where you started. The model worked great, but in order to make the environment big enough to explore, we had to make a rather gigantic circle. In the end the characters became very jittery because they were so far from the center of the rotating environment.
This model was also abandoned, but the system that we used to move and track characters in it had proved very effective and was adapted to fit the current side scrolling model. The characters even automatically looped to the other side of the environment because it was already coded that way.
Lesson No. 6: The Oracle
Early on in the life of the Universe, there began to be sightings of a mysterious person who identified him or herself only as “The Oracle.”
It was rumored that this person had the ability to stand on top of the statue head towards the left edge of the environment, from which they would recite cryptic prophesies and riddles and then suddenly disappear.
Several people began to inquire if we knew who the Oracle was, and told us of their experiences. But at the time the Universe only featured a single ground level, and it was not possible to stand on other 0bjects. We dismissed the early accounts as hearsay.
One day while conversing with Adam DeVincent about the project, he explained to me that a friend of his (who he knew to be a reputable and upright fellow) had inquired about the Oracle in an instant message.
Adam had of course explained that the rumors were categorically false and that such a thing was a programmatical impossibility. But he was astonished when his friend explained that he had seen the Oracle with his own eyes and heard of his prophecies.
By now there was a lot of chatter concerning the matter on the Universe and throughout the blogosphere. We started making regular patrols but discovered nothing other than more rumors.
A good week passed and our interests had substantially diminished when I suddenly found myself face to face with the Oracle.
Just as the others had described, I found him perched atop the statue head. He offered me no greeting. Hesitantly, I spoke to him, inquiring how he had positioned himself there and what he was doing. Shrugging off my interrogations he calmly replied, “Bring twenty-three and seek me out again.” After a quick chicken dance on top of the statue, he disappeared.
Needless to say this created quite the stir in our office.
The Universe, a world our own invention, had evolved beyond our comprehension. But excitement died quickly when we realized that if you changed your character while mid-air you could basically stand floating at any point in the environment.
It was fun while it lasted, but we fixed the problem in the next revision, sad to know we would never see the Oracle again.
The Oracle remains some of the most fun we ever had on the Universe. I guess the lesson here is that sometimes the best feature you can have on the site is the combination of bugs and creative users to exploit them.
Building and launching the Universe was an experience like no other, and it’s continued to be a fun part of working at Red as different people contribute their own characters and environments.
We’re currently featuring a Halloween themed environment which will run until November, and plans include making this and other environments available year round.
As the Universe expands, much of its future will be determined by its visitors. Personally, I would like to see it adapt to include more complex ways to interact with each other or possibly be repurposed for a client project.
Only time will tell.
About the Author, Jared D. Kroff
Jared D. Kroff loves Flash. He discovered the program while attending film school in Provo, Utah. It led to the demise of both his college education and his parents’ dreams of him becoming an affluent filmmaker.
He’s since dedicated the greater part of his time to Flash, building interactive webs and games for the past six years. He currently serves as a creative director for Red Interactive Agency.
Jared is also husband and father to lovely wife Ashlee and twin sons Bryan and Parker. Flash hates Jared.