Of all the advice I've seen, read and received, "Don't make your first game your dream game" is probably the best advice.
When I started getting into gamedev, I was overflowing with ideas of all the things I'm going to make, about how I'm going to improve upon the features of all the games I've enjoyed, how I'm going to mix all the good things and cut out all the bad things.
I'd sit down and plan everything, meticulously try to cut and trim it into something that would definitely be fun, as well as achievable given my programming and artistic abilities and available time.
And what happened?
Procrastination of course.
27 April 2015
In April 2015 I decided to get started with something, and promptly began devouring C++/Direct3D tutorials. It was interesting and educating learning to generate your own meshes by hand and deal directly with the graphics API, but a friend of mine who knew better gently nudged me into just using an existing game engine.
From my own experiences and from a lot of observation, it seems lots of budding gamedevs are too focused on building an engine than building a game. There are a plethora of existing frameworks and engines out there, all more finely tuned and honedm by dozens if not hundreds of industry professionals. Building your own engine from scratch is academic, but don't kid yourself (and I did for a while), it's a waste of time if your plan is to actually make games.
So, a month later, I begrudgingly began learning to use Unity.
25 May 2015
I got my sprites in, got some rudimentary controls, fiddled around with some temporary UI, and thought I was making good progress.
31 May 2015
To no one's surprise, I hit some or other forgettable obstacle, and excuse after excuse, the project was buried under an avalanche of procrastination.
Which comes to the next problem. Scope, and Minimum Viable Product. One of my biggest problems was I had absolutely no sense of Scope. I was just throwing random ideas and plans at the problem and hoping I'd stumble in more or less the right direction. I'd grossly underestimate even the most trivial challenges. I'd then end up getting frustrated when things went pear shaped, and eventually I'd get bored and just do something else.
About a year and a bit later, for completely unrelated reasons (frustration with a video game I'd been spending hundreds of hours on), I fired up Blender and decided to try and properly create some videogame assets. About half a year earlier I managed to wrangle together a decent understanding of using Blender, but I had the same problem: scope. I'd be trying to model an entire spaceship, and I'd get stuck and caught up on (literally) nuts and bolts. I'd spend an entire evening on some tiny unnoticeable detail, and burnt myself out in less than a week.
25 January 2016
This time though, I knew better. I saw how people were making amazing creations using tools as basic as LEGO blocks, where meanwhile I was using (an allegedly) incredibly powerful 3D modelling tool, and couldn't get anything done.
So I decided to to make small, simplistic and minimalistic creations. I'd create blocks (like LEGO blocks) that I could reuse regardless of the style or aesthetic or what I was making. And I decided to only spend 1 evening maximum on a creation.
09 August 2016
So, I had some art assets I liked. That's the bulk of the work, right? All I had to do now was throw everything into Unity, write up some C# code (no problem, I'm not too shabby at programming), and then I'll have a game, right?
30 August 2016
Not too bad, not too bad. All I had to do now was add in everything else. Aka an entire dev team's worth of hundreds of thousands of hours of manhours. No matter how much I tried to simplify and pare down my idea, I couldn't get it into manageable chunks.
I took to the great Google for advice, and everything seemed to point back down to the same token of advice: start small. Make simple, small games. They'll suck, but you'll get better at making games. Don't try to make the next EVE Online meets Star Citizen meets Elite Dangerous on your first attempt. Try to make an Asteroids clone, or a Breakout clone, or a Pong clone. You'll think it'll take a day or two, and weeks later you'll be surprised at how hard it is to actually make even a simple game.
04 September 2016
So hear I am, weeks (or years, depending on where you count from) later, and I'm still trying to make a simple Asteroids clone. The tasks and To Do list items are as small as can reasonably be, but I'm making progress. Very slowly, but surely. Like trying to ride a bike for the first time, wobbling all over the place, but slowly learning to balance.