📜 ⬆️ ⬇️

How we spent 1 year and 3 months to develop a browser game

In this article I will talk about how I started developing my own game. You will find out how much time it took and whether it was worth it at all.

We spent 1 year and 3 months on the game, below I will write in detail where this time has gone.

Prehistory


It all started with the fact that my friends and I decided to do a joint project (of course, with friends, a typical situation). There were 4 of us, all the IT people, none of us had ever dealt with game development, it was a dark forest for us, very dark.
')
The dialogue was like this:
- Maybe the game will start to do?
- Come on, why not try?
- What will the game be about?

Then went the argument about which genre of the game to choose. Began to think what games are not in the industry:

- There are a lot of shooters, tanks - there are planes - there are races - what to do?
- There is no boat.

But the truth is, no one at that time could not name a single game using the water transport. “Okay, let's make a simple game to learn. Water and boats, what could be simpler? ”- we thought, and were going to look for the engine, on the basis of which we could make the game.

None of us even thought about a 2D game, at once everyone represented 3D - “innovations”, after all.

We all know about the acclaimed CryEngine, downloaded, poked. Understood that it is impossible to compile the game in the free version.

Further by itself on the Internet Unity3D proved itself. Free, large community and of course cross-platform. We chose Unity3D, there were no compelling reasons for choosing, we just didn’t know what we wanted.

We downloaded, poked and parted. Everyone at home in their own way. We sat, watched video lessons and tried to do primitive things - earth, sky, water and a character who runs along the ground.

One of the four quickly lost interest - during the week learned nothing and scored on this matter. The second one got involved, made a typewriter (3d-rectangle and 4 cylinders), which was somehow controlled and even made a boat (3d-rectangle) that floats and sinks. A week later, he also scored on this case.

2 people remained in the development team, we sat together and watched lessons and shared successes with each other.

Development


1-2 months - we understand with the engine

Were into it so much that we sat for 6-9 hours and made a game about boats. We did not understand what we were doing and what would come out of it. Then we were drawn into the development even more and every day we were engaged for 8-12 hours a day, even without days off. It really was very interesting and exciting. We already knew how to write scripts and learned a lot in Unity, changed the behavior of the boat, changed the models of the boats, tried to make them shoot. It was all possible with difficulty, but we did it. We made 5 sporadic boats that can be fired, lives are spent on them and they explode.



( )

3-5 months - create multiplayer

When we learned that the game can work in the browser, we decided to make it for social networks, inspired by a browser-based shooter. We even had a certain concept of the game - a browser based online game based on the water transport mode. The gameplay should be simple - players' boats spawn in different places and with the help of machine guns mounted on boats, players must destroy each other. Of course, the game should be multiplayer. At this point, the development speed fell a bit, we had to study the network component of the Unity3D engine using the standard network solution.

Within a month we did the network part, tried to bring the synchronization to the ideal. It was then that we learned what interpolation, extrapolation are and what they eat. Honestly, transferring a single version of the game to the network is not a very simple task, so it’s best to first decide whether you’ll have a network game or not.

We achieved what we wanted, the multiplayer was made in room mode: someone enters the game, creates a server (room) and enters the game. It was possible to float on the net and shoot at each other, no points and systems of achievement, even the nickname could not be seen there.

6th month - GUI creation and refactoring

Before that, the game was without any GUI: you enter the game and immediately get to the scene with water, where the two buttons are “join” and “create server”. We spent two weeks learning the GUI. They did it again as a standard solution, without any plug-ins. In fact, this is another perversion.

Having made at least some main menu in the game, we started refactoring the code. Why? Yes, because we started writing a game in Javascript (UnityScript). Why? First, I know the original JavaScript, and second, the Unity developers position JavaScript in a simplified language for newbies. In general, we switched to C #, took two weeks to refactor the code, but we did not regret it, it really became more convenient for us to write in C # in MS Visual Studio.

7-8th months - we are engaged in the restyle of the game

The appearance of the game we are absolutely not satisfied. We changed boat models many times, changed textures. They rebuilt the terrains, studied the technology by which they pulled out the height map of the real terrain (Lake Ritsa) and redrawn the terrayne textures several times, cleaned and set trees, bushes, etc.

Many suffered with shaders and, in fact, with the water itself. It turns out that beautiful water, and even with the waves, is not so easy to do. Took over many assets, tried to write themselves, but nothing came up and did not work. We decided to leave the standard water without waves.

Of course, we didn’t do the models ourselves, since both the programmers didn’t understand the modeling at all. Already thinking about taking the team of the artist in three-dimensional graphics.



Then we started to rework the GUI, it was not presentable in the game, so we threw the design in Photoshop and made it. Added settings to the game so that you can set the graphics quality, sound level and specify your nickname. Made a window to create a server and created servers (rooms).



9-10th months - we are remaking the network part

Due to the fact that the standard network solution did not give what was needed, namely, online more, server independence from the players and, of course, the system of levels, leveling, achievements, all this should be stored somewhere. We reviewed many third-party network solutions; not many of them allow an authoritarian server. We decided to make a non-authoritative server. We were approached by Photon Server. We studied it about a week, but realized that it was not suitable for two reasons: we didn’t find a way to run multiple copies of the server on the same physical server and read the limit on the number of slots on the server on the Photon website.

From all this, we spontaneously started to make our own server. Yes, it is your own, on sockets. In a month we managed to do it and redid the entire network for our own server. It worked, there were many bugs in it and there was no question of multithreading.

We did not like the way your server works. Now guess what we did? That's right, we again found a network solution, but not quite ready - we took the lidgren library, combined it with protobuf and spent another two weeks to redo it all. This solution suited us more, the server worked better and more reliably. But, of course, not without bugs.

11th month - we post the game on VK

We are already bothered by the procedure of unilateral development, without any feedback. Yes, yes, all this time we have been developing the game together and no one, except the testers, has seen it. We decided to release an alpha version of the game on VK to test the server load and get feedback from the community. Maybe they would know what the players themselves want from the game. We tied VK API, compiled it, uploaded it to the server and added the application to VC.

It was not easy to post the game on VKontakte: we flew with all the privileges that were previously in Vkontakte, namely: no SSL certificate was required, there was free placement on the New Applications list. I almost had time. We had to register an SSL certificate, we didn’t have to spend good money, we received a free certificate for an article on Habré. But that's not all: the moderation did not let us, they demanded to translate the game into Russian and add rules / explanations to the game. We added brief rules for the game as a separate window, but could not understand what needed to be translated in the game, because it is already in Russian.

As a result, the words “current” and “all” were translated in the lower right corner of the screen. They sent the game back to moderation, only after that it was added to the directory.

12th month - we are looking for like-minded people in the team

Seeing that the players come and play, it made us happy, but not for long. We understood that at this pace we will be developing the game for another five years. Therefore, we began to write ads about searching for like-minded people. First, artists in three-dimensional graphics - from them we learned that modellers create models based on drawings, sketches, sketches. From here we understood that we cannot do without a concept artist.

We talked literally with dozens of concept artists and not one could draw what we needed. And, of course, no one wanted to work on enthusiasm.

In parallel, we studied the modeling itself and tried to create models of boats, etc., it was more difficult to texture the model than to model. We also released the second alpha version, where we changed the map, fixed any bugs, etc.

They also hooked up advertising in the Vkontakte application, hoping that at least hosting will pay off.





13-14 months - development is in full swing

About 7,000 people have already installed our VC game, about 10,000 people in total have played. There were online, which eventually broke our server. There were bugs in the game. The prospect is ahead, I wanted to continue to work on development, but there was less time for development. Work, all things. They did the next update for the game, but the development was very slow, they did very little in two months.

15th month - end of development

There was less and less time, and more and more unsolvable problems, no one wanted to join our team, not a single designer, the artist could not draw what was needed. We did the models ourselves, we painted them ourselves, but we understood that all this would be delayed for a few more years. As a result, the development had to be abandoned. The game still worked for a month or two in a passive, advertising brought a penny, for all the time from the game we received ~ 600 rubles, spent about 500 rubles on hosting, ~ 300 rubles on the domain, and a lot of nerves and time to develop.

Conclusion


You can create a game without having experience in game development, but you need to have a good team, where each team member will do their work. If there are 10 programmers in the team, and no one else, nothing good will come from it.

Again, it is very difficult to assemble a team of enthusiasts, everyone wants to live on something and grab their own piece of bread.

During this year I learned a lot in the field of game development and realized that you need to first write a Design Document, on the basis of which the game will be developed. Without it, you will have a bunch of endless ideas in your head that you will try to realize, jumping from one to another. Of course, we made a Design Document for our game, but only after half a year of development.

In general, developing a game is quite an exciting process. Unlike website development or application and system software, games have something to laugh at. Yes, game development in places is amusing with its bugs. If you have a lot of time and you are tired of the routine work, you can safely try your hand at game development. You do not have to create your own game, you can join some team where, perhaps, it is precisely that you are so lacking.

Source: https://habr.com/ru/post/253268/


All Articles