How to disable mailto links in your browser

Outside of accidentally opening Internet Explorer the biggest annoyance on the web is mailto links. These are usually masqueraded as a ‘Contact Us’ link which you’d expect to forward to a web form. What ends up happening is either your operating system attempts to open a mail program (who still uses those, seriously?) or it forwards you to Gmail (less annoying but still annoying as hell).

Here’s how to disable mailto links in Firefox and Chrome.

My Car Makes a Nice Office But…

While I wait patiently for Canada to adopt a comprehensive high-speed rail line and commuter service, the next best thing is a car for working on the go. Though I’m the primary driver these days, there have been times when I’ve been the passenger. I write this now from a very comfortable position next to Exhibition Park in Guelph. I’m doing work on the laptop in the passenger seat (using a 3G USB adapter from Wind mobile).

Rail is my favourite mode of transport because:

  1. You face people. Seats are positioned in a way that fosters communication, unlike cars, in which everyone faces the same direction and it’s hard (and sometimes impossible) for people sitting less than a metre away in the back seat to hear conversation in the front seat.
  2. Free Wifi.
  3. Work while you travel. When you’re driving, you can’t do anything but drive. It’s dead time; a complete waste of human existence. If you travel by rail, you can accomplish work, read, think, relax, read.
  4. It’s fast. Even current rail service in Canada, specifically between Guelph and Toronto, isn’t that bad in terms of speed. My GPS reported that we reached 140km/h at one point. With some proper funding and planning, that could be the average speed, not the top speed.
  5. It’s safe. Rail is a very safe method of travel, especially compared to the car.
  6. You can pee. Every car has a washroom built right in. You don’t have to stop transport to pee.

Still, for times when I need a third place and cafes are closed, I use my car. It’s a 2001 Chrysler 300m. Here are a few things that could have been done better.

  1. Built-in inverter. My car has two access points to DC electricity: One in the front and one in the centre console. It uses the traditional cigarette lighter type adapter, to which I plug in an inverter which gives me AC electricity for my laptop.  (An even better solution would be to buy laptops that include a DC plug as well as an AC plug so I could just plug straight into DC since that’s what laptops use natively).
  2. Auxiliary input for the car stereo. I won a free car stereo and had the installers provide access to an AUX IN jack so I could plug my laptop audio in but it would be awesome if this came included out of the box. I have all of my mp3s, oggs, and music modules on my laptop.
  3. DC Access point for the back seat. Currently there is no way to access DC power in the back seat except through the centre console, which, when left open, is uncomfortable for the driver.
  4. Better fuel economy. While I’d love to have a fully electric car (such as the Ford Focus Electric), I realize that in 2001 the technology wasn’t close to being ready. My car gets an average of 11L/100KM in town and 7L/100KM highway. It would have been nice to have the ability to switch the engine between performance mode and economy mode whilst in the city.

Spending Less Time At Facebook These Days

Facebook has recently changed the way it handles my news feed. Because of this, it’s likely that I’ll be reading it less and keeping it around just to post things and check up on to make sure I haven’t missed a message.

Here’s why: I don’t equate friendship with following.

When I’m your friend, I want to keep in touch, maybe hang out, and share something with you directly. I don’t want to see your thought stream.

Don’t take it personally because it isn’t personal. When I read stuff online, it’s usually news. I want to learn something new about the fields in which I am excited, not in which you are excited. If it’s not news, it’s an editorial on said fields. If it’s not an editorial, it’s a tweet from someone who might be generating the previous two examples.

I had spent the last 6-12 months whittling down my Facebook news feed to weed out most people’s/most page’s posts from showing up.  The little down arrow icon with the “Hide all from xyz” was my best friend.

Then, a week or so ago, all those settings got wiped in favour of a new “acquaintences” system where you specifically select which group you want to read from.

Here’s why it doesn’t work: I have no clue what people are going to say before they say it, so I have no idea who I would like to follow. But, once they’ve said it, I sure as hell know who I would like to unsubscribe from.

This doesn’t mean I don’t want to be their friend, it just means I don’t want to mix their stuff in with mine is all.

Awesome Vegetarian Restaurants in Downtown Toronto

Staying at the Hotel Victoria in downtown Toronto for the last week with my girlfriend Amy has opened us to a ton of new, fantastic vegetarian and vegan restaurants. Google has helped us find them all, but I wanted to take a second to put together a small list in case you’re downtown Toronto for a while and are looking for great places to eat.

I’ll separate them by category.

Pizza

Pizzaiolo
http://www.pizzaiolo.ca/
There are probably 15 to 20 of these around Toronto, but the one we went to was just a few doors down from our hotel on Yonge St. It was amazing. In fact, it was so amazing, we ordered pizzas there two days in a row. They have a ton of vegetarian and vegan choices and each are made fresh right in front of you. It’s amazing.

Take-Away and Fast Food

Urban Herbivore
http://www.torontoeatoncentre.com/EN/Directory/Stores/Pages/UrbanHerbivore_F018.aspx
Like most food places in Toronto, there are a few locations. The one we went to was in the Eaton Centre, and it was fantastic. I ate the BBQ Tofu sandwich and loved it even though I’m not normally a huge fan of tofu. It was quick and cheap. Like all great vegetarian food, if you didn’t know it was vegetarian you wouldn’t be able to tell.

Sit Down

Fresh Toronto Vegetarian FoodFresh
http://www.freshrestaurants.ca/our_history.asp
Fresh was, without a doubt, our favourite. It’s got great style, it’s busy, it’s fast, and the food tastes fantastic. Amy loved it so much she bought one of the recipe books they offer on sale.

King’s Cafe (Kensington Market)
http://www.kingscafe.com/
This is the sister restaurant to our favourite vegetarian restaurant in Guelph, Zen Garden. Great food and amazing Lychee Black tea.

Wireless in Welland, Ontario, Canada

Over the holidays this year I’m in Niagara staying at my parents’ place. Used to working at the Red Brick Cafe in Guelph, I was worried heading back to an area without a focus on tech would mean staying in the basement to do work. I searched for a few hours online and talked to some folks to figure out where the wireless hotspots in Welland are.

I couldn’t find much.

So, I figured I would list wireless hotspots I had found in the area to let those who come after me to know where they can get some work done in a comfortable environment.

The List So Far

Cafe on Main

Where: 91 East Main Street.

Hours: Mon-Fri – 8am to 5pm, Sat – 9am to 3pm, Sun – Closed.

The best cafe experience in Welland, bar none. Take the #9 or #10 bus to the downtown terminal and walk a block toward the historic bridge. Located directly across from the courthouse, it offers a quiet and comfortable atmosphere and includes a fireplace. If you’re in the area and are looking for a place to get a good latte, this is it!

Seaway Mall Food Court

Where: 800 Niagara St., Welland, Ontario, Canada (view map)

Hours: Mon-Fri – 10am to 9pm, Sat – 9:30am to 5:30pm, Sun – 12pm to 5pm

Seaway Mall’s food court has several wireless hotspots and some work better than others. I had great experience with SSID SeawayMallA but almost none with SSID SeawayMallE.

Cafe Mochaccino in Seaway Mall

Where: 800 Niagara St., Welland, Ontario, Canada (view map)

Hours: Mon-Fri – 10am to 9pm, Sat – 9:30am to 5:30pm, Sun – 12pm to 5pm

Great (and inexpensive!) cappuccino but no in-house wireless. Using Seaway Mall’s wireless required me to sit at one of their tables just outside of the cafe.

That’s it, for now. Expect this post to grow as time goes on and more wireless hotspots are discovered. And, by all means, if you find your own wireless hotspots in Welland please list them in the comments!

Windows Azure is Windows 8

I sat in my office last night trying to identify what Microsoft is doing to combat upstart thin-client operating systems like Google Chrome OS, continue making money with its very popular offline Office suite and offline Windows platform, and compete against Amazon for data and web services now that the world is moving into cloud services.

They will have a lot of competition in the next 3 to 5 years against their core, money-making software products and I believe their plan is to leverage the millions of existing .NET developers and all of the skills they’ve spent years developing to change Windows from a boxed product to a subscription-based “Windows-As-A-Service” service.

I’ve been working with the Windows Azure platform for a few weeks now and I have to say I’m quite impressed. Launching apps is pretty easy once you have the required software installed and there are plenty of projects already listed at CodePlex to get you started. Moving from .NET development to Azure development is a piece of cake. They also appear to be much more open to supporting non-Microsoft development languages such as Ruby and PHP. As a Linux guy, I have to admit they’ve put this together pretty damn well.

Currently, the industry has only paid attention to the web application deployment features of Azure. I believe the true power of Azure is not just deploying scaling web applications but in its ability to launch virtualized desktops from the cloud. Let me explain what I envision Microsoft’s plans to be for the future of the entire software lineup.

The Home PC Market

Imagine you’re a standard, nuclear family buying a home PC in the year 2015. You go to Staples (or whatever your big box store of choice is) and look at what they offer. They have a number of PCs for sale but because by this time most computers have enough horsepower for the home user, the hardware statistics are subdued or even missing. Instead, the software features are prominently displayed.

Available for sale is a home PC that will give you Windows Azure (includes 5 users, Internet Explorer, Office Home, Zune music and PC game marketplace). There are three prices, depending on how long your contract term is, similar to a mobile phone.

  • 3-year contract: $249 hardware cost + $99.99 / year Windows Azure subscription
  • 2-year contract: $499 hardware cost + $99.99 / year Windows Azure subscription
  • No contract: $599 hardware cost + $99.99 / year Windows Azure subscription

You bring the PC home after buying the 3-year contract (who replaces a home PC within 3 years anyway, right?) and turn the machine on. The default software on the machine is a thin-client that simply facilitates the connection to Windows Azure. You create the users for each of your family members and in behind the scenes each of them gets a virtualized desktop (probably Windows 7 renamed to be Azure Home or something of the sort), hosted in the cloud. Instantly all activation, piracy, and product key woes are a thing of the past.

Because the virtualizations are hosted in the cloud, all of the annoyances that current operating systems have would be minimized or eliminated. Consider: All updates to the operating system could happen while the PC is, effectively, off. If Microsoft chose to solidify the hardware requirements for manufacturers, the platform would no longer need drivers after a fresh install and driver updates would happen transparently.

On the each virtualized desktop is an icon for the Zune marketplace where users can purchase Windows apps like iPhone subscribers can: from their app store. Clicking purchase would instantly make available the software you’ve purchased.

The benefit of all this is that of every cloud: You don’t always need to be on the same PC to do your work. You could sit at any computer in an airport, school, library, cafe, or your home and access your desktop from anywhere. Truly this is the stuff of the future.

SMB Market

Because the virtualized desktops will be running the Windows everyone already knows, application development will remain just as easy as it ever has. Developers who are out there, making applications on the Windows platform will only need to learn “What’s new” instead of “What’s changed?”

Businesses will be sold on cost reduction since the Windows Azure platform removes almost all administration and IT support requirements from the business. If you can plug a PC in, you’re pretty much good to go. No more crazy Windows product keys or version incompatibilities. All apps on your virtualization would be incrementally updated over time. Since everyone on the service is paying yearly, this would cover the cost to Microsoft normally attributed to upgrading.

The Windows Azure Business option would also include an SLA.

Corporation / Government Market

For this market, Microsoft would take the SMB Market platform and simply multiply it to handle thousands of PCs. Likely they would offer additional support, a better SLA, and decreased per-unit cost due to bulk sales and contracts.

All of this is really magical stuff and I really hope the future turns out to be something similar. The other exciting part of Azure is what most people focus on: the fact that it offers nearly unlimited storage, computation, and development possibilities for developers and businesses. And that’s where Microsoft needs to cut the mustard. Or else, this whole thing is for nothing.

In order to get businesses and users to adopt the new platform, there has to be killer applications available on it. New stuff, not just Office and IE. Fun stuff like Google Goggles or Twitter. And that can only come from a completely open and available system to let the minds of developers take their crazy dreams and put them into code.

If I could make an impassioned plea to Microsoft, from a developer, please offer us an Azure development option at no cost. We’re not asking you to host our million hits per day website for free, just something we can log into, put up and app and see if it gets some traction. If it’s good and generates some revenue, give us a call and we’ll sell it or start paying.

What do all of you think of the possibilities of this new service? Are you excited about Azure? Let me know in the comments!

A Month With Mandriva

Well, it’s been just over a month since I made the switch to Linux from Windows. My distribution of choice for desktop PCs has always been the fantastic Mandriva Linux. Available for free with plenty of included software (Open Office suite, the Firefox web browser, Kopete messenger, Amarok media player, and much more), it’s always done the trick and looks wonderful doing so.

I have two physical hard drives in my PC. The first one is mounted ‘/’ for all my system files and programs. The second drive is my ‘/home’ directory, where all of my documents are kept. All of the system files are kept entirely separate from my documents.This sort of division is done even with one single hard drive automatically by Mandriva so that if I ever need to format or upgrade the operating system I don’t lose any of my pictures, movies, or music, ever.

Me playing Morrowind in Linux
Me playing Morrowind in Linux

Life without Windows is certainly possible. I’m living proof. And the stuff I use my computer for is likely more intense than your average Joe since I’m a web developer. All of the required software that I use on a daily basis is available and runs great in Linux.

All of my games worked out-of-the-box using the Windows games and software emulator* (Read more about the Wine project). I’ve included a screenshot of me playing Morrowind. It runs great. My girlfriend and I played through Max Payne on this PC, as well, and we’re a quarter of the way through the Quest for Glory 2 remake (which is a lot of fun, by the way) on my other Mandriva Linux PC (our media center).

If you’re considering running Linux or if you’ve heard about it and are curious, give Mandriva Linux One a try. It’s pretty simple: You download it and burn it onto a blank CDR. Reboot with the disc in the drive and you can use it right off the disc without actually installing it. If you like it, go ahead and install it. Otherwise, just take the disc out and reboot — nothing has been changed on your computer.

For more information about Linux, try reading some of these sites:

* I realize Wine is technically not an emulator, but when explaining what it does it helps to use that term.

Totally Loving Blippr

I found out about a really awesome site this week. It’s called Blippr. It’s basically Twitter but for game, music, movie, and book reviews. You have 160 characters to let the world what you think. It’s really addictive.

After creating a profile, you can link to your Facebook and Twitter accounts so any blips you write will be displayed there. This is great to help build some incoming links and keeps your Twitter fresh, which then pushes your profile page up in the search rankings. For a while there my Blippr profile was showing at the top of search results while searching “Rocky1138” on Google.

If you end up joining, add me as a friend and we’ll see how we stack up against each other in game, music, book, and movie reviews.

Ways to Make Google Chrome Even Better

If you’re on top of technology news, you’ve no doubt heard of Google Chrome. Recently released by Google to the happiness of geeks and internet surfers everywhere, this browser has the attributes of a real winner. Chrome is fast, intuitive, efficient, and unintrusive. I love it.

That being said, there are a number of things that could be done to improve the product and user experience, especially for Web Developers. These are in no particular order.

#1. “Open image in new tab” is not as good as the “View Image” function in Firefox.

About 5 to 10 times a day I right-click on an image and select “View Image” in Firefox. It’s a handy feature that seems to have been superseded by the “Open image in new tab” function in Chrome. If this functionality is to become the mainstay then I request that when you open an image in a new tab that the focus shifts to that new tab automatically. That way I can just close it when I’m done.

#2. (and for some this is a deal-breaker) The EULA.

Update: As of 09-04-2008 this has been remedied.

Who in their right mind wrote this thing? Because I used Google Chrome to write this very blog post does that now mean that this post can be used by Google or any of its corporate friends anywhere they want? Rubbish!

From the End User License Agreement:

“11.1 You retain copyright and any other rights you already hold in Content which you submit, post or display on or through, the Services. By submitting, posting or displaying the content you give Google a perpetual, irrevocable, worldwide, royalty-free, and non-exclusive license to reproduce, adapt, modify, translate, publish, publicly perform, publicly display and distribute any Content which you submit, post or display on or through, the Services. This license is for the sole purpose of enabling Google to display, distribute and promote the Services and may be revoked for certain Services as defined in the Additional Terms of those Services.

11.2 You agree that this license includes a right for Google to make such Content available to other companies, organizations or individuals with whom Google has relationships for the provision of syndicated services, and to use such Content in connection with the provision of those services.

11.3 You understand that Google, in performing the required technical steps to provide the Services to our users, may (a) transmit or distribute your Content over various public networks and in various media; and (b) make such changes to your Content as are necessary to conform and adapt that Content to the technical requirements of connecting networks, devices, services or media. You agree that this license shall permit Google to take these actions.”

How do you all feel about that?

For those that are interested, the full EULA is available here: http://www.google.com/chrome/eula.html

#3. What’s my Pagerank?

After installing SearchStatus in Firefox I’ve become addicted to knowing what my Pagerank is for each page on my site. It’s really, really handy. Since this product is directly from Google, I figured it would include an option to show you the PageRank of every site you visit. But it doesn’t.

#4. Inspect Element on Hover

If you right-click anywhere on a webpage you are able to inspect the element located under your cursor. This is handy and works well, but after using Firebug and the Web Developer Extension for Firefox, I’ve become accustomed to this information being available dynamically on whatever element I hover my mouse over. As you hover your mouse over any element on a page with these extensions enabled, the information updates in real-time. It’d be nice to see that as well in this browser.

These are just first impressions, I’m interested in hearing how the rest of you feel about this shiny new browser from Google. Are there any features that you wish were included?

Games I Would Remake

In light of the recent release of the Quest for Glory 2 Remake , I wanted to do an “If I had a ton of money… I would make/remake these games” post. These are games that mean something to me — they have either touched my life in some way or I always thought they were overlooked by the gaming masses. Sometimes because of a glaring design flaw, sometimes because the technology just wasn’t there. Regardless, here’s the list (and it’s by no means final).

#1. Shenmue 1 thru 3 in one giant game.

Shenmue epitomized the Sega Dreamcast. Years ahead of its time, yet somehow not quite technically capable of doing what it set out to achieve. This epic game featured neat novelties such as being able to pick up and examine pretty much anything — even completely useless matchboxes. An intriguing story marred by awkward yet unintentionally funny dialog, this game is a good candidate for a new as yet unavailable virtual reality technology.  Imagine playing this game with full, modern graphics and a 3D headset!

#2. Syndicate

For a long time when I was in public school this was my favorite game for the Atari Jaguar. I loved the idea, the music, and the game-play.  I played Syndicate Wars and it was awesome, as well. I’d really like to see a sequel made with today’s graphics.

#3. Bonk’s Adventure

If game developers nowadays took almost any old-school platform game and converted it to 2.5D, it’d be a much more fun world for all of us. Bonk’s Adventure, in my opinion, would be near the top of the list of games to re-do in glorious 2.5D. In all honesty, I could see a remake of this game appearing on the Wii for today’s kids to play. Good stuff.

#4. Road Rash – 3DO/Saturn/PSX version

This game was hella fun in its day. It still is.  Where are games like this today?

#5. Transport Tycoon Deluxe / Locomotion

I know, I know. Locomotion is relatively new and it’s the spiritual successor to Transport Tycoon. But, what I’m envisioning is a huge graphical upgrade to the series along with networked play via the internet. Imagine a persistent MMO universe version of this game where players are continuing to build while you’re offline. A humongous world-size playfield: 30,000km with thousands of cities and villages. Perhaps that’s something for the creators of games like Second Life to think about. Instead of taking Transport Tycoon Deluxe and making it part of a persistent world, why don’t they make transportation a user-driven economy in large-scale persistent-world online social games? It’s more fun than chatting!

The Optimistic Programmer

Recently in the world of programming blogs there has been a string of articles by disenfranchised developers bemoaning their current work environment in a sarcastic and ultimately unproductive manner. I understand and appreciate sarcasm and tongue-in-cheek humor but what I have seen lately goes above and beyond simple satire to a new level of pessimism that in the end is more about self-serving venting than anything enjoyable to read or to learn from.

At first I shrugged off the first article, which was a negative play on a post I made last week, thinking that perhaps the writer had a bad day and was simply going a bit over-the-top. But then another post by a different author came up on DZone in the same light. And then another.

I then started to wonder why there was this growing trend into negative venting blog posts, where their only function is to belittle other peoples’ efforts and cause as much controversy as possible surrounding that subject.

When I started this blog I made a choice: I wanted to prepare and post articles that people could read and learn from or to be more realistic, to offer them alternative channels of thought so that they can continue their research until they find the solution they require.  I have made a personal choice to be an optimistic programmer, meaning I understand that while there will be times that I am incorrect or times where my example code was not the most efficient it is more important to accept that and learn to grown from it, moving onwards and upwards, than it is to be negative and post with the only intentions being to vent and complain without offering any sort of solution or assistance.

There have always been trolls on the internet. There always will be. The best thing I believe we can do as bloggers is to call it what it is and try to be above it by taking the good points of a negative experience and growing from it, not brooding over it.

UPDATE: Since posting this I have received E-Mails concering the troll label I have applied to these posts. Specifically to the first and last links. While I still disagree with the method of complaining or venting with no solutions presented, I have mistakenly grouped what the authors wanted to be humorous posts in with the negativity I was seeing at the outset. Perhaps troll was a bit harsh. I apologize :)

What Makes a Videogame Fun?

There are several important things that I feel are absolutely required when creating a fun videogame. Fun means so many things to so many people, but for the purpose of this article fun will be defined as a high level of enjoyment obtained by the player as a result of playing the game.

A lot of people look for things like graphics when playing a game. Some people could care less. For some it’s the music, for others, the story. I believe there are several factors that contribute to the fun level of a game and that the fun level is controlled both by how important those factors are to the player and how much of that factor is available in the game itself.

Let’s walk through the eight factors I believe contribute to a fun game. These factors are just that — factors. Think of them as a health bar. Depending on the game, the bar may be full for certain factors or completely empty for others. Rest assured, however, that having a full bar in each of these eight points will increase the liklihood your game will be fun.

The eight “fun” factors:

  1. Graphical Relativity
  2. Ease of controls
  3. Music
  4. Multiplayer capability
  5. Story & characters
  6. Replayability
  7. Nostalgia
  8. Innovation & Novelty

Let’s walk through each of them in detail.

#1. Graphical Relativity

You may notice that on this list I have omitted “graphical quality” and instead written Graphical Relativity. This is because over time I have noticed that the games that are the most fun to the most people are the ones that have graphics that match the game’s premise perfectly rather than overall graphic quality. This is blasphemy to the people with the latest and greatest PC or console hardware, but I believe it to be the truth.

As examples, I cite World of Warcraft, Team Fortress 2, and Tetris. All three of these games have graphics that are not state of the art but all are insanely fun. And popular. They all have staying power as well. For each of these games, the graphics are not the selling point nor are they a point of contention in the gaming industry at large. In these cases, the graphics fit. And that’s the point. It’s not the latest and greatest graphics that matter, it’s if the graphics fit the game.

Try to think of other games that are fun that fit this as well. Games like Crazy Taxi or Street Fighter 2. Can you think of any games where this isn’t the case? If so, are you sure that it was the graphical quality that made the game fun?

#2. Ease of Controls

The Sims was more fun than The Sims 2. On paper, The Sims 2 was a better and deeper game. Why is it that I could stay up all night playing The Sims but couldn’t spend more than an hour playing The Sims 2? Simple — the controls.

The controls for The Sims were intuitive and worked flawlessly. The controls for The Sims 2 were horrendous. That’s not the fault of the game itself, though, or its designers. The reason The Sims 2’s controls were poor was the move to 3D is in itself very difficult for game developers. How does one control a 3D camera without an extensive control scheme? Without some new form of hardware, doing this intuitively with a mouse may be impossible.

#3. Music

This factor is not one that many people think of when describing a videogame. Sure there are examples you’re probably thinking of right now. Zelda, Mario, Final Fantasy… But, isn’t that the point? Why are all of the best and most fun games the ones with the best music?

Something to chew on.

#4. Multiplayer Capability

The ability to play against other players (when done correctly) will (depending on gametype) immediately increase the fun level of your game. Some games even require it. Consider the following example: Super Mario Kart for the SNES. Super Mario Kart without the ability to play against friends would be a completely different (and ultimtely boring) game.

Most gametypes benefit from multiplayer capability, but for others it is almost better to be without it. For example, Morrowind as a multiplayer game would not be Morrowind. For better or for worse, the Morrowind we know and love would not exist in multiplayer. Considering that it’s my favorite game, that would suck and I wouldn’t change a thing. I would be open to a completely separate multiplayer Elder Scrolls game, however.)

#5. Story & Characters

The story and characters used in the game, no matter the gametype, lend to its fun value. As in multiplayer capability, some games require deeper characters than others. But, who says a football game can’t have character development?

Put simply: The more relevant your characters are to your gametype, the more likely your game is to be fun.

For example: Duke Nukem. As a platformer (and later as a 3D game), Duke Nukem is what made the Duke Nukem game series. A Duke Nukem game without Duke is Crystal Caves. Exactly.

#6. Replayability

I believe the desire to replay a game comes from two factors: The desire to enjoy important emotional impacts the game had the first time around and the opportunity for having the gameplay change from the first time you played.

To exemplify the first desire, Final Fantasy VII comes to mind. The game is inherently linear in design. You start in Midgar and end in.. well. I don’t want to spoil it. But, players will replay this game years later to enjoy the deep emotional impact they had while traversing the story the first time, not because they may be able to change the plot.

As for the second desire: This is common in competition-based games. I again call upon Team Fortress 2. Even if you played 1,000 games of pl_goldrush, it’s unlikely that you will have the same things happen twice. This sort of unpredictability is key to increasing the game’s replayability factor.

#7. Nostalgia

This factor is similar to replayability in that you are replaying a game because it brings back memories of what it was like the first time (or another memorable time when you were playing). There are two ways you can take advantage of nostalgia when developing a game.

If your game is new: Pay homage to similar games that inspired you to create your game. If you are making an adventure game, put some references to Quest for Glory or King’s Quest in there. People will associate your game with games they have enjoyed in the past and by reference will enjoy your game because of it.

If your game is a sequel: Take the best parts of the original game and make them shine. Don’t “improve” them as that invariably changes them. By changing the things that made your original game great, you run the risk of alienating people who are playing your sequel because they loved those things. What you want to do is accentuate those selling points.

Compare stealing equipment and items in Morrowind to Oblivion. Oblivion undoubtedly has a deeper and more realistic stealing mechanism when dealing with items and people in the game. However, there are several key things that were changed that makes stealing a waste of time, thereby ruining something that made Morrowind great. Namely, the fact that you cannot place items somewhere and return to them later unless you buy a specific house and the fact that no one has anything good to steal unless you’re at the highest character level, by which point you are done the game.

#8. Innovation & Novelty

Innovation is grouped with novelty since in the gaming world they are the same thing. When Nintendo goes to make the Wii 2, how many people will be excited that they use a remote control with a motion sensor?

However, the first time around this sort of thing can open doors and bring fresh people in. Being able to play games like Doom and Duke3D over local networks in schools and at home was a novelty (though it had of course been done before, it really was the first time I had experienced it myself). Think of when Pong was first introduced. They single-handedly created the arcade industry.

So, what have we learned?

Clearly having a healthy balance of all of these fun factors helps to make a videogame fun. It’s important to not rely on having a large amount in one of the items then neglecting the rest, as that game will be remembered as not being fun but having feature X. The goal is to focus on fun. Fun sells. Fun builds franchises. Fun builds memories.

Thoughts?

Great Music to Program To

Here’s a list of the top places I get my music, which I develop to:

1. Nectarine Demoscene Radio (http://www.nectarine.fr)

If you’ve ever watched a cracktro, and intro, or a demo, you know exactly what this is all about: the Demoscene!

2. Rainwave.cc Videogame Music Radio (http://www.rainwave.cc)

There are quite a few video game stations around the net but none offer the quality of music that Rainwave does. Each user can vote for songs as well as create an account that tracks all kinds of neat things. Definitely a hidden gem of the internet.

3. Modarchive – The internet’s largest collection of music modules (http://modarchive.org)

Many of you may not be familiar with the file formats that this website provides. WinAMP will play all of them, though. Give it a try. Music modules are similar to MIDI music in that they contain the electronic “sheet music” of the music inside them, but they also go a step further and include samples of each of the instruments used in the music. This was very helpful at a time when home computers could not handle large compressed audio (such as MP3) and MIDI quality was poor.

4. Demoscene.tv – streaming video of demos (http://www.demoscene.tv)

Though it seems a bit of a waste to stream video but only listen to the audio, this site really shines if you have a second monitor that you blast this site’s streams on fullscreen. Great graphics, fast streams. Perfect for programming.

5. Kohina – Old School game and demo music (http://www.kohina.org)

Kohina is a good station that plays tracks not found or often played on other stations. For this, it’s not a regular on my speakers. But, it is nice to sometimes leave the beaten path and explore some new sounds.

6. Digitally Imported – di.fm (http://www.di.fm)

Digitally imported is one of the largest streaming radio sites on the internet today. They have a ton of different stations ranging from Trance (my favorite) to things like Ambient and Chillout (also good). Plus, they offer high-quality streams for only $4.95 / month.

I’m always on the lookout for more internet radio stations or demo/videogame music sites. Does anyone have any not listed here? Please tell me!

The 5 Best Things About Being A Developer

I was at work today and had a few of these happen. Because of that, I was inspired to write this post. These things happen to programmers young and old, novice or expert. Here’s the list.

1. Writing code that works the first time

Oh sure. All of us write flawless code, right? There’s just something that feels great about writing a sizeable portion of code and then having it do exactly what you wanted straight away. Especially if you’re newer with a certain language. Confidence++.

2. Finishing a Project

Starting a project is exciting. Finishing is ethereal. My typical work method is based on doing all of the hard work first, thereby eliminating any unintended delays before launch. Unfortunately this means that the last 10% of any project is the most tedious and dreary as it’s filled with things like pixel-hunting or resizing images. Once the last few lines of code are written and tested, life is bliss.

3. Optimization / Refactoring / Reducing # of Lines of Code

Few things in development are as good as the feeling you get when you took that 4x nested for-loop with its switches and if blocks and converted it into a simple, 5-line function. It’s why I get up in the morning. OK maybe not that exciting, but still.

Optimization may not be the best description for this, but in a way it is a sort of optimization of how efficiently your code works.

4. Seeing Marketing For a Product You Worked On

I smile every time I visit my parents as there is a very large billboard advertising a site that I had a part in developing. I know that nowhere on the sign it says my name and that no one even knows I worked on it, but inside I feel good that someone, somewhere is finding something I helped to create useful.

Another example of this would be seeing people play a videogame you created or hearing your song on the radio (if you were a musician).

And, finally:

5. Learning Something New and Useful

I try to make it a point that every day I learn something new and useful to make my work better, faster, and more efficient. I say “new and useful” since new isn’t always better than old. Especially with computers and software.

Whether it’s some new Linux commands (split and cat for me a few weeks ago) or a big jump like using source control, making yourself and your team better at what you do is what it’s all about.

Firefox 3 First Impressions

I downloaded Firefox 3 today. Just like a gazillion other people. It’s launch day and Mozilla wants to enter the record-books for number of downloads for a software product in one day. Supposedly there is no previous record so basically once the first download finished they were the winners :) Anyway, it was good to drum up some interest in alternative browsers!

The first thing I noticed was how responsive everything was. I’m a web developer — I get used to how long it takes for menus to load and things to happen after I click. I started using Firefox 3 and I have to say they have really raised the bar for browser speed. It used to be that only Opera was this fast. Great work!

Secondly, the “Awesome Bar“: I love it. Looks great, works great. It’s similar to Google Desktop’s search field in that you just type a few keywords of what you’re looking for and it’ll show you any sites that you’ve been to that match those keywords. Handy. We are definitely moving away from people actually knowing the domain your business is at. We know we’ve reached the turning point when browsers stop including an address bar entirely or when businesses owners don’t even know their own domain names :)

Finally, a new feature has been added on my Bookmark Toolbar that contains the top 10 most visited websites. This could be good or bad depending on your browsing habits ;). For me it’s really handy. Gmail is in there, Dzone, Digg, Synnema. Awesome.

I have to say I’m really impressed. The difference between Firefox 1 and 2 really didn’t hit me much but the difference between 2 and 3 is monumental. You really have to use it yourself to feel the difference in speed.

If you’re reading this post on June 17th, 2008, then head over to Firefox.com and help raise the number of downloads today by 1!

Top 5 Firefox Extensions for Web Developers

You might be a web developer. You might need to know what HTML element is under your cursor at any given time. You might need to know the hexadecimal value of a pixel is under your cursor at any time. You might have a mile-long CSS file inherited from multiple projects and wonder: “Which styles still apply and which are no longer used?”

Fear not my fellow web developers, web designers, programmers, whateverrers! These 5 Firefox Extensions will help you chop the time spent on any web development task so you can get back to reading blogs during the day. Or work. You choose.

Without further ado, here they are:

 

#1 – Web Developer Extension

I don’t think I’ve ever used a web browser-based tool as much as I have this one. It’s saved me so much time and helped me solve so many problems over the past year. It does practically everything. With tools like “Resize Window” which lets you resize your window to a certain pixel width and height and “View Generated Source” which lets you see the source code used in the website AFTER Javascript runs — Instead of showing function(var 1, var 2) it will actually show the variables that went into that function e.g., function(“john”, “rockefeller”). Cool huh?

Cool features:

  1. A ruler you can use to measure the size of tables, divs, or anything else on your page.
  2. Disable stylesheets to see what your site looks like without any styles whatsoever.
  3. Display alt tags, image file sizes, image paths, and more.
  4. “Outline Block Elements” will automatically outline divs, paragraphs, spans, and other elements on your site. Very handy.
  5. “Outline Current Element” will display the element id and name for any element underneath your cursor. Unbelievably handy.

Sample Screenshots:

Outline elementsMisc functions

 

#2 – ColorZilla

I’m sure we’ve all seen a cool color on a page, whether it’s an image or cell background, and said “Oh man I love that color. I could eat it. I wonder what the hex value is so I can use it on my site. Or in case I get hungry.” Well, you could always take a screenshot, load up The Gimp, use the Color Picker tool to determine the hex color value, but who needs to do that when you’ve got ColorZilla installed?

ColorZilla will display the hex color and RGB value of any color under your cursor. Very, very handy.

 

#3 –SearchStatus

This handy little extension will show you the Google PageRank of whatever site you are on as well as the less-important-but-for-some-reason-still-used Alexa Ranking.

PageRank Plugin

 

#4 – Dust-Me Selectors

This handy little Firefox Extension will tell you which CSS styles are not found on your pages. It works per domain, so surf all of the pages of your site and a comprehensive collection of unused styles will be shown which you can then promptly delete from your stylesheet, thereby increasing the performance of your site.

Very very, cool.

 

#5 – Firebug

No Web Developer’s tool-belt would be complete without the illustrious Firebug. The list of features here is incredibly long, but so is the list of Web Developers who have saved hours of work using it. Their own website explains it better than I would but you’ve got to ask yourself one question: What kind of web developer are you if you aren’t already using this??

I hope you’ve enjoyed this list and found some of the links useful. If you’ve got something to say about these tools or even have a list of handy tools you use that might think others would find useful, please post a comment with a few links. Thanks!