Are Game Developers 15 Years Behind?

Started by
46 comments, last by elondon 12 years, 9 months ago

Firstly, you have to be honest, it's a well-known stereotype. It does exist and I think anecdotal evidence is proof enough of that.
It's well known for all programming shops AFAICT.

Phrases like "agile" and "best practice" themselves have been ruined by the hordes of "certified" analyst architect systems engineer programmer sigma-6 black-belt wizards and their pointy haired bosses who can talk the talk but not actually program, motherfucker. Then you've got the mavericks who only care about programming, motherfucker, but have no appreciation for formal methodology. Most people are (thankfully) somewhere in-between the two extremes.

If you haven't heard of the former, you've probably been too busy giving out copies of 'who moved my cheese' or getting certified in the latest fads, and if you've not heard of the latter, it's probably because you program solo :lol::P

These stereotypes are common to all software people, not just games ones. See thedailywtf for fodder.
Advertisement

For any absurd set of thinking, you can probably find a non-zero percentage of the population who is utterly convinced of its truth. (There's a really nasty, below-the-belt comment about religion hidden in here someplace ;) )


True unfortunately.



Why do some developers think that clear-win best-practices are not applicable to games? I dunno. Maybe you should ask them...



I am asking them, but you keep answering :)


Are you a professional game developer?


No, I am not. I am comparing my experience in bizdev at shops I would consider slightly above average to my general understanding of gamedev houses (which admittedly comes second hand from the more renowned members here), and a few educated guesses about the... less traditional gamedevs that comprise a lot of the casual/mobile gaming world.


What I want to know is how come there are so many teams who believe these practices and tools are not suited to their industry?
[/quote]

I suspect because of time crunch. Practices are percieved as process, process comes with overhead, and we barely hit our release date last time. This is a common driving force in bizdev against process improvement, and I can only imagine that the increased time to market pressure in gamedev exacerbates it.


I've never talked to a non-games software shop that even knew what regression testing was, let alone practiced it.
[/quote]

Even the terrible QA departments I've worked with know what regression testing is and dedicated time to it.


So while I don't deny that some bizdev houses (especially those that don't sell software or some software as a service sort of thing) are truly ass-backwards, my experience in run of the mill bizdev just doesn't hold with some of the stories here.
Oh, I certainly didn't mean to imply that all bizdev type shops are as bad as the example I gave. Nor do I claim to have a representative set of data for that section of the software world. Just offering counterpoints to show that the stereotype cuts both ways: sometimes, the "real world software" guys are just as bad as the popular image of game developers, and vice versa.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]


e.g. At the games studio I'm currently working for, whenever I check-in code, it's compiled and tested by a remote machine before being pushed to the trunk (meaning I can't break the build). At a previous games studio, any commits to certain libraries were automatically added to a task-tracking system flagging the need for them to be reviewed. I've never had those luxuries in corporate software jobs.

I've worked at a top 50 corporation (not games) that was far worse -- Emailing ZIPs for version control and still laughing at OOP as some academic ivory tower concept... So I've got an equally bad stereotype of PHB's and corporate code-monkeys and "architects".

Ditto on both counts.

Non-tech companies tend to operate on the assumption that they are not software shops. At one non-game company we had 5 software developers (out of 30 employees) and we were finally able to convince the owner that he needed to properly fund a proper versioning system and backup process. His business -- he kept telling us -- was to provide services to the customers, not write programs. Yet he employed five people to do exactly that. We wrote software, managed databases, kept CRM systems running, and more. He balked at some of the practices we kept trying to push, which is part of the reason I left that job. I've found that while the pay is better, treatment is far worse than the industry.

Game companies, and most tech companies, understand that software is their life. They understand that the developers are basically spinning gold from the ether, and they need to treat them well. They embrace software development best practices because they recognize they are in the software business.




His sources are anecdotal evidence from a few of his peers. He also has links to a few places that have anecdotal evidence for his claims.

Who did they talk to? If they include basement-made projects, the projects in the "Help Wanted" section that starts as an XNA template app with a few crappy drawings and then dies a week later, includes the hundreds of thousands of flash apps that litter the web, and also includes the major studios, then I would agree that collectively that group of people largely ignore modern software design principles.

However, I wouldn't call those people the game industry. I would limit it to the profitable studios, and the few studios who follow the profitable practices but then die for other reasons.

Based on my experience with multiple profitable studios, he is off base.
For a blanket statement, it is definitely wrong. Software companies will vary wildly on how 'advanced' their software practices and technologies are both in and out of the games industry. I know in general, Japanese developers have some archaic practices in place that one of my friends who recently moved to Japan faced a massive uphill struggle to get some decent pipelines and practices in place. Look at the differences between the major console providers SDKs and the gap can be quite large.

When I was working at EA, we had continuous integration going round the clock every time new code was checked into the trunk and data was submitted. Errors in the build got sent to developers who checked in data and/or code. Daily discs were getting burned. Anyone could pull down executables and built data for any platform at any time from the build server. We had tools to merge two separate Perforce depos due to outsourcing security concerns.

I left the industry since then and the only area that I would say the Games Industry is behind in is investment in quality QA.

(I think everyone here who has responded have been involved in games at one stage or another).

Steven Yau
[Blog] [Portfolio]


[quote name='ApochPiQ' timestamp='1301972883' post='4794468']
Why do some developers think that clear-win best-practices are not applicable to games? I dunno. Maybe you should ask them...



I am asking them, but you keep answering :)


[/quote]



Well, let's look at how you're going about asking the question...

- You insinuate that game developers are ignorant or unwilling to adopt best practices
- This places those of us who know better on the defensive immediately, wishing to correct your misinformation (because, let's be honest, it's kind of personal at this point)

- You present your anecdotal stereotype as if it were fact, and ask some speculative questions in that light
- This immediately grabs the attention of anyone with training in formal logic, who is going to smell straw man all over the place and want to correct your illogic

- You post in the Software Engineering forum of a game development site, and on programming.reddit.com
- These are two communities full of people who are far more likely to have already embraced best practices in the first place, and they're going to give you their experiences, not hypothetical speculation from trying to understand everyone who hasn't bought into the practices at all



So to me it seems only to be expected that you get the results that you do. You're going about it entirely wrong.

If you truly want to know why some people think games are an inappropriate venue for engineering practices, you need to do three things:

- Find a better outlet for asking this, not loaded with people who are going to answer the way I did
- Present the issue in a neutral light. Ask if games are appropriate for engineering discipline, and ask people to justify their answers
- Refrain from making assertions of any kind, because this will immediately trigger "someone is wrong on the Internets!" syndrome from a substantial fraction of your readers


Frankly I'm just as curious now why someone would be naive enough to think that engineering discipline has no place in the games business; unfortunately, the best place I can think of to find such people would be at a support group for chronically failing game developers. I'm really itching to know who it was that got you started on this line of investigation in the first place, so I can mock them publicly... although I can certainly understand your hesitation to drop that name ;)

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Considering close association with Atlassian, I find this write up to be disappointing and shallow. It touches on some broad generalizations of publicly available information. Except that what is public represents only mostly hobbyst development which only rarely brings any advanced insight. The article would carry same merit if it simply called all business and enterprise development a bunch of PHP script kiddies and Java code monkeys.


Console development is bound by NDAs and licenses are given only to proven developers. All of them are forbidden from discussing any details in public. Simple consequence is - there is no publicly available insight from anyone doing any kind of console development, aside from a random blurb, meaning PS3/XBox/Wii simply don't exist on the web. iPhone is Nickleodeon. Most development is trivial and irrelevant as far as business practices or quality goes. Cheap is the name of the game. Big projects with $500/hour development rates are part of corporate development and internal branding or related efforts, so they are, again, not present on the web.

Big publishers are probably ahead of most bizdev shops. A simple google for "$(AAA publisher) + agile/continuous integration" or "MMO agile/contiuous integration" brings up articles like this or this. Searching around gamasutra brings articles like this. These are companies where per-product investment is $100 million and revenue measured in billions.

The final misconception is regarding priorities. Source code is a solved problem. Not only that, but entire physical development is increasingly irrelevant as far as big picture goes. Entire development budgets can be as low as 30%, that includes creative design, testing, coding and asset creation. Success of large publishers is almost completely dependent on marketing and franchise or licensed IP.

Then there is innovation which puts bizdev into stone age. Toolchains which allow real-time versioned collaborative development on Xbox360 with scenes comprised out of billions of polygons - all real-time and interactive. How many businesses would consider one million database rows "huge".


The article illustrates a huge clash of cultures. But it has nothing to do with script kiddies learning in garages.

JIRA is de-facto toolchain for mostly OSS development stacks, primarily Java centric. That ecosystem is open, homogenous and fairly standardized. It's used almost exclusively for various forms of CRUD development. The toolchain it presents is well suited for both the culture and problems that need to be solved. The number of openly available frameworks and libraries facilitating all aspects of development is enviable.

But when one goes out of that industry, the ecosystems are closed and proprietary. While that does have slightly negative effect on quality it also skews the perspective on what goes on. People involved in such development simply do not engage into broad public discussions nor are they allowed to. Another industry where this is prevalent is industrial automation and CAD. Reason are similar - underlying toolchain is always proprietary and trade secrets and other legal implications of discussing such work freely pose too much of a risk. Evaluating these industries in same manner would be comparing them industrial automation by Arduino project.

The other aspect ignored is the actual needs. In aerospace engineering, deficiencies in CAD tools are irrelevant. If a tool does not have "select all", someone will be employed to click on all elements. LabVIEW is a pain, but solves actual needs. Bioinformatics is a mess (this is one field to look into, they really love the insight, but one needs a degree in medical or related field + CS) but pharma is big money, so throwing more manpower is still an option. Gamedev also sees abundance of labor - starry eyed kids, willing to work 90-hour weeks - they are cheaper than retraining top-of-the-line experts, whose time is valuable and expensive.

Article ignores the reality of business - in most industries, automation of certain tasks is too expensive. General IT, with falling profit margins need to minimize expenses on custom development and infrastructure. Minimizing labor makes sense. But elsewhere, just throwing more people at it works. Automation is only introduced when required or when the field becomes a commodity. This is why so much manufacturing is still done by people - they are simply cheaper. Agile does not necessarily mean machine automation.


Very few still have time to try to figure out the precise definition of the word "Agile" because ever since they adopted "agile" practices, software development is a solved problem.
Forgot to mention this in my previous post: http://blog.ccpgames.com/alli/files/2010/08/Ottarsson_GlobalAgileGameDevelopmentNoPassportRequired.pdf

GDC presentation from CPP (Eve Online) who use Agile on a global scale.

Steven Yau
[Blog] [Portfolio]

The major issue we have in game development are the deadlines. We can't think how we are going to code and design it, because we need to get it done fast.
In the company I work we do both, software and games. And both department are very different on that matter. Software side have more time and money, for simpler applications. The game side, there is the publisher on one side that want the game out for that period of time and the funding on the other side that is too low.

If we fix that basic fundamental issue, then maybe game developers will have more time to unit test and all that stuff.

This topic is closed to new replies.

Advertisement