Gameplay programmers do a lot of setting up of rules for a particular game mechanic or system and building interfaces/tools for us designers to use to create specific bits of content to utilize those rules. For example, a programmer working on itemization will write code that enforces all the desired rules for our game’s items and build an interface for a designer to create specific items bound by the rules the programmer set up.
Some of the different subfields of gameplay programming include:
Combat - One of the much larger subfields. Includes setting up the rules for the actions and results in combat, like determining whether an attack hits, making stats affect attacks and abilities, setting up damage calculations, setting up how things die, deciding when and how to play certain animations, making status effects work. Also includes spawning reinforcements with timing, positioning of enemies, rules for PVP, rules for kill cam, hitting weak points (e.g. head shots), play of the game. Building the interface for designers to tweak combat-related parameters to create specific fights (e.g. boss battle, minion battle, pvp, etc.).
AI - Setting up the rules for what an AI takes into account when making decisions on what to do, how the AI navigates the map to get to where it wants to be. Building the interface to allow designers to create individual AI personalities.
Itemization - Setting up rules for item stats, equipping an item, stat randomization, stat budgets, procs, rarity, drop rates. Building an interface for item designers to create their desired specific items and set up how they drop in game.
Characters - Setting up rules for leveling up, earning experience points, character stats, character classes, talent trees, character abilities. Building an interface for designers to adjust the specific formulas for individual stat growth, experience required to level, costs for specific abilities, etc.
Audio - Setting up the rules for when specific music/motif/voice-over plays, audio effects like reverb/echo/doppler/etc., making directional audio work, applying footsteps based on the material being walked on, adjusting volume of in-game events due to specific priorities. Building an interface for designers to author specific audio events to their liking and to set up specific audio trigger conditions.
Monetization - Setting up the rules for how players engage with the cash shop, how the player receives an item they paid for, how to deal with refunds, showing featured items. Building an interface for designers to assign specific in-game items for sale, associate those items with an event or schedule, set prices. Also building an interface for customer service to refund and roll back sales.
Game Modes/PVP - Setting up the rules for tracking a game mode’s victory conditions, dividing players up into teams, ranked/unranked matchmaking. Building an interface for designers to adjust parameters like scoring, time limits, map point capture rates, and so on.
I’m sure you can probably think of other areas for gameplay programmers to work - here are some I didn’t get to: achievements, crafting, player housing, gathering, player-to-player trading, in-game pets, seasonal events, quests, cinematics, camera, and co-op. There’s usually quite a lot of work for gameplay programmers to do when developing a game.
Got a burning question you want answered?