...the xkcd comic says, "you will never find a programming language that frees you from the burden of clarifying your own ideas."
This made me smile and exclaim a bit, too. It has a lot of truth to it. I'm spending a lot of time on coding my game to follow a design that is not available on any shelf. Some of my peers question my choice of Java, and the flat out truth is: Java ain't holding me back--I am. It's my ideas and how well I can specify them in code. The language/libraries aren't the enemy. The enemy is me! (Wow, I sound a bit disturbed) However
, I did find myself rolling code for Separating Axis Theorem inspired polygon intersection detection, Monotone Chain (forgot its name exactly) to get a poly from a cloud of points, point of intersection of 2 line segments, and other stuff. Either these functions are not provided by the Java standard library, or had some issues which were unacceptable. One of the big reasons I went with Java for my game is I was impressed with the functionality of the java.awt.geom package (at first), then found out I had to write a lot of my own stuff for things they didn't include.
Why wouldn't there be a floating point 2D polygon class with all the goodies? I had to make my own on top of Path2D, plus extra methods awt.Polygon didn't have.
So, yeah, in my experience, I can sympathize with Cox each time I need to hunt for algorithms on Google or roll my own, but, yeah, as Sproingie said, only trivial (read for games: boring
) software can be made from purely using what's out there. Buy the Unreal Engine, and you can make a handsome clone of Unreal... put some creativity and your own home-made code in, and you could have a hot new game!