The Digital Dollhouse front pageDigital Dollhouse is a virtual world where girls of all ages are empowered to become their own interior designers. Members can paint, furnish and decorate their own virtual dream houses complete with plants, pets and dolls, and even purchase and regift items in a virtual economy.

Designed and built in Drupal from the ground up, Digital Dollhouse uses Drupal as a front- and back-end engine and Flash for the primary front-end game play. Drupal was selected as a development platform because of its robust and extensible framework and excellent integration with Flash/Flex applications.

The high quality and availability of third-party modules greatly helped in the decision, as well. We found that Drupal is an excellent choice for managing virtual worlds with virtual goods and currencies.

At the time, Drupal 5 was chosen in favor of Drupal 6 because when development started in early 2008, key modules (including Views, CCK and Ubercart) were not yet available for Drupal 6. Digital Dollhouse was upgraded to Drupal 6 in early 2010.

Making Digital Dreams Come True

Digital Dollhouse was created as “wish fulfillment” for girls. I wanted girls of all ages to have a realistic interactive environment that they could design and control, rather than a cartoon-like technological world that was controlled for them. I truly believe that beauty and technology can co-exist in amazing and wonderful new ways.

— Jesyca Durchin, Founder and CEO, Digital Playspace, Inc.

In 2008, Jesyca Durchin and David Schnepp of Digital Playspace chose Exaltation of Larks, a development and design firm with offices in Boston and Los Angeles run by Christefano and Lee Vodra, to lead the development of Digital Dollhouse. From the beginning, there were many indications that Digital Dollhouse would be a success. We were immediately excited about:

  • Doing something that hadn’t been done before, taking Drupal and our company in an entirely new direction
  • Growing the virtual and casual gaming market, thereby reducing the amount of shipping and packaging waste generated by children’s toys
  • Having an opportunity to work with and learn from from Jesyca Durchin, the leading expert on the psychology of girl play-patterns; and David Schnepp, who has a strong history in business development and experience with venture capital and startups

During the course of the project, we became investors in the business and were involved in nearly every aspect of development and production, from helping draft the original design specification and planning the hosting infrastructure to writing close to 10 custom modules and architecting and integrating the work of the vendors we recruited.

The Digital Dollhouse Team

We’re immensely grateful to the following independent vendors, whose successful collaboration made Digital Dollhouse an achievement they deserve to be proud of. It was clear that the team members highlighted below are true experts in their respective fields. Without hesitation, we will leap at the opportunity to work with them again:

  • Scott Nelson at This by Them built the “playarea” rich media application that made an otherwise static Drupal site into an exciting, immersive playspace, and wrote custom services for the Services module he created and co-maintains.
  • Eric Decker at 110 Digital created all of the 3D assets that made the virtual dollhouse a believable and beautiful playing experience.
  • Beverly Tang proved invaluable by turning a beautiful and challenging design into a working theme. Beverly's work is first-rate and almost makes it unfair to other themers by setting such high standards of quality and ethics.
  • Ryan Szrama, now at Commerce Guys, audited our Ubercart application and contributed several needed features to Ubercart, such as a promotions module that allowed prospective members to enter a gift code and receive a membership and a dollhouse with currency and items.
  • Kai Curry and the support staff at Sundays Energy helped automate some processes and took over the site maintenance after Digital Dollhouse was launched.
  • Pam Aronoff at Moxymusic scored the original music and sound textures and worked with Scott Nelson to integrate the sounds into the playarea.

Virtual Currency, Virtual Goods and Userpoints

Digital Dollhouse virtual item.The heart of Digital Dollhouse’s business model is virtual goods micro-transactions. A member can visit the online store (which Digital Dollhouse calls the “Boutique”), purchase an item and then play with it in a virtual dollhouse (which we named the “playarea”). Userpoints proved to be a robust and outstanding solution for all of our virtual currency needs. Digital Dollhouse is also greatly indebted to the developers of the Invite, Buddylist, Voting API, Ubercart and Ubercart Userpoints modules.

At the Virtual Goods Summit in October, 2008, we learned that it was disturbingly easy to create inflation in a virtual economy. In other words, if a publisher gives away too much of a currency too early or too easily, they can actually devalue their in-world currency. It’s easy (if not tempting) to give away Userpoints and we were fortunate to learn about inflation and ways to prevent instability in a virtual economy before launching Digital Dollhouse later that month at Virtual Worlds London.

It was crucial that members were automatically given points for behaviors that benefited the Digital Dollhouse community, such as logging in, inviting friends to join the site, publicly sharing photos of their completed designs, voting on each others’ designs and so on. These points were immediately redeemable for items or could be regifted to other members. In the end, our virtual currency system was able to account for a dizzying number of scenarios where members could easily do things like:

  • Purchase memberships that include points, a dollhouse and some items to play with
  • Purchase items with points and real-world currencies
  • Purchase items and memberships with promotional codes and real-world currencies
  • Give their friends points as well as purchase gifts for friends with points
  • Participate in the daily design contest and be awarded points or virtual items by staff or administrators

Workflows and Automation

The Digital Dollhouse playareaThere were three separate asset workflows that required automation. Eric Decker was in charge of the creation and production of the 3D assets. These were skinned and reduced to still images for rotation in the 2½-dimensional playarea, and for use within the Boutique and the rest of the site. Once these were delivered, Scott Nelson’s workflow brought the assets into the playarea. Kai Curry collaborated with us in developing automation for importing the Boutique images and implementing an editorial workflow for adding descriptions and other metadata to the items.

The number of items (each with a minimum of 18 associated images) was staggering and it was important to establish a naming convention that never duplicated names, was easily human-readable when looking at a folder listing and contained all the metadata usable by the automated processes. The naming convention evolved so that all item and related image names contained the creation date, a human-readable reference and some “magic” for Scott’s playarea workflow.

Opportunities and Challenges

The unusual nature of building a virtual world with Drupal made us realize that we were in uncharted territory. The challenges of taking Drupal in a new direction were irresistible and we were excited about having opportunities to do things differently and improve on our existing practices.

One sign that we’ve succeeded has been when friends and colleagues occasionally point out to us when seeing Digital Dollhouse for the first time that the items in the Boutique are priced too low. “How can you afford to sell Ming vases for only 75¢?!” Only when we showed them the Flash playarea did they realize that these are virtual items and that each item is actually a Drupal node.

One challenge we had was how to design the database structure that determined how items behaved in the virtual world. CCK and several CCK field modules were indispensable here. Important details about each item, such as whether it was a gift or could be regifted, what the related images and Flash assets were, if it had “magical” properties and so on, were all defined by CCK fields.

The Digital Dollhouse BoutiqueMuch of what makes Digital Dollhouse unique is due to the versatility of Drupal’s node system combined with the power of Ubercart. For example, when a member purchases an item (or is given one as a gift), a node is automatically generated by a custom module and then updated with the owner’s username. Once in the owner’s inventory, it shows up in that person’s dollhouse in the playarea (this is similar to how your posts show up in your tracker when logged in to Drupal.org).

In other cases, Ubercart was easy to work around when it didn’t operate in ways we wanted. Instead of using the Catalog listing and Catalog block provided by Ubercart, we used the Views and Taxonomy Blocks modules. This powerful combination enabled us to create gorgeous product listings. We shared this recipe with the core Ubercart developers at Ubercamp last year and were happy to show how it looked just like the core Catalog but was almost infinitely extensible by Views.

When we opened the site to our beta testers, the One-time login links module saved us a lot of time when we were ready to send email invitations to testers and other prospective members. This was our non-developer intern’s favorite module.

Thanks to the contributions of one tester in particular, we quickly learned that we needed to prevent members from renaming or otherwise editing photos of their favorite designs. This was challenging because we wanted members to be able to update their snapshots but not be able to edit them through the conventional Drupal front-end. Rather than use any node access modules (which, among other things, would significantly impact the site’s performance), we wrote a custom module that removed the “View” and “Edit” tabs on node pages to everyone but staff and administrator roles.

We also remove tabs from other areas like core user profiles, which helped prevent members from bypassing our custom account system and editing their accounts without their parents’ permission. In the end, we’d essentially created a custom access control module that didn’t use Drupal’s node access functions.

Another way that we worked around Drupal’s normal way of doing things was allowing multiple accounts to use the same email address. Many households with children often use one “family” account and we found some code in the support forums that enabled this, updated it and helped contribute it as the Shared Email module.

Hacking Away at the Unessential

It’s not the daily increase, but daily decrease. Hack away at the unessential.

— Bruce Lee

Sometimes it’s more important to adapt to the market than to hold on to a much beloved feature. As it turned out, there were many features that were completed or in development but didn’t make the final cut. One such feature was a fully-functional trial mode where anonymous visitors could briefly play in a dollhouse with a number of items.

To accomplish this, we had a designated user account with an inventory of selected items and a special URL that, when clicked, would instantly log the visitor into the playarea. If this was a repeat visitor and a specific threshold of visits had been reached, a custom module kicked in and enticed them to sign up and become full-fledged members of the Digital Dollhouse community.

Virtual Worlds, Drupal and the Future

We’re proud of Digital Dollhouse and the positive contributions from our colleagues, vendors, friends, co-workers and beta testers that have made it a success. We look forward to sharing more about our experiences with fellow companies who are entering the growing virtual worlds space, and with our friends in the Drupal community.

While there are a few topics that we cannot discuss (i.e. what we’ve been referring to as “magic”), we’ll try our best to answer your questions in the comments below. Look for a “Virtual Worlds and Drupal” presentation from us at upcoming DrupalCamps and at DrupalCon Paris 2009!

Comments

Techivist’s picture

Man, that´s the best Drupal site I´ve seen! As a longtime avid gamer, every time I see the DD website I can´t help but think of the infinite possibilities w/Drupal & online gaming. Most flash-based online games have a cheesy cartoony feel but Digital Dollhouse looks very realistic & deep. Didn´t even know you could pull that off w/Drupal which only goes to show even after all this time, I still have LOTS to learn (& boy do I love learning!).

With so many images & assets to manage, I´m curious how all that data got cached (seems like a lot of db calls). Or is that part of the ¨magic¨ you refer to?

Props to the whole team, Chris! Not only for an awesome site but for ALL the contributions that the team & this project contributed back to Drupal. Open Source at its finest (gotta love it)!!

Founder / CEO @OpenMindzGroup | http://openmindz.net
Co-organizer of various Drupal user groups, DrupalCamps & Hackathons
Member, Drupal's Core Patch Testing Team 2009-2013

christefano’s picture

With so many images & assets to manage, I’m curious how all that data got cached (seems like a lot of db calls). Or is that part of the ¨magic¨ you refer to?

The “magic” in this case isn’t so much the regular Drupal caching (we actually launched without any extra Drupal caching because of issues with double-gzipped content) but using Flash object remoting with Scott’s custom services for the Services module and serializing the data with AMFPHP.

Most flash-based online games have a cheesy cartoony feel but Digital Dollhouse looks very realistic & deep.

Thanks! All the credit really goes to Jesyca Durchin and her original vision. Her goal from the beginning was to create a play environment that was luxurious and low-stress. Digital Playspace even brought a historian on board to make sure that the virtual items in the Dream Victorian dollhouse were authentic.

Andy_Lowe’s picture

Great to see it all come together. I'm constantly amazed at what you can do with Drupal and Flash/Flex. When we started Ubercart just two years ago, we never dreamed it would be used to run a virtual economy in a Drupal based virtual world!

freescholar’s picture

The site is AMAZING - with the emphasis on ZING!
You guys have done an incredible job of illustrating some intense future possibilities, for the Drupal community that had not really been explored. You seem to have limitless but focused creative thinking abilities that seem to remove all obstacles from your path. Not only did you go above and beyond, I love the way you have done the case study also. Nice.

I LOVE YOU MAN!!!

Give a Drupal

lies’s picture

Looks great. Is the video's song inspired by the sims gibberish language?

christefano’s picture

Thanks for asking that! I wouldn't have known that the music had been updated if you hadn't asked. I think it was later in December that the autoplay was actually disabled.

I don't know what the inspiration was but the original music and sound textures are all by Pam Aronoff, who's scored soundtracks for other games, too. She worked with Scott Nelson to integrate the sounds into the playarea, as well.

jinlong’s picture

it looks good!

drupaluser---mydrupal

jrust’s picture

Wow, definitely a great example of the flexibility of Drupal. Wondering how you accomnplished the ability to gift userpoints and even virtual products to someone else? Is that a custom module or an existing one?

nodiac’s picture

We were going to add gifting after launch; however, while we were working with Übercart we saw the opportunity to fit the it into the checkout process, so that someone can add a recipient while purchasing and ownership would be reassigned.

We made a custom module that hooks into Übercart's order object that detects the content type of the purchased item - points, house, item, etc.. Points can get added to someone else's account or an item can receive ownership of another member.

rikki_iki’s picture

This was obviously a while ago but I'm really interested in how you did this... I'm wandering if there's any chance I could get access to the custom module? Or possibly some advice for where to start if I was to build my own?

Thanks!

nodiac’s picture

No Problem!

Contact me via my contact form on drupal.org. It would be my pleasure to help out.

Cheers,

Lee

ronald_istos’s picture

Great site and fantastic to see Drupal used in this way - did you consider using different technologies at any point at what about Drupal attracted you the most?

---
@ronald_istos
http://roomify.us

droople’s picture

How are you handling these? Which modules are behind the membership system?

If a user doesn't renew a subscription or a payment fails to authorise what happens to their content, is unpublished or deleted?

Could you please elaborate more on this issue.

Overall, brilliant site though. Will pass it over to my niece, hope she convinces her mum to get permission to sign up.

rszrama’s picture

Unfortunately, Authorize.Net's ARB system is not very slick for failed payments. We ended up writing a custom module to look for payment confirmations when we expected them, and if one didn't come through we marked the account for cancellation if payment wasn't received within X days. The way forward is to use Authorize.Net's CIM instead and manually process payments when they should happen instead of using ARB.

droople’s picture

Any chance you would be releasing the custom module, or how much would I buy rights to it as well?

Thanks

rszrama’s picture

Honestly, you'd be better off holding out for Ubercart support of Auth.net CIM in D6. The code supporting ARB is not generally usable atm and is too tied into the site's systems to be useful to you. I'm hoping for more good things with recurring billing during the 2.x lifecycle, though, as we have some good contributors starting to pitch in.

themegarden.org’s picture

really amazing site and great writeup.
----
Drupal Theme Garden

aac’s picture

Really a great site!!
Thanks for sharing the information.

---~~~***~~~---
aac

anneeasterling’s picture

Thank you for the well-written case study! While I may not aspire to creating a virtual world (yet), the site inspires me to continue to think outside the normal Drupal box.

Anne

robs’s picture

Wonderful site guys. Although there are javascripts errors and formatting issues when viewed in IE7 which is still over 46% market share (http://marketshare.hitslink.com/browser-market-share.aspx?qprid=2).

Not too sure how this looks in IE6. Have yoiu tested the site in IE6?

Just thought I would let you know about these errors, but hey, unbelievable effort to get a site like this up. Well done.

christefano’s picture

Just thought I would let you know about these errors, but hey, unbelievable effort to get a site like this up. Well done.

Thanks for the feedback! I haven't looked at Digital Dollhouse with IE in a few months but we actually did manage to get it working in both IE6 and IE7 when we launched last year. The issues that you found must have popped up since then. I'll forward this over to Digital Playspace.

OpenChimp’s picture

This site is awesome!

I saw it when it first launched and was amazed to think that all those pieces of furniture that I was building this house with were actually drupal nodes. My mind began to swim with the possibilities of where Drupal might be taken in the future ... it's awesome to see people pushing the envelope beyond it's known limits, and this site does a LOT of that. Virtual Economies! CCK loadable 3D Flash Objects! And, best of all ... it's all done very much in "the drupal way", standing on the shoulders of great foundation modules like cck, views, taxonomy, userpoints, ubercart ... pure elegance. I see this site as a perfect example of how leveraging the strength of open source solutions and integrating those capabilities in creative new ways can lead to incredible innovation.

I would love to know more about how you engineered the economy to be self stabilizing. Obviously there are plenty of sources for generation of new money in the economy. What kind of sink holes to you have to take money out of the system to avoid inflation? What kind of factors go into calculating whether the economy is in balance - so that you can determine whether you need to put money in or take it out? As we can all see from todays market, regulating economies is no simple matter. I find it fascinating how many similarities can be drawn between virtual economies and real world economies. Perhaps running different models of economies in virtual worlds could teach real world economists more about what factors end up causing big problems.

What else can I say, other than that I'm very impressed.

Michael Thorne
Open Chimp

nodiac’s picture

I don't think there are any self-stabilizing economies...yet. They all require constant gardening.

At the Virtual Goods Summit in San Francisco last year, Daniel James, CEO of Three Rings gave a talk with Andrew Chen about the metrics necessary to manage a virtual economy. I recall Daniel James saying that he employed a PhD Economist and two developers full time just to handle the metrics. It's no simple task.

The Virtual Goods Summit came along just when we were setting up the pricing and the rest of the economy and it was a huge resource for us. Also the attending CEOs, who spend a great deal of their time managing their economies, were very generous and helpful. (Special thanks to Daniel James for insights into cohort metrics.) Those who started out naively thinking that they could just run their economies on instinct got singed by experience. By the second year they were in business, all of them were on the metrics bandwagon. What can be measured can be improved.

While the details of how Digital Dollhouse's economy is engineered are proprietary, here are some of the better sources out there to get you started:

Virtual Goods Summit 2008 Videos - a great place to start
KZero's Blog - One of my favorite virtual world sites. KZero is a virtual worlds consulting firm run by the brilliant Nic Mitham. Good clear writing. Great layout. Fun graphs.
Andrew Chen's Blog - lots of great featured essays
Virtual Goods News - an online rag on 'the business of microtransactions: virtual goods, items and gifts
Caleb Booker has a blog that has a news roundup for virtual worlds
Brett on Social Games - Brett Terrill's Blog
Inside Social Games - tracking innovation at the Convergence of Games and Social Platforms
Virtual Economy Research Network - News, research and discussion on virtual goods, currencies and economies globally
Virtual Worlds News - Produced by the same people who bring you Virtual Goods News.
Journal of Virtual Worlds Research - This looks to be a peer reviewed online journal.

BMorse’s picture

Saw your site a Drupalcon and was impressed. Really liked the writeup. Thanks for showing what Drupal can do with fantastic creative efforts!

Ron Collins’s picture

Digital Dollhouse is a virtual world where girls of all ages are empowered to become their own interior designers.

it seems to me that girls are "empowered" to become consuming gender stereotypes.

christefano’s picture

Although the paragraph that you quote from is an introduction to Digital Dollhouse, its mission and intended audience, this is a technical case study. I'll do my best to answer technical questions but for anything else, please send your feedback somewhere appropriate, such as the Digital Dollhouse or Digital Playspace contact forms.

Andy_Lowe’s picture

Well said Christefano.

phdhiren’s picture

amazing e-commerce site, great theming