There's nothing wrong with copying bits of code. I had to profile something a few months ago and I started with Casey's timed block stuff pretty much verbatim. Over a few weeks, the code diverged as my needs differed, but the core is pretty much unchanged.
It's a lot harder to write something from scratch, especially if you haven't written a particular thing before. If you get stuck, just push through and get something working, knowing it might not be as fast or as elegant as what's in HH. Then when you have something working, go back and look at what casey did, where his approach differed, and where you did the same things.
Maybe this is because HMH is the only comparison point you have. Read other open-source codebases. See how they solve it. Look at the tradeoffs.
https://en.wikipedia.org/wiki/Lis..._games_with_available_source_code
If you are really stuck, just make something more different than HMH. Make a platformer with a tile-map. Add some feature like destructible terrain that HMH lacks. Or start down paths that HMH has yet to cover, add fullscreen mode or hardware acceleration or pathfinding or something like that.