Game-making encompasses multiple functions from across all aspects of entertainment, including but not limited to, story-writing, sound design, concept art, asset animations, and economy tuning. Programming acts as the glue from a technical perspective that ties everything together. Of course, without good code, the game won’t run, it lags, and can have game-breaking bugs. But, good programming enables more than just players, and empowers game design itself.
Today, we’re taking a look at the technical side of things–specifically, tooling. Sophisticated design-tooling is indispensable for game developers. There are plenty of existing tools that help with the process: examples include Photoshop for visual elements and effects, or Unreal Engine for dynamic frameworks in constructing game levels and lighting. These tools accelerate the development process and allow for experimentation along with fine-tuning of details, compared to making everything from scratch with line by line code. With good code acting as the backbone for such tools, non-programmers are able to jump in and create without relying on engineering for every detail.
Sometimes, we get into very specific situations, and that calls for the need to develop or find custom tools. For instance, take the below snippet of some quests that the player will get up to. There are multiple components to a quest, including:

Note: for demonstration purposes only, not representative of final game flow or content
All these components need to be inputted one by one, which multiplied by just that snippet of quests above alone, turns into substantial amounts of work for an engineer to put in line by line. In addition, it’s a highly repetitive structure, whereas engineering should have time dedicated to the hardest or most pressing tasks. So, we want to (1) Decrease amount of pressure on engineering and (2) Let designers directly input / change quests for speed.