So about a month ago I decided to learn how to develop games… huge undertaking as I’m sure everyone here knows, and I’m certainly not taking it lightly.
I knew about Unity from seeing it pop up from time to time, and after a little extra research I knew it was the tool I wanted to use. So for the past month or so I’ve been throwing myself into programming books/tutorials, refreshing myself on asset creation through blender/gimp etc (years ago I got pretty good with Lightwave, but nothing since). My plan was to get a basic foundation going and then (hopefully) learn the rest through immersion.
Pretty recently I started going through the Beginning game development with Unity 4 book, I had originally wanted to start with the basic tutorials on this site, but they all seem to be videos and I have a really crappy internet service with a low monthly data cap, so streaming any video tutorials is mostly off the table for now.
It’s a really good book from what I can tell, very detailed, but as I get deeper and deeper into it as it starts to deal with game logic and heavier coding stuff I’m starting to feel a little overwhelmed. Like I follow along the concepts and completely understand what’s going on, but at the same time I feel like “holy crap, how could I ever replicate something like this without hand-holding?”
I realize you can outsource and/or hire other people for programming and game mechanics etc, but I really want to do more than make assets, as important as I know that is, I desperately want to be involved in all levels of the project.
So I guess, all the extra details aside, I’m asking have any of you also dealt with feeling really overwhelmed as you started out, and were you eventually able to get it by just sticking with it, or are some people just not capable of doing the more technical side of game development?
No I was always arrogant about everything I wanted to do. Maybe arrogant is the wrong word. I ASSUMED I would be able to do it, and refused to back down. You need an equal amount of stubborn and patience/belief.
Rome was not built in a day. It will take a year before you are knowledgable enough. You must hunger for it and throw yourself into a simple game. Do Pong. Just start making it how you think it should be made. Then look up what you need to get the job done.
Once done, move onto space invaders. It’s really a matter of failing a lot and learning from it. If game development was the easiest thing in the world, why would we need to buy games?
Just stick with it, get a bit of backbone and self-belief and get on with it. You can do it.
As a beginner you will never grasp everything you see for the first time. I’m a beginner myself (1.5 years with Unity) and there are many things I still don’t get. But I’m sure I will someday. I finished one game until now. It’s no game I would play, if it wasn’t mine. But just by finishing and polishing one game, I learned so much. Now I feel much more secure using Unity.
What I noticed is, if you just follow tutorials you will have a hard time creating your own stuff (I’m not saying that tutorials are a bad thing). Try to build your own systems and look at tutorials to get some ideas. This way you’ll learn much more.
I recently started building some rpg mechanics, like an inventory, a shop and different equipment. Instead of looking for tutorials I tried creating it from scratch. And everything seems to work. I’m sure it’s not the best way to do it, but it’s the best way to learn to do it. I learned much more in the past half year with just the forum and building my own things, than the first year doing mostly tutorials.
All the time. For me, the trick is to think less about all the things I don’t know and instead, focus more on the ‘doing’ of things I can do right now, while pushing myself to learn more and more, each day. Sticking to it and finishing something, however tiny, is how I push through. And then, the process starts all over :). Many have said that this thread helped them feel less overwhelmed.
First off, Gigiwoo’s thread is an excellent place to start :). I suggest picking something you want to ‘learn’ in particular by phrasing it as a question, “How do I manage inventory?”, “How do I handle nice object rotation/movement?”, etc… take that question and make it central in a mini-game idea. Then build that game, force yourself to use only blocks and gui texture, etc… no packages. When you’re done, shelve it and ask another question. Give that a few whirls and soon you’ll be asking bigger questions - the games will grow from that.
This is kinda how I started out. I’d always dabbled with game development from right back when I’d code a game from a ZX Spectrum magazine all night, to shoot em up construction kit on the C64 and then some other software on the Amiga that I can’t remember.
I always looked up software, checked out Darkbasic etc, then found Unity. I messed around in it never really got far. Then I decided to start a project. I worked at it until I made it, then did it again and so on.
Thing is, when you try to learn everything all at once it’s a huge mountain and you’re stood at the bottom looking up. Just choose a simple project, focus on one thing at a time until it’s complete then move on to another project repeat. Soon you’ll realise that your knowledge is building up and you can apply that knowledge to new projects.
I was a fairly experienced programmer when I came to game development, and I still got overwhelmed pretty regularly at first just from taking too-large bites. I had the hardest time allowing myself to use 3rd-party tools rather than code everything myself. I think it was a combination of purism and just wanting to know how everything worked.
I would reinforce what’s already been said by adding this: just because you’re focusing learning a single feature (like inventory), you don’t have to make a game with only that if you use existing tools for the other components
Ah, yeah… that’s game development for you! A very challenging world. You have to learn to love that feeling of uncertainty btw, because the first couple of decades are always very confusing! I know that first hand of course as I’m not even half a decade sunk into the world of game development, yet!
I too want results, but find a world of things I need to learn first :-0
Oh but word is, after the third decade… it’s party time! Just be patient!
^ You just described my own growing pains exactly - game development really takes the NIH syndrome bar and lowers it more than you expect. Almost 20 yrs dev experience so for me there was some ‘de-programming’ involved too, but its been fun just the same
Mine may not be so much so, but this is my experience so far: I’ve been hashing out my bigger game concepts SERIOUSLY for just over a year now. I’ve touched a bit on coding to learn more than the measly bit I already know, but ultimately decided to play up my strengths first; asset creation. To spend all my time and effort on that, and once THOSE are done, dive 100% into coding and Unity itself. Before I do that, however (though likely after I’m done with my assets), I am going to make Pong. Then Space Invaders. Then Zelda. None of this to sell, obviously; just for learning purposes. Very time intensive, but it is CRITICAL to take baby steps and if you start feeling overwhelmed, go work on something you know how to do really well (audio, 3d, whatever), then come back to the coding a few days later.
BUT you have to be willing to push yourself really hard. You will get frustrated. You will get overwhelmed. You will feel hopeless. You will look at your crappy little Pong game and sigh in defeat. But keep plugging away at it. Be stubborn. Don’t let it defeat you; you are better than that. If you truly want to be involved in every level of your game, you can do it. There is nothing that can’t be done if you aren’t willing to practice. Cheesy? Yes. But for the game itself, totally applicable.
Well, I rarely code now and to address my frustration because I forget what I’ve learned after a while and event driven programming is already tricky with instantiation and such things I am going through modifying a Unity example and making Flash cards for:
A) Unity Special Event Driven Functions
Update
Start
onGui
and the other special event driven functions in Unity
B) then I add Flash cards for actually accessing GameObjects and such from within a script. It’s set and it’s a Unity standard but it’s really has very little to do with understanding coding and everything to do with keeping a useful reference Flashcard handy until you memorize such things. Just to access them is a bizarre contortion of code and logic.
C) Input Device Polling
D) Output UI Layer (C D go together)
All have these special quirks that you don’t have to deal with in regular programming (well I call regular programming system programming on a UNIX).
So as others have mentioned work though the tutorials, but make Flash Cards as you work through the tutorials in the above 4 topics so you don’t have to search through the tutorials again at a later date if you become busy with other things for a few months.
This isn’t talking about physics such…but that will leave the physics such your big problem not all the peripheral things to set that up. It’ll likely vary widely according to the game, if not then buy/get a free asset in the asset store which is honestly the point I’m at, I really have bought all but one or two useful coding plugins / game genre or physics systems. You’ll still need to learn the basics to integrate those together but you’ve freed yourself from the hassle of programming a library of such arcana yourself. It’ll cost less than $1000 to pluck off all the useful code-based assets.
Thanks all for the amazing replies and wisdom.
A lot to think about… I think if I gleaned one common thread throughout all the replies it’s that although tutorials can be useful, the most is learned when picking a topic and figuring it out for yourself, whether you accomplish it or not, rather than only ever having a tutorial hand you the exact tools/methods you need one by one.
Again, thanks, time to rethink my learning process now, haha.
Can’t agree with you more, two months ago I started out trying to make a high end market competing RPG game for PC / Mac. It is amazing and interesting and in many ways I love it, on the other hand it’s a soul sucking money pit. Not to say now I’ve started I won’t finish it and feedback from gamers / friends has been positive so far… I’ve hit three months in and the goal of three years seems a million miles away, now I’ve hired two other people to help me out.
That’s even with buying the best asset’s I can get my hand’s on, the list to do just get’s higher and higher by the minute.
Books are a real trap. They imply that you can learn as fast as you can read. I teach programming and for every concept I teach I give my students lots of exercises to consolidate that knowledge before moving on. Books rarely do this. The reality is that you should perhaps read a chapter and then put the book down and spend a month trying out those ideas in as many ways as you can think of. But of course we keep reading don’t we. …
I’m kind of in the same boat as you. 6 months ago I had not the single clue of what went into game development. Hell I didnt even know what programming was. I feel like these 6 months have been an amazing learning process in which I tried every day to learn something new and implement that into my own projects. I would tell you to just dive into your own project and go from there.
The main problem I had was that I would read books /watch videos on unity and not try anything out on my own, and pretty much everything during that month or 2 flew right over my head.
First - Read the thread Gigiwoo linked. It’s worth your time!
Second, and only if you need someplace more specific to start, what I like to do is keep a list of ‘Low-Hanging Fruits’ for my project. When I sit down for my hour-long daily dev session (I have other things to do), I pick up an item from that list, and do it. If I look at it, and realize it’s bigger than I feel like? I put it back, and grab some other item. I do at least one per dev session. If I do one, and I can’t bring myself to do another? It’s cool - I’ve made forward momentum. I go do something else. I can always choose to come back later.
Sure, on my current project I’ve blown one self-imposed deadline, but shipping is a required feature for your game. If you miss one deadline, but your game ships, you’ve still (partially) succeeded. It’s better to do it right anyways.
Yeah I haven’t been using Unity for long and for sure all the info can be mind boggling. I think it is important for your ego and to help stamp the information in to make practical examples while you are learning. For me the best way to learn is not by reading a book from beginning to end but by making a product and tackling things a step at a time. At the end of the day you can look at your achievement or failure. That makes everything more concrete.
I still get overwhelmed. And I don’t deal with getting overwhelmed very well. Breaking things into bite sized projects is the only way I ever get anything done.
So most my project starts with me thinking something like ‘I haven’t done anything with particle colliders yet’ or ‘how can I read and write XML files’. And then I make a tiny game around it. While doing these very foruced projects I create building blocks for bigger future games. With that in mind I try to create everything very modularly. So when I needs something like camera shake I just rip it off from old project. Although I may end up rerwiting/redoing most of it.
But the point being making small games isn’t just about your learning and keeping your sanity. If you are clever about it you can break your big multiyear projects into a bunch of smaller games. And then you can bring those things together.