Xbox Live Gold Price Increase in Perspective

Posted by David Fisher on August 31, 2010 Comments

The newest hot complaint among gamers this week isn’t a class being nerfed in Warcraft, nor a game’s launch date sliding. No. It is Microsoft’s pricing increase for their Xbox Live Gold service, slated to take effect November 1, 2010. In the US, prices are going from $50/year to $60/year when purchased annually, and from $8/month to $10/month if purchased monthly. Former prices had been in effect since 2002.

Xbox Live Gold service is required to participate in multiplayer games online with the Xbox and to access premium content such as demos through their online storefront.

Users on Twitter, forums and blog posts expressed their strong feelings.

“Kinda annoyed xbox live is going up in price. No new features and PSN is still basically free. Bad move Xbox” – @redrum662 on Twitter

“WTF! Why is the price of Xbox Live going up? I don’t give a shit about getting ESPN updates!” – @Marina_Dee on Twitter

“So how the crap did I miss the story about Xbox Live Gold going up in price yesterday? Guess I’ll order that PS3 now! #fb” – @thebmatt on Twitter

“Prices didn’t need an increase they were fine. Don’t you guys make enough money?” – xTye on Major Nelson’s blog

“Seriously?  You guys better start providing services for Gold users that don’t require us to pay more to other companies to use them (Netflix, ESPN, Last.FM, etc.) or something.  What MORE are we getting for paying more?” – Fish Face McGee on Major Nelson’s blog

Fish Face McGee strikes on an interesting question that I feel should help put the price increase into perspective. What more are users getting for their money?

  • Higher employee wages – Reports from last year came out that Sony was freezing and even cutting wages for SCEA employees due to poor profitability. Microsoft hasn’t done this, and wages have certainly increased since 2002.
  • Higher health care costs - I don’t have the exact numbers, but the cost of providing health care to employees has risen dramatically since 2002. This a very real cost for Microsoft.
  • More employees – As the Xbox Live service has grown, so has Microsoft’s employee pool for those working on the service.
  • New consoles – We all know that the retail price of a console rarely covers the actual R&D and parts costs at ship date, or often for years down the road. They take a loss on the console with hopes of making up for it later in games and accessories licensing fees, and now with online services. Xbox Live Gold is subsidizing the Xbox 360, and probably R&D going into whatever Microsoft releases next.
  • New and better services – It seems about every 18 months we get a new UI for the Xbox, every few months new services such as Facebook, Twitter, Last.fm pop up. While some users claim to not use these services, if you reverted their Xboxes to have an the same Xbox Live experience from 2002, they would be sorely disappointed. They have recently promised to increase their voice quality of Xbox Live, which I see as a major move forward.
  • Bigger and better demos – Since 2002 games have gotten bigger and better. The bigger (size) part creates a bigger strain for Microsoft to provide downloads for demos. Certainly technology costs are decreasing, but that doesn’t mean that money isn’t being spent daily to increase their capacity at Microsoft. Just because a new hard drive this year is half the price it was last year does not make it free to buy a new one.
  • Inflation – Overall the cost of doing business is increasing. I can only hope for reader that their wages have increased since 2002 by a similar percentage.
  • Continued Development – When you bought your Nintendo, Atari 2600 or Commodore 64 years ago you didn’t continuously receive updates from the manufacturer that improved your experience. Modern consoles are dynamic and constantly changing. Bug fixes aren’t free. Luckily today if there is a bug they can generally fix it. Bugs that shipped with the NES didn’t get updated.

While not all of these things funnel directly back to the user’s experience, they do enable Microsoft to create the user experience. Yes, Microsoft is a profitable company. They do have a fiduciary responsibility to their stockholders to create value and increase profits. I don’t see this as a huge cash grab as much as just keeping up with the times. Sony may not have the same model, but they also very well may have different licensing costs to publishers, and their console is still higher priced.

So what are users getting? They are getting one of the best integrated gaming experiences we have ever seen that is constantly growing, expanding and alive feeling. They have multiplayer servers hosted for them, a high quality voice (and video) chat experience, matchmaking, patches, demos, and videos. They have and professional community management team keeping order and punishing cheaters for a better experience. In exchange, Microsoft is asking for 20% more after eight years of service to keep up with the expanding cost of doing business and inflation. Sure, they might have a little profit built in there too- but I think that’s just fine.

Users wishing to get a lower price than normal can buy 12-month Xbox Gold cards from Amazon for as low as $39.99 for a limited time.

  • Share/Bookmark

Blizzard’s Real ID is a Real Problem

Posted by David Fisher on July 8, 2010 Comments

Blizzard, the makers of World of Warcraft, Diablo and Starcraft recently announced the release of Real ID. The community immediately had a knee-jerk reaction against it, which until I looked into it more I counted just as paranoia. Afterall, these are the same people that flood the forums with complaints when a single character class is nerfed in WoW and react with epic rage when they can’t log in. Can’t be that bad right? Yes, yes it is.

Real ID brings the user’s real full name to the public when they post to the forums and friend others across servers and games. They claim it to be a “completely voluntary and optional level of identity“. Yet, if you need to post a technical problem or comment to the forum, then you must use the Real ID system. Blizzard also states in their FAQ, “If you are using Real ID, your mutual Real ID friends, as well as their Real ID friends, will be able to see your first and last name.

There are positive features that Real ID promises, but I would rather focus on the privacy issues at hand here.

Your name is PII

Your full name is certainly personally identifiable information. I have a good friend that even her first name alone is unique enough that when Googling for it in the US, the first 28 results are all her. While I don’t condone it, a blogger demonstrated a great deal of personally identifiable information they were able to recover just from the names of several Blizzard employees.

Even if your name alone isn’t so unique, someone with a small amount of motivation can find out a lot of information about you. The gaming community knows this, and it was even parodied in the first episode of The Guild when Zaboo shows up unexpectedly on Cyd/Codex’s doorstep and knows way too much about her. This is 2010 and cyberstalking is commonplace. Believe me, if someone can communicate with you, they can find you.

Even if someone isn’t trying to cyberstalk you, there are other immediate and basic repercussions. Female gamers have long avoided talking as much on public imVOX and similar voice channels due to harassment issues. Those with non-European sounding names also face harassment and racism. Yes, good moderation should help take care of this, and knowing the real name of the harasser leads to some accountability, but it doesn’t really fix the problem at the end of the day. Sometimes, being anonymous is the answer. And what about ‘famous’ individuals? It would be quite the press scandal to find that Barrack Obama has several level 80 toons in tier-10 gear. Some occupations simply just don’t play well with the notion of being a hardcore gamer, even if it is what you do in your private time.

And that’s the issue- what you’re doing at home, on your own time, is private. As the consumer of entertainment, there is little reason for that your identity needs to be made public for all to see.

Deeper Exploits

A few months ago, I joking made a site called ‘Did They Play‘. It allowed you to enter the name and server of a Warcraft player, and receive email alerts when something changed in the WoW Armory. It was made to show how fragile even the most basic data can be to privacy exploits in a non-harmful way. Maybe 40 people tried it out (mostly on my own character), and it suffered from some huge limitations and barely worked. The main limitation was that you had to know a lot about the player beforehand, and that there was no way to know all of their player names. Now the Blizzard FAQ on Real ID states the following:

“Real ID friends will be able to see all of each other’s characters across games; there will not be an option to hide specific characters from Real ID friends or to appear offline to them when you’re logged in.”

I have to wonder if friends-of-friends will be able to see this same information. If so, I believe it is a massive privacy hole. If there is an easy mechanism to add friends aside from knowledge of the player’s email address, then someone can easily build a bot that attempts to friend a large number of people. A few of these crawlers running can easily capture a large percentage of the system if not clamped down on quickly. Some players like sharing how frequently they play and use services like XFire or gamerDNA to do so, and others would prefer to remain private about such.

The Cross Network Hole

If you find out a few more pieces of information about a person, then you can probably identify a lot more about them and their friends. I spent much of 2009 doing social network research with the Web Ecology Project, and one of my specialities was cross-network theory and datamining. If I’ve got your name, plus the a few of your favorite aliases (like names you might use for characters), then I can probably find you on a multitude of networks. Each network that you are known on increases the amount of information that is available on you massively. I won’t go further into this, but let’s just say that you can find a lot on a person once you know not only them, but their network.

Feature Creep

I cannot imagine that Blizzard doesn’t have some more ideas left unimplemented on Real ID- so far. They will continue to upgrade and expand the system with various features. Some of these will surely erode privacy even more, but with less of a splash.

Why Are They Doing It?

This is a famous problem of technologists. We focus on problems as they would apply to us, and assume others would react similarly. We expect logic and rationality. Many of us are already fairly public people and have faced little repercussion from it. I’ve been online in various forms since the 80′s. I put myself out there in a massively public way. You can easily find well over 10 years of my history just from my username ‘tibbon’. I say provoking things, have thousands of photos online and you can even find my address and phone number with ease. I’ve never had a problem online. I’ve never been cyberbullied, and for a while I wondered if it was even real, or just an urban myth. So privacy must be dead, and since it works for me to be so public, it must be ok right? No. No. No.

Watching danah boyd’s SXSW 2010 Opening Keynote (I wish I had the last 20 minutes, but can’t find it) on privacy issues really changed my mind on this. danah boyd is an internet researcher that focuses on privacy issues and teens online. Her keynote (and talking to her afterward) really changed my mind on these things, and Blizzard executives, developers and community managers would be wise to watch it.

She points out that users rarely set their privacy settings as they intend them to be. Some people are at far greater risk by being public than others. Companies are pushing the boundaries of privacy, and then backpedaling and acting like its ok. The landscape today is also different than it was 10 or 20 years ago when many of those programmers and executives were growing up online.

Blizzard probably sees all of the benefits from this, and doesn’t know how to weigh the negatives. They feel that since it technically works, then it must be ok. For them, the positives seem to outweigh the negatives and they have put in place sufficient privacy options to make it all ok. Perhaps in the end they will. I haven’t been able to use the system, but the concerns here are very real and unlike lowering the DPS on Elf Mages by 1%, this isn’t just people being paranoid or alarmist.

Our Commitment to Privacy

Balancing privacy with social innovation is hard. We do it every day here at imVOX and sometimes discussions get heated. I’m a massive advocacy for user rights, privacy and anonymity and I will fight tooth and nail to make sure that our users are protected. We’re still working out our long-term privacy policy, but we are up for feedback and listening to users completely on any privacy issues that they might have with imVOX. I’d love to know your thoughts below.

  • Share/Bookmark

Seeking .NET Developer

Posted by David Fisher on July 7, 2010 Comments

imVOX/Ayalogic is looking for a .NET/C# developer to help us migrate from .NET 2.0 to .NET 4.0 for our VoIP client. Experience with similar migrations required, as is a strong knowledge of Expression Blend to migrate our UI. Boston-area preferred, but we will consider all candidates. Rate negotiable. Contract may lead to future development opportunities. Please send resume, public code repo (if available on Github or similar) and references to jobs@imvox.com

  • Share/Bookmark

OnLive Hands-on Impressions & Review

Posted by David Fisher on June 29, 2010 Comments

OnLive is a new all-cloud gaming service that promises to revolutionize gaming as we know it by keeping all of the computing power and installation in the cloud. Unlike other online services like Steam, you don’t install any games and your system specs are largely irrelevant. The game is actually running on the OnLive servers with the OnLive software basically acting like a VNC terminal to their systems. With Valve’s Steam, you are still required to download, install and run the game on your system. Onlive currently supports Windows and Mac OS X, with promises of a small hardware box for your living room in the near future.

Signups are currently available through a ‘Founding Members’ program that is offering a free year of access to the service (but not the games themselves). It took from me signing up on the 22nd to the 25th to receive an invite, so the wait isn’t terribly long. After the first year, service will be $4.95/month plus access fees for the games.

Installation

Installation was quick and painless on my 2008 Macbook Pro with Snow Leopard as it was only a drag and drop of a 6MB file. Nothing much to mention here. I’d like to comb through their EULA (which I agreed to of course), but haven’t had the chance to put on my legalese hat and jump into the jargon. I’m sure the Windows installation is similar.

No Wifi!

OnLive is the first time that many gamers will experience a bandwidth crunch, as it requires a 5Mb/s connection. A hardwired ethernet connection is also mandatory, presumably because OnLive feels that wifi isn’t stable or robust enough to deliver the bandwidth required. In many instances, this is probably a fair statement but in either case it is slightly annoying and might catch some gamers off guard. There are some hacks on the Windows side to get around this, but you’re probably better off just using a wired connection if possible unless you are sitting right beside an N-spec router that only you connect to.

Interface

Control is done through a Boxee/Tivo-like screen that greets you after login. No drop-down menus, right clicking or such. You have the options of: Arena, Profile, Marketplace, Coming Soon, the OnLive logo (poorly titled the Dashboard), My Games, Last Played, Brag Clips and Friends. The ‘escape’ key generally takes you back one menu level. Occasional Windows-centric bugs pop out to me as a Mac user. To access the Dashboard you are instructed to press Alt-O, yet Macs are without an ‘Alt’ key labeled as such.

The Arena shows you a grid of realtime screens of other players in their games. You can select any of them and instantly see any one of them fullscreen with audio. You can vote them up, down or add the person as a friend. While this is pretty damn cool the first time you check it out, I find it doubtful that I’d spend much time in here. It does highlight the capability to view another player’s screen in realtime, which you can also do for any of your friends. My privacy-advocate hat worries here that the default privacy setting for this is too permissive, but given that this is just gaming it probably isn’t of huge consequence at the moment due to many of the limitation OnLive currently has (more on this later). I could envision scenarios that I wouldn’t want others to see what I do in games. Maybe I like killing the Little Sisters in Bioshock, sleeping with prostitutes in GTA IV, or sacrificing villages in Fable 2. Not something perhaps I want the world to see, but also not a Facebook-level privacy hole.

The Profile screen currently is really basic and doesn’t have much to talk about. I’m sure they will expand this over time. Oddly, I wasn’t able to find an easy way to update my profile after I initially created it, but I might have just missed it.

The Marketplace, as you might assume, is where you find the listing of games for your pleasure. Currently the list is fairly short, and by default it is in alphabetical order, putting local Cambridge indie Dejobaan’s AaaaaAAaaaAAAaaAAAAaAAAAA!!! at the top of the pack. Basic information is provided on each game, but the full price of the game is hidden two clicks in which I think is rather poor usability.

Each game offers a 30- minute demo of the game. From what I saw the demo is the actual game, not a stripped down or single level demo. This has its benefits, but also its drawbacks. Trying to play Dirt 2, I had to go through menu after menu of setup and talking before I was able to race. I just wanted to race and try out the game! For some games like Assassin’s Creed 2 you won’t really see much in 30 minutes that actually represents the game. At the same time, its nice to have the ‘real game’ and not just what the developers want to showcase. It doesn’t seem that the progress you make in the demos transfer to the real game when you purchase it, meaning that if you think you like a game, don’t waste time in the demo and just get to the real thing.

Some of the games like Dirt 2 and Trine aren’t available for purchase yet, but just for demonstration. This struck me as a bit odd. Odder yet is the fact that some games like Mass Effect 2 aren’t available on the Mac. Yes, even though the cross platform restrictions should be a thing of the past due to licensing issues you can’t play some games on the Mac just for the sake of it. Clearly, some publishers are not committed to accepting the Mac as a legitimate gaming platform, even with the programming out of the way. More on pricing later.

Coming Soon showcases upcoming games. Yet the way they work for the interface you are occasionally left wondering what games you’re looking at as there are no labels, just video streaming.

My Games, and Last Played are fairly obvious. Friends is rather spartan and overall the social connectivity functions in OnLive are a bit lacking. You can add people as friends if you know their username, or if you see them in the Arena. I haven’t found a good way to add someone from in a game yet. You can send 140-character messages privately to other users, but otherwise you have no other way to reach them. Compared to the Xbox Live service this seems pretty lacking, but forgivable since its rather new. I have yet to try Brag Clips, but you’re supposed to be able to record short segments of gameplay and show them off to others. A neat idea, but currently they are locked inside OnLive. You can’t cross post them to YouTube, Facebook, Twitter or your blog which makes them pretty useless for me.

Gameplay

So how well does it work? I was highly skeptical, and that is putting it mildly. Yet, it seems to work well beyond any expectation. I am in Somerville, Massachusetts with a 20mb cable line from RCN, so I’m probably doing better than average for available bandwidth and location. One of my good friends reported that his OnLive connections in SF would drop if his roommates were doing much online. I’ll have to try tonight with mine streaming Hulu or Netflix to see how it holds up.

Gameplay is pretty spot on. I played Borderlands and UT3 for about an hour today and I didn’t notice any noticeable input lag. Despite gamers for years clawing for super high speed mice and screens, human response really isn’t all that fast and the delay is hard to notice even with FPS games.

Graphically things are good, but not perfect. I’m not able to run anything at top settings these days, but there have been reports that the games are almost certainly not running at their top settings. This doesn’t shock me at all, but I’d expect (and hope) that things will only get better. Settings that would effect system performance are hidden in preference menus from the user and non-adjustable. There is a moderate amount of data compression going on with the video and you see some washing out and darker compression artifact pixellation similar to watching a movie on Netflix or Hulu vs a real DVD or Bluray. It isn’t bad, but I wouldn’t call it ‘crisp’ either. I think some of the issue is that the video is coming in at 720p, but that isn’t the native resolution of my Mac monitor (1440×900). But graphics aren’t everything and the experience isn’t bad at all, and is in fact outright impressive. CPU usage was around 60% on a single core of my machine, which isn’t too bad really.

The audio sounds good through my laptop speakers, but I haven’t tried it with my large system or headphones. I’m sure its fine since most game audio isn’t of the highest quality anyway. I do wonder if it transmits in surround sound and I will have to test this later. The hardware Onlive is supposed to have surround outputs, so I’m guessing it is in there or will be soon.

Multiplayer is a bit weird. There don’t seem to be any OnLive dedicated servers for games like UT3, and you are confined to playing with OnLive members which at this time is a particularly sparse group. I could barely find a single human to play UT3 with, and my Borderlands server was one of three, each one only having their owner logged in. When you are playing, there is no easy way to communicate with them. All text communications have been removed from UT3 and Borderlands (and probably other multiplayer games). I don’t know if this is an attempt at making a ‘safe’ gaming platform without trash talk or abuse, but it seems outright restrictive and backwards. Oh, and for those of you familiar with XBox Live or Steam, there is no voice chat. Even when you are gaming with others, it feels very disconnected and lonely.

Pricing

If you get into the ‘Founding Members’ program, the first year of the service itself is free with additional service being $4.95/month. Long term access to games range from $59.99 (Splinter Cell) to $9.99 (AaaaaAAaaaAAAaaAAAAaAAAAA). Some games offer shorter PlayPasses for around $4.95 for 3-days, some also having 5-day PlayPasses. There are no free games (a la Portal for Mac on Steam) and no games at massive sales.

I frankly think this is too high, or that they need to demonstrate a cost-savings of not needing hardware. I don’t pay monthly for Steam, and it occasionally kicks me free games and great deals weekly. Also the games are almost always under retail price. $60 for a game over a digital distribution system that only promises access through 2013, plus monthly access fees is a little much and I consider myself to be fairly price-insensitive to these things. Buying one game for $60 and playing it for 20 years will cost you $1248 in total at $4.95/month. In comparison, the first Zelda game cost $40 and still works just fine. Nor do I need to worry about the company going out of business (because that never happens in the world of videogames and internet startups!)

The anomalies in purchasing and playing ability are just weird. Why can I only rent short PlayPasses to Batman? Why can’t I buy Trine at all? Why is Mass Effect 2 not available on the Mac? I’m sure some high-paid lawyers have great answers for this, but to a consumer it is confusing and doesn’t make sense. The selection of games is a tad limited currently, but I am sure that will improve over time.

Community

First of all, the service does not (yet) feel like a thriving and buzzing online community. In fact, it feels like a ghosttown which just might be true at the moment. Since it us currently US-only, we don’t have the rest of the world playing along with us at odd times of the day.

Currently they don’t have an official Twitter feed, they do have a blog, but also no official forums. OnLive-Fans has done a pretty good job at picking up the slack, but they really need a good community manager onboard helping grow and curate things.

Improvements Needed

As with any product this early, improvements are needed and some things are sorely missing. There is no voice chat (ahem, but I did try imVOX and it works great!), no text chat (only 140 character messages that you can’t get to in-game), no social network integration, friending functionality is clunky, pricing issues, etc. I don’t have a membername.onlive.com homepage to show off my profile. There are no achievements, no RSS feeds and little configuration of your games. I doubt there will be a thriving mod community, because there is no way to upload new maps or game patches. Games like Oblivion would be almost worthless on OnLive due to these limitations.

Summary

OnLive is pretty damn cool as a concept, and it works! They need to revise their pricing, or add some great argument that I would be able to play Crysis 2 on my Macbook Pro and never buy another $700 console or video card again to sway me. The monthly fee, although currently not an issue is simply too much. None of these problems are insurmountable however and they have already done the near impossible so fixing these issues seems small. I don’t think this is a console-killer, nor a Steam-killer, but rather just another option for gamers. I really enjoyed being able to try a demo instantly without downloading a huge demo just to play for 5 minutes and realize I didn’t like it.

  • Share/Bookmark

State of imVOX and your feedback

Posted by David Fisher on June 18, 2010 Comments

As development on imVOX continues, I have been taking notice of your suggestions and feedback on our forums and elsewhere.  I know we haven’t been able to implement every feature requested so far and that progress hasn’t been quite as swift as hoped- yet I still feel that we are building a solid service that will go far beyond where our competition has ever dreamed of being. Keeping the community in the loop is highly important to me.

First, in case you haven’t heard we released an all new Mac client. It is fast, clean and sets us up for success on the Mac platform. As a Mac users myself, I have been using it more and more daily (and I am very happy to no longer boot into VMWare to use imVOX). Download it from our downloads page and give it a shot. Yet, this is only the beginning.

The team has expanded with additional talented developers and we’re moving far faster than ever. The primary server-side voice engine is being replaced completely with an open-source based alternative to the proprietary platform that we’re currently on. This will allow us to use almost any codec we want. It requires us re-writing the audio/network libraries on the Windows side, but once that’s done we will be able to support the higher quality SILK and CELT codecs as well as anything else that comes out in the future. End results: Higher voice quality and better feature like per-user muting and mixing.

Talking is a social activity and is best among friend. For this reason we are very close to adding friends capability to the Mac and Windows clients. This will enable private text and voice messaging, a friend’s list, easy joining of your friends in servers and grouping functionality eventually. Integration with other social gaming services also becomes a possibility with this addition.

Our Windows client is not as fast or stable as I would like. To fix this we are removing the current audio/network layer and replacing it with our own that we can control better. Additionally we are moving to support .NET 4.0. This will allow us to re-write the interface for much faster response time and lower system load. End result: Faster and less CPU usage.

A new Windows client should be hitting the update servers within the next 1-2 weeks and implement many, but not all of these features. Stay tuned for updates.

We need your help. Make your voice heard. Take a quick survey on imVOX so that we can better understand your use and build a better imVOX. One survey will be randomly selected to win a super-secret but awesome prize!

  • Share/Bookmark

PC to Mac ports- not an easy process

Posted by David Fisher on May 17, 2010 Comments

Benchmarks, comments and forum posts have been circulating over past week concerning the quality and speed of Valve’s Mac Steam digital distribution client. Many users seem frustrated, some confused, and others even exclaim the superiority of Windows as an operating system. At the heart of this is the issue that porting an application from Windows to the Mac OS (Snow Leopard) is very difficult.

At imVOX, we’ve been working for several months on such a port of our voice communications platform from Windows to Mac. It hasn’t been as easy as we had hoped. We’re a small company and our expertise is firmly in the Windows platform. While we have very talented individuals I don’t think any of us had fully developed a Mac application prior, and certainly not one of this complexity. I’d like to share a bit of what made this far harder than we anticipated.

A few points first however: I am not the lead PM, nor am I a developer by trade. I’m a Director of Marketing who happens to be able to code in Ruby. Other people at imVOX are writing the code- not me. I’m just writing this blog post. Also, like I said in the prior paragraph, we are n00bs to developing on the Mac. There are likely several things were did wrong that a Mac ninja wouldn’t have run into. These are our experiences. Advice, ideas and offers to help are welcome.

Mono Makes it Easy- Right?

Our Windows client was written in Microsoft’s .NET 2.0 with C#. While .NET exists only on Windows there is an open source technology called Mono that allows for cross-platform .NET development, in theory making it possible to reuse most of our .NET code to create a Mac (and potentially even Linux) client. We put our code through the Mono Migration Analyzer and things looked generally good. This lead us to belief that this process would be smooth sailing, taking no more than a month at most.

The main idea here was to be able to have one set of code that we were using. No major forks/divisions in the code and reusing almost everything. That would make it easier, cheaper and faster right? Right…?

Workflow Woes

Around the same time as we were starting heavy work on the Mac client we made some other changes to our workflow. We moved from Microsoft’s aging Visual Source Safe to Git. We tried using Github at first, but then shortly after moved to our own self-hosted Git server. For Windows-centric developers who were used to having controls in Visual Studio that integrated with VSS, this was a bit of a stumbling block. Git isn’t hard, but if you’ve been building software for 5+ years using a centralized repo it certainly is a change.

Our developers were still using Visual Studio to develop the Mac software, instead of working in XCode. This required us having a Mac and a PC in front of each developer. I’m honestly not sure why we’re doing this, aside from our developers being deeply familiar and comfortable with Visual Studio as their development environment. If I had to write a Windows piece of software, I’d probably be using TextMate and doing the inverse myself so I can’t blame them.

Everyone had lots to learn. New tools, new ways of debugging crashes and just understanding the OS at a reasonably deep level took some time.

Interfaces

Our Windows interface was written using .NET forms. It was highly Windows-like and also was made to look very ‘gamer’ oriented. This had a few problems. First, the interface barely worked on the Mac. We were doing all sorts of things for transparency, collapsable areas, and to draw the screen overall. When they did work, it was slow and buggy. Debugging these was slow and tedious. Things just didn’t seem right.

After much effort, we decided to go with a native Mac interface instead using Interface Builder. We used MonoObjC as an Objective C to .NET/C# bridge. Thankfully Steve Jobs hasn’t gotten around to killing all translation middleware on the Mac itself (yet). This worked well overall and made our workflow much more manageable. Now myself or our graphic designer could easily check the most recent build out of Git, open up the interface in Interface Builder and rearrange things as needed without breaking anything. Overall MonoObjC was a great idea that I wish we had known about from day 1.

Developing an interface for the Mac however presents several interesting problems. Do you try to keep the exact same interface that you had on Windows for consistency? That pisses off Mac owners due to all the Window-isms present. But if you make a totally native UI you now have a lack of consistency between products. For games, this is less of an issue, but for a piece of desktop software your users notice either way.

If we were writing both Windows and Mac software again from day 1, I suppose we could have gone with a cross-platform interface solution like QT (or just used Java), but I still feel as though we would have been missing something on a usability level.

Feature Parity

One of our major goals from the outset has been to achieve complete feature parity between the Windows and Mac applications when possible. This has been a lot harder than we anticipated. We aren’t far off, but this doesn’t happen automatically for sure. Our main competitor Ventrilo does a rather poor job of this and we’d like to do better. With the next (still beta) release we’ll be missing a few things but we will catch up on that soon. I’d rather release early, release often than wait forever.

Audio and Network

Our program is mainly about voice chat, and obviously deals quite heavily on the audio layer. Since we are transmitting over the network it gets a little more complex with various codecs, echo cancelers and other gremlins.

To begin, audio on the Mac is totally different than audio on the PC side to a degree that I won’t even elaborate. We were using a proprietary licensed codec on the Windows side, but the cost for the Mac was prohibitive (and the quality/flexibility wasn’t what we wanted). Temporarily we’re using a PCMU codec until we can implement SILK/CELT on our servers. We had an echo canceler licensed from the same people on the Windows side so we had to rewrite our own on the Mac side. Our still isn’t perfect, but we’ve implemented an Audio Units chain as to get consistent and stable timing across the board (allowing for inverting of waves to cancel echo). That took quite a bit of time.

Push to Talk and Keyboard Access

Steam users have commented on the setup procedure of their Mac client being less than perfectly smooth. It requires you going to Universal Access under your System Preferences and enabling access for assistive devices in order to get the overlay to work. Guess what? We do the same thing. It isn’t because Valve (or our) programmers are lazy, but rather has to do with how Apple has protected the keyboard on a security level. I don’t know if I’d call it great security, but it certainly is a setting that 99% of users don’t toggle or are aware of.

Accessing keystrokes from an application when another application is focused is rather difficult under OS X and requires some trickery. It ended up that we had to write a separate driver (launches when imVOX does) that intercepts all keystrokes and then passes them back out to their original destination. As you’d imagine, this is roughly the same technique that a keyloggerwould do, and we’ve taken precautions to make sure that nothing is being logged, recorded or stored. This is why Apple doesn’t turn on assistive devices automatically. In our estimate, Valve is doing the exact same thing with Steam so this isn’t an uncommon technique. Should anyone have a better idea, please let us know. We’ve been ripping our hair out over this one.

Odds and Ends

We’ve got a bit more to do on the Mac to make it really Mac-like. We need to write help files that are specific to the Mac. More testing is needed overall. We have a TON of conditional statements in our code now checking if we are running the Mac or PC version. Shortcuts need to be polished. Installation process is far different from the PC. The way we built the application is also different (using nant or Xcode).

Final Thoughts

We thought this would be a simple process. Unfortunately we got bit by our lack of expertise, interface issues and the 1-10-100 rule. Anyone critiquing Valve for their results so far on Steam/Portal should remember that they’ve been at this for several years on the Windows side and programming on the Mac is different.

Even using something like Mono does not make for an easy transition unless your application is dead simple. Also using Mono holds you back a bit for your Windows development. Using .NET 4.0 or Expression Studio will force you to split your code even moreso. I think the best way around this is to create a few shared libraries, and build everything else natively on each OS from the beginning. Sounds harder, but it will probably serve you better in the long term.

  • Share/Bookmark

How to Update World of Warcraft on a Case Sensitive Volume

Posted by David Fisher on April 9, 2010 Comments

If for some reason you formatted your hard drive as a case sensitive volume on your Mac, then you’ll find that World of Warcraft will not update due to an error “World of Warcraft Update may not work properly on a case-sensitive volume.” That is to say that the update won’t work at all. Luckily there is hope and it is a rather simple solution.

To update WoW on a case sensitive volume you’ve basically got to transfer it temporarily to a non-case sensitive volume. Blizzard’s advice is to nuke your system and start over again, but this is overkill. You can do one of two things- either move it to an external hard drive, or move it to a disk image which is basically a virtual hard drive in a single file. I did the latter and here are the steps.

  1. Open Disk Utility from /Applications/Utilities/Disk Utility (or Spotlight search for it)
  2. Select “New Image” from the toolbar or go to File, New, Blank Disk Image
  3. Choose where to save the disk image. Wherever you save it will need space for another entire copy of WoW. If you only have 10GB disk space left, this isn’t going to work.
  4. From the Size dropdown choose Custom and input 30GB (or whatever size you feel is appropriate. I think my WoW installation was just a little short of this so it made sense)
  5. Change the Format to Mac OS Extended. The default is Mac OS Extended (Journaled) which will work too, but Journaling is slower and we don’t need it for WoW.
  6. Then hit Create. Grab a cup of coffee. Making a 30GB disk image will take up to 30 minutes or so.
  7. Open /Applications and drag the entire WoW folder to this newly mounted disk image. Copying this will also take a while. Get outside and enjoy the weather or something.
  8. Run WoW Launcher from its new location. Updating will occur normally now and you can run WoW.

At this point you’ve got two options. You can either keep WoW in this disk image and run it from here, or you can copy it back to your /Applications folder (making sure to delete the old one in Applications first). I don’t know the performance impact of running it from a disk image, but otherwise every time there is a patch you’ll have to take the hour or two go through this process.

  • Share/Bookmark

Native Mac Client Look and Feel Preview

Posted by David Fisher on March 29, 2010 Comments

We’ve got a mostly-working fully native mac UI in testing now. Pretty soon Mac users will have a killer, GPU native accelerated client with none of the buggy drawing issues that we had before.

A screenshot preview of the new native imVOX mac clientScreenshots preview of the native imVOX mac client login screenScreenshots of native imVOX Mac client on the loading screen

  • Share/Bookmark

Your Privacy with imVOX

Posted by David Fisher on March 24, 2010 Comments

Online privacy is a very serious issue. At SXSW danah boyd from Microsoft and fellow at Harvard’s Berkman Center pointed out in her keynote speech some fantastic points to consider.

She rather astutely pointed out that when relinquishing privacy teens generally think about what they can gain, while adults worry about what they can lose. While technologists talk about personally identifiable information, teens often focus on personally embarrassing information- but there is a large gap between the two and more can be done to protect both.

Additionally she pointed out that we don’t all have the same ability to be a public person online. Those of us that can say and do online what they want with relatively little consequence are privileged and are more the exception than the rule. As technologists we often consider only the technical issues at hand and not how privacy issues can effect the life of users.

The content of your communications is highly personal and sensitive, even if it is mainly talking about the next 25-man raid. We will soon be implementing various social network features including profiles, instant messaging, friends and integration with other networks.

imVOX currently has no privacy policy. We would like to change this and we need your input. We want imVOX to be a thriving and active service, but we cannot do that at the expense of our users.

Contact us directly or discuss your thoughts on privacy and what you need from imVOX in the comments.

  • Share/Bookmark