It is no secret that having found time for prototyping now, you will save the sea of time and forces later. It is obvious, it is important, and for some reason often we neglect this stage. By my experience, the longer the command works, the changes and alterations are endured more difficult therefore crucially from the very beginning to lay the reliable foundation in the form of a prototype of game, levels, key game mechanics. If to speak in the context of design of levels, your work conditionally is divided into four stages:
- "Greybox". Level gathers literally from gray cubes. Here you lay the foundation for all subsequent work and find out the level size, required graphic and audio of an asseta, work on game mechanics and scripting eventa.
- "Whitebox". The geometry of level is specified, new game mechanics, dialogs, procurements of sinematik, a sound and so on are whenever possible added. Here you turn the existing game mechanics and scripting eventa even better.
- Graphic pass. By the time of work on this stage you have to be convinced that at the level it is interesting to play, and he suits you to all. To replace prototype graphics with final asseta long and expensively. Any changes at this stage are extremely undesirable.
- The completing pass. Here final strokes are put: the birdies flying in the sky, sounds of fires and other pleasant trifles are added.
- Polishing. The inevitable stage which is usually occurring how work on level was complete. There will be changes of the trifles passed earlier and also changes by results of new pleytest and collected statistics.
On the picture below you can see comparison of the stages "whitebox" and directly final graphics in the game "Mass Effect 2".
I want to add still that too early transition to a stage of work with graphics — a hard error. You can easily deceive yourself and command, having made level with fascinating graphics, but a nikakushchy gameplay, and all because visually he looks good. Look at this one and a half minute video from a mode for "Gears of War" which is well illustrating work on a gameplay in the absence of the most part of graphic content.
At a prototyping stage in healthy command or the company it is important to follow the rule "Failure is an Option". You do a prototype, evaluate result and if he does not suit you, throw out. Fast iterations allow not to become attached emotionally to the done work therefore process turns out simple and pleasant. On a screenshot below — a level prototype piece from India game on which I work.
During prototyping it is important to find out and approve the hero's size, environment scale concerning the hero, and also the speed of run of the hero. Details are farther.
As soon as possible approve the size of the game character. I work in Maya in centimeters, and usually I set the average size of the main character: 200 cm in height, 100 cm in width and 100 cm in length. Thus, creating any new content (a bush, the tank, the house), we always know their size concerning the hero. It is supposed that the size of a collider of the character will have approximately the same sizes, respectively, passes and doors in buildings are obliged to be at least one and a half-two times broader than a collider.
Also if at you 3d - artists is several, it is strongly recommended that all followed a single system of measurements. In other words, if at one person the size of the hero is exposed in 200 santimer, and at another — in 2 meters, then when importing to the engine, for example, in Unity, you most likely should give to models different compensation of the scale (Scale Factor) as for Unity 2 and 200 of "May" units of measure are different sizes. The situation becomes complicated when you work with 3ds Max programs where the coordinate system operates with abstract units of measure therefore it is necessary to experiment in search of the general sizes for all packets of three-dimensional graphics involved in your command.
Work with environment scale — extremely interesting subject. Following reasonings from the previous point, you need to work in actual scales, making a start from the approved 200 cm. And at the same time you should lie without drying out. Salt is that the object of the actual size is felt as times too big or too small, and it is necessary to adjust its scale, trying to achieve the reliable, though wrong size. It is well traced in games with the stylized graphics, for example, of "World of Warcraft" where it is often possible to see objects like stone ladders with steps height nearly from the character. What is interesting, in the context of stylization it looks pertinently and does not raise questions, but if to look narrowly — all this devilishly strangely.
Nevertheless, it is necessary to aim at that on average your scene had the actual sizes. Especially it is important in view of a trend fashionable now on physically correct materials and lighting. It is known that intensity of light decreases in proportion to a distance square. In that case, if in your scene because of errors in scale the desk lamp has the size under 5 meters, then inevitably it is necessary to tighten up mathematics of lighting that it looked more or less adequately in these conditions. Finally your scene will consist of a set here of such "hak" which are negatively influencing both work of physically correct render and on quality of the picture in general.
Environment scale as a rule is learned only in comparison with the person or very familiar objects. Let's assume that you science-fiction shooter which action happens on strange others planet where even the architecture looks extremely unusually becomes. What size of wons of that … stone (or this plant?). Or what size at this building? It is not clear at all. And only if to scatter on a scene of a figure of people, then you will understand events scale at once. In some cases very familiar objects will work: on the picture the usual form of cars sets a reference point for scale.
There is still a good method allowing to display better scene scale in general. Show a certain object close, then its copy locate somewhere far away, then further away. The player understands that it is the same objects, and perceives a difference in scale as a difference in distance to object. On the image objects so big are lower that all together do not hold in one screenshot. As a result we have epic scope of a location. To the word I will tell one more cool trick: if to reduce the extent of the remote object a little, then it will seem is farther, than it is actually. Often use it for creation of scenes of the enormous size though actually it is only cunning game with scales and fog.
Motion speed of the hero
The scale of an environment does not make sense without accurately verified speed of movement of the hero. The quicker the hero moves, the space contracts stronger. A good example is introduction of the flying riding animals to "World of Warcraft". Before the world seemed rather big: time was required to reach from one point another. With the advent of air transport it stopped being a problem, the traverse speed of the hero considerably changed the world size while locations what were, and remained such.
It is obvious that such speed of movement influences also a gameplay: passing of quests, enkaunter with monsters, hunting behind treasures and search of the road somewhere (one business to climb up the mountain, and another — is simple to fly up and land on top). Detailing of an environment also depends on speed. Estimate, as if you detailed the mountain on which the hero climber will clamber on top, and the mountain by which the hero pilot would fly by by the airplane.
Thus it is important to approve the speed of movement at a prototpirovaniye stage as soon as possible, otherwise you are waited by permanent alterations.
Time of passing of level
During an era of mobile games developers began to pay durations of game session much attention. Unlike the PC and consoles, here crucially to find out how long the player can be involved before he has to return to reality — waited for queue, reached to the necessary station, change came to an end.
As a result, you have to know precisely, what is the time the player can spend for passing of separate level, and on the basis of these data already to work. Otherwise sooner or later you should remake all levels, arranging them under requirements. In "Flappy Bird" with his instant death game session can be extremely short. At the same time open world "Dragon Age: Inquisition" threatens to drain in you for hours, and all action will happen on one location.
Smooth colliders for a smooth gameplay
Let's assume, you have a number of small objects like boxes and barrels, everyone has the collider. If the hero runs straight in an object group as on a screenshot below, he will get stuck and be in a stupor in view of chaoticity of the general form of colliders. Formally all of you made correctly — colliders correctly beat a form of individual objects. However provide a situation in mobile game where management much less exact, than on the PC or the console. The player will be stuck more often in objects, and it will be more difficult to it to run out from the colliders which surrounded it.
Let's take the same object group and we will give them the general collider. Now the player should will be stuck in corners, but the controller of the character will automatically flow round an object group. As result — the pleasant smooth movement of the hero.
For descriptive reasons I made GIF with demonstration of the smooth movement around a streamline collider. As always there is a reef. The general colliders should not take a lot of empty space. Invisible walls strictly beat involvement. If I try to run off blow of the monster and at the key moment I am stuck in an invisible wall, it strongly irritates.
Not all colliders are equally useful
One of the most important tasks of the designer of levels — to create the most pleasant play experience on which colliders exert enormous impact as it is possible to judge from the previous section. It is necessary to think twice before giving a collider to small object. In the heat of fight the player can pass through small object and not pay attention to it at all. However if it suddenly is thrust in the impassable invisible wall created by the tiny object attached in a corner it will inevitably beat out it from a thin status of a flow.
I can give a demonstrative example from "Witcher": you see group of boxes from which it is possible to collect production. You try to reach them, but Geralt suddenly begins to be confused in colliders, to be stuck in invisible walls, to spin on site and in general to behave as utopets on a fire. It breaks feeling of an involvement into game at all, and you involuntarily try to keep step with a cup of coffee, returning to reality.
Just there is a wish to remind of this equipment. If it is short, it disconnects a render of the objects hidden behind other objects. Unity, for example, allows "to bake" Occlusion Culling that has significant effect on performance. And as in the best, and for the worse, depending on a situation. Two examples:
- In mobile game with Top-Down the camera (as in Diablo) activation of this function saves 2-4 Draw Calls (DC). At the same time 5 ms are added to operation of the processor. on processing of a frame. Absolutely do not cost that.
- In the PC to game with First Person 450 DC is available the camera where action happens in a narrow cave, initially. Activation of Occlusion Culling reduces the number of DC to 50 at the price of the same +5ms. Unambiguously it is necessary to use.
Parallax and pseudo-3D
Any 3d game on the monitor screen — it is all the same an array of pixels in the 2D plane of the screen, whatever one may do (VR is not counted). But there is a number of the tricks allowing to create illusion of three-dimensional space. In respect of design of levels, conscious breakdown of the picture on front, average and distant plans will be the most useful tool. Most simply it is implemented in games with Top-Down the camera a la "Diablo" and "Path of Exile", and also in saydskroller (platformers). The average plan is your character. The epic type as on the following screenshot, but a thicket it is just remote objects can be distant.
The foreground is more interesting. As a rule, the shaded objects like the hanging-down ropes, chains, chandeliers and the other junk creating parallax between backgrounds are used here. Parallax is called distinction in the motion speed of plans concerning the camera. That is the foreground is always changed quicker, than distant, in general remaining static because of its remoteness from the observer.
It is the most difficult to show the foreground in games from the first and from the third party. Developers go on different cunnings, here several examples:
- Dirt on glass of a respiratory mask, as in "Subway 2033".
- Blood splashes directly in the face of when for the sake of a skin the hero undresses hulk of an animal in "Far Cry".
- Hands and slippers of the character, as at Faith in "Mirror’s Edge".
- The burst car glass during driving (" GTA", "Far Cry").
- Gun in the face of, especially in the riflescope mode (any shooter).
- Obstacle (the concrete block, house corner) behind which you hide from opponents. Games specially encourage such gameplay. For example, in "Far Cry 4" it is possible to hide behind bushes, and the opponent will not see you.
- Noises in the neurointerface located on the screen, as in "Black Ops 3" and "Deux Ex: HR".
It is rather specific case, but is worth of mentioning. In India the project where I work, we applied such mechanics: when you enter a certain zone, behind the back of you there is a magic wall, and monsters ahead begin to appear. After death of all monsters the bewitched walls vanish. We made it by analogy with other mobile "Dungeon Hunter" projects, and also by analogy with "World of Warcraft" where at fight with bosses at you pass is in precisely the same way blocked behind the back.
And so, it is the cheap and lazy method simplifying and accelerating work. But also so cheap result; the player feels it. Try to leave from it, let and a classical method: to jump off from a ledge down, and back already not to get in any way. Cliche? Yes, but it is better and better than invisible walls.
There is even more inexcusable subclass of invisible walls — the level borders killing the player. It is worse if the developer builds a gameplay around this horror. A striking example from "Destiny": chests with treasures are quite often put near the border of level and so that often unevidently, where exactly there passes the border. As a result the silly death is inevitable when you jump on an equal stone in two meters under you, and it in reply instantly kills the hero. And yes, it is not death from falling in game where it is possible to jump on 10 meters in height and to land on the firm earth without special problems.
As far as it is obvious, so often it is ignored. Everything that you do, has to be checked on a target platform. I saw more than once how the person is fond of a task, for example, of design of GUI, and forgets to check the work on the mobile device where the interface will be used.
The same with levels. It is important not to be lazy and to regularly test the work on a target platform. If you create game for the console, look, to run and be at war how comfortably with use of the gamepad. If level is developed for the mobile device, then the more often will watch the work on a small screen with extremely inaccurate tach-management, the get less headache in the future. However, put even not a headache, and as work. In time having noticed that you move in misguiding, you will be able timely to correct a vector of work and as a result to receive worthy result.
Pleytesting — absolutely surreal ekspiriyens, forgive for anglicisms. It is difficult to express in words feelings from supervision over the player interacting with your level. And in general to see the player at the level is an inflow of motivation that is always good for India the developer who is not earning a monthly reward for the work.
Nevertheless, the main task is to check all the hypotheses in practice, to see where fell short and where changes are required. As at any creator, over time an eye is hackneyed, and you inevitably make some mistake or something overlook. The earlier there will be adequate back coupling — the better.
The Pleytesting is good, but supervision over 5-10 players is not statistics therefore there is a sense to trace behavior of hundreds or thousands of players. For example, we collect data with frequency and coordinates of a point of death of the hero and we understand in what places game too difficult, we make changes in balance and we repeat all process.
And even if you done not reliznutsya yet, but have several testers, or your demo is available to a limited number of people (for example, "beker" with Kickstarter'a), all the same it makes sense to collect and analyze data already at this stage.
Try to leave slightly to time for "polishing", that is for small changes and closing of small holes which hands for any of several reasons did not reach earlier. For example, on one of my recent levels there is a task with the list from 29 points. Each of them demands from 5 to 15 minutes of work. Having overcome these problem places, you transfer level from a stage of "polishing" in the status of "final" or "release candidate". Problems which should be "polishit" will emerge during a pleytesting and collecting of statistics. Not to run at once to govern each tiny defect more effectively, and to prepare the separate list then to correct everything in a crowd. You remember, this stage is inevitable therefore in advance leave on it time even if you are sure that you made everything abruptly at once, and it is not necessary "to polishit".
On it I complete this article, two-piece. If you passed the first part, then here a reference. Also if you are interested in lighting in Unity, my recent article right there, on Habré can be interesting to you. Having saved up more experience, I see some inaccuracies in article, but in general it is very close to reality. Therefore if you only study a lighting subject in Unity, material has to you be useful.
I will be glad to any comments and sentences. Besides, I accept ideas for new articles on shifted to the Left - to design, and also lighting and post-effects in Unity :) Thanks for attention!
This article is a translation of the original post at habrahabr.ru/post/274625/
If you have any questions regarding the material covered in the article above, please, contact the original author of the post.
If you have any complaints about this article or you want this article to be deleted, please, drop an email here: firstname.lastname@example.org.
We believe that the knowledge, which is available at the most popular Russian IT blog habrahabr.ru, should be accessed by everyone, even though it is poorly translated.
Shared knowledge makes the world better.