Hello,
I want to be a Gameplay Programmer and I'd like to know what steps to take
Note: I'm a newbie and I have everything to learn. I understand UE4 is not the only engine out there and it's just a tool but it's the one I'm currently interested on using.
My situation: I'm in a 4-year college program in CS currently learning C++. I have very basic knowledge of Python, JavaScript, and I've also used classes, actors, inheritance and polymorphism in Scala. This has all been in a college setting.
I have read about the difference between engine programmers and gameplay programmers. I would like to one day collaborate with designers and have a say on the direction of a game. Working on gameplay systems but not focusing solely on one aspect. From my understanding, this would be more likely accomplished by a gameplay programmer.
Questions:
1. As both a learning method and a way to show knowledge (on a resume), would you recommend fully developing a game or working on separate mechanics?
2. At what point of learning C++ should I start learning Unreal Engine 4? (For example: After learning about actors, inheritance, and polymorphism).
I've read that Blueprints allow you to get started with UE4 without learning much C++, but for my career goal, is it a good idea to start using Blueprints as I learn C++ or should I learn more programming and then use mostly C++ in UE4?
Gameplay Programming - What steps to take?
@Sigilo_07 Hey there,
So my friend who has been coding in C++ for many years now opts for the Unity engine. It could be worth checking it out. A lot of people prefer Unity when it comes to programming, most of my friend opt for Unreal that don't really have too much coding knowledge.
However that is not to say, don't use Unreal to code. Or vice versca, as Unity also provides Blueprinting software now (although it could still use some work).
I would suggest speaking with some of the programmers in our discord server and taking their opinion and advice. Feel free to join and speak to some of the guys there.
Here is the link: https://discord.com/invite/efa6j3a
Hope to see you there,
Liam
None
@indiegameslab is trying to lure everybody to a discord server, but you're probably better off in an open forum with a higher variety of opinions and expertise.
ad 1.) A personal and totally unprofessional opinion is to at least try a few aspects yourself, with C++ and an API. There are tutorials out there to start with, for example for opengl or vulkan graphics API that show how to develop small frameworks, but i must say i am biased, probably narrow minded here because i don't use ms windows.
ad 2.) I don't know at what point, but if you'd like to use an engine, they usually have extensive learning material and documentation. Be it unreal, unity, godot, whatever … it is surely the quicker path to a first success to do a platformer or so. Creating assets is probably the skill one needs more than actual programming … ?
Can't say what you should or should not do. It'll probably come automatically as one proceeds …
@Green_Baron Hey, sorry you feel that way, but I can assure you that we are not trying to “lure” anybody to anywhere, hence the comment “feel free”.
As mentioned. We do have a lot of programmers over there that would be more than willing to chat and give their opinion as I know it can be difficult to get quick feedback on a forum style platform.
@green_baron You did give some good advice though, the Godot engine is something I forgot to mention, that engine is gaining more and more popularity. I haven't used it personally so I'm not sure what it's like from a programming perspective.
@sigilo_07 Going back to your original question “At what point of learning C++ should I start learning Unreal Engine 4? (For example: After learning about actors, inheritance, and polymorphism).” From a completely personal perspective, I would say straight away. Personally I find that coming up with an idea/project and then working around that is the best way to learn.
I suppose what we can take from what @green_baron said was that a lot of it is down to personal experience and opinion. Hence why I offered you visit the Discord server with no pressure to speak to some of the guys there.
Let me know how you get on, I’m interested to hear how you decide to progress.
Good luck!
Liam
None
To get a good understanding of multi-paradigm programming in C++, you should first learn the basics of functional programming in C. This will help to understand compiling versus linking, the relation between headers and source files, static type safety, using variables and function pointers instead of script injection, and how to try the simplest solution first. The more simple, constrained and isolated a solution is, the easier it is to refactor and scale up with advanced features when the real challenge arrives. This is how C and C++ projects can scale up beyond spaghetti code of broken pointer hacks or dead monoliths of overly complex multiple inheritance.
The second skill needed is linear algebra, so take the math courses seriously. It's used a lot everywhere in games. Use a 3D engine with as little pre-made features as possible to understand how it all works. A game maker like Unity or Unreal might become a crutch removing your motivation to learn the math, but it can also teach the artistic side by making rapid prototypes. You should at least learn how to make your own 2D physics from plain math, for a character walking around and grabbing items, if you want to make game logic. You have progressed when your own math performs better than what the generic pre-made solutions can give you.
I'd recommend using sfml to make simple 2D games for a while until you feel comfortable with C++.
I'm not an unreal dev but think you'd learn alot from starting with something like sfml, and suspect that the code interface in unreal might be a bit too difficult too soon. No harm in testing it out though, and if you're already familiar with it through the normal user interface then your might have a slightly easier time. At the very least, throwing together pong in sfml is something you should be able to do, with music, ai and menu. It's a reasonable low level goal as step 1.
EDIT: To answer question 1, showing that you can work something to completion is a good thing. They will ask how long it took you though, but try not to panic if it took you a long time. What they're usually looking for is someone who knows the language well and they have to train as little as possible. Learn vector math, and some basic understanding of matrices is something you really need if you're going pro. Vectors are and matrices are used for tons of stuff. Figure out which role you're aiming for, perhaps try a bunch of different things out and see what you like. Look at open positions and try and aim at learning some of the skills listed as requirements.
Video Game Programmer.
5 years in industry.
Sigilo_07 said:
1. As both a learning method and a way to show knowledge (on a resume), would you recommend fully developing a game or working on separate mechanics?
yes.
Sigilo_07 said:
2. At what point of learning C++ should I start learning Unreal Engine 4?
before you die, probably.
Longer answer: With these things, there is no universal right path that someone can point out for you. Nobody knows you better than yourself. Make a game in Unity, make a game in Unreal, invent a mechanics. Try things. Experience how Unity and Unreal work, experience finishing a game, experience make a new mechanics.
Experience is never wasted, you carry it along for the rest of your life, and it gives a more balanced view of the world of games. You also find out what you like or don't like (as well as why), and what parts you're good at.
So, try. You soon figure out if you like it or not, and whether you can make good progress or are struggling (and why).