How do I ask a good Question?

How do I ask a good Question?

What do you need to do to make people react faster on your questions?
What do you need to do to get useful answers?

I would like to know what I (as maker of the question) can do to get a fast and useful answer.

  1. Be specific - “How do I make a
    FPS” is not specific.
  2. Include all the relevant data - include script, related object set ups, intended effect, etc
  3. Be legible - “how i make gaem wit invetary and smart enemay???” is not going anywhere. Not to be confused with poor english: “How i do level load? have two scene but not know code” is fine.
  4. Relevant title - “HOW I MINE FISH?!”
    is bad. “How can I make one object
    generate a second object when
    clicked?” is good.
  5. Be patient - questions can take
    hours, even days to be answered.
    Asking every 5 minutes is just
    annoying.
  6. Know your ability level - if you’ve
    just started, you won’t be getting
    people explaining how to implement
    massively multiplayer logic.
  7. Short answers - The longer I have to
    type, the less chance you get an
    answer.
  8. Try - It’s a lot easier to explain
    why you failed, and where the logic
    has it’s holes, than to explain the
    whole idea. “You’re trying to use a
    static array for way points - try
    using a normal one, and the
    Array.Push() function. Static arrays
    can’t be resized, but normal ones
    can.” vs “Use an array. Calculate
    each position and store them in a
    new bracket.”

Now that’s a good question!
The presentation of a question consists of a couple of elements that needs to be taken into consideration to receive a well met answer.


Relevancy and keywords

First of all, make sure that the question actually belongs on UnityAnswers - will the answer contain Unity at all? If not - find the right forum for your topic. Make sure to search for your problem on a search engine and UnityAnswers before posting a question. Chances are that this very issue has been brought up and solved before. Search for keywords of your problem - if you can’t find any liable solution then use those keywords as tags to your question when posting on UnityAnswers.

Introducing a task

Introduce the task and describe what you’re trying to achieve. Assume from the very beginning that nobody has a clue of what this is, as you would describe something brand new.

Example: I have a space scene in 3d containing the Earth and its Moon as separate GameObjects. I am trying to get the Moon to orbit Earth, what methods can I use?

A clear message

Make sure that the actual question is easy to understand and that the outcome is a clear question. Give your question a descriptive title - not to long, not to short. The question should stand for itself and not rely on any of your earlier, or somebody else, questions. If it’s a followup to an earlier of your questions make sure to describe the origin problem briefly and reference with a link. Find the keywords to your issue and tag the question before posting.

The purpose of the question

What do you want to achieve by asking? Make sure to describe the outcome of what you’re trying to achieve from the very beginning and all things that might be relevant to the issue. This also opens up for people to throw in hints - maybe a brand new angle to the problem to solve things easier along the way.

Example: *I have a space scene in 3d containing the Earth and its Moon as separate GameObjects. I am trying to get the Moon to orbit Earth. They both rotate along their Y-axis with the code:

 while Earth also later should orbit the Sun. How do I make a GameObject orbit another GameObject?*

**How far down the rabbit hole are you?**

Always introduce how far you've been able to solve the issue by yourself. If the question has to do with code, make sure to post the relevant isolated code for what you're trying to achieve. Explain what you've already tried and why it didn't work for you.

**Tidy format and making sense**

The layout and format is as important as the actual grammar. Make sure to use proper English (use a translation if you're unable such as [Google-Translate][1]) and format your text so it looks appealing. In other words, don't write text without separating the parts, always use the ![101010-button][2] to format your code and let the browser spell check your content if available.

**Care and respect**

UnityAnswers is solely created by humans, just like you - they think and feel. Be respectful in your writing and ask things politely. Doing this will increase the chances of getting something extra in return.

**Followup and closure**

A good question followed by a good answer needs closure. Let the person who answered know that this was your accepted answer by clicking this icon: ![accepted][3] 
If an answer is helpful in any way, give something back to the person by clicking this icon: ![good][4]

Accepting an answer will not only notify the person who answered that this was correct, but everyone else that struggle with the same issue now know there's a correct answer. Accepting an answer also gives you karma.

----------

A good question will receive greater notice and good answer(s).


  [1]: http://translate.google.com/
  [2]: http://www.workingart.se/misc/unityanswers/1010101-button.gif
  [3]: http://www.workingart.se/misc/unityanswers/accepted.gif
  [4]: http://www.workingart.se/misc/unityanswers/good.gif
  • Have a specific title and text.

  • Formulate yourself well so people can understand you.

  • Add proper and specific tags so people know to start with what the topic is all about.

  • Be nice to people and the will be nice to you.

Have a specific answerable question in mind. Don’t ask a question that would lead to a long discussion and not result in a straightforward answer.

If you have a question regarding scripting, make it clear which language you need help with in the tags and provide all code you’ve already written which is relevant.

If you need to describe something you want to do in some sort of spacial terms, drawing and uploading a simple diagram can go far towards getting an exact answer.

Always read the manual before you ask a question. If you ask something that can be read straight out of the manual, you won’t be answered, or your answers will be “read the manual.”

Never, ever ask someone if they can “write a script for you” as this will cause many thumb downs and negative comments. If you’re asking a question, it should be for the purpose of learning, not having someone swoop in and do your work for you.

Be polite, spell properly.

This is all I can think of that I could ask for in a question that would result in me giving a fast, accurate response.

There are some good answers about getting the most out of the site, e.g. here.

  • Phrase the subject as a question, not a statement.
  • Keep the question on topics related to developing with Unity
  • Make sure it is an answerable question. This is not for discussion.
  • Keep the scope of the question as focused as possible. Bad: “how to make a game like x”
  • Make sure it is something that at least one other person could find useful. Bad: “how to fix my code?”. Relate it to something in the engine so that others with similar problems can find it and benefit from it.
  • Include details of what you have done, with code samples, but do not just dump a massive piece of code up there and expect others to wade in.
  • Be polite and respectful; you’re asking for free help.