Learning Game Development is not easy

Some feedback and help could be requested. Ultimately, I’m just venting.

I’ve been coding for 13 years (websites). I’ve learned HTML, CSS, PHP, MySQL, JavaScript, Ajax, among others. It wasn’t really that hard to learn. You can google, “complete PHP tutorial” and find actual complete tutorials. I’ve gotten quite good in web development. To the point where I’ve built at least 20 websites for other people and my business has received five stars from every customer. Website development was so easy to learn. Coding in general is easy for me. If I take a full C++ course, I’ll be really good in it, which can help in game development. Here’s my issue with learning game development:

Everything is in pieces and NOTHING that I can find online is a full game development course to learn how to build a game from basic to advanced features. I have been trying to teach myself game development for 4 years straight. I have taken many courses. I haven’t gotten anywhere. Still can’t figure out how to build even the most basic of games. And so far, I have been unable to find out how to save user data to a server. It’s like, that course is just not available online… anywhere.

I have taken at least 5 courses by 5 different people on sculpting and landscape stuff. Still lost. If I sculpt, either the mountains are too high, too low, not level enough (skyscraper mountain next to a hill lol).

I’m starting to get discouraged.

Words of encouragement might help. Guiding me in the right direction might help more. I appreciate you listening to me vent. Thanks. :slight_smile:

2 Likes

No encouragement from me, unfortunately. Sorry. You’re right. It is hard. That’s the nature of the beast.

Your knowledge in creating websites might translate okay-ish to UI development, at least when it comes to layout/design/UX, provided you did a bit more than just set up WordPress sites for your customers.

I’d also argue that you went about the whole learning part a little wrong. You write

And you never will, because that is neither practical nor (I’d say) desirable. Every single game requires unique approaches depending on the sometimes very specific things it needs to accomplish. What is basic and what is advanced is a matter of perspective and things that look simple in the final product might have been a nightmare to code and vice versa.

This brings me to the only piece of advice that I can offer: Don’t try to learn how to create games, try to learn how to create systems. Because more than anything, video games are collections of systems that work together to create the finished thing. Learn how input is handled. Learn how animations work. Put both together and you have a character that walks and jumps and you can control. Learn how collision and overlaps work and you’re halfway through your first Mario clone.

4 years is plenty of time to become competent in even something as complex as Unreal Engine. If you still feel stuck after all these years, it’s high time to reevaluate your learning strategies. And remember that “coding” is not the same as “software engineering”. A formal CS education certainly helps, but the relevant knowledge can absolutely be acquired autodidactically.

This last one is my opinion, but I don’t see much value in those build-game-from-start-to-finish courses on Udemy and similar platforms. At most you should follow exactly one once to familiarize yourself with the tools you’ll be working with.

5 Likes

Buy a book.
Avoid all engines and unreal most of all.

All of the “complete” things relevant to real development will be “with direct x”.

Mind you that if they are dx10 related then they won’t help much at all being the current version is dx12.

The real issue is that this is such a subjective subject which happens to be purely based on what you need to do.
Books in turn have to be very specific.

Take unreal and landscapes for instance.
I could probably write 300 pages on how to handle and get world composition to work correctly.
Who’s going to read that? No one, particularly after they discontinue world composition.

Take water.
I could probably write a 500 page book on how to do it. And it would still be severely lacking.

Take terrains. (Sans unreal).
I could likely write 200 pages on how to get from a flat map to the correct earth projected curvature needed for a heightmap - or other ways to get to that in a custom engine.
Which in all likelihood no one would give a ■■■■ about if not for scientists trying to get accurate renders.

Hopefully that sort of explains why you’ll almost never find a “complete” thing.

As far as unreal goes:
I haven’t tried with the new displacement thing, but pre-displacement the engine itself wasn’t even capable of producing a “cave” clone game since collisions and material displacement were always decoupled.
Also the procedural mesh is sort of a newer thing - you could build a cave like game with that. Wasn’t really working correctly pre .22 though.

It’s a sub-par engine for performance.
In fact, Epic just doesn’t care one bit about producing releases that are quality assurance checked or stable. They care even less about how badly the rendering pipeline drags on resources with default setups.

It’s above average for cinematics and pre-baked lighting scenarios (provided all you need is 1080p. Above that you’ll fall below 60fps).

Over the past 2 years it has taken a very significant dive in all aspects - more significant than epics actions going down to .08c. (Or is it .008c? :thinking:)

Additionally, it’s a very niche engine with a lot of specific situations that you have to sort out which wouldn’t exist or even be a problem when coding up your own thing or using other engines - (why I mentioned the landscapes and world composition before).

You also have a ton of literally dead and unfinished features which were developed for 2 minutes because other engines were doing it and epic had to stay competitive.
The hair/groom, the RTV, the procedural foliage, the NV cloth implementation.
A coriander can hold more water, so I’ll stop there…

And DO NOT avoid all engines. This is terrible advice. You already spent 4 years with an engine and weren’t making much progress, you don’t want to waste another 5 years trying to write your own from scratch.

There are at least three viable, widely used game engines you can choose from, offering various degrees of documentation, feature-completeness and freedom of modification. People have built and shipped hundreds of projects with each of them.

5 Likes

avoid all engines if you want to spend the next 10 years building an engine that will fall short at everything that engines already feature :face_with_raised_eyebrow:

game dev is hard, that’s why it takes anywhere from a handful to thousands of experienced developers to build a game over several years.
Im someone that had years of 3d+archviz work, some web dev experience and many years of hobby gamedev time with old engines, and when UDK (UE3) became available it still took me 6 years of daily hobby-dev time to learn the engine and ship a small game. then again I did it all alone and it was a small scope game - and that’s my advice: start small, work up a ‘less is more’ game design that gets you a fun game within a small scope, and probably do it with other people

bonus advice: find a game genre/design/theme that you’re passionate about. it’s the fuel you’ll need to not abandon it, and every small achievement you do will add to that fuel

2 Likes

The question was “how do you learn”.
The answer is by not using f*king shortcuts.
An engine is a shortcut.

No one suggested he go out and build an engine from scratch.

The concurrent question was about resources to learn from that were complete.
You definitely won’t find any complete course based on a specific engine.

But you’ll find a complete walk trough of creating something based on c++ and direct X.

Also, even as a solo dev, if making an engine takes you 10 years. Change line of work. You just aren’t smart enough to be in any coding job.
Not everyone can cut it. Just like not everyone becomes a brain surgeon…

Building your own little 2d engine is not a bad way to atleast start just so you get familiar with how things roll if that makes sense. You dont need to build your own fancy ui and tools and all of that, just make something simple. For example maybe try taking a library like SDL2 and write your own game loop. From there you can expand on it, you can get into the concept of entities, components, creating your own game modes, data structures and so on. Once you have the small stuff done, try handling inputs, then make Pong, figure out how to keep score, figure out how to setup the logic in the game mode for handling the end of the match and so on. It will give you alot of the ground work for
1: learning the language (assuming c++ with ue4).
2: the logic behind creating it all and how it works together.
3: organizing and keeping everything clean. Since your writing from scratch (minus sdl) you get more of an incentive (imo) to keep your project nice and clean as opposed to the people who work on their projects and dont categorize anything and everything depends on everything lol.
3: from someone who has been dealing with ue for 2 1/2 years every week it felt much more rewarding and was a nice step back actually doing stuff yourself as opposed to using ue and having it take care of most of the heavy lifting.

Feel free to dive right into unreal engine as well first like I did, just start simple. Alot of people I’ve dealt with have just started tinkering around in unreal and within a week their trying to make an fps with a bunch of complex features which they have 0 clue how to go about making and their project just ends up being a complete mess. Just dont bite off more than you can chew at first, get comfortable so you can get over that initial bridge since unreal is a bit intimidating. Youll get there, take your time.

Unreal Engine offers Templates in both C++ and Blueprints, so you should always start a project with one. The official documentation contains several Quick Start Guides (this one can teach you lighting and basic level design). Try creating some simple games with the Starter Content and the Third Person Template. I would not recommend diving too deeply into C++ until you are familiar with the basics of the engine. If you already are, then download the free Content Examples for more inspiration.

I am also a bit confused how is it possible to be learning for 4 years straight and not make much progress. I also don’t understand when you say things like:

Still can’t figure out how to build even the most basic of games. And so far, I have been unable to find out how to save user data to a server. It’s like, that course is just not available online… anywhere.

I mean after 4 years of learning you should know how things work to a low enough level that you could start mentally drafting the low level way of doing something like that (especially if you had prior programming experience). You would not be seeking a step by step course, because at that point, you should be equipped well enough to know that no course will provide you with a ready made solution that works well with the architecture of your game.

If you have taken 5 courses on landscape creation and still can’t grasp the concept of generating the shapes you desire… I mean… that doesn’t make sense either. It almost feels like you are focused at memorizing a step by step process instead of understanding how and why the process works. And you are taking that to an extreme level. For example if you are sculpting landscape, you should understand the basics like brush strength in couple of hours at most.

It almost sounds like you just saw someone click in a video with a landscape brush to see him make a mountain, and when you clicked in your editor, your mountain was bigger than his. That’s where the basic understanding of the brush properties would come in, yet instead it sounds like you gave up at that point.

Well, anyway, the bottom line is, if you spent 4 years and you feel like you’ve made no progress, then you should simply do something else. Something you feel you are good at. The life is short. It has only limited amount of years in it. Encouraging you at this point would honestly just be lying to you, because if you made no real progress in 4 years, then chances that will change in next few years are close to 0.

“And so far, I have been unable to find out how to save user data to a server. It’s like, that course is just not available online… anywhere” i have alot of misc tutorials on my channel such as that. start smaller though and for now forget multiplayer.

1 Like

Game development is significantly harder than web development, because a lot of things that don’t matter, suddenly matter. Anything from hardware compatibility, to real-time performance, to technical correctness of assets, to distributed state machines, will affect your game in ways that are much more obvious than web sites, because web sites are operating so far away from the actual performance envelope of modern machines and servers, you can make a 100x mistake and it doesn’t matter (unless you’re Facebook or some other large site.) In games, the difference between 60 fps and 0.6 fps is quite noticeable.

This goes all the way up and down the stack – things that the general “low stakes” web development world can (and does) happily ignore, ends up mattering for games, in anything from databases to networking to build systems. And then you still have to design a game that’s fun, on top of that!

FWIW, websites like Google and Facebook have entire teams whose only job it is to make the development job easier for the people designing the pages, and OTHER entire teams whose only job it is to make sure those pages (and the servers that serve them) run as efficiently as possible. For them, if they can shave 0.1% off of the CPU usage of some common job, that might save a million dollars a year in server costs. Thus, “web development” at those places is more like game development.

1 Like

I understand the feeling. I too started out with web development and have taken my own way into making games. To me it sounds like you don’t have a clear direction of what you want to make, you’re just trying to learn a fairly wide set of skills. Most “complete tutorial” books and sites I’ve seen have a pretty clear end goal. (The end result also usually doesn’t look particularly pretty, so maybe having bizarre looking mountains isn’t something you should worry about at this stage, if you’re trying to chart an equivalent path as you would with web development.)

My recommendation is to find some small game you can clone. Don’t focus yet on making something you can sell, focus on building the skill and confidence in creating something. Maybe it’s a platformer with a handful of levels, maybe it’s a top-down dungeon crawler with only two types of enemies and three types of attacks. Maybe the art is just cobbled together from random things you found. This will remove the pressure of having to design something. Creative work is hard work, and if you don’t know how to implement your ideas, it’s going to be even harder (because you can’t prototype and evaluate your ideas).

The other thing I would say is to keep it simple. Don’t build frameworks, don’t build systems (yet), don’t worry about don’t-repeat-yourself DRYness (yet), don’t worry about making it pretty enough to demo for a job interview or to sell—just do the simplest thing that gets you a working game, a “throwaway” game. Consider it a student project. Nobody really sells student projects (except the game Portal, but the end result doesn’t look anything like it did as a student project). Don’t worry about getting it to run on a bunch of different platforms. Remove as many things from the equation as you can and focus on getting that. Again, keep it simple. Only allow a thing to become more complex after you’re running into issues with how simple it is. Allow some or even most of your art to be gray boxes. Art can be polished later. Code can be refactored later. Gameplay can be tuned later. And maybe that’s something you get to, maybe not. Just get to the point where you can say, “I made a game.” At that point, you won’t need a complete course, you’ll need all of those little one-off tutorials.

Anyway, just my two cents. Good luck! (And feel free to follow up with questions, though keep in mind that nitty gritty technical questions might be out-of-scope right now.)

1 Like

Many unique and complex answers here, but they all seem to dodge OP’s basic and simple question, why is there no complete game tutorials? Is it even possible?

I think for simple games it should be, basic side scrollers, platformers, and beat em ups and such. But such a game would probably be very far from the average and polished AAA title.

I already explained why there is no such thing.
Who cares about making a pong clone or a Pacman clone or any clone?
They are coding exercises you do on your own, not something that someone writes a tutorial on.

The Learn tab has some “complete” bs games you can follow like a brainless monkey.
Their worth to learning is probably below 10% and they still won’t take you all the way through publishing (as in packaging, not actual publishing for sale).

So this is how it goes…

I have 40 years programming experience and over 1000 projects (if you count the successes and the many failures) under my belt. I have now been using UE4 for five years full-time at work. My initial progress was achingly slow. Not only did I not know anything - I didn’t know what I didn’t know.

But, after two years of pain I was able to bring the second person on the team up to speed in about two months. In two months they knew most of what I had learned in the past two years.

Next year we’ll probably add a fourth person. With three of us to help and share our knowledge that fourth person will be productive within a month or two. Things that took me months to figure out will be solved as quickly as it takes them to ask one of us: “How do I do this?”

Some things are just too big and complex for one person to keep in their head in it’s entirety and that’s why good teams can do things that even the most talented individual cannot do.

My advice - find a team that has a project you can contribute to in some way. This will give you the purpose and direction you need.

1 Like

Hey @Amanda.Schade,

this forum post summarizes several similar questions and answers that I am aware of for at least 8 years. I think that a stream talking about game project which covers the amount of expected team members (with their roles) and expected knowledge each one should have. It would be gold that info for all the newcomers to the engine which might be or not already in the game industry, even more coming from an experienced company as Epic.

Just a thought :wink:

2 Likes

The problem you have is that what you learnt is not actually programming and you just think it is. It’s scripting, markup languages and a database. It’s the same principle with the issues most people have when they start learning actual programming and they start with high level/managed languages. Meaning all you learn is writing some logic (which is a good skill of course but it’s just scraping the top of the iceberg), you have exactly zero understanding on how things work on the low level, hardware architecture, memory management, etc etc. I see people declaring themselves software developers when they have trouble understanding something as rudimentary as pointers because all they know is logic and nothing else. Everything else has been abstracted for them by high level languages. And, particularly more so in game development, ALL these things matter.

My suggestion is to stop trying to look for courses on “game development”. Instead learn actual programming by learning a low level language such as C/C++ and x86/x64 hardware architecture with a good book on the subject. At that point you would be equipped to understand and learn everything you want to learn about game development easily because you would not be lacking the foundations. You would not ask “how to save user data to a server?”, which is a rather meaningless question and more akin to “how do I travel from point a to b?” without having any idea on transportation means, using a map or even the existence of your own 2 legs. Instead you would just implement your own solution (either custom built or relying on existing libraries/backends/middleware).

2 Likes

Take this from someone that has released a game after 5 year of solo development, Game Development isn’t for everyone some find it easier than others and some just can’t grasp it at all, I modded games for around 5 years prier and mostly lua base games, I decided to development a game once UE4 moved away from being subscription based this was in 2015, I have never done a C++ course in my life nor any programing courses, I have basic C++ skills and I’m advanced in blueprinting, if you haven’t grasped it in 4 year it might be time to look at other things to do with your time.

1 Like

If you want to save a state in a database you do a http request for instance, just like in any other language, an example is here:

If you are overwhelmed by the quantity of the features, just follow a book, and as soon as you feel a bit at ease, like someone said here, do a proof of concept of a little game in the style of what you like, do not copy and paste an easy tutorial.

I kick started in 3 months a few hours every day with “Learning C++ by building Games in Unreal4”, I was OK at C# in Unity, and I had been using C for low level things for many many years.

The good thing with C++ is that, even if Unreal gets to be too hairy for you, there is a lot of work for C++ coders in the general industry, it’s the golden standard (with Java).

Like for all coding jobs, the key is to write, not just read and copy/paste.

Sorry to say but if you still dont understand a tool/concept after four years than it is time to move on and stop to waste your time.

If you want to continue than you should ask yourself what your main goal is. Is it coding? Level Design? Art work? You do not have enough time in your life to master everything.

I for example can develop you a full game full of basic shapes and basic levels because I am not really good at designing characters or models. And it is ok. I ask some designers or buy models when I need some. So I can keep working on things I am good at and do not waste my time.