Overview #
The Gameplay Programmer is the “Swiss Army Knife” of Game Dev Engineering Roles. While other roles keep to a specialization, the gameplay programmer is defined by its lack of specialization, opting to go wide over deep to bring the other pieces together.
As a Gameplay Programmer, you could find yourself working on,
- Player Movement
- Abilities
- Tutorial Systems
- Quest Systems
- Combat Systems
- Game Economy Systems
- Inventory Systems, Weapons and Items
Just to name a few.
I asked Ciarán Tuohy, Senior Gameplay Programmer at Black Shamrock, for his insight into the role.
Pros #
Why might a student want to pursue this role?
- Its the best discipline 😂.
- Work directly with designers, get to feedback and contribute to the design of the game in some cases.
- It’s the role at the centre of the project, you connect all the disciplines together.
- Rewards good communication skills.
Cons #
Why might a student want to avoid this role?
- Typically a generalist role, maybe not suitable for someone who wants to do a deep tech specialization in a specific area (although it can be a good starting point for later specialization).
- Discussing, explaining and compromising with less technical disciplines can be a regular requirement. You need to be comfortable doing this to thrive in this role.
Example #
Something you did in this role as an example of the kind of work you get to do?
The Maiden Voyage Tutorial in Sea of Thieves.
Student Projects #
What kind of student projects would you recommend doing to prepare for this role?
Game projects are great. Ideal if they have a bit of polish, this doesn’t need to be visual (I have basically no gamedev skills outside of programming and design) but do your best to make it feel finished.
Try and get some good coverage of engine types. Don’t be afraid of Unreal just because it’s the most complicated, it’s also the most powerful and showing familiarity with it will open doors at bigger companies.
No need to over-complicate projects but playing around with and developing some knowledge of online features will go a long way. Replication, RPCs etc…
Some other adjacent projects not necessarily within a commercial game engine would also be good, playing around with graphics/shaders, physics etc… are always good.
Use source control, have sensible check-in descriptions. Companies love to see a github or similar on an application with lots of regular check-ins for projects.
Resources #
First would be GDC Talks on Youtube or GDC Vault.
Here’s one of my favourite talks going over Overwatch Gameplay Architecture (that’s unlisted for some reason now).
Next would be UnrealFest talk recordings on Youtube. Here’s a good example from someone I know (if a little advanced).
For a book recommendation: Effective C++ 3rd Edition. Great book of tips for taking the step from college level programming to profession at least when it comes to C++.
And finally for performance: Scott Meyers CPU Caches and Why You Should Care.