Как сделать тетрис на unity

Как сделать тетрис на unity

Этот урок возник в связи с тем, что мы делали обзор на другие источники и выяснили, что большинство из них напрямую завязаны на Unity. Мы же хотели бы сделать универсальное и максимально понятное, модульное решение, котороe не зависело от движка и могло быть использовано в любом языке программирования будь то Java, С++

Необходимые знания: двумерные массивы, циклы, создание объектов из кода в Unity

1. Создадим скрипт Tetris и повесим его на Main Camera.

2. Игровое поле зададим 2мерным массивом размером 16×8. Все действия будут происходить именно в массиве, а мы лишь будем визуализировать результат средствами Unity. Необходимо инициализировать его заполнив конкретными значениями, для того, чтобы было проще тестировать наш алгоритм.

3. Объявим двумерный массив из int’ов как глобальную переменную.

4. Следующим шагом будет визуализация нашего массива. Для этого понадобится картинка блока тетриса размером 100×100 пикселей, чтобы в мире размер одного блока составлял 1×1 метр и нам не нужно было масштабировать наши блоки.

5. Из этого sprite создадим prefab. Можно пометить его static для частичной оптимизации.

6. В нашем тетрисе получим к нему доступ объявив публичную переменную
public GameObject pfbBlock;

7. Идея визуализации такова: мы изначально создадим все поле из квадратов, а потом будем включать и выключать их в зависимости от содержимого массива pole.

8. Нам очевидно потребуется получать доступ к этим блока и где-то их хранить. Будем их хранить в двумерном массиве из GameObject

9. Создадим ф-ю Fill, котороя и создаст все игровые блоки и поместит их в двумерный массив allBlocks.

11. Вызовем ф-ю Fill, после инициализации нашего поля.
Если мы сейчас запустим игру все поле должно быть в квадратах. Настройте камеру так, чтобы вы видели все игровое поле.

12. Создадим ф-ю Draw без параметров ничего не возвращающую

13. Вызываем ф-ю Draw в Update;

14. Внутри Draw будем анилизировать наш массив pole и в зависимости от того какое в нем число включать или выключать нужный кубик на экране. Для того чтобы пройтить по двумерному массиву нам понадобится for внутри for сначала по строкам, потом по x.
for ( int y = 0 ; y 16 ; y++) <
for ( int x = 0 ; x 8 ; x++) <
if ( pole[y,x] > 0 ) <
blocks[y,x].SetActive( true );
>
else <
blocks[y,x].SetActive( false );
>
>
>

15. После запуска игры вы должны увидеть ваше игровое поле на экране.

Источник

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Foreword

In this Tutorial, we’ll be implementing our very own Tetris clone. Yes, the russian game that took the world by storm ever since its first playable release on the 6th of June 1984. Our clone will be just as simple, with only about 130 lines of code and two assets while retaining the simple yet highly addictive gameplay. While the game seems rather simple to implement, it still comes with quite a few challenges and will be a great exercise for beginners and experienced users working with Unity.

As usual, everything will be explained as easy as possible so everyone can understand it.

Requirements

Knowledge

Our Tutorial does not require any special skills. If you know your way around Unity and heard about GameObjects, Prefabs and Transforms before, then you are ready to go. And if you didn’t, don’t worry about it too much.

Feel free to read our easier Unity Tutorials like Unity 2D Pong Game to get used to the engine.

Unity Version

Our Tetris Tutorial will use Unity 2018.3 just like the Unity 2D Pong Game tutorial. Newer versions should work fine as well, older versions may or may not work. It’s important that we use at least Unity 2018.3 since it is a recent version of Unity that is widely used by thousands of developers and has everything we need for this tutorial.

Project Setup

Alright, let’s make our Tetris game! We will create a new Unity Project using the Unity Hub. Firstly, we choose a directory to save it in, select the 2D Unity game template and clicking Create. Please note that these screenshots where taken on a Windows PC with Unity Hub 2.x installed. Please adapt accordingly if your Unity Hub looks different from the screenshots shown below.

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

If we select the Main Camera in the Hierarchy then we can set the Background Color to black, adjust the Size and the Position like shown in the following image:

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Note: it’s important that our camera is at X=4.5 because this will be the center of our scene later on.

About Blocks and Groups

Let’s make some definitions so we all know what we are talking about. We will have blocks and groups. A group will contain a few blocks also known as «tetrominos» in the original game, but for the sake of it being easier to remember, we’ll simply call them blocks:
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

There are several types of blocks in Tetris, which are the I, J, L, O, S, T and Z blocks:
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Creating the Game Art

As seen in the above images, we will keep the art style simple. Every group can be created with just one block type with a green, rounded rectangle:
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity
Note: right click on the image, select Save As. and save it in the project’s Assets folder.

Let’s select the block image in the Project Area and then adjust the import settings in the Inspector:
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Note: the Pixels to Units property specifies the size in game.

We will use one more asset for the borders to give the player some visual aid:
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity
Note: right click on the image, select Save As. and save it in the project’s Assets folder.

We will use the following import settings for the border:

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Adding Borders

Alright now that we have the game art all set up, we can drag the border from the Project Area into the Hierarchy twice:
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

In our implementation, the Tetris scene will be exactly 10 blocks wide, and around 20 or so high. So a blocks’ coordinates are always between (0, 0) and (9, 19).

Note: if you count it, that makes it 10 units horizontally and 20 units vertically, starting at 0.

Now the borders should be at the left and at the right of our game, so one of them will be somewhere at X=0 and the other at X=9. Its also a good idea to add some spacing, so let’s select one border after another in the Hierarchy and then adjust the positions and scales like shown below:

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Here is how our borders look like if we press Play:
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Creating the Groups

Okay now it’s time to create the I, J, L, O, S, T and Z groups. To be more exact, we want one Prefab for each.

We can drag the block image into the empty GameObject 4 times, so the 4 blocks are its children:
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Now the trick is to position the blocks so they become the O Group:
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Note: Since Tetris is 2D, we do not worry about the Z axis. That’s why there’s no Z axis in the positions above.

Or in other words: as long as we use rounded coordinates, we will be fine.

Alright, let’s rename the (not anymore empty) GameObject to GroupO in the Inspector. This can be done by selecting the GameObject, and pressing F2 on Windows for Rename or right-clicking and choosing Rename from the pop-up menu that appears. This is how it looks like in the Hierarchy now:
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Now we can drag it into the ProjectArea to create a Prefab:
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

We don’t need it in the Hierarchy anymore, so we can Delete it by selecting it in the Hierarchy and pressing the Delete key on our keyboard, or right-clicking it and choosing delete from the pop-up menu that appears.

We will repeat the same work-flow for the rest of the groups:
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

The Tetromino Spawner

Let’s create another empty GameObject, name it Spawner and position it at the top of the Scene:
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Note: array means that it’s a whole bunch of GameObjects, and not just one.

Now we can create the spawnNext function that selects a random element from the groups array and throws it into the world by using Instantiate:

Note: transform.position is the Spawner’s position, Quaternion.identity is the default rotation.

The Spawner should also spawn a random group as soon as the game starts. This is what the Start function is for:

Note: the Start function will automatically be called by Unity when the game scene is loaded and the Spawner script starts up.

If we press Play then we can see how the Spawner spawns the first group:
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

The Playfield Class

Motivation

The obvious way to check stuff with other blocks in Unity would be by using FindGameObjectsWithTag. Besides performance issues, the major issue with this function is that we can’t really find out if there is a block at a given position. Instead we would always have to loop through all the blocks and check their positions.

The Data Structure

The solution to solve this problem is to implement a grid, or in other words: a two dimensional array (or matrix). You may have heard the term from Math classes during school. The data structure looks pretty much like this:

The x means that there is a block, the o means that there is no block. So at coordinate (0,0) there is no block, at (0,1) there is a block and so on.

And here is how easy we can access a block at a certain position then:

Now we know the answer to our problem, there’s one catch. Unfortunately, if we called our new script Grid, this will likely cause a conflict against a internal Unity class of the same name. So let’s create a new C# script and name it Playfield. It will store the grid itself and a few useful functions to work with it. Here is how we can define a 2-dimensional array in C#:

Creating the Playfield Script

Easy, right? The grid might as well be of type GameObject, but by making it of type Transform we won’t have to write something.transform.position all the time. And since every GameObject has a Transform, it will work just fine.

The roundVec2 helper Function

Our first helper function will round a vector. For example, a vector like (1.0001, 2) becomes (1, 2). We will need this function because rotations may cause the coordinates to not be round anymore. Anyway, here is the function:

Note: a public static function allows it to be accessed by other scripts too. Very useful for helper/utility functions.

The insideBorder helper Function

The next function will be just as easy. It will help us to find out if a certain coordinate is in between the borders or if it’s outside of the borders:

What happens is that it first tests the x position which has to be between 0 and the grid width w, and afterwards it finds out if the y position is still positive.

Note: it doesn’t check if pos.y Group. You will see it appear in the prefab inspector:
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Finally, click the back arrow to leave this Prefab Editor mode. Prefab changes will be saved automatically.

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Note: You need to repeat this for every other block prefab we’ve created. Otherwise you will get an error at play time.

If we press Play then we can now enjoy a nice round of Tetris:
Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Summary

Congratulations! You’ve made yourself a fully functional Tetris clone in around 130 lines of code. As usual, a pretty long Tutorial for such few lines of code.

It might seem surprising how we spent so much time on working on helper functions and how quickly the game was finished without having to worry about anything in the end. This is the magic of bottom up programming.

Where to from here?

Now it’s up to you, the reader, to make the game even more fun. Here’s some ideas that you could tackle:
— Spawn the tetrominos with different colors
— Speed up the game play as you clear lines
— Add the good old Tetris sound effects
— Hold and Next Piece mechanics
— Implement a better game over system with restart
— The possibilities are endless. Make your own variant of Tetris!

For more background information on Tetris, please visit the Wikipedia Tetris article.

Download Source Code & Project Files

The Unity 2D Tetris Tutorial source code & project files can be downloaded by Premium members.

All Tutorials. All Source Codes & Project Files. One time Payment.
Get Premium today!

Источник

2D Tetris Clone Game Tutorial – Unity3D (C#)

2D Tetris Game Tutorial – Unity3D (C#)

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Do you remember the most famous single player game of early 90s? Yes, it’s Tetris. Developed by a Russian engineer, Aleksey Pajitnov, in 1985. Tetris is the 6th most played game ever. We will make our Tetris game in this tutorial.

The goal is to collect moving downward blocks at bottom with no gap in 2D. Game ends when there is no available area for new block.

Before start coding, please create or download your block texture (square) and wall texture. You can find the on google or download images below.

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Open a 2D project in Unity3D and import these images. Cube images size is 32×32, so please edit Pixel Per Unit as 32 which means 32 pixels will be placed in 1 game unit. We need 7 different game object for blocks. Every block is created by 4 independent cubes because we will delete cubes separately when a row is full, not whole the object. By the way, we need J, T, S, Z, L, I, O-shaped blocks as you know.

To create blocks, create an empty game object named Block_J and create 4 cubes from cube image. Assume that there is a 4×4 square and Block_J is at the center (0, 0). Place cube objects in this 4×4 area. Be careful, you must placed cubes on squares perfectly to get best fit on game. You can see an example below.

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Place all cubes in block objects as seen as picture below. Create prefabs (create a Prefabs folder under Assets in Project window and drag blocks) and delete blocks in scene.

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

We will check available area and restricted grid for cube movement, so you don’t need to add 2D collider to boxes and walls.

Create a C# script name SpawnBox and write code below.

Источник

Как я делал Brick Game на Unity3D для Android и получил блокировку от Google

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unityВикипедия: Brick Game («Игра с кирпичами»; также его называют «Тетрис») — игровое устройство, работающее на гальванических элементах, снабжённое несколькими предустановленными играми и чёрно-белым (монохромным) экраном. На таких устройствах практически всегда присутствует игра, аналогичная «Тетрису», хотя вместе с ней часто имеются и другие игры. Существуют разные виды устройств с разным количеством игр.

Я расскажу о том, как (и почему) создавал симулятор Brick Game на Unity3D для Android с тетрисом, змейкой, гонками, танчиками и прочими играми, об эксперименте с монетизацией, а также о том за что Google Play может заблокировать подобное приложение и как его потом разблокировать.

Предыстория. «Тетрисы» без тетриса

Однажды захотел поиграть в Тетрис (сперва именно в игру Тетрис, а не в то устройство, что у нас в детстве называли «тетрисом»). Порылся в Google Play, нашел только две официальные версии от EA games. Поразился количеству бесполезных (по моему мнению) модных фишечек и наличию внутриигровых платежей. В Тетрисе! В целом ощущения были «не те».

И тут я вспомнил о такой штуковине как Brick Game и как на нём здорово было играть в Тетрис. Подумал, что в Google Play наверняка должен быть симулятор, и не ошибся. Таких симуляторов нашлось множество. Я поставил самый популярный и… не нашел тетриса среди игр. Кроме того посреди экранчика из квадратиков красовалось меню из кнопок с современными сглаженными шрифтами, с помощью которого нужно было стартовать игру, переключать звук и так далее. Не реалистично. Странно, миллион скачиваний и такие недоработки. Проверил остальные симуляторы — ещё плачевней да и тетриса нет почти нигде, а там где он есть — реализован кривовато, играть неудобно. Не говоря уже о реалистичности графического воплощения.

В общем решил я заполнить пробел и создать свой симулятор, с хорошим тетрисом и реалистичным экраном, для себя и для всех.

Из Википедии (а позже и на своём опыте, об этом читайте ниже) узнал, почему нет игры Тетрис во многих популярных симуляторах.

В 1996 году предполагаемый автор Тетриса (кстати, выходец из СССР), вместе с неким Хенком Роджерсом (англ. Henk Rogers) создал за рубежом компании The Tetris Company LLC и Blue Planet Software, пытаясь получить прибыль от бренда Tetris. The Tetris Company LLC (TTC) зарегистрировала слово Tetris как торговую марку. С тех пор несколько компаний купили у TTC лицензию на торговую марку. По американским законам, игру нельзя защитить авторским правом (только запатентовать), поэтому основным имуществом компании является торговая марка Tetris. Несмотря на это, TTC преследует клоны игры под именами, непохожими на Tetris. В мае 2010 года юрист TTC послал письмо в Google с требованием убрать с рынка Android Market все 35 клонов данной игры, хотя их имена не схожи с именем «Tetris».

Разработка. Выбор инструмента

Вначале предстояло выбрать между 1) Unity3D и 2) Android + какая-нибудь библиотека либо на голом Android API.

У меня ранее были эксперименты и с Unity3D и C# и с Java + Android, поэтому и рассматривал эти варианты.

1) Плюсы:
+ много готовых функций которые пригодятся для такого симулятора
+ возможность моментально проверить работу приложения в редакторе прямо на ПК

Минусы:
– большой вес *.apk файла — от 20 Мб
– дольше запускается
– прожорливость (батарея садится быстрее, больше греется)

2) Плюсы:
+ маленький вес («платишь» в основном за вес графических файлов)
+ высокая скорость запуска и экономия батареи

Минусы:
– придется писать больше кода (точнее, абстракций, либо утонуть в процедурном коде)
– медленный процесс тестирования на эмуляторе/устройстве

Наверняка не все согласятся с моими оценками, это дело личных умений и вкуса. Я пожертвовал размером и прожорливостью в пользу быстроты разработки и избрал Unity3D.

Разработка. Графическое представление

Начал с рисования скина с кнопками и экраном. Рисовал в векторном графическом редакторе, прорисовал все детали вплоть до каждого кубика на экране и палочки в циферных LCD блоках. Полного фотореализма достигнуть не удалось, особенно с кнопками, но в целом вышло неплохо. Экспортировал в PNG и закинул в Unity, на Quad, в качестве текстуры.

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Позже добавил еще два скина — с большим экраном и повёрнутый.
Скин с большим экраном (может быть удобен на устройствах с небольшой диагональю дисплея):

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Не долго думая, экран решил оживлять с помощью маленьких квадратиков с неактивными пикселями. То есть подложка у меня вся состоит из активных пикселей, а сверху объекты с неактивными пикселями, которым я переключаю видимость, а именно флаг enable. Класс дисплея содержит самый обычный модифицируемый массив из 200 элементов (10х20) (по ячейке на каждый квадратик), работать с ним удобно.

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Помучался немного с расстановкой, возможно где-то и остались небольшие смещения, но их не заметно, ведь самое главное, что активные пиксели, которые ярче, расставлены строго по сетке и это вшито в картинку, поэтому масштабирование (при использовании качественного сглаживания) не должно испортить расстановку квадратиков. Проверил — так и вышло, всё ровно и аккуратно, радует глаз, решение «в лоб» сработало с первого раза.

Вокруг кнопок в ненажатом состоянии есть небольшая тень, для анимации кнопок я добавил маски с дыркой под кнопку и затенением которые появляются при нажатии и делают кнопку визуально вжатой в корпус.

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Коллайдеры кнопок сферические и радиусом чуть выступают за пределы кнопок, чтобы легче было попасть (особенно это актуально для верхнего ряда маленьких кнопок).

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Разработка. Звук

Пока работал над приложением нашел на городском рынке самый настоящий Brick Game, принес домой, и записал звуки нажатия и отпускания реальных кнопок. Многих игроков, кстати, эти звуки раздражали, я выпустил обновление, которое отключает эти звуки в режиме Mute, но даже сквозь пиликанье самого устройства пробивался звук нажатия кнопок и люди просили сделать эти звуки тише. А мне так нравились эти звуки, что не хотелось их приглушать.

Пиликанье сгенерировал заранее простейшим синтезатором (смешал несколько типов волн).

Разработка. Логика

Первой игрой которую я добавил в свой симулятор был, конечно же, Тетрис. Здесь я постарался: симметричная система поворотов, отскоки от стен и пола при повороте, проворачивание на 180 градусов в узком колодце, справедливый генератор выбора фигурки, скольжение после мягкого падения, управление (хорошая отзывчивость в целом, резкое падение двойным нажатием вниз, поворот в обратную сторону кнопкой вверх) и даже знаменитый T-spin вроде бы удалось сделать. В итоге мне было удобнее и приятнее играть в эту игру на своём симуляторе в смартфоне, чем на реальном Brick Game. Не говоря уже об официальном Тетрисе для Android который больше похож на цирковое представление, чем на тетрис (ИМХО).

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

В Unity3D можно использовать C# и все прелести ООП, что я и сделал. Написал базовый класс для всех игр (с банальным названием Game) и добавлял их по одной, наследуясь от этого класса.

Добавил змейку, гонки, еще несколько видов тетриса (например с фигурками из 5 блоков), понг, позже танчики, арканоид… Впихнул туда также парочку несвойственных этому устройству игр: Digger и Bomber. Digger получился сверхсложным и непонятным, но решил его оставить в качестве изюминки.

Сделал стандартную анимацию заливки экрана при проигрыше (с представлением дисплея в коде в виде массива это было элементарно), анимацию взрыва для гонок и пары других игр. К классам прибавились Sprite, AnimatedSprite. Например, каждая фигурка тетриса у меня это Sprite, и после сдвига этого спрайта можно проверять столкновения с игровым полем и реагировать соответственно.

В общем, разработка логики шла как по маслу и спустя месяц с начала разработки я выложил свой симулятор в Google Play. Первая иконка была скриншотом из игры, со временем нарисовал стилизованную иконку покрасивей (пока рисовал, помечтал о приложении с точно таким вот дизайном, уменьшенным экраном и тремя кнопками которых в принципе должно быть достаточно для тетриса и змейки):

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Раскрутка

Из 39 тысяч, лишь пара сотен человек пришли по ссылкам из интернета, которые я оставлял на разных сайтах, посвященных Android-играм. Все остальные — самостоятельно нашли приложение в поиске Google Play.

Монетизация

Вас, должно быть, смутило, что я у себя считаю только скачивания. Как показала моя статистика от постоянных пользователей притока мало, в основном играют новоскачавшие, половина скачавших вообще удаляет приложение сразу или на следующий день, а те, кто оставил — играют настолько редко, что слабо влияет на статистику.

Через месяц я решил выключить рекламу, чтобы не портить приложение. Отмечу, что после отключения рекламы средняя оценка выросла и популярность приложения тоже пошла вверх, пользователи стали отмечать отсутствие рекламы как одно из исключительных преимуществ моего симулятора.

Блокировка и разблокировка

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

4 Октября игру заблокировали и Google Play Support прислали мне письмо о том, что моё приложение “has been removed from Google Play because it violates our metadata policy. This app won’t be available to users until you submit a compliant update.”, что значит — что-то не так с описанием или названием. Никаких подробностей, что именно их не устроило они не сообщили. Мол, читай правила, догадывайся сам, исправляй либо подавай аппеляцию.

Я сразу предположил, что виной всему наличие в симуляторе игры в тетрис и упоминание об этом в описании. Но это же симулятор устройства, в котором всегда был тетрис (в первых Brick Game вообще кроме тетриса ничего не было)! И так уж сложилось, что устройство Brick Game у нас называли «тетрисом» хоть это и неверно, но прижилось, стало нарицательным.

Но всё же достоверно причину я не знал, поэтому ничего не меняя подал апелляцию.

Через 2 дня пришел ответ:

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Перевод: Мы не допускаем приложений с метаданными, которые обманчивы, не имеют отношения к приложению, избыточны или неприемлемы. Метаданные включают описание приложения, иконки, скриншоты и промо-изображения.
К примеру, описание вашего приложения имеет отсылки к Тетрису.
Пожалуйста, уберите посторонние ключевые слова…

Вот такой вот маразм, нельзя писать, что у тебя в игре есть тетрис, даже если он там есть, а лучше вообще его убрать, наверное, чтобы в дальнейшем не было проблем. Можно было бы сэкономить время если бы они сразу написали, что дело в слове tetris в описании.

Подверг описание цензуре:

Как сделать тетрис на unity. Смотреть фото Как сделать тетрис на unity. Смотреть картинку Как сделать тетрис на unity. Картинка про Как сделать тетрис на unity. Фото Как сделать тетрис на unity

Приложение после этого разблокировали. Не исключаю, что в будущем могут влепить блокировку за то, что там есть тетрис на скриншоте или что он есть в самом симуляторе.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *