I’d advise going into HLSL/CG. :o
All of these have source code too…
The reason I recommended processing was the ease of use. C++ is a lot to take in as a first language and requires a lot of work to get any satisfying output. Having to learn pointers and memory management would be a daunting task for anyone learning the basics of coding.
With processing, one line of hand written code will have you drawing on a canvas with your mouse…it is really rewarding, easy to pick up and encourages people to go off and learn more about coding.
This isn’t really a thread to argue which language is the most popular etc… but the fact is that Java is still top of the charts in popularity, has been for a while and hundreds of thousands of businesses rely on it. It’s not going to disappear any time soon.
For UE4 I would suggest blueprints and when you’re comfortable with that something like Skookumscript: http://skookumscript.com
Limiting yourself to “only Unreal” or “only Unity”, etc, won’t really teach you programming;
It’s really important to experiment with the general picture, instead of stay enclosed inside game making environment. The thing is games isn’t the best place to start learning programming, one willing to be programmer should go learn it somewhere else first and later begin applying his acquired knowledge into game developing… starting right into game dev most likely ends up as a pile of unfinished game projects.
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.
I find it hard to believe that a competent engineer would have trouble transfering knowledge from e.g. UE4 to Unity / CryEngine.
yes thats me too (ue3)
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:
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.
The problem is though, when charts conflict which do you believe? Finding / locating work isn’t always a given.
Sometimes you don’t get the job you deserve or you’re not located in the right area, or its the quiet time of year.
So sometimes the timing is just off for both parties. But the rent still has to be paid anyway so you opt for plan b.
There’s no way to know which language will win. C++ got written off many times before and parodied even more.
Now look at it on both charts!!! All you can ask is, which language will I place my bets on for the next 5 years or so.
Then ask yourself what will you do if you get it all wrong? 2c: Stay away from tech if you’ve lots of debt / big family.
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.
So, I highly recommend Python Language.