The 49ers needed impact players on offense—they knew that going into the January 2012 NFC Championship Game against the New York Giants.

And the 49ers absolutely had it pounded it into their heads during and after the Giants' defense took the 49ers out of everything they wanted to do offensively, on the way to a 20-17 OT loss.

Fast receivers, break-away tailbacks, slot receivers... the 49ers needed any or all of those kinds of players to add to Alex Smith, Frank Gore, Vernon Davis, Michael Crabtree and a great young offensive line and get to that next step.

So GM Trent Baalke and coach Jim Harbaugh went into that off-season looking for offensive game-breakers. It was an obvious need and they were ready to look at all options... draft, trade, free agency.

They had such a talented roster in every other position group. If the 49ers could just add a play-maker or two, they'd set themselves up beautifully for the coming seasons (2012, 2013, 2014 at the very least).

And what happened? They're still a very good team and still a Super Bowl contender (they GOT to the Super Bowl last season), but...

It's 2013, and the 49ers are still desperately in need of offensive play-makers, much of which can be traced back to the decisions in the 2012 off-season, and especially that fateful draft class.

They've swapped Colin Kaepernick (a 2011 draftee) in for Smith at QB, and there's definitely added explosiveness from that position, but beyond that? This season, they still had to fiddle around with guys like Kyle Williams, Marlon Moore and others this season, still searching...

Let me be clear: This is a very tough standard to meet, year after year, for any front office.

Baalke's 49ers have built themselves one of the most talented rosters in football and to ask them to keep hitting personnel home runs, in specific positions, year after year... well, it's just not possible.

It's always part scramble, part luck, part taking shots involving unpredictable elements. Ask Bill Belichick, the Ravens or the Giants about that.

Some years it will work, some years it won't, even for the best operations, and the 49ers under Baalke are a very, very good operation.

Obviously, Baalke and his front office group have done many terrific things for this franchise before and after Winter/Spring 2012. That defense was then and remains an incredible collection of talent, mostly products of Baalke's eye for draft talent and ability to move around and maximize the value of the 49ers' draft spot.

But in 2012, with the aim to rocket-boost the 49ers' offense, that just didn't happen.

And the 49ers are paying some of the price for it now, when they continue to struggle with Crabtree injured because they don't have another productive WR beside Anquan Boldin (free agent signing last off-season) and they don't have any real explosive down-field threat if Davis is covered or dinged up.

It would be different if the 49ers went into the 2012 off-season NOT thinking about adding speed on offense. But that's exactly what Baalke and his lieutenants—with Harbaugh's strenuous support—sought to do.

And...

The first thing they did was sign Randy Moss, who had been retired for a year. But the 49ers knew that was a stop-gap, at most. Moss was OK last season and he's back out of football this season.

They also signed WR Mario Manningham and RB Brandon Jacobs from the Giants—but neither really fit the "explosive play-maker" role.

The 49ers' brass turned some thoughts to getting creative on the trade market, but nothing really popped. It's tough to swing a major deal for a play-maker. Almost impossible.

So all focus turned to the 2012 draft, and that's how Baalke and Jed York like to build things, anyway. That's how the 49ers got Gore, Davis, Crabtree, the heart of that OL, Patrick Willis, NaVorro Bowman, Aldon Smith and many others, including Kaepernick.

The 49ers had the 30th pick in the draft, not ideal (which spurred some of the trade thoughts to maybe try to move up) and some other picks to try to hit on a play-maker.

They felt good about their track record in the draft, for good reason. Here's how the draft went, though...

  • In the first round, Baalke took Illinois WR A.J. Jenkins with the 30th overall pick. The 49ers thought he was going to be a home-run hitter, and he definitely had the speed for it.

    But Jenkins came to his first mini-camp a little out of shape, seemed small (6-0, 190) and a bit passive from the outset (when the 49ers model is almost always big and aggressive), barely got into a game or two and never caught a pass as a 49er.

    After an uncomfortable rookie season, Jenkins was traded to Kansas City before this regular season for WR Jonathan Baldwin, who has not produced so far.

    For the record, RB Doug Martin went the next pick after Jenkins, but the 49ers weren't looking at taking a tailback quite yet. Stanford TE Coby Fleener went four picks later, but again, the 49ers weren't looking at tight ends because they had Vernon Davis.

    The real passed-over possibilities at the Jenkins draft slot:

  • Georgia Tech WR Stephen Hill, who went 43rd to the Jets, is a proto-type "big" WR at 6-4, and though he hasn't been a big impact player, has started 16 games and caught 44 balls in one-plus seasons so far.

  • South Carolina WR Alshon Jeffery went 45th to Chicago, and Jeffrey, another 6-4 WR, has caught 47 passes this season. Not an explosive runner in any way, but he has been making plays.

  • LSU WR Rueben Randle went 63rd to the NY Giants. A big WR with speed, Randle has been a third WR with the Giants and has 26 catches, 5 for TDs, this season.

    Yes, the 49ers could use anybody consistent at WR—or really, they could use anybody as good as they thought Jenkins was going to be.

    Instead: Jenkins was a bust and the 49ers still have the void.

  • In the second round, Baalke took Oregon RB LaMichael James with the 61st overall pick. James is now the No. 1 punt returner, but hasn't produced much in two seasons and has remained stuck behind Gore and Kendall Hunter in the RB pecking order.

    Like Jenkins, James (5-8, 194) seemed a lot smaller than the 49ers' usual kind of player when he was drafted, and definitely doesn't seem to fit the 49ers' power identity.

    James is a screen/mis-direction/Read-Option runner and the 49ers didn't use him much in the Read Option last year when they were running Read Option, and they're not running much Read Option now.

    James might seize a bigger role eventually, but he isn't going to run through anybody, or pass-block too well, and that keeps him off the field much of the time.

    If the 49ers have a tailback of the future, it's Marcus Lattimore, a 2013 draft pick who is sitting out this season after a major knee injury in college.

    For the record, Temple RB Bernard Pierce—a true power runner—went 84th overall (early 3rd round) to Baltimore and has served as strong back-up to Ray Rice.

  • Right up there in the OOPS category from this draft is the pick Baalke traded away—their own 3rd-rounder, 92nd overall, which the 49ers traded to Indianapolis for the Colts' 2012 4th-rounder and a 5th in 2013.

    Indianapolis used that pick to select Florida International WR T.Y. Hilton, who is even smaller than Jenkins but caught 50 passes for 861 yards and 7 TDs as a rookie and has 46 catches for 707 yards and 5 TDs already this season.

    Then the 49ers traded Indy's 4th-rounder (97 overall) to Miami, and the Dolphins used it to select Miami, Fla., RB Lamar Miller 97th.

    Then the 49ers traded the 4th-rounder they got from Miami (103) to Carolina, which used it on Oklahoma DE Frank Alexander.

  • With their own 2012 4th-rounder, the 49ers took Wake Forest OL Joe Looney 117th. Has never been active.

  • With their own 2012 5th-rounder, the 49ers took Notre Dame LB Darius Fleming 165th. On injured reserve.

  • With their own 2012 6th-rounder, the 49ers took Western Oregon OL Jason Slowey 199th. Released in 2012.

  • With their own 2012 7th-rounder, the 49ers took Virginia LB Cam Johnson 237th. Traded to Indy earlier this season for a 2014 pick.

  • With the extra 2013 picks all spinning from trading of the 49ers' original 2012 third-rounder, the 49ers ended up with...

  • S Trenton Robinson, taken with the 2012 6th-round pick acquired from Carolina. Robinson was released last August.

    And three 2013 picks obtained in those trades unfolded like this a year later...

  • Baalke used the 3rd-rounder acquired from Carolina to send to Dallas to move up 13 slots (from 31 to 18) to acquire S Eric Reid. So that's a BIG PLUS out of the 2012 draft, even though it wasn't cashed in for a year.

  • The 49ers selected Alabama DL Quinton Dial with the 2013 5th-rounder (157) acquired from Indianapolis in 2012.

  • The 49ers selected Florida State LB Nick Moody with the 2013 6th-rounder (180) acquired from Miami in 2012.