Hah, using nc to implement networked multiplayer is a pretty clever hack. I’m too scared to look at the rest of the code though :P
This is exactly the kind of ingenuity that I appreciate, when I try to build a quick MVP type prototype with the team, unfortunatly not many programmers agree, …
Sometimes the cleverness takes longer than actually just doing things decently.
If you have experience then it can very well take longer to macguyver something than to just do it.
Except that 24 hours is still 24 hours, and eg. setting up socket stuff would eat too much time compared to running nc, no matter how you’d do it. Under extreme constraints (be it time, size, speed, …), “just doing things decently” simply won’t cut it. In this case, it’s exactly about the cleverness behind the hacks (using nc certainly isn’t), it simply had to be finished in time.
In the demoscene, programming under extreme time conditions is called “partycoding” (because it often happens during a demoparty, trying to finish one’s entry just before - or after - the deadline). Most demos contain a fair bit of partycoding, and it’s probably the reason why most of them aren’t open-source :)
Metroid-style space-jumping is actually a really fun game mechanic, and I would totally have left it in as a real feature too.
I love the hacks.
““It’s not a bug, it’s a feature” was our motto. We noticed that you can jump while you are still in the air.”
Yeah, that’s what I did in school. They couldn’t figure out how the graphics code was working because it was built around a bug that only showed up with certain inputs. Triggering those was built into starting conditions of course. :)