| Game development projects are usually focused on tech/data/network/engine, asset creation/pipeline, behaviors and gameplay. In the tech/data/network/engine areas there may be TDD/BDD if the engine is to run multiple titles beyond the current project, if not the budget may not even allow for time. Possibly other areas may have tests in the behavior/gameplay areas: components, AI etc, this depends on the current dev culture usually. Really the main thing in game development is shipping and building fun, if tests help you do that faster/better then you do them. I think most devs developing anything that is not game specific but tech/data/network/engine related likes to have tests to rely on, time permitting. Most studios I have worked with that do some TDD/BDD/automated testing it usually happens on the "tech" or core/engine teams rather than the "production" or "live" teams. The tech teams are working on engine/network/data while the live/production teams are using the engine/tools/scripts to make assets and gameplay. The tech team isn't as locked to game launch dates/crunches and has more time to be thorough because most of their code will last across multiple titles. For the most part, in the asset creation/pipeline, behaviors and gameplay area, more of that is visual and QA based. There are testing companies and departments setup just for the gameplay/feature testing. So much of game development is going for fun and a good mechanic that actually playing it and testing it live is more effective than automated tests in some areas. Although there are some automated test tools in Unity[1], Unreal[2] and custom engines maybe for very rote areas of gameplay (physics engine, collectables, asset loading, very common unchanging actions etc). Many times on the production/live side of game development, gameplay and behaviors change so much that any automated testing becomes a lag on dev/iteration time, or aren't updated and stagnate as the changes happen so quickly day to day. This is especially true in iterative development during prototyping or pre/post-production, since it is mostly visual the benefits are outweighed by the speed required to ship. [1] https://unity3d.com/unity/qa/test-tools [2] https://docs.unrealengine.com/latest/INT/Programming/Automat... |
So you think, you if you do testing you are overall slower ? Skipping tests makes youufaster short term.
Long term, you are slow as hell because of the lack of coverage and manual effort.
Also, especially test help you with large scale changes. Because, these tell you what breaks what shouldn't have been broken.
Further, test is not the same as test.
In order to do efficiently testing you need to apply the test-pyramid.
i.e. have lots of unittest. less integration test. less system tests. less e2e tests.
another guiding principle is to focus automated testing on the things are most curicial for the success of the product, or the most difficult to do manually.
also, you need to chose the tools that support your testing stratgey. if you work against your tooling. oh boy, you have a journey ahead.
(For example unity unittesting framework was pretty crappy last time i check -- 3 years ago )