The Reading Rainbow

Sep 10, 2007

Last week I took some much needed vacation. During that time I happened to pick up a book to read, something I haven't done in a long time (as sad as that is to say). My book of choice was Sherlock Holmes: The Complete Novels and Stories Vol. 1, which I received years and years ago from a family friend. I have never successfully read through all of the stories, though I have finished the odd one or two. My goal this time around is to complete the entire book. So far I have read through the two novel-length stories in the book: A Study in Scarlet and The Sign of Four. Both are gripping reads, and I found that I could hardly put the book down once I started reading. I'm very excited about the rest of the short stories. And then it's on to volume two!

What is everyone else here reading? Or are you even reading at all? It's certainly such a 20th century thing to do... ;-)

iPhone Rebate

Sep 6, 2007

Gizmodo has an interesting article on why they think Apple is offering the $100 coupon for early adopters of the iPhone. I happen to agree with the article 100%. Pretty clever marketing on Apple's behalf.

BioShock Review

Sep 6, 2007

I've played through BioShock a couple of times, so I thought I'd post my thoughts on the game. There are incredibly in-depth reviews all over the web, so I'll try to keep this as short as possible (fat chance though, right?). All of these thoughts pertain to the PC release, my gaming platform of choice.

The Good

Graphics
Without a doubt, this is one of the best looking games available today. It doesn't feel as gritty or realistic to me as Half-Life 2, but the game is a sight to behold. The water effects are well worth the price of admission. Future Unreal Engine 3 games should be fun to play.
Voice Acting
BioShock has some of the best voice acting in any game, on par with all-time greats like System Shock 2 and Half-Life 2. Many of the characters are believable, though there are a few rough edges. The primary bad guy is particularly bad, and you'll really come to hate him by the end of the game.
Art Direction
No game ever produced can touch the art direction presented in this game. In one particular level (Fort Frolic), you fight several waves of enemies all to the strains of Waltz of the Flowers from Tchaikovsky's The Nutcracker Suite. It's a magical gaming moment that I won't soon forget.
A Definite Psychological Thriller
There are a lot of really psychological moments in this game, many of them bordering on the horrific. Not many games can pull that off without being cheesy, and BioShock does an excellent job of keeping it just scary enough.

The Bad

I unfortunately have a laundry list of gripes with this game:

Volume Problems
The audio diaries scattered throughout the game are often difficult to hear. Turning on the audio-subtitles helps a little, but they quickly get out of sync (clearly a game bug). Hopefully a patch will fix this issue.
Mediocre UI Design
In order to see how many Little Sisters are left in the current level, as well as how much money and Adam you currently have, you have to go into the game menu (by pressing Escape). Storing critical information like that in a game menu is an incredibly poor design decision. Maybe this is different on the 360 release?
Repetitive Combat and Hacking
The bestiary in this game is very limited, which inevitably leads to repetitive combat. In addition, there are far too many enemies on some levels. System Shock 2 did a great job of maintaining a slower pace by limiting the number of enemies on each map. The pace in BioShock seems entirely too fast. Similarly, the hacking mini-game quickly gets tedious. Having additional hacking mini-games would have helped in this department.
Way Too Linear
Most first-person-shooters are linear affairs, but BioShock is too linear. While you have the option of visiting a previously cleared level, you never have a need to. System Shock 2 did a great job in this arena, forcing you to revisit levels to obtain some item you needed to continue on your journey. BioShock could have made backtracking a fun thing to do, but it ultimately does not, a big disappointment.
No Inventory System
How the hell am I supposed to tell what I'm currently holding?

The Ugly

This Is No System Shock
Touted as a "spiritual successor" to System Shock 2 (one of my favorite games of all time), I was expecting this game to be just as good. And it's simply not. There's a lot to like about this game, but there's also a lot to dislike about it. When I finished both System Shock 2 and Half-Life 2, I literally sat through the end credits thinking "Wow; that was one of the best gaming experiences of my life!" At the end of BioShock, I was simply glad the game was over. How disappointing!
Pricey
Games are expensive, and a blockbuster like this is expected to be pricey. But $50 seems a little high to me. I didn't feel like I got $50 worth of entertainment out of it. Which is why I'm glad I only paid $26 (long live Amazon rewards points)! :twisted:

Do I recommend this game? Absolutely. It's a must-play for 2007. There's a lot I ended up disliking, but overall I think the experience was a positive one (if only for the enjoyable art direction and eye candy). I'm guessing the 360 edition of the game is similar in most regards, but at least one review preferred the PC edition (your mileage may vary). If you don't have this game, be sure to pick it up.

Farmer’s Day 2007

Aug 31, 2007

It's Labor Day weekend once again, which means that it's time for the Old Fashioned Farmer's Day in Silk Hope, NC. Last year I took a number of pictures of the event, and I plan to do the same again this year. If you're located in central North Carolina, and you're looking for a good time this weekend, I recommend checking it out. It's just good ol' country fun!

Bioshock Foolishness

Aug 26, 2007

There have been some recent reports that Bioshock installs a rootkit onto one's computer. The 2K Games developers decided to use the SecuROM copy protection scheme, which installs a process with administrative privileges, allowing those users who do not have such privileges to run the game. A registry branch that happens to contain an asterisk also gets created, causing some rootkit detectors to flag the software. The service is apparently difficult to remove (which disappoints me), but it's questionable as to whether or not this is actually a rootkit. I'm definitely going to keep my eyes open on this issue, especially since I'm so excited about this game. Here's to hoping that things are as bad as people are making them out to be.

It appears that WordPress 2.3 has been feature frozen, and has now entered the bug hunting and fixing phase. The listing of what's new seems pretty bare bones, but I guess that is to be expected on a shorter release schedule. One of the big new features coming is tagging, something I've neither been impressed with nor interested in. Does anyone here make use of that on any other website? I don't see too much difference between tags and categories, so why include them? What I really wish they'd get around to adding is an automated updating feature; migrating to a new version is really painful.

For what seems like an eternity now, I've been trying to decide whether to purchase an Apple iPod to replace my Creative Zen Micro (I've outgrown the 5 GB of storage). And wouldn't you know it? Just as I seriously start to move towards purchasing one, my favorite retailer quietly stops stocking them.

A UBS Investment Research analyst recently speculated that Apple might refresh their iPod lineup in the next month or so:

In his note to clients, the UBS analyst also said he expects Apple to refresh its iPod video and iPod nano lines sometime next month. Among the expected introductions are higher capacity iPod nanos at aggressive price points, as well as a flash based widescreen video iPod likely using multi-touch technology for less than $300.

Will all the large iPods go to flash based technology? That would be a surprise to me. The largest flash drives I've seen on the market are 16 GB, far short of the 30 GB size of today's iPods. And what about this price increase? Quoting a price point of less than $300 indicates to me that the new device will cost somewhere between $250 (the current price) and $300 (I'm going to predict $299). It just so happens that $250 is about as much as I'm willing to pay, especially since I still have to buy a separate wall charger (which I still contend is highway robbery). I just wish Amazon would stock the 30 GB players again at $225 ($25 off). If they did, I'd be sold.

A Perl Module Primer

Aug 18, 2007

I've recently been wrangling with some Perl code for a project at work, and have been putting together a Perl module that includes a number of common functions that I need. As such, I had to remind myself how to create a Perl module. During my initial development, I ran into a number of problems, but I eventually worked through all of them. In the hopes of helping myself remember how to do this, and to help any other burgeoning Perl developers, I've written the following little guide. Hopefully it will help shed some light on this subject.

Let me preface this guide with two important statements:

  1. I'm not aiming to show you how to create a module for distribution. Most of the other tutorials cover that topic in depth.
  2. I am going to assume that you have a working knowledge of Perl.

To start, let's take a look at our sample module:

package MyPackage;
use strict;
use warnings;

require Exporter;
our @ISA = ("Exporter");

our %EXPORT_TAGS = ( 'all' => [ qw(sayHello whoAreYou $firstName
    %hashTable @myArray) ] );
our @EXPORT_OK = (@{ $EXPORT_TAGS{'all'} });
our @EXPORT = qw();

our $firstName = "Jonah";
our $lastName = "Bishop";

our %hashTable = { a => "apple", b => "bird", c => "car" };
our @myArray = ("Monday", "Tuesday", "Wednesday");

sub sayHello
{
    print "Hello World!\n";
}

sub whoAreYou
{
    print "My name is $firstName $lastName\n";
}

1;

We start out by declaring our package name with the package keyword. Special Note: If you intend on having multiple modules, and you use the double colon (::) separator, you're going to need to set up your directory structure correspondingly. For example, if I had two modules, one named Jonah::ModuleOne and another named Jonah::ModuleTwo, I would need to have a folder named Jonah, inside of which would live the code to my two modules.

I next enable the strict and warnings pragmas, since that's good programming practice. Lines 5 and 6 are standard to virtually all Perl modules. First, we require inclusion of the standard Exporter module, then we indicate that our module inherits from said Exporter (the @ISA (is a) array is what sets this).

Line 8 is where things get interesting. We need to specify what symbols we want to export from this module. There are a number of ways of doing this, but I have chosen to use the EXPORT_TAGS hash. Special Note: This is a hash, not an array! I recently spent about an hour trying to debug a strange error message, and it all stemmed from the fact that I had accidentally created this as an array.

The EXPORT_TAGS hash gives us a means of grouping our symbols together. We essentially associate a label with a group of symbols, which makes it easy to selectively choose what you want to import when using the module. In this example, I simply have a tag named 'all' which, as you might guess, allows me to import all of the specified symbols I provide in the associated qw() list. Note that you must precede exported variable names with their appropriate character: $ for scalars, @ for arrays, and % for hashes. Exported subroutines don't need to have the preceding & character, but it doesn't hurt if you put it there.

Line 10 shows the EXPORT_OK array. This array specifies the symbols that are allowed to be requested by the user. I have placed the EXPORT_TAGS{'all'} value here for exporting. I will show how to import this symbol into a script in just a moment. Line 11 is the EXPORT array, which specifies the symbols that are exported by default. Note that I don't export anything by default. Special Note: It is good programming practice to not export anything by default; the user should specifically ask for their desired symbols when they import your package.

Lines 13 through 27 should be self explanatory. We set up two scalar variables, $firstName and $lastName, as well as a hash table and an array. Note that we precede all variables with the our declaration, which puts this variable into the global scope for the given context. Since we're using the strict pragma, we need these our declarations; otherwise we'd get some compilation errors.

Line 29 is very important and can easily be forgotten. When a Perl module is loaded via a use statement, the compiler expects the last statement to produce a true value when executed. This particular line ensures that this is always the case.

Now that we've taken a look at the module, let's take a look at a script that uses it:

#!/usr/bin/perl
use strict;
use warnings;
use MyPackage qw(:all);

sayHello();
whoAreYou();

print "$lastName\n"; # WRONG!
print $MyPackage::lastName . "\n"; # RIGHT!

Most of this should be pretty clear. Note, however, how we import the module on line 4. We do the typical use MyPackage statement, but we also include the symbols we want to import. Since we didn't export anything by default, the user has to explicitly ask for the desired symbols. All we exported was a tag name, so we specify it here. Note the preceding colon! When you are importing a tag symbol, it must be preceded by a single colon. This too caused me a great deal of frustration, and it's a subtlety that's easily missed.

One other interesting note: on line 9, we try to print the $lastName variable. Since we never exported that particular variable in our module, referencing it by name only will result in an error. The correct way to access the variable, even though it wasn't exported, is shown on line 9. You must fully qualify non-exported symbols!

Hopefully this quick little guide has made things a little clearer for you. If for no other reason, it will help me remember these subtleties of Perl programming. :-)

Awaiting Bioshock

Aug 16, 2007

One of the first reviews of Bioshock has been posted, and it paints a really exciting picture. The verdict? 10 out of 10! I'm a big fan of the System Shock series, and seeing that Bioshock is a 'spiritual successor,' really gets me pumped. The screenshots evoke memories of Myst, System Shock 2, and Oblivion, all rolled together. I simply can't wait!

I'm going to try out something new here at the site; how well it does will determine if I continue to keep it up. Every so often (and I'll only do this on an occasional basis) I'm going to post a list of ten items pertaining to some topic. Consider it a "top ten" list if you will. This is just for fun, and is intended to foster some discussion. The inaugural topic: favorite television theme songs. I got the idea for this specific topic from a recent episode of The Jay and Jack Ramblecast (hat tip: Dustin). Here are my personal top ten, complete with links to each theme:

10. The Love Boat
This is definitely my dark horse entry, but I like it for one reason alone: it makes a great lounge singer song. I'm a fan of the lounge singer persona that Bill Murray did in Saturday Night Live, and this theme song would be great as sung by his character. As strange as it sounds, I think this would be a fun song to sing at a karaoke. At one point, I had this entire song memorized. I should also note that I never really watched the television show; I just dug the theme song.
9. Fresh Prince of Bel-Air
If there's one "rap" song that all white people know, it's this one. The Fresh Prince was one of the better shows of the early 90's. A memorable theme song made the show that much better.
8. Good Times
A classic theme song from a classic show. Any time I use the phrase "good times," I think of this theme song and usually bust out into a line or two from the theme. "Temporary layoffs; good times! Easy credit rip-offs; good times!" Dave Chappelle gave some props to this theme song in a sketch he called I Know Black People. Hilarious!
7. Sanford and Son
Of all the television theme show songs ever written, I think this one best fits the show it was written for. If you didn't know what Sanford and Son was about, and you only heard the theme song, you'd most likely say "that must be the theme to a show about a guy in a junk yard!" And you know what? You'd be right. The Simpson's made great use of this in the "Trash of the Titans" episode.
6. M.A.S.H.
This particular theme does an excellent job of capturing the sadness and hopelessness of war. For those who don't already know, the name of this song is "Suicide is Painless," and the lyrics are rather disturbing. An interesting fact is that the lyrics were written by a then 14-year old Mike Altman, son of the original film's director Robert Altman.
5. Airwolf
Who knew that a cheesy 80's television show about a super-helicopter would sport one of the best theme songs ever written? Airwolf was a show I wasn't allowed to watch growing up (I was far too young for it's content at the time), but the few times I did catch the intro really made an impression.
4. Knight Rider
If there was ever a reason to buy a giant sub-woofer, this television theme song is it. The bass line is incredible, and the show was nearly as good. I always wanted to be Michael Knight as a kid; having Kitt as your car would be totally awesome!
3. The A-Team
"In 1972, a crack commando unit was sent to prison by a military court for a crime they didn't commit. These men promptly escaped from a maximum security stockade to the Los Angeles underground. Today, still wanted by the government, they survive as soldiers of fortune. If you have a problem; if no one else can help; and if you can find them; maybe you can hire: The A-Team." An instant classic.
2. Doctor Who
Growing up, my family occasionally watched Doctor Who (I primarily recall watching Tom Baker as the fourth doctor). The theme music was as exciting as the television show. An interesting documentary on how the theme was developed is available on YouTube. Some of the effects used are pretty incredible (scraping a house key along a piano wire, for example).
1. The Dukes of Hazzard
This theme song, sung by country star Waylon Jennings, is my personal favorite of all time. I grew up as a big Dukes of Hazzard fan (it was probably my favorite show as a child), and I know the song by heart. The General Lee is still my favorite car of all time, and this theme song still ranks number 1 on my list. Oh, and Daisy Duke is was a real hottie.

So do you agree? Disagree? What television themes are you a fan of?

Amazon.com recently purchased AmieStreet.com, a digital music store that uses a unique demand based pricing. There has been some speculation as to what Amazon intends to do with this acquisition, but I'm guessing they will use this idea in their upcoming online music store. A demand based pricing system is interesting: all music starts out free of charge and, as the demand for specific tracks increases, so does the price. There certainly must be a price cap (no one would shell out lots of money for a single music track), but I'm not sure what that might be.

I think this could do very well for Amazon. One of the biggest selling points is that all music will be completely DRM free. Only time will tell how well Amazon can do against the existing juggernauts.

Wednesday Briefs

Aug 8, 2007

Several short thoughts for today:

The Java Popup you Can't Stop
A story over at Slashdot discusses a newly discovered means of bypassing popup blockers using Java. There are two proofs of concept available: an applet based version and a JavaScript version. The applet concept works in any browser, while the JavaScript concept works only in Opera and Gecko-based browsers. I couldn't get the JavaScript version to work for me, but the applet concept works surprisingly well. Pretty scary!
Bridge Collapse Alters Amazon Rankings
I noticed just the other night that the list of bestselling automotive items at Amazon.com yields some surprising results: 4 out of the top 5 selling items are "life hammers" designed to help you break out of your car as you sink into the water. The bridge collapse in Minneapolis is no doubt the cause of this interesting shift in the top selling list.
Michael Vick Dog Chew Toy
This is so great. Payback's a bitch! Thanks dad!
Barry Bonds is a Big, Dumb, Moron
Title says it all.

I was touching up some of my photographs recently when I noticed that one shot in particular had substantial vignetting. Wishing to use this photograph as a desktop wallpaper, I set out to try and remove this effect from the photograph. All of the standard Photoshop tools failed to do the trick. Both the clone tool and healing tool produced poor results. Disappointed, I searched the web for help. Thankfully, I found the answer I was looking for: a new filter introduced in Photoshop CS2.

For the sake of discussion purposes, here is the original, unedited image (scaled down of course):

Original, unedited photo; note the strong vignetting in the corners

The vignetting in this image is most apparent in the upper left and right corners. In order to fix this unwanted effect, I fired up the new Lens Correction filter made available in Photoshop CS2 (it's under the Filter » Distortion menu).

The Lens Correction filter window

This particular filter allows you to alter a number of things: chromatic aberration, vignetting, and perspective problems. Two sliders for tweaking vignetting are available along the right hand side of the filter; one handles the amount of correction desired (either lighter or darker), while the other handles the midpoint (which I still don't fully understand; a trip through the documentation is in order). I lightened the corners by a value of +18, which gave me the following result:

An updated version of the original, without vignetting

As you can see, the results are stunning. Not only was the vignetting removed from the upper corners (where it is most apparent), the lower corners were also updated, as were the edges of the photo. After tweaking the levels of this photo, the final result is definitely desktop wallpaper worthy:

The final version with improved levels and no vignetting

This new filter is fairly well hidden, like many of Photoshop's features, but I'm glad that I stumbled upon it. I was definitely impressed with the results, and I have yet one more trick in my bag for future photo editing.

Wii Sports is the only game that my family currently owns for use with our Nintendo Wii. As such, it gets a fair amount of play time around our house. Although it's a fun game, there are a number of areas that Nintendo could have greatly improved upon. Here's a short list of improvements that I've thought up for the game:

  1. Video Replays: When an exciting event takes place in the game, I'd like to be able to save a video snippet of what happened (a "play of the day" if you will). For example, I have hit two holes-in-one in golf over the past several weeks (a pretty exciting event, both times). Having a video replay would allow me to relive that exciting moment, and share it with others.
  2. Larger Golf Course: I really enjoy the golf game, but nine holes is just not enough. Why can't we have 36 holes, or better yet, 72? I can't believe the courses take up that much space, and I would guess that they are pretty easy to develop (given the basic building blocks).
  3. Bowling Tournaments: It would be fun to have some sort of bowling ladder available, where you could compete against either another individual or another team (either computer controlled or human). A handicapping system could even be provided, to allow weaker bowlers to challenge the seasoned pros.
  4. Improved User Settings: Every time one switches users during a game, Wii Sports asks you which handedness you prefer (right or left handed). Shouldn't I only set this once?
  5. Fix the Baseball Bug: When playing against the computer in baseball, the "home" team (the player) starts first (top of the inning), while the computer starts second (bottom of the inning). If the "home" team is ahead at the beginning of the last inning, the game ends via the mercy rule. I'm no baseball expert, but I know that the mercy rule only applies to the bottom of the inning! This should clearly be fixed.

If you own Wii Sports, what do you think? Are there other improvements that could be made?

Firefox Trunk Freeze

Aug 2, 2007

Last Wednesday was apparently a freeze day for the Gecko 1.9 rendering engine (which will appear in Firefox 3). A laundry list of new features have been added, as can be seen from the most recent nightly build report. Full page zoom is one of the biggest new features coming, though it has not yet been enabled via the GUI (you have to download a separate test extension to play around with it).

One particularly nasty regression (bug 390451) lurks in the nightly builds, so I'm not planning on switching my base install to this alpha. But it looks like it won't be much longer before we can enjoy some new Firefox features.

Anorexic Web Writing

Jul 31, 2007

A List Apart fails to disappoint. While I don't read every article in each issue (not all of them apply to my web development efforts), I have yet to find one that hasn't taught me something new. The latest issue is a prime example. Two new articles tackle the problem of weak writing on the web:

  1. Better Writing Through Design — by Bronwyn Jones
  2. Reviving Anorexic Web Writing — by Amber Simmons

Both articles are excellent reads, but the latter is my personal favorite. Mrs. Simmons points out a number of interesting thoughts on where writing for the web becomes anemic. One specific example that hits close to home for me is alt text. Improving my alt text writing is a subtle, yet important improvement that would benefit my websites in a number of ways.

I recently installed Apple iTunes for the first time (the QuickTime install on my laptop was having lots of problems). One of the first things I tried out was subscribing to a video podcast (specifically The Totally Rad Show), which was fairly easy to do. As soon as I started to play the latest episode, I noted that playback performance was horrible. I never had this kind of performance problem with QuickTime, so I was a little surprised that iTunes would be so different.

A quick Google search turned up a support article from Apple on iTunes performance in Windows XP and 2000. All of the standard suggestions are there (make sure you're computer is fast enough, download the latest version, etc.), but one suggestion caught my eye: "Disable Direct3D video acceleration in QuickTime."

I ventured to the Windows Control Panel, opened the QuickTime item, and turned off the Direct3D video acceleration. To my surprise, performance was restored! Who knew that a simple toggle could solve such an annoying problem?

In loosely related news, I'm getting closer to actually buying an iPod (something I thought I'd never do). More on this later.

You don't know the power of the Dark Side; I must obey my master. — Darth Vader

Nintendo’s Gamble

Jul 23, 2007

Nintendo announced a new peripheral at this year's E3: the Wii Fit. It's an interesting concept, but one that has sharply divided the gaming community. I've read a number of comments saying that Nintendo is further alienating the "hard-core" gaming community; catering to the "soccer-moms" of America isn't what gamers are looking for, so how could Nintendo sell out like that?

Other comments have praised the device, saying that kids clearly need to get exercise, and this is one more step in encouraging such behavior. I tend to agree with this latter group; the Wii Fit is a great idea, though the 'games' they've shown for the device seem bland. As far as alienating the hard-core gaming community is concerned, I don't think Nintendo is doing that at all. It's simply a matter of broadening their horizons. While Microsoft and Sony are locked in the never ending battle of "bigger, faster, better," Nintendo is quietly expanding their horizons, gobbling up market share that no one has claimed. And they are making a profit the entire time. Microsoft is losing money like crazy with the 360 (especially after the recent "recall" announcement), as is Sony. Nintendo has made a profit since day 1, and continues to do so.

In the end, I think Nintendo will come out on top. The Wii may not have the flashiest graphics around, but it's got creativity, something the other guys don't. What do you think of the Wii Fit? Will it be a success, or a flop?

I recently stumbled upon an excellent article explaining why the "black bars" still show up for some movies, even on high-definition televisions. Not being the owner of a high-def TV, I had always wondered what really happened in these cases. Now I finally understand what's going on, and that one shouldn't panic when the bars continue to show up.

Castlevania: Dawn of Sorrow Screenshot

Castlevania: Dawn of Sorrow is the latest Nintendo DS game that I've been playing over the past few weeks. I just beat it last night, so I thought I'd share a few thoughts on the game.

This is the first Castlevania game that I've ever played, though the series dates all the way back to the original NES title. For those not familiar with the series, you play as a crusader set out to destroy the evil that has taken up residence in Dracula's castle. It's a classic 2D side-scrolling game, and is an incredible blast to play.

Your character has two ways to attack the various monsters throughout the castle: either with a number of weapons or via special abilities which come through harvesting the monster's souls. Each soul you collect gives you a different ability. Some abilities cost mana to use, while others act as "enchantments" and are active all the time. You can equip three souls at any time (one "bullet" soul, one "guardian" soul, and one "enchantment" soul). There are also a few ability souls collected through the game, which are always active. This specific aspect of the game is quite enjoyable. Collecting all of the souls is much more difficult than you might think. I've been playing off and on for several weeks and only have about 75% of the souls collected.

Interestingly enough, there are only two real "levels" to the game: Dracula's castle and an area (presumably of Hell) called simply "The Abyss." The castle "level" has a number of stages, and is incredibly large. It took a long time to explore the entire level, and I have undoubtedly missed some hidden rooms.

When your character dies, the game is over. There are no "extra mans" to be had, so you have to be very careful. Thankfully, you can save the game any time at a number of save points throughout the castle. Make sure to save often; I lost a number of hard to get souls last night because I got overconfident.

I highly recommend this game. I've had a ton of fun playing it, and I've already started the next game (Castlevania: Portrait of Ruin). This is excellent proof that 2D games are not dead (and shouldn't be). My final rating: A+