As a former developer, there's a lot of things I wish gamers knew. Here are some of those things...
Game engines help, but every game is essentially made from scratch
Game Engines like Unreal and Unity can reduce the load, but they also add a layer of complexity to your codebase, and some walls that you have no ability to customize. Ever wonder why so many UE 3 games feel really similar? Because making changes to some of those base elements was considered too costly for the development team to do. (Read as: someone would need to completely read, understand, and extend the Unreal Engine without breaking EVERYTHING)
Code and assets can be shared between projects, and occasionally teams. However, usually enough time has passed between when the code was poorly written at 2 AM to meet a deadline a year ago that nobody really remembers/knows why it was written that way. Time to rebuild it and reinvent the wheel, or ignore it and hope there isn't a bug.
Think this is only reserved for ****ty developers? It isn't. Unless a dev team has all of its original members, with all genius-level brain capacity, and none of them ever took a break from developing they will not remember what everything does, and waste time relearning stuff and integrating it into a new game.
Better graphics = higher budget
Everyone is loving those new Unreal 4 screenshots. So realistic. Did you know that Epic Games spends months with a large team just to create each demo? And the demos are usually one-and-done scripted scenes to prove out a concept, not a complete game.
Ever wonder why so many games have been getting released in a semi-broken state? Because many studios are not committing the correct amount of time and resources to provide the content at advertised quality. Development is far more expensive and time consuming than you could ever imagine.
A common phrase for developers is:
“The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time”
One feature change/addition can require several hundred hours or more of testing
Large AAA studios have QA teams that outnumber the dev team, usually by a large margin. Any time the code is changed you have 3 possible outcomes:
- The game is broken, everyone stop working and find out why
- The game MAY be broken, upwards of a hundred people need to be mobilized to retest absolutely everything in the game
- Just kidding, there’s only 2 options. Stop dreaming.
You may think additions to the pause screen would be a quick change with no consequences on the rest of the game...until it breaks the game. You may think the player customization should have no effect on the final boss battle…. until it breaks the game. You may think an artist can add content to a level with no adverse effects….until it breaks the game. Starting to get the idea? I’ve seen development come to a halt for the most trivial of changes that you would be shocked any game was ever finished.
Game studios are like group projects in college
Remember all those fond memories you have of getting assigned into groups in your English 101 class? Remember how awesome it is to do group projects? Game development is like that. It is EXACTLY like that. Imagine a group project where 5 people need to write sections of a creative writing assignment in a Word document together. That’s EXACTLY like game development assuming some of the members are not native-English speakers.
Sometimes a game is a failure because of poor management. You would be surprised how many talented and passionate people are in the industry. Poor management can ultimately sink a talented team almost every time.
Every game is just smoke and mirrors with known defects when it's shipped
I remember a simpler time, before I began my game development career, where I bitched about developers failing to add accurate collisions to character props, or pieces of trees, etc. I remember complaining about the lack of realism in character faces, or hair, or anything. Guess what? Almost none of those things I mentioned are created or placed in a game by programmers. These things will almost NEVER be right no matter how many developers you throw at a game, or how long they develop. There are usually so many higher priority problems with a game at the end, that spending time on these minor issues is viewed as a waste of money, time, and energy.
Artists and designers generally spend the end of a development cycle by figuratively putting rugs over the cracks in the floor, and hanging paintings over holes in the walls. This is called polish. Great artists and designers can sometimes make a mediocre game feel nearly perfect, but it’s all done at the end, and only if there is time and money for it. The work done here is what people praise more than anything, and is the least important and poorly planned part of the project.
No game has ever finished early
No game has ever finished early. There just isn’t enough time to fix everything. If you gave a development team hundred years to make a game, they would take a hundred years and complain about running out of time at the end. The reasons for this are varied:
- Developers generally schedule the project based on the amount of time allowed in an attempt to maximize the output from a team
- Nothing ever goes exactly to plan, leaving management with a load of tough problems to solve, and pushing the team past internal deadlines
- As the complexity of the project increases, the difficulty and time involved with testing and fixing issues increases disproportionately. You have to test the combination of features as well as the feature by itself on the off chance that some edge case bricks the game.
- Given more time, developers unleash their ambitions and elect to make larger and more complicated systems with more attention to detail. Nobody ever says “Ok, I think we have the perfect ___.” and never looks at it again.
No developer is scamming you to get your money
Game developers love their jobs. They’d have to or else they would be suicidal. With the amount of training and knowledge required to be a successful developer, there are about a thousand other jobs you could take that pay better, and give you less stress. They want to be universally successful, entertain the masses, and be recognized for their work. This is not an environment where people want to half-*** something for the sake of a paycheck.
The reason some of these games end up being ****ty is usually because of investors, publishers, and MBAs. These people are not developers, and they view the development cycle as a business investment. They do not make decisions for the love of the community, they make decisions for their bottom line. Unfortunately, the larger a game budget needs to be, the more important people like investors and publishers become. By pushing things towards high-end graphics, the consumer is forcing non-developers into the process, and destroying their own games.