I recently played this game offline as Black.
I include some of my own patzer notes underneath the interactive board, but the main point is how to conduct a kingside attack using a pawnstorm supported by pieces. I find, repeatedly, that I am extremely weak at this, though I have very little experience of such play and expect to hone the skill over time.
2...Bg4 Better was 2...Nc6, not only to avoid 3.Ne5 but also supporting an early ...e5 if permitted by White.
4.d4 ending Black's chances for an immediate ...e5
4...Qd7 prepares both o-o-o and ...Bh3
5.o-o The second most popular move, I think, but 5.h3 is probably much stronger for White.
5...f6 preparing ...e5, though perhaps premature.
7...o-o-o (If instead 7...Bxf3 to win a pawn then 8.Bxf3 Nxd4 9.Bh5+)
8...h5 Attempting an attack but I've no idea if this is right here
10...Bh3 Black wants to get rid of (move or trade) the protective knight on f3 so that the vulnerable h2 square is only protected by White's king. After considering a number of different moves (I won't provide notes for those here) I decided on this move, with the idea of 11...Bxg2 12.Kxg2 h4 13.gxh4 g4 14.Ne1 Rxh4, which was probably pretty lame even if this had followed (it didn't).
12...Bh6 another "What do I do here?" move. I had ideas about ...h4, ...hxg3, ...g4, and after Nh4, ...Bg5.
15.Ba5 teases the b-pawn forward.
18.Rc1! a strong move which not only develops the rook to an attack position with tempo, but also vacates the f1 square for White's queen to force an exchange of queens if things get hot for White.
19...Bxe3 after belatedly realizing that 20.Qf1 ruins my attack, so something active must be done.
21...Qxg3 and now Black has three pawns for his bishop, plus "an attack".
23...e5 opening up the e-file for my rook to attack down.
28...Qh5! This move simultaneously: (1) threatens to win a piece with a revealed check via 29...g3; (2) threatens to capture the b5 pawn with check; (3) covers the e8 square that White's queen is eyeing.
29.Bg3! This move not only blocks the pawn advance but also (something I somehow overlooked) targets the same critical c7 pawn which his rook is eyeing and behind which lies my king.
29...Nf5?? This move looked strong, attacking the bishop while threatening a fork on g3. After 30.Bf2 to save the bishop while guarding g3 from the knight, 30...g3 wins immediately for Black. But much better would have been 29...Qxb5+.
31...Rd7?? With this blunder (31.Ke8 was called for instead of trying to save the rook) White manages to obtain a draw via threefold repetition of position. Note that 33...Nd7?? loses to 34.Qc6 mate.
I don't have a problem with your plan of attack here. White has played a bit slowly in the opening (he should play an early c4 I believe), so you're probably justified in going for it down the h-file.
I would, however, point out that you have to stay as flexible as possible when attacking (as with defending).
For example, I wasn't too keen on the ...Bh6 move it might be the right idea, but if you had played simply ...h4 instead (a move which HAS to be played for the attack to work) then you are keeping your options open. Maybe the knight can come to h6 then g4 instead?! Or perhaps...Bh6 will come, but you have kept these options open for an extra move or 2 - flexibility.
Also, defensively, you can look at ...Rd7 in reply to b4 this move again will likely HAVE to be played, and it allows the extra option of retreating the knight to d8.
This is just from a brief look Mark, so apologies if I've missed some tactical problems with these suggestions.
Thanks to both Buzz and Streetfighter for some helpful advice.
Looking at it now, I wonder also about 12...e6 since that would: (i) Allow me to get my dark-squared bishop to d6, where it attacks both g3 and h2; (ii) lets that bishop give additional coverage to the b4 square; (iii) in general gives that bishop a great deal more mobility; (iv) allows the pawn on e6 to cover the d5 square; (v) gives the g8 knight a square to deploy on without blocking the h-file rook; (vi) possibly offers the c6 knight an additional retreat square.
Objections?
Regarding Streetfighter's comments about an early c4 for White being strong, that was my impression looking at some database lines after the game.
Incidentally, my opponent was an electronic chess (travel) hand-held unit. Right now, it's set to "full-book" with the "randomizer" enabled, both of which options allow more variety but don't always result in the absolute strongest moves being played. (The book setting applies in the opening, and once it leaves book the randomizer permits one of several of the best moves to be played instead of automatically selecting the very best move assessed.)
The computer is nominally allotted 1 minute per move, but this is a little misleading since it also "thinks" on my time as well (unless I turn off that feature, but it's enabled), and also because that "1 minute" is averaged over a large number of moves, so that moves taking 2-3 minutes (or more) are not uncommon. Supposedly, when it's at full strength it has an ELO rating of 2000. Hopefully that's the case, because then I can challenge myself with a very strong opponent and also get good analysis, while always leaving myself the option of setting it to weaker levels if I want to for any of various reasons.