Hard core games are games that need a significant time investment in.
COD is primarily a softcore game as anyone can pick it up, have a game and put it down again, there doesn't actually need to be any completion involved past a quick game, there is no lack of closure after a quick session.
Mario is a softcore game also. You play in levels and at the end of each level there is closure. There is not much of a story, you are rescuing peach but there is no development. You can stop after a single level because you are taken out of the game to some kind of level select or hubworld designed to select levels.
Zelda is a hardcore game, it has a story with development of characters and the world around the player. It is not in levels as mario is, there are dungeons but when you finish a dungeon you just leave it into a world that blatantly still needs your help, you are given more story and are compelled to stay in the game. You can't just play a quick game of Zelda and think 'darn I'm satisfied, I can come back to that another time' you have to play the full 20 hours to gain closure, it's the kind of experience you don't want to leave.