Особливістю нескінченної гри є автоматичне генерування карти. Ми вирішили, що вам буде цікаво дізнатися як це може бути реалізовано. Покажемо на прикладі гри “Біжи, кабанчику, біжи” та інструменті Unity.
Ця гра має лише початок, кінець – недосяжний :-). Як це відбувається? Всі об’єкти, які ми бачимо чи скоро побачимо на екрані генеруються автоматично і постійно, разом з рухом головного героя по карті. У “кабанчику” є багато шарів, які, мабуть, не помітні, на перший погляд. Розглянемо їх окремо.
Почнемо з фону горизонту (2 шари гір та 1 шар пагорбів) – нерухомий пейзаж, який не змінюється протягом всієї гри. Далі 3 рівні дерев (дальні, середні, ближні) – кожен з них рухається з різною швидкістю (чим далі, тим повільніше), щоб було відчуття віддаленості об’єктів і руху персонажа. Дальні й середні дерева намальовані на пагорбах, які, як шпалери в кімнаті, постійно підкладаються одна за одною у горизонтальній площині (коли зображення повністю виходить за екран зліва, воно безшовно підставляється наступним за зображенням справа), це дозволяє досягти ефекту нескінченості пагорбів з деревами. Ближні дерева працюють трішки по іншому – на всю ширину екрана випадково розподіляються групи дерев різного типу, далі, в міру руху карти, вони додаються випадково знову і знову справа. Ті ж, які ми не бачимо, просто видаляються.
Далі йде основний шар. Тут біжить кабанчик по платформі, яка теж генерується автоматично справа (перед видимою частиною екрана). Керуючись певними правилами, кожні кілька платформ може виникнути прірва (ми нічого не намалюємо), або з’явитися перешкода (одна з трьох видів). Також, для кожної платформи, випадковим чином “виростає” дерево на передньому плані. Тому може бути, що є багато дерев підряд, або, навпаки, довга ділянка без дерев. Всі об’єкти переднього шару (великі дерева, платформа, вода, перешкоди) пересуваються з однаковою швидкістю, створюючи сприйняття руху героя. Сам же герой постійно стоїть на місці у горизонтальній площині. Лише може рухатися по вертикалі. Уверх – після стрибка. Униз – коли провалюється у прірву.
Таким чином, задаючи певні правила і діапазони, випадково генерується рівень як завгодно довго і варіативно. Але годі говорити, давайте подивимося, як це відбувається: