Case: game development through the eyes of a designer
In one of the long winter evenings, my old comrade (Andrew) wrote to me, whom we met on the basis of interest in the demoscene in the last century. Hobby is not a gift. As a result, for some time he was seriously engaged in the development of large serious games (Smersh), and I designed various interfaces (starting with the web and instant messengers and ending with trading terminals for financiers).
It turned out that he made a prototype of the game in the genre of puzzles. I am far from all these classifications, periodically I play in completely different games, but I don’t really think about where I grew up from. As a result, as I understand it, our project is a kind of an evolved version of Sokoban. So I got to know about Sokoban from him.
First prototype
The first prototype was something like that. ')
the object moves the cubes of different colors around the site. Each cube has its own unique properties. Some may move another, some may cling and drag, some may break.
Actually, games with similar mechanics have already been released car and a small truck. But you always want something new. As a result, it seemed boring for me to move the cubes and an idea arose to somehow beat this mechanic and screw the plot. Actually, the idea is not original, and there were also quite a lot of such games:
• Nanuleu (By Selva Interactive) • A Good Snowman Is Hard To Build (By Draknek Limited) • Monument Valley (By ustwo Games Ltd) • Maestria (By Antoine Latour) • Roofbot: Puzzler On The Roof (By Double Coconut LLC) • Furdemption - A Quest For Wings (From RareSloth LLC)
With fantasy, it’s not that bad, but the years of programming and interface design have left their mark and as a result we decided to work on the topic of space. It’s trivial, but we didn’t risk trying to embody our schizophrenic worlds in a virtual manner. It was scary to go over the edge and not return.
As a result, the cubes turned into astronauts, and pushes them to the exit drone. The level is a platform in space, on which these astronauts are stuck and the main player's mission is to save the whole humanity of all the characters with the help of a drone, taking them to the exits scattered around the level.
To complicate the task, at the level of rasbrosany all sorts of devices that help and hinder the implementation of the mission: teleports, elevators, travolators and special platforms that can change the properties of astronauts.
Actually, Andrei designed all levels. Honestly, I connected at the stage when almost everything was ready. It remained only to lay a cherry on the cake. That's about this cherry and the story goes on.
To expect that a spoiled public would take our prototype seriously was naive. And we began to bring it to the commodity form.
Experiments
The first approach looked like this:
Later we left this style, because everything looked too cumbersome.
Oh yeah, the development of the entire project was carried out using the Marmalade SDK. This is of course a separate topic for the article. If Andrew decides, he can write. Although, as far as I know, they fold support and it may not be relevant. But if suddenly - write in the comments, he will read them and, if asked, he will not be able to refuse.
Let me just say that we used to leave a week so that I could collect and bring down the project in my car, which he sent me.
Outset
So, we faced the task of creating an atmosphere in the game. To do this, it was necessary to come up with the scenery: to style the levels, to work on the background and lighting.
We decided to divide all levels by locations. 10 pieces in each. Each location is a separate planet that sets its own scale and level design. Now this decision seems controversial, because it has significantly increased development time. And there are people who have not even noticed that the levels in different locations are different decorations. But what's done is done.
So, for each planet, it was necessary to come up with elements that would somehow diversify the boundaries of the levels and, preferably, to somehow have something in common with the shape of the planets.
I had almost no experience of working in 3d. And for some time I devoted myself to learning the basics in an embrace with lessons on YouTube. For example, the first planet was born. Then it was easier. We understood that we would not be able to forget something krysyosnosno themselves in terms of technology and stopped at low poly. This seemed to be within our reach.
The result was such sets of decorations for levels:
Such characters:
And these are the planets:
For the design of levels, Andrew made a special editor:
I took ready-made schemes and modeled each level in Blender. Then there was a long and painful process of arranging the scenery by levels:
Starts something looming.
Work with backgrounds
Soul requested a starry sky as a background and interesting lighting.
For backgrounds, the Spacescape generator advised me, but I didn’t have a relationship with him. The picture on the output was not impressive. In the process, I tried with a dozen different generators, but none came up.
As a result, I stopped at 2dSpace from Rye Terrell, who painted the backgrounds directly in the browser. The problem was that the color of the nebulae there turned out to be random. And I needed a certain gamma to combine it with the planet and level textures. I had to pump a bit in the javascript and finish the source code to fit my needs.
At first, this picture suited me perfectly. But Andrew was annoyed by these twists (Perlin noise). I had to finish the finished pictures in Photoshop, smoothing this effect. But the volume disappeared and, in order to restore it, I finished painting star clusters and nebulae with the help of brushes made on the basis of the generated images from Apophysis.
It turned out like this:
Lighting
One of the most important things in the game is lighting. If you put one source that will evenly cover the whole scene, you get a rather boring picture. In addition, the frame level too strongly focuses on the attention.
Through countless experiments, we have come to three static sources. One illuminates the level behind (shines directly on us) and gives contour lighting to two sources that are in the plane of the level and shine into its center from different sides, strengthening the contours. The foreground thus receives reflected, diffused light, and the contours of objects are well highlighted. It turns out a contrast, bright picture. Taking into account the fact that the level and characters move in space and change the angle, the light plays and flashes on the polygons.
There was another problem to be solved. If you make the texture level monophonic, it either merged with the background or was not connected with it in any way. At the same time, it was important to stay within the same range. Therefore, a separate texture was superimposed on the lateral faces of the level, which in fact became the boundary separating the level from the background and at the same time a connecting link.
I honestly saw this hint from the developers of PlanetAlpha 31 (very cool guys). They have this done for other purposes, but we also approached. The fact is that just a light source, even if it is colored, does not give a good result. In their case, the lighting of the scene changes depending on the time of day. The source moves in the scene plane, imitating the sun. Right around the circle to the left. And changes the temperature.
But in order to enhance the effect, the textures also change hues themselves depending on the position and temperature of the light source. That is, the texture color works together with the lighting.
Mapping textures
The whole is almost everything. The only thing that did not bother me was the too massive rectangles of the level borders. The search of colors did not help, and I added simple geometric patterns to them, which slightly varied the long sections. Trifle, but with it everything fell into place. True, the mapping of textures took more than one week. Everything was done manually in Maya. Models of each level fought on polygons and in the uv-editor were tailored to the texture blank.
Conclusion
There were also experiments with fog and depth of field, but nothing good came of it. The best is the enemy of the good, we decided.
The last stage, we added satellites that periodically fly in the background. In classic painting there is a rule of three plans. To the picture was the volume, the composition is divided into plans: front, middle and rear. All of them must be combined with each other. We had a foreground - this is the level, the background is in the form of a starry sky, and we launched satellites to the middle one. They revived the picture and added volume to the whole scene.
The whole game was made by the efforts of three people:
• Idea, code, 3d - Andrey Kharchenko • Design and partially 3d - I • Original soundtrack - Helge Borgarts
In the development process, of course, a lot of people helped us. And tips and testing. All of them are listed in the credits in the game. Great thanks to them!
I will try to answer the questions in the comments. Also we are interested in any feedback from you, because we are not able to objectively evaluate the result. The game is now available in the App store and Play Market.