Alt: City Online. How I single-handedly created "Gta Online" for mobile devices. Part 1

Is it possible in their right mind to swing at such a project in one, and is it necessary at all? Spoiler alert: yes (long post with pictures and videos).







Background



I have been developing software products for 6 years already, I started with developing applications for iOS. After releasing several applications, which brought in about $ 500 in total, I decided to try myself in website development and advertising setup. I worked in this area for 3 years, and I realized that creating websites is not what I would like to do in life.



Since I was very fond of games since childhood, I decided to consider gamedev as a future niche where I would like to try myself. Made a free game on SpriteKit (Apple's framework for creating 2D games), began to get acquainted with tools for game development. I decided to study Unity in detail, as it seemed to me the best option for developing mobile games. I released a simple game on Unity in the AppStore and on Google Play, and naturally 3 and a half people played it. This didn't really stop me, since the goal of developing this game was mainly to get acquainted with the development process in Unity and launch the game on Google Play. These goals were achieved, it was possible to move on. I began to study Unity more thoroughly: 3-4 hours a day I was consistently taking Advanced courses in development. I thinkthat I was lucky - I came across a really detailed and sensible course on creating RPGs in Unity, and a lot, especially various best-practices, I learned from it.



At this time, I came across a vacancy in one large mobile game development company, I decided to give it a try. I worked there for 3-4 months. This was my first job for hire. Before that, he worked quite successfully only for himself. After a certain time, I realized that it was not mine. We must pay tribute - the company provided the maximum convenience for work. And in general, I was struck by how cool in our country (I live in Russia, in a city with a population of one million) there can be a cool attitude towards workers. By no means do I want to say that other companies have a bad attitude, just what I observed is very cool.



In general, after leaving work, I realized that I wanted to try to create a really interesting and unique game (probably the term “unique game” does not quite fit with the concept of a GTA Online analog game, but more on that later). Since childhood, I adored the GTA series - I played dozens of hours on end in GTA Vice City and GTA San Andreas, put mods, twisted the parameters of cars. Then after the release of GTA IV, he did the same with her. Then GTA IV: Episodes from Liberty City, GTA V. And of course GTA Liberty City Stories, GTA Vice City Stories, GTA Chinatown Wars for PSP. I also spent a lot of hours playing other similar games - Saints Row, Godfather 2, etc. Eh, those were good times ...



So, then I got acquainted with various Role Play projects based on GTA. But acquaintance with them, unfortunately, already took place through YouTube, since the work began to take almost all the time, and finding 30 minutes a day for a video is not a problem. I think that RP projects have created a very interesting niche, and generally rethought GTA.



RP projects have created a very interesting niche, and generally rethought GTA


As I said above, my free time was getting less and less, and I wanted to play something like GTA Online / GTA RP on my phone - fortunately, today phones are really powerful, and in theory something like this can be implemented (for example, the same PUBG which works great on almost any device). Imagine my surprise when in the AppStore I found literally 3 games that somehow could be attributed to “analogues of GTA Online”, and even those are terrible. This is how the idea came to create the first analogue of GTA Online for devices based on iOS and Android.



ALT: City Online







Gameplay in ALT: City Online is a mixture of classic GTA Online and its Role Play modifications. At the very beginning of the game, you appear at the starting point (it is assumed that it will be either a train station or an airport). Your task is to find a job and start making money and experience. As you gain experience, you will discover new professions. The list of professions will be wide, and I am now working to make the gameplay of each profession as interesting as possible. Then you can buy yourself an apartment, a motorcycle, then a house, a car, a better car - in general, everyone who played GTA RP is familiar with this. The trick of the game is that in a session, unlike the classic GTA Online, there will be hundreds of people, you can interact with everyone - talk, cause damage, cooperate, exchange things, sell things.







The game will be able to buy weapons, change their skins. Also, vehicle tuning will be available in the game.



But the main difference from RP projects is that ALT: City Online does not have a classic console for such projects, there are no administrators, there is no need to “play RP”. You can, but you don't have to.



The area of ​​the map in the game is about 225 square kilometers, but about a third of the area is covered by water, so the “effective” area is approximately 150-160 square kilometers. Naturally, filling such a large world with content alone is difficult enough, so the game will be filled with content in future updates.







The important thing is that the game will work not only on the latest top-end devices. For example, if we talk about iOS, then the minimum supported device is iPhone 7. In general, the main "bottleneck" of game optimization was the opacity of memory consumption on the iOS platform (this is a known drawback of Unity, with which there is little that can be done at the moment), due to which was quite difficult to optimize the huge open world to run on a small device with 2GB of RAM.





What questions had to be solved



First of all, it was necessary to understand at all, is it possible to implement a mobile online game in a large open world on Unity? Accordingly, a simple generator of the city for Unity, a character controller was bought, free models of weapons and a car were downloaded and the client server was somehow configured (the issue of implementing multiplayer was solved for a long time, since there is no official solution from Unity, and there are many frameworks, and they are very different , I'll talk more about network architecture in a future technical article). A fairly playable prototype was ready two weeks later. That is, a test game server was launched on a virtual server, clients were installed on friends' phones. We connected, played - everything works great for the prototype, everyone is happy. Conducted a stress test, it turned out that the server holds at least 100 players.For the game, this is a sufficient minimum, but in general, the goal is 600-1000 players on the server (that is, there will be so many players in the session at the same time). In general, it became clear that Unity is very suitable for this project.





The most important question was removed, it was possible to start writing the design doc. The first version of the design doc was written in a week. Quite detailed, I must say. More details about the design dock will be in one of the following articles.



Next, you had to figure out what to do with 3D models? And they really needed a lot - buildings, cars, various props, clothes, weapons. And most importantly, how to model the world itself: landscape (terrain), road network, city? I wrote a detailed list of all the objects I needed. I spent a week looking for the right models from the list, and realized that, in principle, everything you need is in 3D model stores.



I will digress - you need to understand that I have been working on the project since December at full time (10-12 hours a day, seven days a week), and I spent almost all the funds set aside over the past years on the purchase of various tools and 3D models. I think this will remove many questions about why “little” time was spent on some stages.



Everything that I wrote above happened in the period from December last year to February this year. I started working on the project in December, that is, in three months a prototype was tested, a design doc was written, and resources were found to implement the idea. The question remained small - to do it all and put it all together.



It is important at the very beginning, even before writing the design doc, to think about how the players will find out about your future game. In my humble experience, the best marketing strategy is to make a really unique cool game. If the game is really unique and really cool, then you have no option for the game to fail. Yes, I know that many are ready to strongly argue with this statement that a lot of money must be pumped into the game in order for it to fire, etc. I'll say one thing - I thought so too. But there were circumstances that showed me that if the game is cool, it will shoot without marketing budgets, and if the game sucks, then no budgets will save it. Therefore, my main marketing plan was to make an interesting and unique project.



The current state of the project



At the moment, I have been working on the game for the ninth month. The project is 85% ready for alpha release. The map has already been fully modeled, the open world has been set up on phones, work has been done on rendering (LODs, various graphics settings, texture optimization, dynamic batching, etc.), the client-server architecture has been configured, and memory consumption has been optimized.



For the alpha release, it remains to finalize the basic mechanics, add works, add content (cars, clothes), add UI and test it all thoroughly.





Screenshots



















Conclusion



Thank you for reading this post to the end. This is my first experience writing an article, so I will be glad to receive feedback. This is the first article in a series dedicated to the imminent release of ALT: City Online. The last article in this series will be news about the release of the game. So please write what you would like to read about in future posts.



A huge request to everyone who is interested in the project: soon we will start open alpha tests online on Android and iOS, so join the VKontakte group to find out when alpha testing will begin. Thus, you will greatly help the development of the project. All testers are naturally entitled to rich game prizes immediately after the release of the project.



Also subscribe to Twitter, news will be posted there, as well as current photos and videos about the development: @AltCityOnline



You can also leave your email on the ALT: City Online website . It will receive a notification when the game is available for download. Everyone who left their email on the site also gets a big bonus when starting the game!



All Articles