JeanCarl's Adventures

Finding the right balance

April 24, 2010 | Games

Social networks have allowed the average user to create a ton of messages to people they know and don’t know.  On Twitter, any 140 character message you can think of can be broadcasted to a few to hundreds and millions of people.  On Facebook, every time you level up in a game like Farmville, you can broadcast your acheivement to your friends.  This can engage the people you know, but can also overload many of your closest and most interested friends.

When developing games like Farmville, developers have had to constantly adjust the dynamics between users.  Some players will broadcast every acheivement to their friends, with no regard to how many messages they actually send out.  They will invite every user they know plus some, even if they don’t play the game.

Allowing these different means of communication and marketing is great for the developer.  They don’t have to spend massive amounts of money on marketing and gaining the trust of new users.  Having a friend who plays a game validates that the app is trustworthy and is worthy of a look.  This is a very valuable connection that most games take advantage of.

Social games also have a method to post your achievements to your news stream.  Players are enticed to post an entry to show off how well they are progressing through the game.  This is similiar to showing off trophies and can help create competition to see who is better at the game.

While these techniques can be advantageous in the short-term, it can become a disadvantage as time goes on.  If I don’t play a game or have lost interest after playing once, I may consider these streams full of trash.  Filtering is the least of possible actions I may take.  Therefore it is important that developers provide a method of giving users options to find users who actually engage in the applications you’re posting about, limiting the audience to those who are actually interested in the notifications.  If I play a game, I will be more interested in reading notifications in such games.

For those more restrained players, posting their achievements can be viewed as a nuisance to their friends.  They won’t post each notification because their friends aren’t known to respond positively.  For these players, popping up a box every couple of minutes will only annoy the player and lead to a poor game experience.  Having an option to post to just those friends who actually engage in a game could entice these restrained players to post more notifications.

Finding the right balance among your players is critical to keeping your game positive in the minds of everyone, players or not.  Not finding the right amount can cause many more problems.

Open graph

April 21, 2010 | Web 2.0

Earlier today Facebook announced the Open graph, a way to expand the connections between everything and everything on the web.  It sounds a lot like a semantic web.  By categorizing data on websites based on different types of objects with data, collecting, organizing, and analyzing the content is made much simpler for automated systems.  As the API process made retrieving and using information much easier to do, Open graph goes further enabling everyone to participate.

If you’re a developer who writes object-oriented code, this is like heaven.  Having all this data organized into objects makes handling such information so much easier.  In the old days, developers had to write code to retrieve and parse webpages, often bloated, unorganized and containing invalid HTML.  Parsing was often broken when the webpage was updated with minor changes.

Then came APIs that allowed a limited set of methods to return certain data in organized formats such as XML and JSON.  This is a decent solution for the most part.  APIs are often accompanied by documentation that specifies what data is returned.  It is usually agreed upon that such API methods won’t be deprecated or changed drastically that would break applications.  The only problem is that you have to build the interface to interact with the API.  And when you reference other services, each usually has different quirks to pay attention to.

Open graph uses a very basic protocol which has been around for a long time.  Meta tags within the webpage and basic URLs provide the data that is desired.  Being able to pull data from the HTML meta tags allows any developer the opportunity to grab the data quickly.  It also allows any creator of a webpage to include this information easily and with very little knowledge or investment.  No need for an API or platform.  It’s as easy as titling the webpage!

I particularly like that Facebook has simple URLs to retrieve data in the JSON format.  If needed, I just have to authenticate with OAuth and I have access to the data I need.  No need to read complex documentation and send parameters.  A basic URL like http://graph.facebook.com/username will get some data.  And they support POST, and DELETE HTTP headers that allow for adding or deleting objects to the social graph.

Customizing the experience

April 07, 2010 | Web 2.0

People have always enjoyed customizing and personalizing everything they touch.  They want things to work how they think things should work.  They want things to be visually appealing.  Some people are so obsessive that they will continuously tweak something over and over until it’s perfect, and then repeat the process again.  Games like Farmville and Petville, just two of many social games, cater to this obsession.

In Farmville, you can choose a number of different crops, decorations and animals to add to your farm.  While some of these items are strategic in progressing through the game, it is interesting to look at what users actually add and where they place each item.  Do they have a nice little patch of land for a cow?  Do they organize all their strawberry crops together, having each type of crop in separate sections?  A user could randomly choose a square on their farm to place an item, or decide that everything should start from the top left and progress down and to the bottom right corner of their farm.

In Petville, there are so many items in the store that you can purchase to decorate each room in the house.  Depending on your taste (and the available cash), it can be the cheap dinner table, or the more expensive dinner table.  Why do users sit for hours tweaking a virtual environment?  Is it because the game is so slow that users don’t have much to do except decorate for the majority of the game time?

Being able to customize the enviornment is very psychological.  If you customize something, there is a personal attachment to it.  What use to be a standard look is now something you have made more appealing.  If you like how the room your pet lives in looks, you’ll stay longer.  And if you see a piece of furniture in the store, but can’t afford it, you’ll work for the extra coins or even hand over real money to buy it.

Customizing the experience allows the user to make a personal connection and want to continue using and customizing it as their taste changes.  If done right, a user may spend many hours moving things around and never get any work done.

Thinking outside the box

April 06, 2010 | Web 2.0

Many websites are developed for an audience local to the company. There are developers who don’t consider the product that they’re developing may be used in another country, in another timezone, or even another language. Whether this is a budgetary issue or just being short-sighted with respect to who uses the product, it’s important to consider usage outside the box.

Supporting different countries, timezones and languages opens up a whole bunch of opportunities from other cultures and markets. The internet is called the world wide web for a reason. It encompasses people around the world. If people cannot understand what your website does because they don’t read the one language your website supports, you will miss the opportunity for a whole group of people and the markets they are in.

While it may be easy to say these are important and that they should be supported by every website, there are many logistics behind implementing them. Languages require templating and translating all the text in your service. If no one speaks a particular language in your team, a third party is necessary to translate the content. Futhermore, a fourth-party needs to verify that such translations are correct and don’t include offensive alternate meanings. With future updates to the service, new content will need to be translated as well, so an ongoing contract may be necessary.

Timezones are tricky. Converting timestamps into different timezones is trivial. One issue is that people in different timezones need to consider that people they chat with may be sound asleep for another four hours. Shifting conversations to odd hours of the day may be important.

As far as being in different countries, you want to keep your service (servers and support) close to your audience’s location. The farther the distance, the longer the delay can be. If an act of terrorism affects one country, your service shouldn’t crumble to a halt. Having backup plans for each country is a good exercise to practice.

This topic can be very complex and take companies years to implement. In some cases legal issues may prevent your service from being available to other countries, such as video and music licensing agreements. Keeping an open mind about people outside of your box during planning and development will keep the door open should it become feasible in the future.

Paying for content

April 03, 2010 | Web 2.0

The internet provides a lot of information and entertainment for free.  People pay for access to the internet through internet service providers, or find alternate means through a cafe, library, or school.  How someone connects to the internet reveals how much they value the connection and convenience. YouTube provides free videos to watch.  Gmail provides free email to communicate with others.  Facebook provides games and photos to play with your friends.  There are alternate pay-to-use services that offer comparable services.

So when a service expects a user to pay for part or all the service, the barrier to retaining the user may be grand.  The average user is spoiled.  If it isn’t free, they will find it somewhere else where it is offered for free.  Look at movies.  You can pay full price for a dvd, watch it once, and put it on the bookshelf.  Or you can rent a dvd for a few bucks, watch it once, and not have to worry about storing it on your bookshelf.  Or lastly, you can download it (perhaps illegally) and not pay anything, watch it once, and have it available anytime you want to watch it again.  It may depend of the perceived value compared to the actual cost to choose one over another.

Providing content isn’t cheap or easy.  You have to pay people to create and maintain the content so that users can continue to enjoy content over time.  If you don’t produce content often enough, the user won’t wait around and you end up losing viewers.  Many companies never find the right balance of giving users what they want for free and making at least enough to keep the company above water financially.

Allowing users to try a service before they buy is one way to strike a balance.  Show them what they get if they pay a few bucks.  Let them actually use it and input their data into the system.  Enticing a user to come in the door makes it much more likely they will pay to stay in.  And give a user a little (or a lot) more than what they could get for free with another service.  Many users weigh the benefit they get in return for the cash they hand over.  If the deal isn’t all that great, they won’t bite.