+ 32

Game Industry - How do all the coders work together to accomplish a final product?

I am studying to be a video game programmer and have 2 years of study so far. However I'm scared of what the industry holds. Does anybody have any insight on how all the programmers in a large video game company all work together without their code conflicting? I can just imagine myself at a desk working on code that will disagree with someone else's code... Or other programmers making mistakes that will affect my code. Is there a trick to having programers working in unison to achieve a goal?

30th Jun 2017, 9:37 AM
Pierre Gravelle
Pierre Gravelle - avatar
20 Réponses
+ 58
I don't develop game software, but in all of the business software I write, we use the Agile/Scrum methodology. What this means is that we break the big picture down into small "bite size chunks" that we each work on in a 2 week sprint. Each chunk is to be small enough to write and test within 2 weeks. When we have to interact with another developer's code, we get together and discuss inputs and outputs of our code so that the other chunk will play nice with it. Most of the time, this is done in the design phase, so that it becomes shared knowledge before we start any coding. But as the code develops, there are times when we have to meet again to discuss the inputs and outputs. Think of it as a base car frame, and we are all building the pieces like the engine, the body, the interior, etc. Then, break it down further - like, for the engine - one person designs the insides (crank, cam, cylinders, etc), while another designs the bolt ons, such as the alternator and air conditioner compressor. In each step of the design, the engineers are communicating about bolt positions, belts, strength/torque required and provided, etc. Ideally, all of the interactions between the chunks are worked out during design, and not when they start manufacturing them. So taking that back to software development, you would have the core (which would just be the name of the project), then the chunks, like data access, gui, business logic, etc - each of which can be broken down further, if needed. Communication among the software engineers is paramount to success of the overall project. This is a great way for a team to overcome challenges of interaction between multiple chunks of code. Hope that helps a little bit. :)
30th Jun 2017, 11:03 AM
Eric Hendrix
+ 19
I am intern in a video games studio (Dontnod) and devs are divided in teams: tools, engine, gameplay, animation, UI, etc. Each team has a lead programmer, and these ones also have leaders: the game producers. Programmers of a same team are neighbors in the open spaces so they can easily communicate. They also use a versioning system (perforce), where they can work on the code without conflict (like a git, with commits, branches, etc). Game development needs a high coordination between devs, artists, etc but there are many tools to achieve this. There is a tool for artists to choose a build they can work with, there are tools for artists to work without programming, there is an irc with channels for each team, there is a wiki, etc.
1st Jul 2017, 10:18 AM
Guy Ussoli
Guy Ussoli - avatar
+ 8
Ok seriously this Q&A is starting to become a place where people show off other discussions/codes that have NO RELATION to the question. I have reported every one of those posts... As for those who have answered legitimately, thank you for all your wonderful answers. :) I'm happy to see that I keep getting new answers everyday regardless of the fact that a best answer has already been chosen. Thank you so much guys :) Keep 'em coming because I love to read these. They give me more confidence and hope about my future as a game developer.
2nd Jul 2017, 5:58 AM
Pierre Gravelle
Pierre Gravelle - avatar
+ 3
There must be one that focuses on the whole product "The Lead Programmer", and some that focuses on small parts *the other programmers. For example.. if the Lead programmer can't produce an automatic age computer getting from her/his birthday, the LP will pass it to the other programmers. What's the purpose? To lessen the stress.. That's what we did. And I was the Lead Programmer😄 I hope this experience helps😊
1st Jul 2017, 1:40 AM
Marco Macdon
Marco Macdon - avatar
+ 3
I am bookmarking this! There is a lot of good info here! 💾
3rd Jul 2017, 12:26 AM
Manual
Manual - avatar
+ 2
Depends on how big the project will be. But at the end of the day, big industry tends to have a department that is for testing and support. Whatever you do, you don't just program, you need to have a discussion with your partners and make sure that one goal is met, to get the job done. It does not matter if there are mistakes and there will be mistakes during the process. We work to learn and explore.....
1st Jul 2017, 1:26 AM
Hamidi Saufi
Hamidi Saufi - avatar
+ 2
They while preparing any big project just first make a blueprint of their task, divide the blueprint into certain segments, each segment comprising of a specialised task, divide it among the team as per their abilities, make a roadmap, get together at the end of each day, discuss what they have done so that output of 2 programmers don't clash and at the end unite it all, test it and it is ready
1st Jul 2017, 1:42 AM
Neelaksh Singh
Neelaksh Singh - avatar
+ 2
If the company decides to make a game first a blue print is created and ia divided in to smaller parts each part is assigned to how many members the company has like graphics is handed over to the graphic artists etc
1st Jul 2017, 4:03 AM
Mazhar Khan
Mazhar Khan - avatar
+ 2
I think GitHub can handle it for you. https://github.com https://youtu.be/0fKg7e37bQE
1st Jul 2017, 5:58 AM
Angelina
Angelina - avatar
+ 1
It depends how big the project is. For small to mid the most common aproach is Agile, as all devs are focused on some task and trying to make it integral with a core. But for example when you are Unreal Engine dev, then you are just suppose to understand code of other devs, if you are not, it's either lack of your skill or your coworker
30th Jun 2017, 1:21 PM
Maksym Zieliński
Maksym Zieliński - avatar
+ 1
If you want good examples of multicultural, globe-spanning coders cooperation and efforts coordination, look at some open source projects. Browse GitHub.com / GitLab.com public repositories and take a look at the issue board of those projects. That is where people submit, discuss and resolves issues. A valuable skill is to know how to write clearly and concisely. It will help you in your interactions with others and writing quality documentation will be easier as well as less time consuming. Comment your code as if the person who will read it is a young child (explain your code simply) or a violent psycopath who knows where you live (make sure your stuff makes sense) ;)
30th Jun 2017, 7:10 PM
Denis Roy
Denis Roy - avatar
+ 1
This is getting ridiculous. Please stop going off topic... Where's a moderator when you need them? ;_;
3rd Jul 2017, 3:32 PM
Pierre Gravelle
Pierre Gravelle - avatar
0
@Denis Roy - lol at the commenting your code. Spot on man! :)
30th Jun 2017, 8:50 PM
Eric Hendrix
0
A fun read http://bizzley.imbahost.com/ the adaptation of the arcade game R-type for the Spectrum console version in 1988, provides insights of early development with other developers, graphic and sound designers, and stiff competition, all to fit a complete game on a 640kb cassette!
3rd Jul 2017, 1:09 PM
Paulax
Paulax - avatar
0
yeah
6th Jul 2017, 6:58 PM
Octavio Martinez
Octavio Martinez - avatar
- 1
You Have to document your code fully so the other can understand it
30th Jun 2017, 11:57 AM
Bruh
- 2
Keep in mind - a lot of game development is within an engine. Engines are programmed to automate the programming of most of the game's core functionality.
30th Jun 2017, 12:00 PM
T Sacrin
T Sacrin - avatar
- 2
they use collaborative platforms like cloud 9 ide or something else to review their codes or just their project leads give them specific task to do that's how it is done.mostly as a new developer it is scary to work with many people.although they know u don't know about industrial scale. development technologies.so don't u worry u will b taken care of.plz show us ur game projects I am very interested about game projects but have very less knowledge I see people making codes feel jalous.do check my background u will know I have good grasp on programming
30th Jun 2017, 7:35 PM
Raju Mondal
Raju Mondal - avatar
- 2
kya Lauda BC dislike kis liye
3rd Jul 2017, 8:08 PM
junaid khan
junaid khan - avatar
- 5
@Eric Hendrix I guess you're a more Mechanical then CS
3rd Jul 2017, 5:52 AM
junaid khan
junaid khan - avatar