Today we released the third major update to our digital distribution platform, Impulse. Impulse is designed to let users purchase a game or application, download it and have it tied to their account forever so that they can re-download it. It also lets users get the latest/greatest versions of that software and includes an ever growing list of features to get the most out of your programs.
This article is designed to walk you through where we’ve been in the past and where we plan to go.
Impulse Phase 1: The Release back in June 2008
In June 2008, Stardock launched Impulse, a new digital distribution platform designed to allow people to purchase, download, and update software that is then attached to their account rather than to a particular computer. The idea being, if I purchase a game or an application and later blow away my computer or get a new one, I can download Impulse, logon with my account and tell it to download and install the programs I’ve purchased (as well as freeware programs I’ve attached to my account).
When Impulse was released, we indicated that v1.x of it would be released in 3 phases as this Ars Technica article explains back from June. Its first major challenge was to satisfy our existing customers who were using Stardock Central:
Stardock Component Manager (1999 to 2003)
Stardock Central 1.x (2003 to 2005)
Stardock Central 2.x (2006 to 2008)
So our goal was to get our users who liked Stardock Central migrate to Impulse. We failed. The first iteration of Impulse didn’t appeal to many Stardock Central users. It wasn’t until Phase 2 that users began to really migrate.
Impulse v1.0 (Phase 1) (internally was called Stardock Central 3.0)
People did not like Impulse at launch. It was slow. It was buggy. Its UI was too wordy and non-functional.
Now, if you check out the current www.impulsedriven.com website (and by current I mean the April 6, 2009 version of the website), you’ll notice that it doesn’t make it that easy for developers to find out how to contact us to add their game to Impulse. Not even contact information. That’s not on accident.
The reason for that is because until Phase 3 of Impulse, much of the work has been going into building up the infrastructure and improving the Impulse client. What we wanted to avoid was a scenario where we publish some mega game early on and find some showstopper problem in Impulse that would forever tarnish the brand name. Those of you who used Impulse last Summer with Sins of a Solar Empire know of some of the early headaches we had when it was first released.
Only with Phase 3 are we adding a “developer” tab to ImpulseDriven.com to make it easier for developers to get their programs onto Impulse. That’s because in Phase 1 and Phase 2 we first wanted to focus on getting the kinks out of Impulse.
Impulse Phase 2: August 2008
Phase 2, on August 28th (as described on 1up), was largely about cleaning up the Impulse client a bit and building up the infrastructure enough to support more third-party titles. Still taking baby steps here. We started putting up THQ’s and 2KGames’ back catalog, put up Epic’s back catalog, got Corel up and of course numerous indie games started to appear. We already had a good number of indie games from the TotalGaming.net days (distributed via Stardock Central) but still, during phase 2, the catalog was still pretty sparse as we continued to improve Impulse.
Impulse: Phase 2: August 2008. The UI was still over-done.
Impulse Phase 3: April 2009
We originally slated Phase 3 to go out in February but when Demigod’s release date was moved to April to give us more time to play test and add in the multiplayer tournament stuff to the game, Impulse got 2 extra months of development which worked out well.
For Phase 3, Impulse has gotten beefed up where it is ready to start greatly ramping up getting new titles (or at least as fast as we can get them up there).
It has a new UI:
Impulse Phase 3 includes a much cleaner user interface.
The Community Features are getting beefed up
It has native support for Impulse Reactor enabled games
Plus tons of improvements to performance, bug fixes, and all the other usual “first generation” junk taken care of. And that’s just in the client. There’s still a ton of stuff to do. We’re still not really satisfied with the Impulse client, particularly in the community features, etc. But we’ll talk more about that in a bit.
Beyond the Impulse Client
A lot of people look at Impulse and tend to want to directly compare it to other digital distribution managers since they seem very similar at first glance. The biggest difference between Impulse and other similar systems is that Impulse is server-based, not client-based. That is, the Impulse client is really just a terminal. The real features of Impulse do not exist in the client. That means you don’t need to have the client loaded to play your game or use your application. There’s no such thing as “off-line mode” in the Impulse client because the client has nothing to do with the features of Impulse. Impulse = Impulse Client + Impulse Server (Impulse Reactor).
The real power of Impulse is on the server-side known as Impulse Reactor. Because of that a lot of very interesting things become available for both PC users and software developers.
Impulse Reactor: Available to third parties with Impulse Phase 3
Internally Stardock has used “Impulse Reactor” for a long time. Of course, we didn’t have a marketing name for it (don’t get me started on “reactor”). Internally we had a bunch of development terms for our server-based APIs like Secure Software Deliver (SSD) and Common Virtual Platform (CVP) and Game Object Obfuscation (Goo) [at least there the acronym is cute] and CVP NAT Negotiation. We used many of these features on our own programs for years. If you have Object Desktop or Galactic Civilizations, you have used a precursor to Goo.
The objective of Impulse Reactor, therefore, is to take all these libraries Stardock has developed over the years and make them available to other developers. If we’re going to make a NAT negotiator, we might as well open it up to others. Our position on annoying copy protection is pretty well known. People, especially our customers, seem to like our “DRM” (another area not to get me started is how everything these days is “DRM”, logging onto a forum is technically DRM). And our IP protection works pretty well, certainly as well or better than what else is out there so we decided to start making it available to third parties and using it to protect software on Impulse if the publisher wishes.
Specifically, Impulse Reactor provides:
1. Anti-Piracy Protection. Impulse Reactor’s Game Object Obfuscation (Goo) lets developers encrypt their program EXE to reduce piracy. Unlike other systems, Goo requires no changes to your source code. Instead, we apply Goo to your standard EXE. When the protected program is run for the first time, the user enters their email address and serial #. From then on, that serial # is associated with that user.
Impulse Reactor is intelligent in how it handles users. Users can reinstall their game or application to multiple computers without hassle. But Impulse Reactor will flag installations that are occurring in multiple geographic locations at near the same time or other anomalous behaviors and allow publishers to set their own policies on how to handle such scenarios.
Because Impulse Reactor is server based, developers do not need to re-distribute any client. This means that you can protect your program with Goo and have it sold through any channel you use (retail or other digital distributors) since Goo, unlike alternatives, is vendor neutral.
In addition, when a program uses Goo, the customers remain yours. As a result, it makes it easy to support your program through multiple digital distributors. Thus, if one digital distributor exits the market, your customers can still download and activate through another provider. This is a major long-term goal of many publishers and users: neutrality in where they can re-download their program. If I am buying Game X from distributor Y, a user doesn’t want to have to worry about what happens if distributor Y goes out of business. The user should be able to go to distributor Z and re-download from there instead.
2. Cloud Multiplayer. One of the biggest challenges for developers making multiplayer games on the PC is how to connect players together through routes. NAT negotiation is an increasingly difficult and expensive problem. Impulse Reactor’s Common Virtual Platform (CVP) APIs allow developers to seamlessly connect players together. Best of all, this powerful feature is free to any title that is non-exclusively on Impulse.
3. Multiplayer Matchmaking. Impulse Reactor includes built in support for intelligent match-making. Based on the Elo rating algorithm (http://en.wikipedia.org/wiki/Elo_rating_system) a developer can literally just send a user off for multiplayer and get a user with a similar skill back. This works even if the players purchased their game from a third-party service (again: Impulse Reactor is vendor neutral).
4. Rankings & Achievements. Impulse Reactor has built in support for rankings and achievements. To ease support of implementation, Impulse Reactor supports sending and receiving data in XML. This means developers can implement their achievements in a platform neutral way and support multiple achievement platforms at once.
5. Community Features. Impulse Reactor includes the Impulse Overlay which provides a standardized way for users to find friends, chat online, check out rankings and more. However, developers can easily make use of these features as well since (to stress this: Impulse Reactor is server based, not client based). This means a developer could, for instance, create their own IRC client within their game with only a few lines of code or integrate friends, groups, invites, etc. into their game natively without having to re-distribute a third-party client. Even the overlay features are skinnable to match your game’s look and feel.
One more time for emphasis: The biggest advantage for developers is that Impulse Reactor doesn’t care where the game or application was purchased. There’s no third-party client distributed. A person who buys their game at Best Buy or Gamestop or through a digital distributor can all play together without the user even seeing the word “Impulse”.
Comparison of how other distribution platforms implement developer functionality versus how Impulse Reactor does.
Impulse Anywhere & the Tray applet: Web access for Impulse Phase 3
Phase 3 also introduces Impulse Anywhere:
Users will be able to download their game anywhere via a website, take home their .Impulse file and then install it there with Impulse. For users whose home Internet connection isn’t set up to handle large downloads, Impulse Anywhere provides an alternative way for users to get their software (in addition to providing an off-line archive).
Impulse Anywhere: Visit http://anywhere.impulsedriven.com and download your purchase from anywhere and then take it to the computer you want to install it on.
Phase 3 also includes the Impulse Tray applet:
The Impulse client also includes a tiny tray applet that notifies users about updates and provides quick access to what’s in Impulse.
This will draw to a close the Impulse v1.x series. I won’t go into too much detail about Phases 4, 5 and 6 (Impulse v2.x) other than to say that there’s some really cool stuff coming out. Phase 4 (Impulse v2.0) is due out around the 1st birthday of Impulse. Next we’ll talk about the roadmap.
Roadmap from today
Why giving your customers more flexibility is more profitable than trying to lock them in
Before I get into this, let me respond to some people who say that the idea of letting people sell their digitally distributed games to other people is pie in the sky and economic suicide. People said the same thing when we started releasing our games without any CD copy protection and yet our sales on our software have continued to grow.
Let’s be honest, 5 years ago, almost nobody had heard of Stardock except maybe former OS/2 users. So what changed? Our software has begun selling so well that people have become familiar with some program we make. Why is that? Because being consumer friendly is profitable: If you reduce the risk of purchasing your product you will get more sales.
When we began releasing programs with no copy protection on the CD, the only question was: Would we gain more sales from this policy than we would lose due to piracy. The answer, I think is pretty clear now, is yes. We gained a lot of sales.
Similarly, consider this: If you can buy something that you know you can sell back later, does it increase the odds you’ll buy it? Even if it doesn’t, it certainly doesn’t decrease it.
Stardock isn’t consumer friendly because we’re a bunch of naive hippies or something. Stardock is consumer friendly because we’re a bunch of greedy capitalists who have recognized what should be an obvious truth: If you treat people as potential customers and not potential criminals you are likely to get more sales.
What is Goo?
Our story so far – over the last several years, Stardock has developed a bunch of technologies that include the ability to do intelligent activation. Virtually all our non-games and most of our PC games have used intelligent activation for going on a decade now. The idea being, you download our app or game from the Internet and when you install it, it asks you for your email address and serial key (much like logging onto a forum except the serial key is your password). From then on, that serial key is associated with your email address.
Let’s compare intelligent activation with traditional activation that now has such a bad reputation:
Traditional activation: It ties your serial key to your machine with an install count. Sucks.
Intelligent activation: Ties your serial key to your account, doesn’t really care about your machine ID. Cares more about where it’s being installed from and how often. (click to zoom).
Intelligent activation in action: Flags this because it’s noticing 3 installs in one day at very different locations (click to zoom).
Now before someone says something “Oh yea, I’ll just spoof my IP” or what have you, the above is just one example. There’s several years worth of tweaking done to the algorithms used to flag this sort of thing and at some point, it becomes a lot easier for a warez user to just try cracking the thing (anything can be cracked with enough effort).
The point being that legitimate users are not bothered and if the game gets thrown up on news groups or warez sites or torrents or whatever, they’ll have to crack it so it creates the necessary speed bump that all these systems look for but without affecting legitimate users – to the point that it’s very uncommon for a user to have any problem with this from a support point of view.
Goo in action
Here’s where Goo comes in: Previously a developer would have to modify their source code to make use of this tech. WindowBlinds, Galactic Civilizations, Demigod, Sins of a Solar Empire, etc. we had to modify source code to insert this. And of course, most game developers aren’t really familiar with how to implement this sort of thing to make it hard to crack. Most of the time, you can just…well never mind, the point being, when this sort of thing is implemented directly into the source code by developers, it’s usually pretty easy to circumvent as any pirate can tell you. But with Goo, we run it on the program itself which creates a new container EXE that’s encrypted.
Now Goo, like anything, will likely be cracked. Then we’ll update it. It’ll get cracked again. So we’ll update it again. Such is the way of things. That’s not the point though, the point is that a developer can get top-tier IP protection (or “speed-bumpware” as we tend to call all DRM internally) without having to do any work and do so in a way that doesn’t annoy legitimate users.
Goo also lets us do some interesting tricks for both users and publishers: We can set it up where publishers can turn over their list of Goo users to any third party they want. So if a game comes out and were to use Goo on all distributions of it (instead of say Securom or Steamworks) the publisher has a list of their legitimate customers and can then optionally let other digital distributors use it. So a person who buys say Civilization V off of Impulse would in theory be able to grab their latest update on Steam or Gamers Gate or vice versa. Or similarly, if you bought Civilization V off of “Crazy Eddy’s discount distributor” and they went out of business, you could keep getting your updates from your platform of choice.
Now, what I described above doesn’t magically become possible just because a publisher uses Goo. Goo simply makes it possible because of the creation of a universal account system: Email / serial key. It’s the equivalent of creating the XML format for documents. XML doesn’t magically mean we have a universal file format instantly, it just opens the door to it. There’s a number of privacy issues that have to be worked out (i.e. if I buy my game from A, I don’t want B to have my email address, it has to be opt-in and that sort of stuff will take time to implement).
In short: Goo sets the stage to eliminate the “what if they go out of business, do I still get to play my game?” problem
Impulse Marketplace: Transfer your license
The other big pet peeve of PC gamers is that they can’t easily sell their digitally distributed games. If I buy Halo 2 for the Xbox 360, I can take it back to Gamestop and get money for it. This is great for Gamestop. Not so great for Bungie who made the game.
Now, we’ve already read comments from people who say that no publisher will go for this kind of system. I hope people remember that prediction because we think that within a couple of years after the launch of the Impulse Marketplace that most publishers will require support for it and every digital distributor will have something similar. So with that kind of bold statement, let’s walk through it:
There is Goo and then there is Goo. That is, Goo can be configured in many different ways. One way it’s going to be configured in the coming months is so that we can have weekend game plays. I.e. Want to play some game for the day? Voila, Goo would let you play that game until say Sunday night and then Goo would disable the game (again, yes, anything can be cracked but people who pirate games aren’t going to mess with any of this stuff in the first place, our focus is on honest people). But you see the other way right? If we can disable a game, then that means we can potentially let people transfer their licenses to other people. You sell your game, someone buys it. When they buy it, your game becomes disabled.
How is this done?
In the coming months, we’ll have something called the Impulse Marketplace. A person who bought their game off of Impulse is tired of the game or whatever, they then go onto the Impulse Marketplace and put their game up for sale. The user names the price they want to sell the game for. There’s a caveat of course: there is a base transfer fee of a buck or two + the publisher’s cut. Now, before someone starts yelling, let’s bear in mind that today, most used games are sold via say Amazon.com or Gamestop and they take their cut too. Here, we’re replacing the reseller with the publisher so that the people who made the game are getting paid.
So now, your game is put into the Impulse Marketplace tab on everyone’s Impulse client (and on the webpage and elsewhere). You have a link to your particular listing so you can tell people where it is. When someone buys the game, the license is transferred from you to that user and your account is credited with the profit from your sale.
Now someone is going to certainly say that this isn’t “as good” as being able to take your physical DVD and sell it on say eBay. And no, it’s not as good for the user. But on the other hand, it’s a lot easier to do (the whole process is practically automated), users get something they couldn’t do before, publishers generate revenue they wouldn’t have gotten otherwise and buyers are able to get a discount.
So why do I think this will become so common? Because if MegaGame is available on both Impulse and digital distributor B and only Impulse has the option to sell your game to another user, which one are you more likely to buy from?
And why will publishers likely insist on this kind of support in the future? Because if there are two games you want equally badly but can only afford one but one of them gives you the option to sell it back later to get some of your money back which game are you more likely to buy?
We already know this model works because a lesser version of this philosophy has greatly increased our sales on our other games: By not having CD copy protection on our games, a lot of people who wouldn’t otherwise have bought the game did buy it because a lot of people know they’re likely to lose the CD and the serial # later on their games and therefore buying our game reduced their risk.
In addition, right now, a lot of people hold off on purchasing games until they are heavily discounted. This is quite problematic for multiplayer centric games because many games have a difficult time getting that initial critical mass of an online community. Here, we take away a little bit of the sting of purchasing a game right away for those people who may find themselves no longer playing that game and wanting to sell it to someone else to buy a different game.
Obviously, for those people who don’t ever resell their games (I happen to be one of those people) none of this matters. But I can tell you it matters to a lot of people from the surveys we’ve conducted.
So in June, we’ll be releasing “Phase 4” which will be Impulse v2.0. As I mentioned earlier, I can’t yet talk about some of the cooler things that are coming in the 2.x series but here are a few of things coming:
- Friends & Groups. The Impulse tray applet, which is only something like 2MB in size (because it’s decoupled from the Impulse client) will let users chat with friends and invite them into games and such. We already have this in Phase 3 inside of games but we don’t have it in the tray applet yet.
- Voice over IP. This is something that will be going into Impulse Reactor so that it’s easy to talk to people. Since we’ve been developing this from scratch, we have a lot of pet peeves with Voip that we aim to address. One thing we are doing that won’t be universally loved is that the Voip tech won’t allow itself to be run on low-end net connections. That’s because the focus is on very high quality voice and very very fast response times and by dropping support for dial-up we can take advantage of a lot of recently available technologies in those areas.
- Impulse Builder. This is an app that’s designed to make it easy for people to put up their own programs onto Impulse with our involvement being purely on moderating (making sure it works, etc.). By vastly reducing the effort in getting a program up, we can open the door to freeware developers who want to put their app or game up as well as tons of indie developers who want more direct control over their software.
- Impulse Phase 5 client. The client keeps evolving as we get feedback from users. If there’s something you want improved in Impulse, let us know. You might be surprised how far a person’s good idea can go.
- Content. Content. Content. With Phase 3 of Impulse complete, we are now moving forward on aggressively getting more and more good stuff onto Impulse.
Impulse Phase 4 Client (v2.0) coming June