From a realtor to a game developer 2. “Operation: Android”

    Good afternoon, Habr. You received

    my two previous articles ( one , two ) very warmly and even advanced to the top, so the continuation did not take long. Just half a year, not such a long time. For those who do not know, my name is Tim, I'm 30 years old, I am a realtor and now I'm trying to become a game developer, still not knowing how to program. And how it all goes - I will tell you and show you. The article is colorful, get ready. Come under the cut, welcome.


    Crowdfunding is not a panacea

    Those who read my previous article know that I was developing my PC game - Shadows of Forwood. To be more precise, I created a very small demo version with a description and put it in the public domain wherever my hands reached. I worked on the project alone, so I solved all the difficulties myself. And so, at some point, it was decided to use a crowdfunding platform to raise funds for development.

    No sooner said than done, the project was sanded and launched on one of the domestic platforms. The requested amount was not very large, but not small - 360,000 rubles. According to my calculations, this would be enough to complete the game before the end of the year. Unfortunately, the required amount was not accumulated, by the end of the term I had barely crawled to the mark of 70,000 thousand, but this was not a surprise to me.


    I’m an adult and I perfectly understood that the chances of success here are very small, so I was ready for such an outcome even before the search for a crowdfunding platform. However, I continued to develop Shadows and am working on them to this day. You could even say that now I relax a bit when I sit down for this project and bring it to mind. There is something beautiful about this darkness of medieval dark fantasy.


    In the failure of crowdfunding there were pluses. Since I had no obligations to investors, I decided to shift the main focus to a few simple projects. Well, what could be easier than a mobile game dev (this is a joke).

    Android and BDSM

    If you need a genie to fulfill your wishes, Unreal Engine 4 is the right choice. When starting work with the Android platform, I decided to step on the same rake as at the beginning of my journey: create a clicker. This time the decision was deliberate, and the clicker became a remake of my first craft. I can’t name it as a game, this project was needed to understand my capabilities and UE4’s performance on a mobile platform.

    I can say that I did it. All the planned functionality was implemented without any problems, but the performance is the bottleneck that I will get into so many more times. And already rubbed more than one callus.


    Thanks to this project, I understood the work pipeline on Android. The most difficult problem here is, as you might guess, optimization. There were a lot of guides on the network telling about how to reduce the load on the user's phone: how to set lighting, adjust materials and effects, how to optimize HUD. Having thoroughly digested all this, I immediately set to work on the next project.

    Dungeon Trails became a toy in which I tried to apply all my little accumulated experience. No complex materials, only a single-text unlit, no lighting or procedural shadows (there is no and will not be a single light source on the entire playing field), no complicated \ per-frame functions.

    The result is, as they say now - not great, not terrible. At least this product I can call a full-fledged game for the phone. And my audience liked it. Simple mechanics of a card game, some music, special effects, randomness and voila. I won’t insert links, it’s not difficult to find it on Google Play.


    In terms of content, this game turned out to be very inexpensive: it took about $ 150 to do everything. One set of monsters, one set of icons and effects, several music tracks. The idea of ​​drawing everything myself quickly went into the scrap, I did not want to spend too much time. On the playing field there are several meshes of 6-12 polygons. The volume of the application is about 50 megabytes. Without music - 35+ megabytes. It is quite compact.

    But in terms of performance, everything is not so cloudless. I continue to simplify the blueprints and throw out everything that is unnecessary both from the game and from the memory, but there is still room for improvement. In addition, some phone models sometimes throw surprises and they also need to be dealt with.

    David and Goliath

    And yet simple card games are not the result that I was counting on. Even on mobile platforms, there are projects that cause me the shadow of an envious smile and the desire to utter the phrase of Zohan: “I will destroy you!”. For example, The Elder Scrolls: Blades or simply Blades from Bethesda.

    That is why I have in the cap of the magician there are still projects that I am working on now. One of them is Blades rival, so far, however, without a name. Games like “Legend of Grimrock”, “Darkest Dungeon” and, in fact, “Blades” pushed me to create it. I want to realize their killer mix very soon.


    Endless, procedurally generated dungeon rooms, loot mountains, craft, character and small village development, a stack of mini-games and much more. At the moment, this is the most difficult Android project for me (and much more complicated than “Forwood Shadows”), but the appetite has come and needs to be quenched. Now the project in deep alpha, however, works stably on a smartphone.

    The big problem for me was the use of Point Light in these very dungeons, because UE4 has very strict restrictions on their number. But I used this to my advantage. Searching for a light source will become one of the features of the game. In general, development for Android turned out to be a real festival of compromises. Such a colorful festival, with fireworks.

    But not everything is so cloudless in this kingdom.


    What kind of word, huh? Immediately you feel smart. When I was just starting to learn UE4, I came across the following topic: "Do not start working with Unreal Engine 4 if you are not ready / unable to learn." It seems to me that this phrase should be above the “Download UE4” button on the official website. I love to read and read quite a lot, but never in my life have I had to read / watch and understand as much highly specialized literature in different languages ​​as when working with this engine.

    Initially, the level of problems that I had was associated with typical errors, unoptimized drawings, or banal carelessness. All these problems were solved by a simple search on Google or Youtube. Three to four months later, these problems were left behind, and I moved to the second level of Troubleshoot.

    Now problems arose when working with materials, building complex drawings, and displaying errors of the engine itself (rather rarely). To solve these problems, Google and official documentation were still used. This stage was the most painless, since at that moment all my difficulties were standard for most UE4 users. It was almost always possible to stumble upon several solutions to any problem, painted in full detail and with explanations. As a result, I significantly enhanced my understanding of English and the engine itself.

    The most difficult stage for me was the third (current stage). Now I can solve almost any problem without opening a browser page or documentation, and my main headache is the errors / limitations of the engine, which it throws at its discretion. But I also learned to fight them. For example, the worst thing that UE4 can throw right now is the “Line: 107” error. At some point, the engine may damage one of the files (or lose a link to it) .uasset or .umap, after which the project will simply stop opening or will crash during any operations after opening.

    This problem is solved simply, but not painlessly. There are exactly two solutions.
    First: remove assets from the project folder in turn and wait for the project to open, thus isolating the broken asset, deleting it and re-creating it.
    Second: take the previous backup of the project and modify it.

    The first option may be useful if the project is small, but if the project is large and there are no actual backups, then ...


    Therefore, having learned from my bitter experience, I prefer an almost daily backup and the second option.

    The remaining errors that occur during work are so rare that at best you can find 1-2 open topics created a year and a half ago without any solutions. You have to spin yourself. Tiring, but from this I get a strange feeling of satisfaction.


    Six months have passed since the publication of the previous post, I finished two small projects and am working on three more. The same "Shadows of Forwood", "TES rival: Untitled Blades" and one space-themed project. The number of hours spent behind the engine can no longer be counted; I am doing this business as I wake up until late at night, until my eyes begin to hurt.
    And still get a feeling of deep satisfaction every day. Although it comes to the point that even in a dream I see the most optimal solutions for some drawings (clinic, as they say).

    If we talk about plans for the future, then I want to finish my projects and go look for a job or a part-time job as a game designer (student). Actually, this all should become my portfolio, I hope it will be enough.
    I would never have thought that a simple desire to make my toy would lead me to such an interesting and at the same time tiring life path.

    By tradition, I have a group on VKontakte , where I share news every week, and sometimes more often. If you are suddenly interested in something or know an interesting job, then welcome. And I’m going back to development and getting ready to answer questions if you have any :)

    Also popular now: