How do you respond to this?

I had someone comment on myYouTube channel asking “How did you do this?” about my game.

[Edited out because I am ass sometimes + nobody needs to read it]

Depending on the mood I could reply something along the lines of:
“It is called a trackball camera (link). Look it up on google. For more info try unity forums. Also see unity learning section (link) and reference manual (link)”.
I definitely wouldn’t explain it in detail on youtube and would probably forget about this comment in 15 minutes.

I think you’re overthinking it and maybe overreacting it and for no reason too.

Imagine that you’re approached by a polite ten year old kid asking the same question. Would you still think they’re ingrate?

I suggest to shut down computer, cut off social networks for a week or two, and take a long walk in a forest to relax or go on a camping trip.

When you see text online, you don’t know a thing about the other person, their intent, tone, motives, etc, and because of that your brain may start inventing stuff, just to fill in the blanks. For example, you may suddenly decide that there’s an “evil troll” behind the comment mocking you, even when this is not the case.

Now, for some reason you’re imagining negative info to fill in the blanks, which may mean that you need to take a break and rest up. Maybe you’re stressed or something, but generally you shouldn’t fly into rage when someone asks you how does the camera works.

And by youtube standards this comment is incredibly polite.

Failing that, if you can’t deal with ocmments, disable them on your video and be done with it.

17 Likes

I’m really confused. Maybe I’m missing something obvious and I apologize if I am, but why did that comment upset you? The person was just asking how you did something and asked for some help while telling you what he tried and what gave him trouble. I usually take questions like “how did you do that?” positively because that person went “this is cool and I want to be able to do that too”, kind of like an implied compliment. I really don’t understand what made you call that person a “thankless bastard” just from looking at their comment, which has no trace of hostility in it as far as I can tell.

12 Likes

From only the information in the question I suppose I would point them to the Screen class and feel good about myself for helping someone. If it was an interesting enough problem and I had some time I would maybe write a blog post explaining it. If I had a vibe that the person isn’t wanting to learn and just cut and paste I would describe whatever technique, maybe do pseudocode, and encourage them to learn or give up.

Without some additional background your response seems a bit over the top. I’m with @neginfinity , go do something outside for a while.

4 Likes

Yeah I’m going with the “stop overreacting” crowd here. I spend most of my time on the forums looking for people who need help. I give away code when I feel it’s relevant. I learn from others, too. Just as you do…

And frankly if you can explain what is needed to “hijack” your game in a single youtube comment, it seems unlikely you’re hoarding some Great Secret in the first place.

9 Likes

Normally when someone asks you how you did something, it’s because they want to do it themselves. Not sure what the problem is since it was clear in the original question that the asker has already attempted whatever it was in UE, not like they told you afterward. No obligation to reply if you don’t want to.

Personally, I like to share information and I’ll pretty much answer any question anyone has in detail, even if it’s part of something I’m selling. I find that people who are simply trying to take advantage of someone else’s hard work can rarely make anything useful out of a detailed technical comment anyway.

3 Likes

I really think you’re overreacting. I mean, he asked how to do something and you told him how to do it, so is it any different if he asked in the YouTube comments or here on the forum? Usually on the forum those are the types of questions newbies will ask, in which case I usually point to a doc, tutorial and/or give some of my personal insight on how I’d do it. Maybe even a complete script that I’ve used before. It’s called helping people. So I really don’t see how you can say he’s hijacking your project if you told him how to do it. I bet if he asked here on the forum and you gave the same answer, you wouldn’t be mad. If you think that helping people is the same as them stealing your work, then you shouldn’t be telling them how to do it.

In case you’re wondering, here’s the video:

And as @neginfinity said, it could be a polite 10 year old. I started Unity when I was 14 (accidentally downloaded the Editor instead of the Web Player). I was completely new with 0 experience with anything in computers besides basic Windows usage. Once I saw the Editor and people on the forum directed me to the tutorials, that opened up a whole new world to me to where I am now: Can write C# on a less-than-decent level and have a good understanding of how Unity works. It’s the little things that can jumpstart much bigger things. Now think: what if your reply helped that (possibly 10 year old person) actually create a good game and become successful? Is that a bad thing?

So yeah, I’m going with the “go outside” crowd on this one.

6 Likes

lol, I can imagine the wtfs that were flying when you first started that up expecting to play games in your browser.

Lets put this on perspective. You are getting 20 or so views on each video. You have five subscribers.

Into this community of you and your mum comes a random stranger who is genuinely interested in your game. And your response is to blow him off as a lazy ingrate.

You had an opportunity to start building a community. To get some external interest in your game. And you are pretty much throwing it away.

Get back on YouTube and repost your comment. Bend over backwards to help this guy. And behave yourself next time someone wanders in.

11 Likes

Alternative offensive response

What the hell man. You know how many of your posts we’ve responded to that amount to ‘I don’t know what’s going on, help me’.

If that YouTube post classifies him as an thankless b****** and f**** lazy, your forum posts put you firmly on the same category.

You owe people who ask you questions a response, if only to pay back all of the responses we’ve given you. How thankless is it to take free advice from the community, and not offer free advice to your fans.

And let’s face it, he’s not trying to duplicate mouse flight. Mouse flight still sucks. It’s not worth the effort to clone.

Quit being a thankless bastard. Go answer him, and do it nicely. If you can’t write out the full answer direct him to the forums. Otherwise you can say goodbye to any free help from us ever again.

8 Likes

Still the main control method in WarThunder along with keys to control rudder, elevation etc…

I might make a mouse-flight demo and put it up on the Asset Store just to piss off OP a little more. Maybe he’ll sue me for hijacking his work :wink:

1 Like

I wasn’t indicating anything wrong with the control method. Just that the OPs game in general needs a lot of work.

Of course if he’s reusing another games control scheme, then there is even less reason to be protective.

Not a bad idea if you have a spare two hours. :stuck_out_tongue:

That will one day be an awesome Unite talk. :wink:

5 Likes

Me in this thread:

6 Likes

I rarely see anyone comment back to stuff on YT… it’s a horrendous waste of time.

Woah, that’s some high expectations, but I hope they become true :smile:

Anyways, I took this up as some scripting practice/challenge and here’s what I came up with in about an hour:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MouseFlightController : MonoBehaviour {
    [Header("Screen settings")]
    public bool ReversePitchControl; //this decides if moving mouse up makes plane tilt up or down
    public float MaxAmountFromCenter = 150; //maximum distance of mouse from center before it stops having more effect on tilt speed
    //values for boundaries of mouse position before it stops having more effect on tilt speed
    private float ControlSpaceMaxHeight;
    private float ControlSpaceMinHeight;
    private float ControlSpaceMaxWidth;
    private float ControlSpaceMinWidth;
    public Vector2 CenterOfScreen;
    public float MouseDiffX;
    public float MouseDiffY;
    public float MouseSensitivity;
    [Header("Plane properties")]
    //speeds at which the plane will tilt
    public float RateOfPitch = 0.5f;
    public float RateOfYaw = 0.2f;
    public float RateOfTilt = 0.5f;
    public float RateOfAcceleration = 0.1f;
    public float MaxForwardSpeed;
    public float MinForwardSpeed;
    public float CurrentForwardSpeed;
    //rotation that's applied to plane on top of its current rotation
    private float ExtraRotationX; //Pitch up-down
    private float ExtraRotationY; //Yaw left-right
    private float ExtraRotationZ; //Tilt left-right

    // Use this for initialization
    void Start ()
    {
        CenterOfScreen = new Vector2(Screen.width / 2, Screen.height / 2); //get center of screen and set up boundaries
        ControlSpaceMaxHeight = CenterOfScreen.y + MaxAmountFromCenter;
        ControlSpaceMinHeight = CenterOfScreen.y - MaxAmountFromCenter;
        ControlSpaceMaxWidth = CenterOfScreen.x + MaxAmountFromCenter;
        ControlSpaceMinWidth = CenterOfScreen.x - MaxAmountFromCenter;
        CurrentForwardSpeed = MinForwardSpeed;
        Debug.Log("Screen dimensions: " + Screen.height + ", " + Screen.width);
        Debug.Log("Use W and S to control speed, mouse to control direction.");
    }

    // Update is called once per frame
    void FixedUpdate ()
    {
        if (Input.mousePosition.x < ControlSpaceMaxWidth && Input.mousePosition.x > ControlSpaceMinWidth)
        {
            MouseDiffX = Input.mousePosition.x - CenterOfScreen.x;
        }
        if (Input.mousePosition.y < ControlSpaceMaxHeight && Input.mousePosition.y > ControlSpaceMinHeight)
        {
            MouseDiffY = Input.mousePosition.y - CenterOfScreen.y;
        }
        if (Input.GetKey("w") && CurrentForwardSpeed <= MaxForwardSpeed)
        {
            CurrentForwardSpeed += RateOfAcceleration;
        }
        if (Input.GetKey("s") && CurrentForwardSpeed > MinForwardSpeed)
        {
            CurrentForwardSpeed -= RateOfAcceleration;
        }
        transform.Translate(Vector3.forward * CurrentForwardSpeed * Time.deltaTime);
        ExtraRotationX = ExtraRotationX - (MouseDiffY * RateOfPitch) * Time.deltaTime;
        ExtraRotationY = ExtraRotationY + (MouseDiffX * RateOfYaw) * Time.deltaTime;
        ExtraRotationZ = ExtraRotationZ - (MouseDiffX * RateOfTilt) * Time.deltaTime;
        if (!ReversePitchControl)
        {
            transform.rotation = Quaternion.Euler(transform.rotation.x + ExtraRotationX, transform.rotation.y + ExtraRotationY, transform.rotation.z + ExtraRotationZ);
            return;
        }

        if (ReversePitchControl)
        {
            transform.rotation = Quaternion.Euler(transform.rotation.x - ExtraRotationX, transform.rotation.y + ExtraRotationY, transform.rotation.z + ExtraRotationZ);
            return;
        }
    }
}

There’s probably something wrong with it (please point something out if I can improve!), but it gets the job done. My biggest issue with it is the fact that the plane’s rotation is tied to whatever the mouse’s position is, regardless of the plane’s orientation. So it’s not very realistic. Also, I probably should have used Quaternion.Lerp. But it doesn’t look very different from OPs video to me.

Anyways, I’m going back to the project I was working on, drawing lines between points because Unity’s line renderer is awful!

4 Likes

It was awful, they’ve made a lot of improvements (I can’t remember but I think they’ll be out in 5.6). I don’t know about performance. I use Fast Line Renderer which is just $9. I suspect feature-set and organizationally Vectrosity is probably better, FLR has that quick-and-dirty feel, but it is very fast and easy and the FLR dev is highly responsive. Hard to beat it for nine bucks. Of course, disregard if you’re doing this for learning or experimentation purposes.

1 Like

ok, you’re coming across as an ass which I hope you’re not. Just don’t reply if it gets to you that much.

Something that irks me with unity is that debug gizmos won’t work in exported builds, even if you want them to do so, for say dev builds for testing users… annoying as fck…

Fast Line Renderer … heh that asset I still remember sending the guy a test project, had a cuboid grid that was built using it, had some visual inconsistencys … didn’t get it fixed… but he did days later update his FLR asset with a cuboid grid as a new feature clearly inspired by my project, the code isn’t the same but still… what a d*ck, didn’t even ask or thank me for the inspirationz man :slight_smile:

Anyway I use updated version DebugGL (http://www.unity3d-france.com/unity/phpBB3/viewtopic.php?f=24&t=5409) …someone it made a few years ago, provides a useful codebase for drawing GL lines quickly with a few options, you can get it to work in exported builds (at least on windows, though I seem to remember it not working on android but didnt look into it), why don’t they allow Debug Gizmo lines to work in exported builds as an option…seemed kinda silly to me Unity, but then this is a fricken game engine without so much as decent built in dev console or other useful debugging tools (not never enough anyway :stuck_out_tongue: )

So Jeff adds a function that solves your problem and your response is to call him a dick? Seriously? Drawing a 3D cube with lines isn’t exactly something that requires “inspiration”. Ironically the first bit of 6809 graphics assembly I ever wrote was a rotating 3D cube – that was 1984 and I’m still waiting for you to thank me for the inspiration.

He added two or three things I needed, he did it quickly, and I was pretty happy about it.