Now that you know a bit more about how the art team’s flow of work goes. I will attempt to shine some light on how the programming team functions. We don’t have a pipeline in the same sense as the artist because our work is based off of things that our design team feels is essential to the game. Which was originally the basic game-play mechanics for the game such as movement in the world and camera movement with the character and then continuing all the way to things such as shader scripting and our own character controller. Along with all the in between programming such as User Interface, Audio, character interaction with NPCs (AI), animation implementation and other things we do that I have forgotten to mention here. All of these can be split up into specific roles that we have on our programming team. So without further wording I’ll dive into our programming teams’ roles that we have, which may be defined differently for us.
The lead programmer of the team manages the rest of the programming team by assigning tasks to the other roles as they see fit, keeps track of current development of the game, and works with other other leads on the team to ensure that the game is coming together with art, design, and programming all in agreement so the development process goes more smoothly. The lead programmer also does programming as well, and normally has knowledge of all of their team members roles.
Graphics programmers on our team consist of the programmers who work with shaders and lighting. The shader programming is done using in unity using CG(C for Graphics and some ShaderLab language and more than a few custom shaders have been created. Their uses include: water surfaces, waterfalls, depth masks, double sided planes for models, and an underwater distortion effect. The lighting on our team is not necessarily something needed to be done by programmers, but for our purposes it is. Lighting is just that, making our game have light so the player can see and it looks visually appealing, and it’s not as simple as turning on a light switch as there are many options that affect lighting. These programmers have to work closely with artists since what they do visually affects the game and needs an artist’s touch.
User Interface Programmer
Our UI programmers are the ones who implement any and all user interface aspects of the game. This includes our main menu, pause menu, underwater oxygen depletion, interaction prompts, and also included in this are particle effects. Since we are trying to use minimal UI elements our UI programmers for in game content have their work cut out for them and they are doing quite well at it. Along with graphics, UI programmers also have to work closely with artists especially with particle effects to ensure the best quality.
For our team AI programmers, or artificial intelligence programmers, work on things such as our NPC mechanics and how the NPCs react to the player. Things they do include making the fish, bat, mole and eel move, and make all of those NPCs act differently towards the character. For instance the fish is not hostile and may even follow you while the eel hides and lunges out to attack the player underwater.
Audio programming is what you think it is, implementing the sounds effects, and background music in the game so it works with all of the previously mentioned programmers’ tasks. And again since we are going for a minimal UI approach audio will player a large role in our player experience.
Our physics programmers are the programmers who work with the player’s character controller and in-game physics based events.The character controller is what allows the player to move the character, while the other physics tasks revolve more around underwater mechanics and also physics based rock movement. The last two thing being the most difficult to work with and hard to refine, but we’re getting there.
Generalist/ Game-play Programmer
The rest of what we do as far as programming is what I consider generalist or game-play programming which consists of refining our game-play mechanics, implementing animations, implementing puzzle mechanics, and overall bug fixing of previously made code. This role for us is more of a catch all role and includes every programmer on the team.
These are the roles each of our programming team members identify with in some way shape or form and many team members do more than one of these roles. Hopefully this told you a little about what we do, but if you want me to sum it all up: we make the pretty things the artists make move and/or work.
-William, from Strix Game Studio