Befunge-93, 51 bytes
Inspired by Martin's Cardinal solution, I thought it might be fun to try and do something vertical in Befunge as well. It's a little more complicated in Befunge though.
Try it online!
We start with a
?(random direction) command, which can potentially send the instruction pointer in any direction. Left and right will just wrap around back to the start, and going up will hit the
v at the bottom of the program and reflect back to the start as well. So while we may bounce around for a while, we'll eventually be forced down at some point, pushing the "Hello, World!" string (in reverse) onto the stack. Which brings us to this sequence:
This is just a simple output loop that writes out the string on the stack. The only thing out of the ordinary is the extra
_ (branch) when the loop terminates. But because there are only zeros on the stack at that point, the second test will safely continue on to to the right, finishing with the
@ (exit) command.
Once we remove every second character, the code looks like this:
Try it online!
Again we start with a
?(random direction) command, and again most directions will just end up wrapping back to the start. So eventually we're forced to go to the right, pushing "Hello, World!" (in reverse) onto the stack. Which then brings us to this sequence:
Again this is just a loop outputting the string on the stack. It's very similar to the classic inline print loop, but we've got an extra
: (dup) command, and thus require a
$ (drop) to cancel it out.