What game architecture indi or big game companies uses for game development?
-
There are many drawbacks of using OO architecture when you reach a very complex code design. Need to make many classes which are independent and have to violate DRY rule. Then comes Entity Component based architecture, but sending message between systems and making systems which can work with all kind of actors is also not easy. Can anyone put light on what kind of architecture is being used by big games like crysis etc? Do they use architecture specified above or any other architecture which i missed? Really want to know how they handle large amount of code and make it flexible at same time.
-
Answer:
I am not a programmer, but I have worked in games for some time. When I started, games had just transitioned from basic to plain C with some assembly for speed and explicit control of certain devices, like sound cards. Most games were 2D sprite-based animation systems. The general form was a main loop, serving as the sync pulse for all operations and culminating in the use of 2 or more video buffers blasting images to the screen. In those days, the speed of main might be your final frame rate, since machines were not fast enough to require frame rate limiting. A few years later, games transitioned to C++ for many reasons but 3 of the big ones were: 1. to build libraries of reusable code components, which went against game programmers' instincts in those days, but the business people loved the idea 2. to make use of inheritance of properties, for game objects - imagine if you have 32 types of enemies or 64 kinds of space ships, or swords or whatever, a system that allows each new variant to inherit base properties is advantageous. 3. to continue to have high performance, including in-line assembly where needed. In those days, mainline commercial were around a million lines of code and were quickly becomming 3D animation systems with scripting. Eventually, that list of C++ "plusses" grew to include the use of multi-threaded code and a fuller embrace of OO "black box" units of game functionality. A common kind of architechture now, if I understand your question correctly, is known as a game engine - a very large code construct that contains many subsystems like a rendering engine, a data base, an audio system, user interface systems, physics, procedural deformation of 3D objects and much more. A leaner version of the engine launches at runtime to use the game assets and data. A bigger 'editor' version is used by developers to create content. Games now are many times larger and yet still as fast as we can make them. Making great looking frames faster is a very competitive part of the business. If you have some big insight in that area, go for it.
Al Nelson at Quora Visit the source
Related Q & A:
- What's the difference between a Game or National Park and a Game or National Reserve?Best solution by Yahoo! Answers
- What is an example of an advertisement that uses an emotional appeal?Best solution by Quora
- What is architecture really about?Best solution by Yahoo! Answers
- What can I do with a computer science degree besides web development or IT?Best solution by worldwidelearn.com
- What is the brand of pickles that Subway uses?Best solution by answers.yahoo.com
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.