Creating games with Unity. Work on the bugs in the Horde Attack.


The creation of the first game from beginning to early access on Steam. Subjective opinion about indie development on their own. Share personal experiences, problems which will have to meet. Will affect a future update of your game as an example, work on the bugs.

The game is in early access Steam

So you got it right, game development I'm doing about 10 months of them 5-6 months is a dense study of game engine articles, video lessons and books. One even ordered from Moscow. I live in Kazakhstan, Kapchagai. The remaining 5 months is the development of the game.

I do web design and contextual advertising, but last year decided to gradually change the field of activity to develop games.


First, tired.

Second, web technologies are developing very quickly, but it is popular among large companies. All you need to quickly and cheaply. Most of the work is not interesting and monotonous.

Thirdly, extremely high competition, often dumping prices. Please note in my "deep" comparative analysis of web studios and game studios in Almaty.

Game Studio in Almaty
Game Studio in Almaty

Of course this analysis is a little joke. If web Studio can compete locally, then game developers will have to compete in the global market.

Fourthly, my opinion of the web developer extremely doubtful future in which AI and machine learning to design and draw site write. Especially when you know what's coming the future of personalized pages to the user under their preferences and other factors that the "black box" would consider important. It can afford only very large companies.

Will be a bit of a seer, and I suppose that after 5 years sites for small and medium businesses will disappear or will not be effective. Business will go on large shopping sites including social. network, where it will compete for a price per click or a percentage of sales.

So I decided to start developing games until late.


- The global market;

- A huge audience;

- Major gaming stores, which are all divided and there are relatively clear rules of the game;

- Ability to create and to dream;

- Entry with a good idea without large initial investments;

- AI will get there soon. He knows how to play the game, copy but not create the principle from ideas to implementation. But as far as I know he is perfectly used to increase sales of in-game purchases and ad;

Games associated with modern trends in VR and AR;

I just love to make games!


- The competition;

Why so few cons. Don't want to spoil the mood.

My first game Horde Attack

I will not devote much time to the description of the game and the first draft, which was released in early access on Steam the 15th of September. Run as briefly as possible.

Horde attack is an arcade strategy. There is a playing field where you placed independent cities with different number of soldiers in them. The player is given an army of horsemen, which follows your orders (the target map). You can't manage a particular rider, but all groups. The capture of the city is very simple, if the number of your warriors exceeds the number in the city you capture the city, and he in turn begins to create warriors for your army. Of course the game has the enemy General trying to get ahead of you and destroy.

At first glance it may seem that the main aim of the game is to amass an army and capture all cities. And indeed it is =) But why do I think his game is a set mechanic, which diversify the game. In my game there should be so many, every battle will be unique. And to develop one strategy even with bots it will be very difficult. A lot of unknowns in the game, one of my core principles.

This will be especially noticeable in multiplayer. Be honest. game Balance is not her strongest suit. His absence one of the advantages. The game should be fun. Any claims to this I answer, as one of my favorite characters.

If you have an overwhelming desire to play welcome to Steam

I want to note that early access is now much of what I write will not appear in the next update. Soon around the end of October or beginning of November.

The development of the first version of the game

Previously, I have published 4 articles on the first version of the game's development. Just enter in search "the First game from zero to alpha. Write a history of the development of Horde Attack" and read. Plus many of the themes of the development will overlap with the Chapter on the next update.

For Habra I left the most delicious. The observation and conclusions made during the development process and work on the bugs.

How to release the game on Steam. Personal experience.

After the Horde Attack was Greenlight. Learned the process of preparing the release of the game in early access. This is not difficult, but takes a lot of time. First you need to get the status of IE to be able to sell the game, here it happens quickly. Took about 5-7 days to complete paperwork, receive invoices, and so on. After getting all documents, data must be sent to Steam to check, which takes 30 days.

One of the difficulties encountered is the "amount of information". You have to study the question of taxation, legal issues, licenses, copyrights and all that belong to another country. Some points have to devote much time to study. I did not leave feeling errors, or the correctness of the input information. I'm still not sure I did everything right =)

As a result, after filling out all the necessary forms on 10 July I sent the data on the test and 11 July at 5 am, boarded the plane and with a friend went to travel to 15 cities in the South of Russia. I needed the rest.

The answer about the successful test came on August 5, and returned to Kazakhstan I 7 Aug. Then began the next stage, making the game's page in the store. The feeling is also not easy, a lot of tabs, questions, screenshots. Everything seems very simple, but at the end of the day I was like a squeezed lemon.

Page to the store is checked 2-3 days. And if you're wrong, then you must resubmit for review and expect a response. Once they rejected me. For the second time approved, but asked to make a number of changes to increase efficiency. Those. support Steam friendly, for this they thank you!

The next step is to prepare a build of the game. Here difficulties have been encountered, the Steamworks SDK is quite simple. The check takes 3-5 days. But here I ran indicated that there is Russian language in the interface, and it is not there. Had to move the release for another 5 days.

In the end, the game was released on September 15.

While tested shop and Assembly I have devoted time to the study of materials on the development, optimization, animation. And it so happened that left Unity 2017.1. Spent time learning her chips. A new update is being developed on it.

The game at this point, I was not engaged. But it's not just.

The life cycle of the game

I regularly read Habr and other sites. Sometimes come across articles devoted to the development and production of the project. Most large and small companies are moving to issue openly crude products, which are finished in the process. The main causes are the modern pace of life and the life cycle of the project and second, the cost of testing. Very useful when testing the user and you get feedback. This allows you to conserve resources and to focus on the most important and problematic areas.

For me it is very important. Of my labor resources is the laptop I have. Therefore, full testing, however. I took a risk and released a crude product. Especially when early access Steam is used for this purpose.

I was ready for any criticism in order to obtain qualitative feedback. And got....

What can I say? I'm impressed! Impressed by the game, gameplay, epic spectacle and audacity of the developer.
Start with the last point. The audacity of the developer to be envied. Courage or confidence will not say exactly, I don't know how much more work on the game before release, but so far the game is almost nothing. In the description of a lot of things, but so far there is only demonstration of gameplay!

But overall feedback is positive and useful. Here is a video of the game from Mihailovich

Most people asked for mouse control, more content, more variety of soldiers. OK, in next update will add. a few days after the reviews I have posted a small article with screenshots of the planned warriors. In the Facebook group I got 70 likes and comments.

This is what I have for my game. I'll stick to this strategy.

I hope the article and the game you are interested in and you will leave a huge review with constructive criticism and suggestions.

Promotion of the game after the start

For me, the gaming market is new and many rules, I don't know. So you have to learn by trial and error, the reaction of users and channels of promotion. I have now used social networks, specialized sites dedicated to indie games. All methods of promotion that I use free and cost me only expenditure of your own time. One of my latest achievements on Facebook video coverage of the game 15 092 and 3600 views. About this I have to write later in a separate article, little time has passed and the result is correct not name.

But I ran into one of the phenomena, I hope those who are faced with this problem, share with me in the comments.

After starting the game on my mail or in the chat began to receive letters with suggestions for 1 or more keys to do a review. Or people write that stream to Twitch or Youtube. And they ask for the keys to play your broadcast. For me it is new. And I certainly gave out a few keys to see what it is and how it works. To measure the effectiveness in the end, no wonder I was hooked up to the Analytics page of the store.

About this story in the following articles.

Game update, many things had to think about.

Create warriors and their destruction

As Horde Attack is my first game, then of course I did not know all the intricacies of optimization and features in development. All my experience was based on articles and video lessons from YouTube.

After a while, when I prepared the first version of early access, I gained very important knowledge. In most lessons show the way of solving the problem, but it is not aiming to optimize it.

I felt it when in my game, the ability to generate more than 1,000 warriors. In the Unity editor, the inhibition began when generating more than 300 soldiers. In the Assembly under Windows 64bit. To play comfortably at 800 – 1000.

Video user review on Steam shows that at 1200 it starts a little slow, but with 1 700 to play, gritting his teeth. Another video noticeable problem with NavMesh. Some warriors are frozen for a few seconds.

About this problem I knew before the release on Steam, and in parallel with the development of the studied materials on how it can be solved.

Primarily using the Unity Profiler, I found the problem. Narrow neck in the game is the moment of generation of warriors from the city.

The problem lies in this small piece of code:

Instantiate(warrior, gameObject.transform.position, Quaternion.identity);

What is the problem. The player follows a squad of soldiers. When a player points to the city, the cavalry disappears in the city limits and increases strength.


The amount of protection + the total number in the squad. Assuming that the city owns the player.

When a player leaves the warriors are generated, and at this moment there is a colossal burden. There is the creation of 100 ... 300 ... 1000 objects.

Used this method I because of ignorance and lack of experience in most lessons object creation is performed using this method. And not about what the garbage collector does not say. Only after a while I learned that when a large number of deleted objects is out of memory and triggers the garbage.

In short, the problem was using Instantiate () and memory and the garbage collector.

I sat down to look. Unfortunately, not many sources, which tells about the solution to these problems. But in some articles there is a mention about using the Pool Manager.

The idea of pools is simple. With the disappearance of the object is not deleted, but hidden good SetActive(false). If necessary its appearance we activate SetActive(true). That's all.

I am creating a Pool Manager in the game. Now I can reserve (pre-create) 1000, 2000, 3000 objects for the player and the enemy. Then activate as required the right amount. But because of this adjustment was necessary to return to the level of cubes and cylinders.

Read about the Pool Manager in its books, "Optimization of games in Unity 5" and "the Art of scripting in Unity" and of course search.

Another solution which I have adopted, is the reduction of the load at the moment of generation of warriors from the city. Even with the use of Pool Manager causes the peak load. For a few frames, the computer creates 1000 objects. Therefore, at the entrance to the hidden city the necessary number of soldiers to occupy the city, while others remain on the map.

One of the tips for game creators is to minimize the use of Instantiate () and Destroy() for objects that will be constantly used in the game.

On this I finish this article. In the next article I will continue the story about the other errors, fix them, and future innovations in the game.

Waiting for your constructive feedback about the article and about the game. I hope you will like it.