🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Specifications of a Gameplay Programmer?

Started by
3 comments, last by wbrill23 5 years, 11 months ago

Hello,

I'm finishing up my BS in Game Programming and Development and taking a course that wants me to start focusing on my specialization in the gaming industry. I've read a few articles on what a gameplay programmer is, but I still don't have a clear definition. The best description I've found is that a gameplay programmer has a very generalized job, and is basically there for "everything that [a company] hasn't hired a specialist to do." I am a generalist in game programming, and in life, which is why I feel I'm best suited for the gameplay programmer role. I understand that, as I said, the role is pretty general, and I'm sure the definition changes from studio to studio, but does anyone have any insight on the specifics of it? I've also read that at many companies this is more of a entry level job (which is what I need). Is that true? And lastly, I've read that an engine programmer role is much more involved than the gameplay programmer role. What are the key differences?

WBIII

Advertisement

The most succinct job description I can come up with for a gameplay programmer is "making toys in a game engine for designers to play  with." Engine programmers (typically) build the underlying technology that the gameplay programmers use. 

A game programmer can be an entry level job, but not necessarily.  You can have everything from junior to senior and lead gameplay programmers.  Sometimes you also have scripters who work in just the engine scripting language, and those are sometimes calls programmers... and sometimes not.

A general description is that a gameplay programmer builds all the gameplay systems and behaviors for a game on top of an existing engine and various existing API's.  These systems/behaviors are things like AI and scripts, UI, tools, some graphical work, game setup and game flow, debug, test, and optimize game code, and many other things.  It also includes working closely with designers and artists to implement their vision by modifying existing code or adding new game objects or systems, and working with engine programmers to design and integrate new features.

Differences between an engine and a game programmer: The game programmer does the above things and is more of a generalist, someone who is required to do anything the game needs, but typically works with an existing engine that provides things like a renderer, physics, tools and data pipeline, audio system, and other basic things like a full math library, file IO, and so on.  So unless the gameplay engineer is the only programmer and is doing everything for the game, the normal situation is that he/she will not have written any of the low level stuff that he relies on to make the game work... and also normally he/she doesnt have experience writing those systems.

An engine programmer is responsible for all or some of the low level stuff mentioned above, and as such needs deep knowledge and expertise in such areas.  So, a senior gameplay programmer might not know how to write a specific system, but a senior graphics programmer needs to know how the hardware works, how the graphics pipeline works, how to write shaders, particle systems, post-effects, and all those sorts of things.  The engine programmer also usually has to have a very strong understanding of math, many different engine architecture techniques, and will be required to optimize and debug things to the lowest levels of the engine on multiple hardware platforms.

So, while a gameplay programmer has a wide area that he works in, it usually just requires a good understanding of the language, some basic math, and good problem solving skills.   An engine programmer needs all that, but also deep knowledge of math and one or more areas like graphics, physics, audio, AI, tools, general architecture, etc.  One area, however, where engine programmers do have it easier is that engines are usually separated into units that are mostly isolated from each other, and also usually cleanly coded and carefully maintained.   On the other hand, game code is usually much more of a mess, with lots of dependencies and with many programmers coming and going, and not always fully understanding the codebase when they add or change stuff.  So a good skill for a gameplay programmer is being able to look at lots of messy, convoluted code, and be able to work within it and find ways to make it cleaner and more maintainable.

Hope that helps.

Thank you so much!

WBIII

This topic is closed to new replies.

Advertisement