35

I know that this section of StackExchange isn't related to programming, but this is the closest part of SE I could think to post this to.

Anyway, on to the topic..

I have a little brother (19, I am 23.). Both of us are interested in technology (More so me than my brother, but the point still stands).

I am a programmer (my brother is not). Most times, I'm either working on a project of mine or learning a new language.

Over the course of the past 7-8 months, my brother has came to me several times with an idea about a game (with aspects that a AA or AAA video game title would have) and proposes that we try to make the game.

Here is where I come to a problem every time.

I try to explain to him that we need to sit down and let me show him at least the basics of the language.

I have no problem taking time out of my work to teach him, but every time that I try to teach him a couple of things he says he doesn't want to do it anymore and gets off of his computer.

Last night he came to me and said he wanted to start learning to program so I sit down with him and start walking him through a couple of things. Not 10 minutes later he says he's finished and gets off as per usual.

I don't feel that if we were to jump directly into one of these complex games he gets an idea for that he would be able to keep up with the project growing so quickly as he is just a beginner.

How can I explain to my brother that if we are to make these games that he gets ideas for that I need him to at least learn the language enough to understand what is going on?

  • 19
    Have you ever said that last sentence of your question to him? If so, how did he respond? If not, how do you imagine he would respond? – Jesse Jan 5 '18 at 11:18
  • 4
    He told me "I think I would learn better by just helping with something you have already started on". I wrote a small console script (Moving a "P" around on a board. simulating a player moving) last night to try to help teach him today, and when he looked at it he said he didn't understand. – Jebby Jan 5 '18 at 11:21
  • 1
    As I said, I don't mind taking the time to teach him. He just chooses to not let me teach him. – Jebby Jan 5 '18 at 11:21
  • 3
    See also: Career development tips from software engineering stack exchange. – NVZ Jan 5 '18 at 20:53
  • Hi, folks. Please do not answer in comments. We have a policy on IPS about this. Answers belong in answers, where they can be voted on. Jebby: Can you please edit some of the information in your comment responses into the question? That will be helpful for future readers. – HDE 226868 Jan 8 '18 at 14:57

13 Answers 13

43

There's a few points worth discussing. I will talk about my own experience, maybe you can show him this and it'll be some help to know what being an indie dev is actually like.

I did my undergraduate degree in Games Design. Bad decision. It touched on the basics, but in the end I still couldn't make a game. A few years later I decided to learn how to use Game Maker Studio. I knew nothing of programming. By the end of the project I knew something, and had brought a game from concept to completion. I was smug. It sold almost nothing. I was sad.

Later I regained some confidence, and decided to do a postgrad conversion course for people who wanted to learn programming. I'd made a game, how hard could it be? Turns out... quite hard. Stuff like multithreading however is thankfully something I've never had to use outside of a classroom.

So I graduated, got a programming job for an IT company, have been at that job for two years. In that time I've also spent most of my spare time after work and at weekends doing games development. Progress is slow.

For someone who wants to make their own game, alone or in a small team, you have to be the person who can implement their own ideas. Small teams cannot afford a dedicated games designer writing design documents all day. Because most people can't afford to hire a team of programmers, they need to be programmers in order to be designers. I would go so far as saying it is preferable that you can code regardless. The crux is that if you want to make your game, and not somebody else's game, then you need to be able to do it yourself.

Making a game is hard. Very hard. If you want to make games, you have to be willing to come home tired from a 9-5 and force yourself to write some code for a God awful problem nobody you know can help with. You've been struggling for weeks, and feel like crying, because how is this ever going to be fixed? To feel sometimes like you don't know if this will ever end, and to wonder if you're wasting your life. To have genuine self doubt, and yet to conclude: No. This is the right decision. To have that bloody minded determination.

Spoiler alert: I fixed it. So your brother needs to get that. Maybe he can be your art department instead? There's nothing wrong with that, but it'll not be any less work to learn and make what you need. Whatever he does, he needs to be just as busy as you. You're an ideas guy? Yeah, get behind the ideas guy who can do art, or the ideas guy who can code.

With that pep talk concluded, give him something like Unity or Game Maker. Tell him to think of making a very simple game. One step at a time. There's plenty of learning material online for those two engines (and others), and something like TutorialsPoint will help introduce him to programming basics.

In my case, after struggling with GML and Game Maker Studio, I read the first hundred pages of Programming: Principles and Practice Using C++ by Bjarne Stroustrup, which was enough to start with Unity and C#. Just teaching him how to work on his own and solve problems on his own with the help of Google and StackOverflow is half the battle.

Show him how to use an IDE like VisualStudio, and the debugger, and hold his hand through basic C# (for example) tutorials. Be patient. Variables, functions, arrays, classes, etc. We programmers forget how scary it is to begin. I can't overstate how important it is for you to help him through those baby steps. Be patient. Not everyone is as mad as I to go it alone. But if you support him through the basics, and get him able to do simple debugging and creating simple classes, he'll start to think of creating games in programming terms. Then he'll get it.

You can't convince him to do programming. He just needs to decide if he really wants to make games. Then he will realise he has to become a programmer.

55

My gut feeling is that your brother might never become interested in programming. He might seem interested, but I believe it is still a means-to-an-end for him at this stage (I want to make a game, and programming will get me there).

Introduce him to the other domains of designing games, like graphics or sound design and check whether those aspects piques his interest.

Once you have made the intro to game design frameworks like Unity, he will soon come to realize that a little programming knowledge will go a long way in an indie team like yours.

If he then becomes interested in programming from a maker's point of view (the journey, not the destination), refer him to the online resources like YouTube etc and offer to be the mentor this young journeyman deserves.

  • I also had the feeling that he may not become interested in programming. A year or so ago he had messed with RPG Maker and wanted me to help write some (Javascript / Ruby I can't remember which), but I didn't know the language at the time. I may take a look into RPG Maker and start off by helping him create plugins. – Jebby Jan 5 '18 at 12:02
28

TL;DR

You cannot convince your brother to take up programming. Programming is hard, tedious, and requires a certain type of brain to find any sort of fulfillment in programming.


I think that you are misunderstanding the dynamic of the proposed relationship of the situation.

Your brother is not saying "Hey, I personally want to build a game from the ground-up." He is saying "Hey, I think we can make some money if you program my ideas." This is a business proposition.

He plays games with complete ignorance to the programming aspect so he essentially knows what the average user wants. Your vision might be clouded because you are technically in the "trenches" of game development.

I know this sounds like he is being selfish and rude but he is not; this is exactly how a business operates. When the owner of a company wants a website then it is very likely that someone else is building it for them.

I am pretty sure that you guys are not in a position to start a company which can produce AAA titles but if you are willing to combine your skills with his ideas then something great could happen.

  • Comments are not for extended discussion; this conversation has been moved to chat. – HDE 226868 Jan 6 '18 at 19:01
12

I am a programmer working in the games industry, so I have plenty of experience with people trying to get me to make their game ideas. In an industry where pretty much everyone has more ideas than they can ever make into reality, ideas are absolutely worthless unless you have the skills to help push them into being.

However, the skill he contributes doesn't have to be programming. If your brother has or is willing to develop artistic skill he could provide the art assets for the game. I frequently find that I get bogged down trying to produce even remotely passable art for my home side projects. So having an artist partner can be super useful.

Basically, if someone doesn't care enough about their idea to learn a skill to help make it a reality, then you shouldn't care about their idea either.

9

I am experiencing the same exact thing with my roommate. I am a programmer and he is not. He never wants to learn anything about game development, but always wants to create a game:

Your brother isn't interested in learning about game development, but only fascinated about the concept of creating a new game.

Offer him some Youtube videos that he can follow and make yourself available if he has any questions. Your best chance at getting him interested would be to find a video where a basic game is being developed as he is watching it, in your preferred language. I would also set up the environment on his computer as well so he can follow along.

If he is truly interested in game development, then it will take off from there. Most likely, however, he simply wants to 'skip the boring parts' and have the end product already. No amount of convincing will change that.

6

Stop trying to teach him and tell him how to learn.

On YouTube, you can learn how to do pretty much anything, so there's going to be tutorials there. Some presenters are really great a describing things and making the subject matter engaging.

Show these to your brother (or just point him at a channel name) and allow him to learn at his own pace.

Let him know that you're available for questions or help on this, but let him develop his skills at his own pace and convenience.

If he demonstrates the curiosity to go further with this, he'll want your help. If he loses interest, then it's his own issue.

  • 2
    Thank you for your advice. Do you personally know of any good channels for a beginner that will teach good programming habits at an early stage? That is my main reason for wanting to teach him personally so I don't have to undo months of his studying to teach him the correct way to do things. – Jebby Jan 5 '18 at 11:44
  • Usually start with searching for "beginners guide to blahblahbla" and go from there. Assume that the videos will teach good habits as part of the tutorials (e.g. avoid videos that use East European thrash metal as background music). Stick with professional looking channels. – Snow Jan 5 '18 at 11:52
  • 1
    @Jebby You can just personally vet the content before you recommend it. This is a much better use of your time (and gives a set of vetted resources if the situation should arise with any other person in the future). – Derek Elkins Jan 5 '18 at 22:24
3

How can I convince my brother to take up programming?

You don't.

As I see it there are misconceptions on both sides here.

The problems with you:

You seem to have fallen for the common misconception that playing games or having ideas for games make you somehow prone to be a programmer or to work with technology in general. However this is not the case at all.

Plugging in the HDMI into the monitor and PC for your mom doesn't mean you are tech support now. Similarly just describing a program you want doesn't make you a programmer nor a designer, there is much more to it than a layman would consider - as a programmer yourself you know this to be true.

Because of this you should stop to have these expectations of your brother.

The problems with your brother:

Disclaimer: What I am about to say may seem mean or offensive to you, but this is what I got out of your description of him.

Your brother is a leech. He has high expectations of the product and expects a lot of you while at the same time claims a lot for himself but doesn't contribute a lot. Everyone can fling ideas about what they like in a game without any context. But has he done anything to proof that this is actually doable or even fun? Any good concepts, tests, comparisons, ...?

Don't do it.

He doesn't know what he wants. You started multiple times to introduce him to programming but he aborted after an incredibly short time. And now he wants you to believe that he will have the patience and endurance to sit down and learn from a bigger piece of code you have written? What a joke.

Don't do it.

He is over confident. This also seems to apply to you. He has absolutely no grasp of how much work this project is going to be and either overestimates his abilities or underestimates the work - or both. You guys seem clueless about the amount and type of work that has to be done.

Don't do it.

He is a wannabe game developer. This isn't uncommon on the internet and not really a surprise if you consider the combination of inexperienced kids/teenagers with a superiority complex and anonymity. Everyone thinks they know what the game is missing and how it would be better. But how many people actually have experience with that? How many of these people can do or have experience with doing artwork, animation, maths, graphics, programming, voice, music, storytelling, character writing, level design, gameplay design, ... On which of these points can your brother assist you with a valuable contribution? From what you have told us it seems like none.

Don't do it.


In conclusion

This is not someone you want to start a project with. If you start with the conditions as they are right now you will do everything, with little to no contribution from him. You will notice this after just a couple of weeks (even days or with him in minutes) and the project will come to a stop.

What you can do

Actually put down a written concept of what you expect from the game and what you think has to be done to achieve that. There is a lot you should watch out for here but as this is InterpersonalSE I am not going to go into this here. However teamwork certainly is interpersonal so I will recommend you to write down who can/could/should do what.

Programming isn't something you are just going to convince someone to pick up. You can learn the basics quick but if you want to be good you need to put in a lot of time in order to gather experience.

He has to want the product bad enough to put in work by himself and thus learn programming.

1

What does your brother find interesting (other than video games)? Perhaps there is a different hook that you can find. Processing (a language popular with technically savvy visual artists) and the larger make movement that it is part of might spark an interest. Speaking of sparks -- The SparkFun Guide to Processing is a good place to start. Perhaps the A in STEAM is the missing ingredient.

But -- perhaps not. Ultimately you can't force your brother to be interested in anything. Expose him to a couple of possibilities. If one sparks a genuine interest -- great. If not, at some stage you should just give up the idea.

1

My experience is similar to many of the other posters to some degree, but I think it is important to stress how difficult it can be for us, as programmers, to see how confusing the language is to someone else who may be new to it.

One thing that stuck out to me with your example in particular was moving the P around on the screen. While to us, this seems like a trivial example, a non-programmer will have no foundation of understanding for even the simplest elements of that exercise, and your brother may get frustrated in the process of trying to understand how coordinates relate to the picture on the screen.

In my own experience I first "learned" programming in high school, and I did well, until I was given an impossible task (I was given the work without the literal files to follow the instructions). I felt like I had failed, gave up, pursued an English degree instead.

Years later I used VBA to automate a boring job task in Excel, then the next task, and the next one, so on and so forth. This is where I relate to your brother: if someone told me 'Learn programming to automate data analysis.' I would have been bored within the first ten minutes, and I likely still wouldn't program. Instead, I found my own value in the task, relieving myself of a boring job, and incrementally extended my abilities because the reward of doing so was the reinforcement.

In some ways, you may be able to give your brother a simple file, and let him manipulate and play with it. He may decide that the moving 'P' is too boring to manipulate, or he may instead wonder how to change 'P' to 'O', 'O' to 'MOVING', he may discover how to make it bounce off the walls, or change shape. Ultimately, he has to be interested in testing the code, and discovering how the process works, otherwise he will absorb none of it.

I have had the fortune of having some great programmers teaching me what they know in order to help me reach greater heights, but in every instance I had to first truly see the value in the code before I used it. Its easy to know that abstraction is good, or that interfaces are useful, but its another thing to have to tackle that problem that can't be easily solved without an interface, or to struggle with a tangle of code that shatters if i changes to i + 1 and changing that code to j fixes it, but you forgot to fix it over here as well, and well now we are onto k because you can't remember if i was right, or if it was really j.

In the end, he has to be passionate about the work, before it becomes a hobby, otherwise it is just another job.

  • Thank you for your insight. The script that I had worked on was pretty well abstracted where anything that might need to be changed when he toyed with it, was directly at the top with comments explaining – Jebby Jan 5 '18 at 22:02
  • It may be easier for someone learning to see it all in one area. While abstraction is far ideal, few programmers write in abstraction right away (assuming you mean functions, methods, classes, and the like). Allowing him to get his hands dirty and build it may help him better invest in understanding how it works. – Brandon Barney Jan 6 '18 at 0:44
1

Everyone has different ways of learning something, depending on themselves on what there is to learn. I would learn nothing about programming by watching videos; instead I learn it by doing it. Someone else might learn from videos or books.

Still programming isn´t something you can teach. It requires experience which you only get from doing it. You can, to some extend, help someone to know what is involved, and from the very beginning, that someone needs to do the understanding by himself, like learning to read. From there, the learner needs to explore it for himself.

You can´t teach someone to ride a bicycle. Even when you teach all the physics involved, the student will not be able to ride it because it requires experience, which he can only get by doing it. This is how you can not teach programming.

Programming is a skill, like reading or riding a bicycle. There are things you need to know to do it, and only those are the ones that can be taught. The skill itself can not be taught, it can only be developed by the learner --- and the learner will only do that if he wants to.

You might able to tell your brother what all is involved in making a game, and perhaps he finds something among that which he wants to learn. If not, he won´t be able to make a game and has decided to make himself helpless.

Programming is not difficult or frustrating at all, especially not nowadays with all the great tools available and the machine not freezing up when the program doesn´t work, as they used to, and it´s fun.

Perhaps everyone learning it would be well advised using a 35 year old computer and some suitable programming books, and no more. That keeps him focused, and he can´t play the game before he entered the program himself, which gives some incentive. The learning then comes all by itself, simply by entering it because he can see how it´s done and inevitably starts thinking about changing it, and then doing it.

Give someone some sort of game development software, or a fully fledged C/C++ compiler and mumble something about classes and methods, and your learner will be totally overwhelmed. Give him something simple and straightforward written in a simple BASIC variant --- if you can still find one --- or, alternatively, in perl, print it out and have him enter it himself, and he might just learn.

I guess a learner needs a chance to understand the problem which is to be solved by programming before starting to program. The next step could be to show them how to split up the problem such that a computer can deal with it; then show and explain the actual implementation. You need to start with the most simple problem you can think of, not with one of the most difficult ones like making a game.

  • Your comment reminds me of a video by The8BitGuy on Youtube about BASIC. You would get this book and sit down at the computer, typing away the lines. You didn't have a choice BUT to learn it as you were following along.. – Jebby Jan 5 '18 at 23:24
  • Also, I have tried to have him work on the simplest of programs and work up from there. (dice roller, user input, things like that). He seems to insist that it be a game, without knowing how the language works (I've tried a couple different languages with him to find the one he finds most comfortable). – Jebby Jan 5 '18 at 23:26
  • I think it basically doesn´t matter what language is being used by someone trying to develop programming skills, except maybe that it is an advantage when the language is well suited for solving the problem and doesn´t provide the learner with more frustration they are willing to bear. --- I´m not sure what a simple example is for someone who doesn´t know yet at all how a computer works. That´s where I would start, and the learner will probably marvel at what all can be achieved by manipulating lots of bits. It´s still like magic to me. – user11030 Jan 5 '18 at 23:37
  • I actually did the book thing 35 years ago, and I learned a lot from it and started to develop some programming skills. I was fascinated and wanted to learn. If someone doesn´t want to learn, this question is similar to "How do you force someone to learn to read?" ... – user11030 Jan 5 '18 at 23:45
  • Well noted. I'm not trying to force him though, but rather encourage him, since he has asked me to teach him to program. So I assume he has some interest. I'm just not sure if it's just too complicated or if he gets bored too quickly. – Jebby Jan 5 '18 at 23:48
1

Right now your brother seems not capable of focussed work for just ten minutes. If he cannot do that, then software development is not for him. So don't try to convince him to enter the profession, it's not going to help anyone.

Your little brother has ideas. It's been said elsewhere, ideas are ten a penny. So to create anything of value, he must have more than just an idea. Ask him to actually start the design of a game. Not just an idea. Let him write down how the game starts. What things the user can do, what effects the user actions have, what actions are produced by the game. All needs to be designed in detail. Whatever makes the game great must be in his design, he cannot rely on the programmer(s) to make the game engaging. The game designer needs to do this.

Or ask him to find out what is needed to sell a game. From starting a company, filing taxes, paying developers to create the game, finding publishers, and so on.

1

This answer is from a strictly "Interpersonal" view..

I had a very similar situation with my brother around that age and at least for us the problem turned out to have nothing to do with programming and everything to do with interpersonal relationships.

Siblings have this tendency to want to differentiate themselves from each other. At least in our case, my brother had a resistance to programming because it's what I did. I could have never taught or convinced him (I did try) because it was coming from me--I was the expert even though I could absolutely see that he had the potential to be at least as good.

After he moved out of the house he went through a few non-technical jobs before drifting into programming on his own from a completely different direction.

He became a fantastic programmer/manager/lead/architect for a medium sized company and has been so for a couple decades. I don't think I could have led or pushed him into it though--I tried. He would not have been taught by me, he would have resisted (unconsciously).

So if I look at it from that point of view, what would I do in your case?

Given your description, I'd probably get him to download the Unity framework (As the accepted answer suggests). I tried this lately because a HUGE percentage of games are starting to be released using Unity. Thing is, once I downloaded it they started pestering me with emails trying to entice me to run though their tutorials (and they have a LOT of tutorials/help for beginners). They are very good at holding hands and it is pretty easy to bring up a game that looks quite non-trivial.

Also--don't download/learn/use it yourself. Let him become the expert in something. Even if you can't answer a question, that's great! Let him work it out for himself--you can always sit with him and look up an answer on SO together.

I'm not sure this will work, but I think it would have for me and my brother.

-2

Show him how much money he can earn.

https://www.upwork.com/o/profiles/browse/c/web-mobile-software-dev/nss/90/hrs/1000/?rate=60&user_pref=1

And

video game programmer salary

However, programming is hard and not everyone can do it. That's why programmers make so much. My mom got a Commodore-64 to learn typing and bought a BASIC book, and I was the one who finished the book. If he was destined to be a programmer, he would have been doing it by now. From this chart, you can see the average age that programmers started was 13.5. Very few are over 20.

distribution of ages when started programming Source

I have a gamer brother who is the same way - no motivation, no ambition, no perseverance. Maybe find another related skill he would take interest in. If you insist to keep trying, maybe start with Scratch, which was developed to help children learn programming with a drag & drop interface.

https://scratch.mit.edu/

  • 2
    @Chloe that didn't "prove [him] wrong", it showed what commonly happens. Your own graph shows that there ARE people who started programming at 45, which actually proves him RIGHT. My aunt started learning at 35, and is now a lead in her company. There is never a bad time to try something new. – user3316 Jan 6 '18 at 18:12
  • 1
    @Chloe not only are the charts off topic from OP's question and 10 years old, they don't 'prove' anything – A.B. Jan 6 '18 at 19:34

protected by apaul Jan 7 '18 at 15:43

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.