It’s a bit unfortunate that this issue is so contentious on game development forums.
Someone wants to make a game engine, or asks for help with some aspect of making a game engine, and someone will often reply by saying “you should just use Unity” or something similar. It may be well-intentioned and they may give good reasons why you should just use engine X instead of rolling your own, but here’s the big problem…
Before you help someone, you gotta understand what their motives are.
The next part is simple—if you’re under no illusions that you are not making money by making games, the kind of dollars/time input, salable product output efficiency ratio just stops being relevant. So some other factor is relevant, if you are a hobbyist.
Someone wants to make a game engine, or asks for help with some aspect of making a game engine, and someone will often reply by saying “you should just use Unity” or something similar.
That's also a classic BS response in Stack Overflow and such.
Someone asks "How do I do X?"
And people will jump to comment "You shouldn't do X, etc" instead of answering the question (and if needed, adding a caveat that they don't recommend it).
Many times people very well know the drawbacks of X, that it's considered a bad practice, etc, and also how to do it "the right way", but want to do X anyway for some specific reason (hacking, working around some issue, etc).
Why? Holding people who are beginners asking questions based on wrong assumptions to the standards of experts who are trying to push the boundaries with complete domain knowledge seems like a wrong thing to optimize for.
Apologies, wasn't sure who you were talking about.
The point is they're not bad assumptions, they're a pretty good prior. If you swing the other way and assume people "know what they're doing" and take their word for it, you're going to give them and yourself a lot of grief in a majority of cases ("but how do I put the gasoline in the chainsaw to cut the chicken?").
I used to think the way you do, but as I spent more time on forums like Stack Overflow, I started to see the damage that this kind of behavior does to the community. I now see this behavior as an opportunity for a teachable moment to explain to people how to answer questions.
It’s one thing if you are on the DIY Stack Exchange and ask how to knock out a wall, and the best answer is, “That’s a load-bearing wall. You don’t knock it out.”
It’s another thing entirely when you ask innocuous questions like, “How do I tell what web browser and version my code is running in?” and some smartass answers, “You should be using feature detection.”
It’s really frustrating to ask a straightforward question and to get a response from five different people making invalid assumptions about what problem you’re trying to solve. It makes the community seem downright hostile! You may think that you’re addressing the underlying problems—but what you’re doing is telling people, “I don’t take your questions seriously; I know better than you.”
That might not be the message you want to send, but if you rely on assumptions then it will be the message that you do send.
And people will jump to comment "You shouldn't do X, etc" instead of answering the question
While this can sometimes be annoying, this is actually one of my favourite things about Stack Overflow. Because it means you can ask a really naive question, and actually come away with knowledge of what best-practices for your high-level problem are.
That's because, for better or worse, there's usually no visible difference between a question asking "How do I do X?" from a kid at home making something for fun, and the same question from a professional on a mission-critical system.
The same question in different context may have completely different answers, yet StackOverflow is all about finding the "correct" answer, and closing "duplicate" questions.
As with nearly every other aspect of modern life, people are at the mercy of a system of rules whose rewards don't exactly align with the benefit of the people in it.
Also...where do you get game engine developers to work on those established projects if everyone is told not to bother?
I see variations of this with other fields as well. People disparage college operating systems and programming language classes, because "we have plenty of those already" or say that people should contribute to an established project of some kind instead of reinventing the wheel. But that's how you gain an understanding of how a piece of software works, or how you end up with a new thing that's better than the old one.
You get people from some adjacent field (some CAD/CAM people for the geometry bits, someone from Uber for the distributed system bits) to solve the hard technical problems and hire game programmers for more product development / API design type roles
Theres a problem with online forums. People glom their opinions together about solving a common problem (like making a game) into a big rolling ball. People who have a different goal but a similar problem become difficult to answer without tearing yourself out of your own commonly shared train of thought.
The perfect answerer would have expert knowledge and the free time and an omni-directional goal to serve all questioners. Those people aren't out there.
Comments
It’s a bit unfortunate that this issue is so contentious on game development forums.
Someone wants to make a game engine, or asks for help with some aspect of making a game engine, and someone will often reply by saying “you should just use Unity” or something similar. It may be well-intentioned and they may give good reasons why you should just use engine X instead of rolling your own, but here’s the big problem…
Before you help someone, you gotta understand what their motives are.
The next part is simple—if you’re under no illusions that you are not making money by making games, the kind of dollars/time input, salable product output efficiency ratio just stops being relevant. So some other factor is relevant, if you are a hobbyist.
That's also a classic BS response in Stack Overflow and such.
Someone asks "How do I do X?"
And people will jump to comment "You shouldn't do X, etc" instead of answering the question (and if needed, adding a caveat that they don't recommend it).
Many times people very well know the drawbacks of X, that it's considered a bad practice, etc, and also how to do it "the right way", but want to do X anyway for some specific reason (hacking, working around some issue, etc).
True, but most times when asking for help, people are not aware of the drawbacks, and are trying to solve a problem in a completely inefficient way.
https://en.wikipedia.org/wiki/XY_problem
So it's not so much of a "BS response" as a rational first response, even if frustrating for people who don't fall in that category.
The most rational response for an XY problem is to answer both the X and the Y.
It’s well-intentioned but I would like to hold people to higher standards.
Why? Holding people who are beginners asking questions based on wrong assumptions to the standards of experts who are trying to push the boundaries with complete domain knowledge seems like a wrong thing to optimize for.
These aren’t people asking questions.
These are people who make bad assumptions when they answer questions.
Apologies, wasn't sure who you were talking about.
The point is they're not bad assumptions, they're a pretty good prior. If you swing the other way and assume people "know what they're doing" and take their word for it, you're going to give them and yourself a lot of grief in a majority of cases ("but how do I put the gasoline in the chainsaw to cut the chicken?").
I used to think the way you do, but as I spent more time on forums like Stack Overflow, I started to see the damage that this kind of behavior does to the community. I now see this behavior as an opportunity for a teachable moment to explain to people how to answer questions.
It’s one thing if you are on the DIY Stack Exchange and ask how to knock out a wall, and the best answer is, “That’s a load-bearing wall. You don’t knock it out.”
It’s another thing entirely when you ask innocuous questions like, “How do I tell what web browser and version my code is running in?” and some smartass answers, “You should be using feature detection.”
It’s really frustrating to ask a straightforward question and to get a response from five different people making invalid assumptions about what problem you’re trying to solve. It makes the community seem downright hostile! You may think that you’re addressing the underlying problems—but what you’re doing is telling people, “I don’t take your questions seriously; I know better than you.”
That might not be the message you want to send, but if you rely on assumptions then it will be the message that you do send.
While this can sometimes be annoying, this is actually one of my favourite things about Stack Overflow. Because it means you can ask a really naive question, and actually come away with knowledge of what best-practices for your high-level problem are.
That's because, for better or worse, there's usually no visible difference between a question asking "How do I do X?" from a kid at home making something for fun, and the same question from a professional on a mission-critical system.
The same question in different context may have completely different answers, yet StackOverflow is all about finding the "correct" answer, and closing "duplicate" questions.
As with nearly every other aspect of modern life, people are at the mercy of a system of rules whose rewards don't exactly align with the benefit of the people in it.
Also...where do you get game engine developers to work on those established projects if everyone is told not to bother?
I see variations of this with other fields as well. People disparage college operating systems and programming language classes, because "we have plenty of those already" or say that people should contribute to an established project of some kind instead of reinventing the wheel. But that's how you gain an understanding of how a piece of software works, or how you end up with a new thing that's better than the old one.
You get people from some adjacent field (some CAD/CAM people for the geometry bits, someone from Uber for the distributed system bits) to solve the hard technical problems and hire game programmers for more product development / API design type roles
Funny you mention that because a couple of people i know who worked on CAD/CAM software started by trying to make their own game engine :-P.
Though i do not think any of them is interested in working in games nowadays.
Theres a problem with online forums. People glom their opinions together about solving a common problem (like making a game) into a big rolling ball. People who have a different goal but a similar problem become difficult to answer without tearing yourself out of your own commonly shared train of thought.
The perfect answerer would have expert knowledge and the free time and an omni-directional goal to serve all questioners. Those people aren't out there.