You’re bashing the obsession with certain advanced technologies, and saying that people never create any games with them due to them being way overkill to what they are making? So basically, you’re saying that we are all incapable of making big scale games, and should spend the rest of our lives making 4kb games instead?
Maybe the problem isn’t the individual programmers’ skills, but rather our inability to organize bigger development teams than a few persons? Many Java games have either started off with a single or very few persons in the initial team, and have later expanded into companies, e.t.c. You keep talking about how many games copies individual people have shipped, but is that really relevant? Not many of us are going to ship even thousands of copies of our games. Isn’t it the same with every programming language?
I’m using a pretty powerful entity system for the game I’m making, but I didn’t make it myself. The point isn’t that it’s powerful or scalable or flexible or whatever. It’s that I think that I can write better, more understandable code with it. But, you’re blaming people MAKING too many advanced entity systems, not using them, so does that mean that I’m Doing It Right?
I have a few interests when it comes to programming. My favorite part of game making is the programmed graphics (lighting and special effects). I obviously spend an unproportionality large amount of my time on this part of my games, because that’s what I found most fun to be doing. As a hobby, am I not supposed to have fun? Of course, the number of games I actually release gets lower, but I don’t think that is necessarily a bad thing. That’s because when I have fun, I learn things so much faster. Of course it isn’t good to get too obsessed on some part of your game. I’ve actually gotten caught in the entity system trap multiple times before, but mostly due to the fact that I wasn’t using one that was fitting for my game, and I had basically no experience in the field. I agree that it is a common pitfall like you said.
I’ve just recently realized that I can increase my productivity, my learning rate and how much fun I have by using libraries for the parts that I don’t particularly enjoy implementing myself. I’d say that when people start with Java, it’s better to do everything yourself. I mean, you don’t need many libraries to get a Java2D space invaders game running. You’ll also learn a lot just from implementing every aspect of the game. It’s obviously important to keep your first game(s) simple, but I think it’s even more important to not get stuck on some part of the game.