Generally, black:
- neglected development
- weakened the light squares around the king
White should have opened the position with moves like d4 or even Nxe5 sometimes.
Opening the position is a standard theme in case your opponent neglects development and you can even sacrifice material to do so. This game is a good example of that.
It is worth it learning the common tactics that would have been possible at move 5 starting with Nxe5.
In summary you should take out of this game:
- the theme with Nxe5, Qh5+ which is possible at several points
- if a player neglects development, opening the position is almost always good
I annotated your game below. Have a look.
[FEN ""]
1. e4 e5 2. Nf3 d6 3. Bc4 f5? { too soon. Black should develop some pieces first } 4. Nc3!? { Ok-ish, but white could take advantage of black's underdevelopment by opening the position with d4. } (4. d4 fxe4 { not the best move, but in any case white will open the position and have a clear advantage because of development. } 5. Nxe5! { Making use of a well known tactics which can often be used against opponents playing an early f4 or f5. } 5... dxe5 6. Qh5+ g6 7. Qxe5+ { winning the rook }) 4... f4 { Why? Development was asked for! } (4... Nf6) (4... fxe4 5. Nxe5 dxe5 6. Qh5+ g6 (6... Ke7 7. Qxe5+ Kd7 8. Qe6#) (6... Kd7 7. Qf5+ Kc6 8. Qxe4+ { and a very strong attack }) 7. Qxe5+ { winning the rook }) 5. O-O { From a positional point of view this is questionable because white is basically castling into the attack / pawn storm of black. Might consider long castle instead. In any case the same tactics as before also works here (basically if somebody plays e5 and f5 and the f pawn is not anymore on f5 this tactics is always an option. Of course also works for reversed colors with e4, f4) } (5. Nxe5 dxe5 6. Qh5+ g6 (6... Ke7 7. Qxe5+ Kd7 8. Qe6#) (6... Kd7 7. d4 { and a very strong attack }) 7. Qxe5+ { winning the rook }) 5... g5?? { Looks very dangerous because without the knight on f3, Qh5+ looks terrible for black. } 6. d3 { too timid. Yet again white should open the position with d4. The computer says that white can even give a knight in order to take advantage of the open position. } (6. d4 g4 7. dxe5! gxf3 8. Qxf3 { and white is clearly better as black cannot defend against all the checks along the light colored diagonals. }) 6... g4 7. Ne1 Nc6 8. h3? { Playing for tricks (which worked). However objectively this is an awful move to make. Generally defending against a pawn storm is easier if the pawns remain on one line. By playing h3 white is voluntarily opening the position around the castled king (not immediately but soon), which is very dangerous. This is even true if there was no black pawn on g4 yet. } (8. d4! { Not obvious move, but works because of tactics. Notice how much space white suddenly gets: The knight can go to d3, the bishop has potential to f4... For a good player this is a common theme: Open the position if your opponent is not developed. } 8... Nxd4 (8... exd4 9. Nd5 { and white will get the d4 pawn and is better because of better development }) 9. Bxf4 { and white is better }) 8... gxh3?? { Final mistake. It is a forced mate in 3 now. } (8... h5 { And black is clearly better. White's position is very cramped and the king in danger of attack with ideas like Qh4... }) (8... Nf6 { Should also be much better for black, because white cannot free himself and the king will be under attack soon. }) 9. Qh5+ Kd7 10. Qf5+ Ke8 11. Bf7+ { There was a mate in one. } (11. Qf7#) 11... Ke7 12. Nd5# *