What Different Programmers Do?
welcome to Game-Tuts.com - Register
Results 1 to 5 of 5
  1. #1
    TMG
    TMG is offline
    Senior Member
    Join Date
    Jul 2010
    Age
    19
    Posts
    216
    Thanks
    1
    Gamertag
    Troy McGriddles

    Default What Different Programmers Do?

    Junior Programmer:

    If you're new to the new to the video game industry, you'll probably start as a Junior, Entry-Level, or Intern Programmer. To get a job as an Entry-Level Programmer, you must demonstrate your talent, ability to code, and motivation to finish projects. A great way to do this (and perhaps the only way for some companies) is to develop a small game program on your own. On the job, an Entry-Level Programmer usually adds in small elements to the game and learns the basic tools and concepts behind game programming. Beginning with a basis in C++, the junior programmer is expected to learn one or more of the following: AI principles, basic graphics programming, 3D math, physics, sound programming, collision systems, path-finding algorithms and game design theory. This may not be the most glamorous job, but it is the standard way to get your foot in the door. 3D graphics programming is still the most demanded skill, but AI and physics are gaining ground.


    Lead Programmer:

    The Lead Programmer is partially a manager, and partially a programmer. As Lead Programmer you not only have to write complicated code, but also have to know how to work on and lead a team, and to act as a liaison between the Producer and the programming team. You will lead the programming team in deciding analysis and design issues, what technologies to use (i.e. using Direct3D vs. OpenGL), and decide what work to give to different members of the programming team. During the design phase you will lead the development of the game's technical specification. You must have the capability to code various parts of the game and help out other members of the team, and conduct regular code and performance reviews for all members of the team. You also work closely with the other leads on the art, design and production teams and helps develop schedules and determine milestones. The Lead Programmer is often expected to be an expert in one or more programming specialties such as artificial intelligence, 3D Rendering, 3D animation, physics, multiplayer/networking, or audio. Self-management and reviewing one's own schedule and the schedule of peers are required, as is notifying the Producers of any tasks that may be missing or improperly specified, and evaluates the technical integrity of development process (e.g., build process, tools, pipelines, source code control, backups, etc.). The lead programmer is responsible for the overall structure and implementation of all the code in the game.


    Engine/Tools Programmer:

    An Engine Programmer helps design and construct the base or the engine on which the game will run. You write the low-level programming behind the rendering and functionality of the engine. For most gaming platforms, an Engine Programmer needs a solid understanding of C/C++, possibly Assembly, mathematical concepts, graphics, collision detection, object oriented programming, and database management. Generally, the Engine Programmer has a very solid understanding of graphics APIs, 3D concepts, physics, and the ability to implement them into a game. Most Engine Programmers are experienced and have worked in different roles on teams with published titles. A Tools Programmer constructs tools to help the artists and game designers interface with the engine. You write the scripting tools that allow the designers to specify actions for the computer-controlled characters; you designs plug-ins for graphics software to help artists integrate textures and backgrounds into the game; and you create map and level editors for level designers. A Tools Programmer needs to have a strong understanding of the game engine, good knowledge of the target systems (PC, or one of the consoles), good communication skills, and this is extremely important, though generally underrated: knowledge of user interface design. A Tools Programmer must design and document your tools to make it possible for designers and artists to understand and utilize them. The better the tools, the faster designers and artists can add their creations to the game, making for a better team and a better product.


    Graphics/Special Effects Programmer:


    All game programmers are expected to develop domain expertise in graphics programming, but the Graphics Programmer in particular must master the full suite of techniques to realize three dimensional objects inside a two dimensional display. Math expertise (especially linear algebra and advanced calculus) is a crucial skill for this role. As a Graphics Programmer you will need to understand the intricacies of skinning (covering) 3D models, importing files from 3D animation programs, and animation blending. However, a Graphics programmer must also have the artistic eye to implement realistic and fascinating particle effects (like fire and electricity), or at least the ability to work with artists to achieve the desired effect. Additionally, you must be an optimization wizard in order to figure out how to get everything displaying in real time at the highest possible frame rate, with other processes competing for CPU time. The principles behind graphics programming take a combination of deep mathematical education and sheer time spent learning the peculiarities of a particular API, so this position usually requires quite a bit of experience. You can still pick up proven techniques and enhance them or make them faster. It's mostly about pre-calculating everything you can and writing tight code for whatever you can't, while using any multiprocessing available to you. Programmers interested in this field should check out the demo scene, the unofficial international community of extreme graphic effects hackers. There is also a lot of student activity at SIGGRAPH, the yearly computer graphics confab, which has been paying more attention lately to realtime graphics after years of almost exclusive focus on pre-rendered work. Graphics is essentially "solved", the only remaining challenge is real-time.


    Audio Programmer/Engineer:

    Audio programmers write the software tools and utilities to support sound and music in games, especially interactive and synthesized sound. Depending on how the sound and music are implemented in their particular game, an audio programmer may need a thorough understanding of the MIDI standard, of audio production/ mixing/recording processes, of real time sound synthesis, audio compression standards and signal processing, and interactive music APIs like DirectMusic. This isn't a very common programming specialty at the moment, but as systems and their games become more sophisticated and more cinematic in their use of sound and music, the need for audio specialists will increase. Also, the various consoles (GBA, PS2, GC) all have different ways to play music and sounds, requiring even further specialization.


    Artificial Intelligence Programmer:


    An Artificial Intelligence (AI) Programmer gives game entities, and perhaps the game itself, an appearance of intelligence by writing rules to govern their behavior. AI is a heavily researched and broad programming topic. Academically, it branches into the areas of Robotics, Biology and Psychology. A beginning AI programmer must study basic algorithms for games and concepts behind AI, such as path finding, patterns, and decision trees. Some more advanced and experimental AI concepts include Deterministic Automata, Finite State Machines, Neural Networks, Genetic Algorithms, Fuzzy State Logic, and A-Life. While it is important to keep up with and understand these academic AI concepts, a practical AI programmer must also be able to code and implement actual, non-theoretical game behavior, and keep it all happening in realtime without a huge processor hit. This may require a multiplicity or combination of tactics, or even a disregard for the purer methods in favor of a quick-and-dirty solution. Above all, the AI programmer needs to know the appropriate method for the task at hand. It's frequently a job of determining the best way to make things "look" smart at a minimal processing cost.

    Multiplayer Networking Programmer:

    Multiplayer Programmers are some of the most in-demand specialists thanks to the surge in popularity of online games, and the crucial role these programmers play in creating a popular, profitable game. Multiplayer games have unique challenges based on a huge set of variables: the power of the user system, the ever-changing capabilities of the networks, and the architecture of the game server, the billing system, in-game experience management, and game security being just a few. Networked games are under constant siege from a large, technically proficient, and persistent hacker audience, who can detrimentally affect the average customer's satisfaction and happiness. Since online games make money based on the amount of time players spend there, the network programmer is largely responsible for the long-term success or failure the product, and perhaps the entire company. Still interested? If you want to become a Multiplayer Networking Programmer, you must understand these fields thoroughly in addition to the standard game programming fields: client/server architecture, network security, basic network protocols (e.g. TCP/IP or UDP), concurrency, multi-threaded code, synchronization, and network APIs like DirectPlay and Winsock. A Network Programmer must also have a deep understanding of Database creation, management, and administration if your company provides the massive multi-player service on which to play the game.
    Spoiler:
    Spoiler:
    Thanks OMG x NoLife2


    Spoiler:
    Thanks McGahan


    Spoiler:
    Thanks Viper


    Spoiler:
    Quote Originally Posted by Anime View Post
    Thank you. You are officially more useful than the head moderator.

  2. The Following User Says Thank You to TMG For This Useful Post:

    L14M333 (08-01-2011)

  3. #2
    ಠ_ಠ


    Join Date
    Nov 2009
    Location
    East Coast USA
    Posts
    1,660
    Thanks
    352
    Gamertag
    th3 d1rty hippe

    Default Re: What Different Programmers Do?

    copy pasta me thinks? if so then sauce if not then good stuff.
    I see you read my signature.

  4. #3
    Swagger Jagger


    Join Date
    Mar 2009
    Age
    19
    Posts
    5,230
    Thanks
    722

    Default Re: What Different Programmers Do?


  5. The Following User Says Thank You to iRaz For This Useful Post:

    TMG (08-01-2011)

  6. #4
    Suspended
    Join Date
    Jul 2009
    Location
    The Woods.
    Age
    18
    Posts
    2,256
    Thanks
    331
    Gamertag
    Rxvoke

    Default Re: What Different Programmers Do?

    Shut the fuck up prick.

  7. #5
    Suspended
    Join Date
    Dec 2010
    Age
    18
    Posts
    13
    Thanks
    4

    Default Re: What Different Programmers Do?

    Thanks for this useful thread.
    Helped a lot.


 

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
visit GameTuts on these social networking sites