I think the complete opposite actually, if you have a limited amount of problems (game development) and a limited amount of ways to solve them (let’s say blueprints) it’s very easy to pick up. I mean, what is the general picture? Software development? Shader programming? Why is focusing on a smaller subset of that a bad thing?
Because BPs have context sensitive nodes it’s very forgiving for new users when you’ve learned some terms used in UE4 like transforms/floats etc. It’s also motivating because you see what you’re doing in your game as you’re working on it.
You will make mistakes and learn from those mistakes either way so it’s better to end up with a pile of unfinished game projects rather than a pile of unfinished coding projects if what you want to do is make games. If you even end up with unfinished game projects at all. If you use BPs it’s just a loop of get stuck→search answerhub/forums→solve problem→get stuck and so on until you’re done.
People told me to learn “C” then “C#” and when i want to join some huge companies who create AAA Games etc then “C++”. I’m using now only BluePrints, so far i haven’t any problem where i got stuck what “Blueprints” couldn’t handle
Because the amount of jobs in game industry is very limited;
A programmer working for game developer studios must know a bunch of languages and must be able to pickup quickly any game engine used by the whatever project the company is making… I know ppl who learned only Unity or learned only Unreal 3 and now they can’t find a job.
it takes time to learn the api and the ins and outs of an engine, you have to know more or less how everything works to be able to program efficiently.
thats like saying you cant believe a vet cant operate on a human brain
to tho op
if you have no clue about programming at all try Alice 3
it will teach you the very basics of what programming is in a simple, instantly rewarding and visual way
or try if you are dead set on ue4 try some blueprint tutorials then look at the code behind it
c++ is not very human friendly when you first try to understand it, but when you know the basic concepts of programming the machine gibberish unravels surprisingly quickly
So I used to be on the art side of things…
Got sick of not being able to afford any of the tools I wanted, so one day I said eff it and started to learn programming.
That was when DX12 came out and I failed miserably.
Then I went on holiday, then Vulkan came out and I thought I’d have a play with that.
I wanted to be able to write my own games from scratch, so I was learning how to work with the graphics API as well as CPU(c++) & GPU(GLSL) programming.
I had a lot of spare time the first year which helped, it’s two years later now and to be honest I’m probably pretty trash.
But I have built an ‘interactive’/real-time path/ray tracing renderer (haven’t tested large scenes! Many things missing, but the bones are there), and am chipping away at other systems needed.
Haven’t had so much time this year as I’m at uni full-time + working so progress is very slow.
In my opinion choice of language isn’t so important, I’m doing c# at uni and don’t even understand how it’s actually EASIER than c++, yes there’s less things to worry about & some more things are done for you, but I do feel like c++ was the right choice.
Advice that would have really helped me, assuming I would have listened (Not sure how many posts I read saying beginners shouldn’t go near DX12/Vulkan or c++), is to keep it simple.
I’ve often felt like “I’m using c++ so I should try to make what I’m doing the fastest possible”, but really I’m a beginner and I should just make it work.
Freshest example is that I wanted to implement one of these entity-component-system things and I wanted it to be super cache friendly, I really didn’t think it out and ended up making it impossible to work with and now I’m re-writing the whole thing.
Whatever you end up learning, just make things work, don’t over complicate things.
Simple and short:
For a beginner, I’ll advice you start with C or C#. It might not be too easy for you, but it’s gonna be a stepping stone to learning C++ which is better but wider.
Take a look at many languages, as many as you can, see code examples, features, community and tutorials, see what looks more fun to you and pick that one. You will end up like most programmers trying tons of programming languages for years and years. Coding is a never-ending exploration, it does not matter where you going as long as you enjoy the view.
The worst thing you can do is let others make the choice for you. Having no clue where to go is more a blessing than a curse, it means you are in a state of open mind and that is the best state to be in when coding. Oh and never forget, enjoy your tiny successes and move step by step.
Considering this question I would think about 3 things:
Job opportunities.
Programming resources.
The future of each programming language.
I don’t know exactly why do you want to start learning to programme but if you want to find a job (rather fast) and with a satisfying salary please check charts below.
If you know a little bit about the developer world, you’d probably know how important and helpful it is to have support from other developers, especially if you plan to learn on your own. Based on the tag followers on StackOverflow, the most popular languages are: JavaScript, Java and PHP.
How relevant will a specific programming language be in the future? First of all, the future of a language will largely depend on the **growth of its community. **Looks like Python, JavaScript, Java (C# came in third in 2014), and C++ have received the most growth in interest.
I’d start with higher level languages and work your way down toward lower level ones. Starting with C#, Java or Python is probably your best bet. UE C++ can be very jarring compared to regular C++.
Python is easy to learn in regards to some other languages. As it has a simple syntax. It is also powerful i.e. can do useful things.
With simplicity and power on its side, it is good for throwing together a prototype or testing a concept quickly without much effort. The simplicity also means you can think more about the problem than worrying about getting the language to do what you want.