772

Делаю я тут игру..

..но внезапно закончилась мотивация. Так что представляю на ваш суд что есть на данный момент.


Гифочка для интереса (тяжеленькая, плохо сжалась):

Делаю я тут игру.. Gamedev, Мультиплеер, Star Flare, Шутер, Гифка, Видео

Идея родилась (стырилась из малоизвестной японской игрули) уже давно, суть игры такова: это мультиплеер с видом сбоку, где игрок управляет кораблем, но не может управлять прицелом, т.е. только выбирает когда стрелять.


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


На данный момент что-то мой запал разработки подутих, т.к. никому, кроме пары друзей, про игру еще неизвестно, и мне хотелось бы получить от вас, ребят, некий фидбек - интересно ли в такое будет играть, или нет.


Свеженькое видео геймплея прилагаю:

P.S. В планах сделать систему прокачки (опыт за бой) кораблей и добавить 20+ пушек с возможностью апгрейда, из которых на корабль можно будет вешать только три.

Найдены возможные дубликаты

+37
Выпустишь игру на мобилки - куплю. Даже то, что сейчас увидел вполне играбельно и драйвово
раскрыть ветку 9
+17

Спасибо :)

раскрыть ветку 5
+8

очень, очень годно)

+2

Подскажи что за трек в ролике?

раскрыть ветку 2
+2
На любую игру всегда будет свой игрок.
+3
Большинство тех, кто говорит: "сделай то и сделай это то куплю" в итоге не покупает. Проверено многолетним опытом многих людей
раскрыть ветку 2
0

Дык а я не говорю мол сделай это и это и тогда куплю. Я говорю, что выпусти игру даже в том виде, что она сейчас, на мобилки и я куплю её по цене мобильной игры в 2-4 бакса.

0

ИнтереснО, почему? :) Игра к тому же, еще и бесплатная будет)

+11

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

раскрыть ветку 16
0

Ултимативный выстрел - это классно. Типа если не попал - твои проблемы, жди ещё секунд 20 и бегай от оппонента.

0

Хорошо, я внесу тебя в список))

раскрыть ветку 14
+2

можно еще сделать групповые бои. Например 5 vs 5. или 3 vs 3.
можно еще сделать роли у кораблей. Например на одном корабле будет 1 пушка, но 2 модуля которые могут лечить в радиусе союзников.
на мой взгляд отлично приманивает людей какая то штука которую можно отстравивать. напрмер бои само собой, но в в боях получать какие то очки или ресурсы, а между боями обустраивать свою базу на астероиде например ).
и т.д.

раскрыть ветку 7
+1

Можешь и меня в список внести) Не зря тестировщиком работаю.. :)

+1

добавь меня в список) идея реально крутая, есть какая- то своя фишка)

+1
и я тоже хочу!
+1

Добавьте в список, пожалуйста :)

Идея крута.

+1

и меня

0

а меня можно? я , правда, так себе тестер

+46

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

раскрыть ветку 1
0

Господа, все, кто хотел поиграть, я сегондя запустил сервачок, можете заходить на вечерний сеанс :) http://pikabu.ru/story/delayu_ya_tut_igru_2_4749588

+17

На мобильную платформу очень было бы не плохо. ПК версия, я думаю, не взорвет рынок

раскрыть ветку 37
+3

А почему бы и том числе не ПК?

раскрыть ветку 36
+19

Миллион аналогов которые не пользуются популярностью. Интерес у аудитории сейчас вызывает игры исключительно двух категорий:

1. Острый сюжет с крутым движем и графоном. Те синглы от которых останутся впечатления.

2. Те игры, которые могут представлять под собой киберспортивную дисциплину, ибо это направление уже официально прокличили "спортом" и с дикой яростью и рвением набирают обороты.

Все остальное просто не играбельно для основной аудитории. И опять же, очень сильно играет тот факт, что таких убивалок времени на ПК миллион, причем даже в формате flash в браузере, которые и качать не надо. Если собираешься делать игру для офисных товарищей которые пытаются скоротать время когда начальник по делаем уехал, то возможно конечно игра и будет пользоваться каким то спросом в узком кругу. А задумка очень не плохая и судя по видео реализация соответствует задумке, а значит есть качество. Подобных игр очень не хватает на мобильных платформах. Ваша цель, как я понимаю, убивалка времени и 99% людей которые хотят игру такого жанра, качают ее на телефон. В этом и разница между ПК и мобилой. ПК для более тяжелой версии развлечения, в игры на ПК люди хотят погружаться, а в игры на мобильнике люди заходят скоротать время. Отсюда я и делаю вывод, что игру этого жанра можно квалифицировать именно как "убивалку времени" где наиболее вероятно обретет успех на телефонах.

p.s.: Ни в коем случае не хочу оскорбить проект и не говорю, что мое мнение единственное и правильное, делайте ровно так - как считаете нужным, это всего лишь единичное мнение.

раскрыть ветку 19
+4

Не слушай его, на ПК будет вполне востребовано людьми, поддерживающими в основном gamepad-игры

+3

Если будет стоить до сотки я у тебя куплю пк версию, и подсажу на неё кого смогу. Думаю интересно будет если кроме видов пушек стреляющих по разному будут разные типы снарядов например те что взрываются с интервалом после залпа или при взрыве малый сплеш но разлет мини снарядов без сплеша. Прокачка пушек и\или снарядов должна быть обязательно деревом противоречащая друг другу тогда люди будут делать билды что сильно повышает реиграбельность. Улучшение одних характеристик должны угнетать другие так сказать. Больше брони меньше маневрености, сильней двигатели больше инерции, больше максималка дольше разгон с места, больше урона меньше скорострельность\скорость полета пульки. Области рельефа которые работают для лучей как зеркало, рикошеты выстрелов от каких нибудь поверхностей или щитов, анти ракеты и самоноводящиеся ракеты с предсказуемым полетом который можно легким маневром обмануть\короткое время пребывание ракеты после произвольный взрыв, залпы чего угодно очередями которые не остановить после клика. Тогда будут ситуации поджигающие пукан:) тоже самое с ускорениями если включил то не остановить и например управляемый расход ускорения но слабая мощность относительно не управляемого ускорения. Щиты заряжающиеся сами слабые и  заряжающиеся только на особых местах сильные, перераспределение энергии от двигателя к щитам путем скажем зажатия клавиши и прокруткой скрола с наглядной шкалой показывающей как ослабеет маневреность и возрастут щиты, вообщем так чтоб быстро чтоб только спиной мозг работал. Щиты дефят только лучи сплеш взрывов\взрывы, но пропускают огнестрел (пушки типа, пулеметы там) но броня дефит от огнестрела... броня занимает пространство корабля следовательно нет места реактору, нет большого реактора нет сильных щиов, мины! мины должны выбрасываться с инерцией так чтоб было пространства для элементарного скила игрока! мины которые замедляют скорость передвижения, мины которые вырубают щиты, мины которые создают на пару сек препятствие или отражающую поверхность! Ну естественно мины класические в том числе с таймером устанавливаемым игроком. Вооружение должно быть оочень ограниченым 2, 3 ствола и всё! Активных модулей должно быть до 2 ну типа ускорение, перезагрузка щитов, починка. есть ещё над чем подумать это первое что пришло в голову! Ну и  ПВП режим, редактор карт, микротранзакции на расходники ченить и внешку. ААА я хочу эту игру! Ок если это всё будет реализовано я согласен раскошелится гораздо серьезней :)  

раскрыть ветку 5
0

Да потому что на пк играют в сложное,а в мобилке типа -нажал поиграл пока ждешь  автобус,вышел.

раскрыть ветку 8
+7

клево, схемы вращения пушек разные будут?

раскрыть ветку 8
+3

Вращение всегда одно и то же, скорость постоянная, прицелов всегда два. Однако есть мысль вывести в настройки корабля (в гараже\ангаре) направление вращение - по или против часовой.

раскрыть ветку 7
+10

Зря, с разным кол-вом прицелов, разной их формой (спираль, зигзаг, дуга) разной скоростью вращения (причём независимые прицелы для пушек) на мой взгляд было бы куда интереснее)

раскрыть ветку 4
+2

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

раскрыть ветку 1
+4
Дерзай, потом на андройд портируй, может и даже не плохо подзаработаешь)
На какой платформе делаешь кстати
раскрыть ветку 5
+3

Пока винда.

раскрыть ветку 3
0
В смысле unity, gamemaker, etc...
раскрыть ветку 2
-10

андройд.

Иллюстрация к комментарию
ещё комментарий
+5

нормас)я бы поиграл

раскрыть ветку 1
+3

Игра будет бесплатной? :D

раскрыть ветку 3
+4

Да, free to play с монетизацией через скины для кораблей (и мб чего нить еще).

раскрыть ветку 2
0

Выпускай на android ios бесплатно ,добавляй в конце io ,делай браузерную версию ,раскручивай .

раскрыть ветку 1
+3

Пили, поиграем)

раскрыть ветку 1
+3

Клевая штука, в свое время чуть не расхерачил мышку вот с этой игрушки: https://www.youtube.com/watch?v=1mYp5oJlO3w

По видео эффект схожий думаю будет, подписываюсь и жду новостей)

раскрыть ветку 5
+2

Воу, чувак, спасибо тебе за то, что напомнил о этой игре. Очень давно играл в неё, тоже понравилась. Я хоть и не искал её т.к. забыл о ней, но после просмотра видоса появилось сильное желание вновь в неё сыграть. Держи плюсик ;)

раскрыть ветку 4
0
Береги мышку:-D
раскрыть ветку 1
-1

как это так - напомнил?) Я ее только сделал!) Или ты имеешь ввиду старую, японскую, под названием Kuro Kuro Ufo? :D

раскрыть ветку 1
+3

довольно интересно, я бы с удовольствием поиграл в нее в офисе, а если еще и до мобилок дойдет, вообще цены не будет) работай, тоже хочу опробовать) запускай сервер

раскрыть ветку 6
+3

Насчет мобилок не уверен, но на планшете точно можно сделать.

раскрыть ветку 5
+1
Мне кажется, что на консолях бы пошло здорово. Обязательно добавь поддержку геймпада, очень удобно было бы. Если решишь институт, занести меня в список :) А если попробуешь как то свою игру на консоли запили то, напиши тогда пост, о том как туда игры вообще попадают.
P.s подписался, жду новостей :)
+1

тоже отлично) буду ждать)

0

Топовые мобилки уже почти не отличаются железом от планшетов, нужно будет подумать над оптимизацией - порезать качество текстур в основном и избавиться от тяжёлых алгоритмов в апдейте. А картинка и геймплей очень привлекательно выглядят!) Не думал о сотрудничестве с издателями?

раскрыть ветку 2
+3

доделывай разное оружие, добавляющее "лучи" и дающее выстрелы, летящие по спиралям например (а-ля touhou)

Иллюстрация к комментарию
+2

классная идея ,меня достаточно сильно зацепил геймплей
если вдруг нужна помощь в коде или написании шейдеров. готов оказать всяческое содействие)

раскрыть ветку 1
+1

оххх, от шейдеров не откажусь :)) напиши сюда https://vk.com/starflare или сюда https://vk.com/agentfire

+2

Да, будет отлично. Дорабатывай до ума, будет второй Orbital Gear. Надеюсь в отличии от него игра взлетит.

раскрыть ветку 2
+2

А он-то что не взлетел?

раскрыть ветку 1
+2

Отсутствие рекламы и скидок на старте, в основном. Ещё не было одиночной кампании, и не очень удобные сервера.

+3
мультиплеер с видом сбоку

но если подумать это также можно разценить как и вид сверху

Иллюстрация к комментарию
раскрыть ветку 3
+1

учитывая как падают тени, мне кажется это и есть вид сверху)

раскрыть ветку 2
0
Это, блядь, космос. Вы хоть понимаете о чем говорите? Какой там вид может быть вообще?
раскрыть ветку 1
+2

Интересненько

+2

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

+2
Неплохо.
+1

Мне нравится, где покупать?

раскрыть ветку 2
0

Нигде, бесплатная будет :)

раскрыть ветку 1
0

отлично, жду! Можешь выставить что-то вроде помощи проекту, где будут твои реквизиты. Уверен, многие поддержат)

+1

Идея очень интересная! Раскидал друзьям и сам в ожидании хоть какого-нибудь релизика.

+1

я так понимаю, игра будет клиентская, а не браузерная.

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

с технической же точки зрения не знаю, насколько это реализуемо =)

+1

Игра отличная. даже то что уже есть. Но мне кажется не стоит целится на ПК. Лучше всего: Мобилки/планшеты, соц сети, веб версия. Это чисто мое мнение.

раскрыть ветку 1
0

Можно и туда и туда)

+1

Идея действительно неплохая. Я думаю, что из этого получится годная "времяубивалка". Как вариант неплохо было бы добавить покачивания кораблям, при изменении направления движения. Если непонятно что я имею ввиду, то могу привести пример из другой игры =) Удачи ;) P.S эффекты выстрелов зачётные)

раскрыть ветку 1
-1

Насчет покачиваний все ясно, такая идея уже есть и она запланирована) Спасибо:)

+1

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


Ну а если просто отзыв, то, я определёно бы потратил на игру своё время и деньги)


Вот скрин со шкалами

Иллюстрация к комментарию
раскрыть ветку 1
+1

Спасибо за подсказку, ты прав, шкала куда удобнее, попробую реализовать :)

+1

Годно, не забрасывай его)

+1

Прикольная игруля, я б залип!

+1
Очень круто, но проработайте музыкальную составляющую. Создайте атмосферу с помощью музыки, а так желаю удачи и сил.
раскрыть ветку 1
0

Спасибо большое :)

+1

Не бросай ! Просто , но захватывает .

+1

Ох. С радостью поиграю как выйдет. Ждемс.

+1

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

раскрыть ветку 1
0

Ракеты уже есть (оранжевые которые), и они, вообщем-то, если присмотреться конечно, уже рикошетят от камней :)


По поводу бомбы... ну, синяя сфера как раз ее роль выполняет :) Взываешь ее мануально, прочем.

+1

Зачетно хотелось бы  альфа бета тест покатать. Выкатывать на тест не собираетесь если да аудитория пикабу вполне такие тестеры волонтеры. ну там и фид бек с идеями от тестеров попрет.

+1

Не останавливайся! Я в это буду играть)

+1

Кхм, а не плохо. Можно добавить рандомный баф/дебаф

раскрыть ветку 2
0

Дебаф уже есть :) У каждой пушки - небольшой.

раскрыть ветку 1
0

Ну было еще интересно, когда ты подбираешь скажем баф под знаком вопроса и получаешь неуязвимость/дамаг/скорость/скорость полета снаряда на 2-5сек  или же наоборот) Всегда нравилась этакая рулетка.

+1

Я б тоже поиграл. Как во флешку на пк ради расслабления мозгов после рабочего дня - просто за милую душу. Или приложением на андроид, как выше писали. Геймплей самобытный, по крайней мере, идею раньше не встречал, это привлекает.

+1

Вопрос как от Unity Developer'а. Как делали мультиплеер? Встроенный Unity Network даёт мало CCU. Аналогично Photon. Тут или ставить Dedicated Photon Server или писать свой?

Делали какое-то нагрузочное тестирование?

раскрыть ветку 3
+2

Использовал Lidgren.Network вкупе с собственным RPC поверх него.

Тестов пока не делал, но сам по себе Lidgren вроде бы проворный. Т.е. основная нагрузка на мне будет лежать :)

раскрыть ветку 2
+1

Т.е. у вас написанный свой сервер, который крутится на отдельной машине?

Тогда удачи вам, если ваша игра станет популярной, в борьбе с нагрузкой на сервер)

Обязательно потом напишите бота-"эмулятор клиента" чтобы нагрузить сервер 10-20 тысячами "клиентов" которые пытаются найти игру и сделать имитацию сражения.


Удачи в разработке :)

раскрыть ветку 1
+1
Круто, будь такое на телефоне я бы купил
+1
Я бы купил
+1

Боже я хочу её !

Иллюстрация к комментарию
+1

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

+1

В инди-игры не играю, но над геймплеем залип на 5 минут, особенно понравилась "тень" астероидов)

раскрыть ветку 1
0

Это не только тень, но и туман войны - за ним ничего не видно. Он, может быть, и действительно неплох, однако требует шейдер 4.0 или выше :)

+1

Я за.

Как идею могу предложить разбивать камни(или просто толкать их). Возможно - до определенного масштаба, возможно - отдельным орудием, которое не нанесет урон кораблю противника при попадании.

Впечатать астероид во врага - отменная тема :)

раскрыть ветку 1
0

Этого пока нету, да, но зато уже можно впечатать врага -> в астероид :)

+1
Винда? Или Андрюша тоже может быть?
раскрыть ветку 9
+3

Винда. Возможно, ведроидные планшеты, но на телефонах уже сложновато будет управлять.

раскрыть ветку 8
+1
Ok! Tnx!
+1

Слева стик движения, справа кнопока выстрела. Изи же.
Клевая идея, мне нравится, но первая мысль, которая в голову пришла - что это более игрушка для мобильных устройств, чем десктопная.

раскрыть ветку 6
+1

Ну, вообще тут 3Д, но я, походу, пока что не очень хорошо это показываю.

+1

круто!тему приподымите

+1

где качать??

раскрыть ветку 10
+6

Игра пока не готова к пикабу-эффекту, я еще не тестировал свой VDS на больших нагрузках, но если будет интерес, то я посмотрю че там как, запущу сервер и выложу клиент в доступ вам на "попробовать" :)

раскрыть ветку 9
+3

С удовольствием приму участие в тестровании

+1

По-хорошему, клиент бы распространять через p2p. Но для старта, естественно, нужны прямые линки на инсталлятор и torrent-файлы инсталлятора. Какими мощностями обладаете сейчас? В теории, могу замутить для сайта вашего проекта VDS либо бесплатный вообще (если договорюсь с коллегами) либо с адским скидосом.

+1

я б с радостью попробовал такой вот пирожок вкусный =)

+1
пили поддержку сети и возможность свой сервер запускать. а вообще из идей - не только оружие разное, но и скорости вращения орудий, возможность менять направления вращения (для тактики полезная штука, но тут откат нужен большой, иначе баланс убьется сразу). как вариант снаряды которые будут лететь не по прямой, но по фиксированным траекториям (по дуге, синусоидой, разрывные, разлетающиеся на осколки меньшей мощности и тд), всевозможные рывки, кратковременные невидимости и телепортации на небольшое расстояние (но опять же каждая из подобных способностей навешиваясь дает условие -1 оружие)   впрочем чего это я, уверен идей и так хватает и без меня)
раскрыть ветку 4
0

Нам нужно играть! Срочно!

0
Похоже на Ori and the Blind Forest, только в космосе
0
Круто, продолжай дальше!!!
0

Обращайся, если нужно постримить на большую аудиторию

0

Я бы не стал играть.

Не потому что игра плохая а не интересная для меня.

Я считаю что таким играм не хватает вызова игроку...честного хардкорного вызова а не казуальной динамики на реакцию.

На мой взгляд тарелкам не хватает физики тяги...наподобии как в Monkey Lander

0
Если она будет онлайм с масс пвп это будет оч круто. Круче только онлай литтл старс фо варс
0

сюда бы фоновая музыка в стиле игры "Vectorman" подошла)

раскрыть ветку 1
0

Я больше смотрю в сторону музыки типа Unreal Tournament, там она даже покруче вектормена

0

Допили до конца и в стим. Задумка с вращением пушек оригинальная, думаю игра найдет свою аудиторию.

0

Крутняк! Добавить режимы сварм, тим десматч, модификаторы прицела, с количеством очков, убили сбросился. Мужик, доделывай. Вспомнил солдат и косм рейнджеров!

раскрыть ветку 2
+1

Все помню! Все делаю :) А как же захват флага? А эротишное "двойное доминирование"?? :) енто ж мое любимое)

раскрыть ветку 1
0

Удачи тебе и сил доделать все до конца!

0

Красиво, но я бы играть не стал.

раскрыть ветку 2
0

А почему?

раскрыть ветку 1
0
Просто не люблю такой тип игр, не конкретно эту.
0

Ну я наверное самым злобным критиком буду.

Расчитываю что кто-нибудь выпустит игру типа Космические рейнджеры 2. С сюжетом (можно и без видео вставок просто грамотный текст и пару картинок для атмосферы игры), большой картой и босами. Нужны миссии.


ТС - то что ты сделал это не очень. Вот например  Astroflux - armorgames.com/astroflux-game/15181  

раскрыть ветку 2
0

Ну, я ж еще не доделал игру :)

раскрыть ветку 1
0

Я немного не об этом написал. Я про идею игры.

0

А есть такая же, но только чтобы управлять астероидом и уворачиваясь от сбивающих тебя кораблей, пытаться уничтожить планету?

0

Добавить нейтральные корабли. За попадание в них или столкновение с ними штраф.

раскрыть ветку 1
+2

Уже есть такие) только это не корабли - а специальные ловушки - они отражают в тебя твой же патрон) ну, и снимают хп при столкновении)

0

По поводу механики: как дополнительная фича это смотрится, а как основа геймплея - честно, не очень. Хотя, пока не пощупал, сложно судить. Несмотря на многочисленные отзывы здесь, что надо на мобилки - подумай несколько раз, там даже в плоскости управлять сложно. Тех, кто это умеет, не так уж много, т.е. это заведомо уменьшение потенциальной аудитории.
И онлайн тоже реализован уже? По идее это самая сложная часть) Если да - моё уважение ^)
UPD инерцию кораблям было бы неплохо добавить

раскрыть ветку 3
+1

инерция уже есть, просто когда я играл, то уже на автомате ее компенсировал. онлайн ты как раз на видео и видел) уже можно хоть в вчетвером играть.

раскрыть ветку 2
0

а можно попробовать отрисовать интерфейс для игры?
хотел бы с вами связаться и пообщаться на эту тему, если интересно.
skype: y3s.man

e-mail: vsaer@yandex.ru

раскрыть ветку 1
0

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

раскрыть ветку 1
+1

Кикстартер не работает с Россией.

0
А под какие платформы?
0

музыка не оч.( ппк вспомнил, а это было очень давно

-1

Идея в основе лежит очень неплохая и поэтому я честно опишу что можно с ней сделать:

1) Доработать размер карт.

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

2) Оружие.
      Не бояться делать "вундервафли", игра не киберспортивная дисциплина как старкрафт, а правильно (красиво прорисованный к примеру плазменный луч на "четверть экрана")  реализованое имбаланское оружие добавит желанной динамики "убегания" всей командой от хозяина этого ствола.

3) Рационально выбрать ОС для релиза.

      Тут был комментарий об андройде и это очень правильный выбор ОС т.к. выпуская игру которую вы описали вы сталкиваетесь с вашим главным врагом (нет, не ноющими на форумах пользователями) - конкуренцией.  Мощность инструментов доступных для разработки игр на ПК позволяет очень легко сделать подобные игры небольшому коллективу из нескольких людей  (5-10) в сжатые сроки и качеством превосходящим ваш продукт...

     Это ставит всех "одиноких волков" в очень неприятный угол и навязывает ультиматум - ты делаешь то что не было сделано до тебя и имеешь успех, ты делаешь что то лучше чем все остальные по приемлимой цене и имеешь успех или опускаешься в пучину себе подобных и загниваешь на 50000й странице в стиме. К сожалению это брутальная реальность.

     Андройд-ОС же рынок довольно дикий не смотря на обилие игр, многие инди еще "подключаются" к нему и возможность выделиться из толпы сделав проект вашего класса легче т.к. конкуренция меньше (за одно и цены - 250-400 рублей за качественный продукт на Андройде отдать мне не жалко в сравнении с 2000 рублями к примеру за последний Дум на ПК как бы он не был крут в плане музыки, одиночной кампании и игровой механике ввиду того что ценник немного завышен, а игр с большим потенциалом за 2000 рублей гораздо больше.).



Начните с андройд-ОС, выложите качественный продукт и обязательно назначьте за него цену (я лучше заплачу 300-400 р. за хороший продукт без рекламы чем буду терпеть унылую бесплатную копию которая не допилена и еще имеет рекламный баннер после каждого выстрела или промаха) - вас будут уважать за это.


Но, не повторяйте следующих ошибок:

1) Недоработанная в мелочах игра выставленая за высокую цену "лишь бы выставить".

     Проект должен быть "цельным", все мелочи по возможности отполированы, графика выведена на компетентный уровень и геймплей не должен вводить людей в сон.
     Недоработанный проект ЗЛИТ пользователя, портит вашу репутацию и следовательно ваши будущие проекты будут воспринимать очень критично. "Усыпите" бдительность пользователей качеством контента и вас будут любить.


2) DLC-мания.

     DLC это DownLoadable Content, или же скачиваемый контент который вы позволяете пользователю купить за определенную сумму и это хорошо... когда вы учитываете такие факторы как:

   2.1) Цена - В мозгах некоторых разработчиков, если твоя игра стоит 60 долларов и ты выпускаешь "пушку для Главного Героя" которая ни выделяется ни чем по ТТХ среди имеющегося арсенала - назначай цене в 5-7$!!!  Это не верный подход т.к. 60/5 = 12. Вы должны предложить контент в размере 1/12 части игры при стоимости DLC в 5 долларов и стоимости игры в 60 долларов. Это аксиома.
  2.2) Качество - Пользователи современные, "прошаренные" чувствуют свинью подсовываемую разработчиком на еще этапе ценника, а по качеству тем более.  Делаете новый пакет карт? сделайте его проработанным, спрячьте изюминки, пасхалки (проще говоря - подход CD Project Red, DLC которого признали игрой года.), не зарабатывайте на терпении пользователя которого вы не вернете.

2.3) Количество - Меньше качественных DLC всегда лучше тонны среднего наполнителя (пример Battlefield c их наборами оружия, Mass Effect 2 с оружейными дополнениями которые ну совсем не стоят свою цену.)
   

3) Не покидайте проект на половине.
      Судя по комментариям проект в целом сообществу приятен, на этом можно заработать, если зарабатывать умно. В американских стартапах (я не говорю о тех которые руководствуются планом картмана - "1. Start up 2.Cash In 3.Sell out 4. Bro Down") есть правило успеха, если следовать которому то цены вам не будет. Правило звучит так "За каждую единицу цены, пользователь должен получить в 10 раз больше чем он ожидает от этой цены" - следуйте этому правилу и у вас будет возможность не только жить на доходы от этой игры на одном андройд маркете, но и собственную компанию по разработке игр.

4) Отсутствие конкретики.
      Посещайте форумы, "тайком" собирайте идеи и воплощайте их в игре с той позиции с которой они будут дополнять игру, а не просто следовать тому что написано пользователем.  Отвечайте на вопросы редко, но конкретно (как то раз был на семинаре одной фирмы и когда ей задали конкретный вопрос - почему мы должны купить ваш продукт, CEO уклонился в тему истории их компании и "размазывал соплю" пока всем уже не надоело его слушать и все потеряли интерес что либо спрашивать... это ошибка, если у тебя есть сильные стороны - скажи их, коротко и ПОНЯТНО, но не начинай усыплять людей пятью часами войны и мира, дай им ответ - я лучше тем то, у меня проработано тото, планирую тото.) т.к. беготня за пользователями не требуется, нужно починить все что не работает, не спорить с каждым (почему? да потому что бараны останутся баранами и будут говорить что Х вещь в игре это плохо пока не увидят что 100-1000000000 человек говорят наоборот) и отвечать на правильно оформленные, вежливые (отсутствие матов, инфантилизма и прочей чуши которая тратит ваше время), полезные комментарии которые РЕАЛЬНО полезны для игры, а не несут тонну чуши.

Удачи вам в реализации интересного проекта!
       

-5

2D серьезно ? такого типо сейчас очень много , будем реалистам , игра затеряется среди множества других

ещё комментарий
-3

думаю что вечно крутящиеся пушки все же заебут народ...

Похожие посты
89

Опыт разработки игры в одиночку. Три совета!

Привет! Я инди-разработчик одиночка. Полгода, вечерами, после работы, я делаю свою инди-игру.


Хочу поделиться своим опытом, болью и дать 3 совета разработчикам одиночкам, как я.


Расскажу об игре. Моя игра “Мёртвая Россия Ко-оп” - это кооперативный сессионный топ-даун шутер в сеттинге российского зомби-апокалипсиса.


Страница игры в Steam: https://store.steampowered.com/app/1211640

Трейлер игры см ниже.

Цель каждой игровой сессии - выжить. Продержаться 7 игровых суток.


Каждые игровые сутки я разделил на день и ночь:


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

Опыт разработки игры в одиночку. Три совета! Россия, Gamedev, Инди игра, Разработка, Шутер, Unreal Engine 4, Компьютерные игры, Игры, Видео, Длиннопост

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


Каждую ночь мертвецов становится всё больше, они всё быстрее и сильнее.

Опыт разработки игры в одиночку. Три совета! Россия, Gamedev, Инди игра, Разработка, Шутер, Unreal Engine 4, Компьютерные игры, Игры, Видео, Длиннопост

А теперь про разработку.


Идея сделать игру про СНГ и для СНГ у меня была давно.


Во-первых, я хотел сделать игру про наше, про отечественное, про пост-советское!


Во-вторых, работая над своими старыми проектами, мне осточертело переводить каждое сообщение на английский язык. Мне не нравится Facebook и Twitter. Я не знаю о чем писать в Reddit. А тут - я говорю со своей аудиторией на одном языке, это же так просто!


Вкнонакте, мне на глаза попалось сообщество “3D модели (low poly) и текстуры”. Автор - Денис Логиновский сделал так много душевных хрущевок, заправок и авто-сервисов, что я решил - вот оно!

Опыт разработки игры в одиночку. Три совета! Россия, Gamedev, Инди игра, Разработка, Шутер, Unreal Engine 4, Компьютерные игры, Игры, Видео, Длиннопост

Прикупив 300 моделей русской тоски, я подумал, что нужно делать игру с видом сверху. Потому что модельки были низкого качества.


Выбор был такой - либо стратегия, либо топ-даун шутер.


Очевидно же, проще сделать топ-даун шутер. Да еще и ассет нашёл хороший, который можно было “быстро” видоизменить под свои нужды.


Сказано - сделано! Я железно решил - сделаю игру за 2 месяца. А может за 4. Ну, в крайнем случае, за 6. Сейчас я стараюсь уложиться в 8.


Совет №1: “Если хочешь сделать игру за 2 месяца, планируй сделать её за 2 недели!”


Первая проблема, с которой я столкнулся - импорт моделей в движок. Так как не все модели были в fbx формате, а некоторые были поломанные, мне пришлось прогонять их через 3д-редактор, а потом, ручками, собирать модельки в движке.


Я импортировал 300 моделей и выставил их тестовую локацию-палитру, распределив по размеру и тематике - село, город, промзона. Это заняло у меня 2 месяца скучнейших вечеров. Я даже аудиокнигу успел прослушать.

Опыт разработки игры в одиночку. Три совета! Россия, Gamedev, Инди игра, Разработка, Шутер, Unreal Engine 4, Компьютерные игры, Игры, Видео, Длиннопост

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

Опыт разработки игры в одиночку. Три совета! Россия, Gamedev, Инди игра, Разработка, Шутер, Unreal Engine 4, Компьютерные игры, Игры, Видео, Длиннопост

Изначально я хотел сделать сюжетную кампанию, аля русский Left 4 Dead, где будут 7 локаций, каждая в своем стиле, со своими геймплейными фишками и всё такое. Но поняв, что меня засосало опасное сосало, решил что это вообще не вариант, и мне надо срочно менять концепцию игры.


Совет №2: “Не планируй большие локации!”


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


Сейчас я имею следующий набор фичей:

1. Открытая локация с лутом денег, спавном толп мертвецов и сменой дня и ночи.

2. Строительство укреплений и ловушек: факел, баррикада, колючка, огненная ловушка

3. Оружие: Пистолет Макарова, Ружьё ИЖ-27, Автормат АК -47, Ручная граната, Пехотная мина.


Да, этого мало и я не доволен. Но мне нужно сделать еще кучу вещей: условия победы, победный экран, туториал, пофиксить баги, итд итп.


Совет №3: “Быстрее и приятнее сделать новую игру, чем переделывать геймплей!”


На этом всё. Да прибудут с вами маленькие, но качественные проекты!

Показать полностью 5
76

Разработка "Танчики 2" Часть 6: Мультиплеер. Часть 1

Разработка "Танчики 2" Часть 6: Мультиплеер. Часть 1 Battle City, Gamedev, Танки, Dendy, Видео, Длиннопост, Мультиплеер

Привет!

То что вы видите сверху - диаграмма клиент-серверного взаимодействие в главном меню игры с момента запуска и до момента попадания обоих игроков в основное меню.


Как вы можете догадаться, речь пойдет о мультиплеере и о сетевом его части в частности.

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

Разработка "Танчики 2" Часть 6: Мультиплеер. Часть 1 Battle City, Gamedev, Танки, Dendy, Видео, Длиннопост, Мультиплеер

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

В самой же битве появлялись (да, впрочем и появляются) 2 танка вместо одного, первый управляется на WASD, второй же на стрелки.

К тому моментуу меня уже давненько терзали смутные сомнения по поводу того насколько впринципе актуален локальный мультиплеер (когда все сидят по домам и общаются через интернет), но когда я начал непосредственно щупать это в бою, вскрылась еще одна проблема: управление. Где брать вторую мышку для управления башней второго танка? Управление башней на клавиатуре? Джойстики?

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

Тезисно покажу основные проблемы, чуть подробнее, как всегда, в видео. В порядке влияния на сложность:


*  Нулевой опыт разработки мультиплеерных игр и лишь базовое понимание основных концептов клиент - серверного взаимодействия.
*  Очень базовая поддержка сетевых функций движком игры.

*  Внутренние ограничения движка, которые непосредственно влияют на сетевой код.

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


В итоге разработка превратилась в замкнутый цикл:

*  Долго заставляешь себя сесть за разработку.

*  Садишься, долго вспоминаешь что и где.

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


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


Кто знаком с тем как работает система мотиваций человева знает, что для того чтобы было желание за что-то браться, человеку нужно достигать долгосрочных целей, в моем случае это было написание базового скелета сетевой игры. Если долгосрочная цель выполняется, мозг получает дозу серотонина и это подстегивает его на заниматия новыми делами. А если мозг этот серотонин не получает, желание продолжать или браться за новые начинания угасает. В моем случае это и происходило на протяжении 10 месяцев, так как ровно столько я не мог довести сетевой код до состояния, которое меня хоть сколько-бы удовлетворяло.


Так было до вчерашнего дня.

Наконец, я нахожусь в той стадии когда могу сказать да, это готово, двигаемся дальше.

Разработка "Танчики 2" Часть 6: Мультиплеер. Часть 1 Battle City, Gamedev, Танки, Dendy, Видео, Длиннопост, Мультиплеер

Слева - сервер, справа - клиент. Как видите, действия танков точно реплицируются, и, что более важно, они точно синхронизированы по времени. Не обращайте внимание на положение башен, это действие еще не отправляется по сети.

Самый базовый скелет сетевой игры готов, теперь буду наращивать на нем мышцы. Но впереди еще очень и очень много работы.

Буду стараться держать вас в курсе, по мере возможностей.
Рекомендую проверять youtube канал, так как буду выкладывать там небольшие видео прогресса, тех. сложности и просто рассуждения, которыми не хотел бы захламлять свой профиль здесь.

Всем пока!

Показать полностью 2 1
88

Релиз игры Pandemic Express от российской команды TallBoys под издательством TinyBuild

Привет, Пикабу!

Наша дебютная игра Pandemic Express на днях вышла в релиз на Steam.


Мы хотели бы сказать, что для нас это не просто рассказ о нашей игре, а своего рода отчет. Дело в том, что почти пять лет назад наша команда появилась благодаря одному ламповому посту на Пикабу, о наборе в команду энтузиастов. Это была абсолютная случайность, но это факт - каждый член нашей команды пришел именно благодаря резонансу от того поста. И вот уже больше четырех лет мы занимаемся разработкой игр вместе, несмотря на расстояние (наша команда разбросана по всей стране) и мы искренне хотим поделиться тем, чего мы смогли достичь за это время.


Игра представляет из себя мультиплеерный шутер от первого лица с ассиметричным геймплеем, в котором игроку предстоит поиграть как за людей, так и за зомби. Старт матча происходит на одной из железнодорожный станций, где первый случайно выбранный игрок зомби начинает заражать остальных. Цель выживших добраться до поезда (или фуникулёра в другом режиме) и спастись на нём.

Релиз игры Pandemic Express от российской команды TallBoys под издательством TinyBuild Игры, Длиннопост, Gamedev, Steam, Компьютерные игры, Шутер, Cryengine, Гифка, Видео

Расскажу немного поподробнее о разработке игры и сложностями, с которыми мы столкнулись:


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

Также во многом атмосфера игры навеяна картинами Андрея Тарковского и творчеством Аркадия и Бориса Стругацких.

Цветовая гамма игры схожа с работами замечательного художника из Швеции Саймона Сталленхога (Simon Stålenhag).

Релиз игры Pandemic Express от российской команды TallBoys под издательством TinyBuild Игры, Длиннопост, Gamedev, Steam, Компьютерные игры, Шутер, Cryengine, Гифка, Видео
Релиз игры Pandemic Express от российской команды TallBoys под издательством TinyBuild Игры, Длиннопост, Gamedev, Steam, Компьютерные игры, Шутер, Cryengine, Гифка, Видео

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

Релиз игры Pandemic Express от российской команды TallBoys под издательством TinyBuild Игры, Длиннопост, Gamedev, Steam, Компьютерные игры, Шутер, Cryengine, Гифка, Видео

3) Создание геймплея было особенно сложной задачей и на это ушло огромное количество времени и сил, как на саму разработку, так и на тестирование. Очень нелегко было придать интерес игре за обе стороны, учитывая количество людей в одном матче (до 20 человек). Остро стоял вопрос балансировки матчей, чтобы шансы на победу были у обеих команд, даже если остался последний человек против 19 игроков-зомби

Релиз игры Pandemic Express от российской команды TallBoys под издательством TinyBuild Игры, Длиннопост, Gamedev, Steam, Компьютерные игры, Шутер, Cryengine, Гифка, Видео

4) Игра сделана на движке CryEngine, который в процессе разработки претерпел множество изменений и оптимизаций. Буквально перекроив движок целиком, мы постарались максимально адаптировать его для игры нашего формата.

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

В процессе разработки мы вдохновлялись такими играми как Quake и Titanfall.

Релиз игры Pandemic Express от российской команды TallBoys под издательством TinyBuild Игры, Длиннопост, Gamedev, Steam, Компьютерные игры, Шутер, Cryengine, Гифка, Видео

Вы можете посмотреть релизный трейлер нашей игры здесь:

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

Если вам интересно, мы можем подробнее рассказать о полученном нами в ходе разработки опыте.

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

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


С уважением к сообществу Пикабу,

Ваши Высокие Ребята!

Показать полностью 5 1
39

Плагин False Gravity для UE4 (бесплатно)

Я использую этот плагин в своем проект - Recursive  Pain (уже доступен в steam)
В плагине есть некоторые проблемы, поэтому он и бесплатный.

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

Скачать можно здесь - https://drive.google.com/open?id=1ExGGBIiC0y64IAznxsQggqPmJC...

Пример использования:

107

[Engines of Delight] Распределенные сетевые соединения

[Engines of Delight] Распределенные сетевые соединения Перевод, Онлайн-Игры, Архитектура по, Mizzdev, Engines of delight, Мультиплеер, IT, Gamedev, Длиннопост

И снова здравствуйте, дорогие читатели! Я продолжаю перевод цикла статей о шаблонах проектирования игровых серверов из блога Engines of Delight. Конечно жаль, что предыдущий перевод вызвал относительно мало интереса, но, как говорится, первый блин комом.


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


Отлично, представим что вы с архитектурой ознакомились, построили монолитный сервер, доработали игру, выпустили и она приносит для вас определенный доход. Далее у вашей игры есть несколько путей развития:

[Engines of Delight] Распределенные сетевые соединения Перевод, Онлайн-Игры, Архитектура по, Mizzdev, Engines of delight, Мультиплеер, IT, Gamedev, Длиннопост

1. Вы обслуживаете ваш сервер: регулярно платите аренду, правите мелкие баги и осуществляете техподдержу в случае чего. Никаких нововведений вы не делаете, аудиторию не расширяете. Вы просто сидите и получаете доход на некотором фиксированном уровне. Особо рекламой не занимаетесь. Вкратце, пускаете всё на самотёк. И это работает. Игра набирает некоторую, часто небольшую популярность (ее уровень зависит от многого - качества игры, первоначальной рекламы, рынка и пр.), держится на некотором уровне и затем плавно спадает. В какой-то момент продолжать поддержку игры становится нерентабельно - доходов от игроков не хватает даже чтобы покрыть расходы на обслуживание. Это тот момент, когда вам следует смириться и свернуть проект. В конечном итоге все онлайн игры встречают свой конец, рано или поздно. Вы переключаетесь на другие проекты, если не сделали этого до закрытия. Если такая бизнес-модель для вас подходит, то проблем вообще никаких, если же мириться с таким раскладом вам не хочется, то...


2. Вы стараетесь привлечь больше игроков. Проводите маркетинг, раскручиваете в соц.сетях, запустили сайт, раскручиваете его в поисковиках, предлагаете обзорщикам ознакомиться с вашим продуктом. Путей много, в общем то. Хорошо, количество игроков начало расти, всем всё нравится, ваш месячный доход растёт, но потом, почему то онлайн расти перестает, несмотря на приложенные усилия на брендинг. Люди начинают жаловаться: лагает, играть невозможно. Как следствие - отток игроков. Как это объяснить? Давайте взглянем на график (который построил на основе замеров производительности своего монолитного игрового сервера переводчик этой статьи и ваш скромный слуга):

[Engines of Delight] Распределенные сетевые соединения Перевод, Онлайн-Игры, Архитектура по, Mizzdev, Engines of delight, Мультиплеер, IT, Gamedev, Длиннопост

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

Приближаемся к отметке в 700 игроков. В среднем, всё еще хорошо, но вот среднеквадратичное отклонение предательски увеличилось, то есть некоторые моменты времени пакетов стало приходить меньше, а в некоторые - наоборот больше. Это свидетельствует о появлении задержек, или лагов от англ. lag - запаздывание.

Дальше - хуже. Задержи растут, так как аппаратное обеспечение машины, на которой запущен сервер, уже не справляется с нагрузкой. Слишком много тактов процессора тратится на то, чтобы обслужить всех. Посмотрим хотя бы на график зависимости промежутка времени между двумя измерениями количества пакетов, при том, что в норме оно должно равняться (как было задано) 500 миллисекундам:

[Engines of Delight] Распределенные сетевые соединения Перевод, Онлайн-Игры, Архитектура по, Mizzdev, Engines of delight, Мультиплеер, IT, Gamedev, Длиннопост

Как видим, первые "тревожные звоночки" проявляются уже при трёхстах игроках. Этого мы сначала не можем не заметить, но после того как вовсю проявится экспоненциальный рост задержке, то становится поздно и мы возвращаемся к сценарию в первом пункте. Если у нас имеется один жирнющий монолитный сервер, то выход только один - арендовать/купить более мощное "железо". И так делают на практике. Это называется вертикальное масштабирование. Только вот есть у такого метода предел. Чем больше надо мощности, тем дороже в итоге будет стоить апгрейд. И скорость роста цены с ростом количества игроков просто непристойная. Плюс ко всему во время "переезда" сервера на новые мощности сервер придется вырубить. В один момент станет слишком накладно наращивать мощность и вы опять скатываетесь к ситуации первого пункта.


3. Игроки нуждаются в нововведениях. Вы это понимаете и постоянно захотите выпускать обновления, добавлять новые фичи, править баланс, открывать для игроков новые локации, да и просто делать всё чуточку лучше и сочнее для вашей аудитории. Поначалу ваша команда нормально с этим справляется, патчи выходят - доход держится. Однако, дьявол кроется в деталях - с каждым новым патчем наверняка чуть-чуть нарушится целостность архитектуры сервера, как программного продукта. Когда срочно (допустим, ко дню праздника) надо ввести "фичу", вашим программистам придется прибегать к "костылям" - своеобразным заплаткам в коде, которые призваны решать проблему быстро, но не очень правильно со стороны качества кода. И эти костыли имеют свойство накапливаться. Как следствие - ваш элегантный серверный код со временем превращается в кучу мусора, в которой с каждым разом становится всё сложнее разобраться. Всё больше человеко-часов надо будет потратить для очередного апдейта, а нанимать больший штат для поддержки этого всего не особо эффективно. Как следствие, выпускать обновления становится накладно и вам придется выпускать их реже. В конечном итоге вы опять возвратитесь к пункту 1.


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

Постановка задачи


Как увеличить максимальное количество игроков на сервере?


Допустим, нам требуется построить архитектуру сервера для массовой многопользовательской онлайн игры (MMO) с учётом того, что игровой дизайн предусматривает формирование игрового опыта на за счет одновременного взаимодействия большого количества игроков в едином виртуальном мире. Для этого мы можем применить такой шаблон, как Distributed Network Connections, или "распределенные сетевые соединения".

По сути нам надо создать помимо нашего "игрового сервера" еще один сервер, который назовем "шлюзовым сервером" (англ. connection server). Его предназначение - прием и управление TCP соединениями от клиентов к серверу и мультиплексирование сетевого трафика от клиента к серверу и обратно. В англоязычной терминологии можно встретить такие названия, как connection server, user server, gateway server, front-end server, player server и прочие.


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


Посмотрите на общение с монолитом:

[Engines of Delight] Распределенные сетевые соединения Перевод, Онлайн-Игры, Архитектура по, Mizzdev, Engines of delight, Мультиплеер, IT, Gamedev, Длиннопост

А теперь сравните с новой схемой:

[Engines of Delight] Распределенные сетевые соединения Перевод, Онлайн-Игры, Архитектура по, Mizzdev, Engines of delight, Мультиплеер, IT, Gamedev, Длиннопост

Шлюзовый сервер является своего рода "ретранслятором", что берет нагрузку поддержания соединений на себя, обременяя игровой всего лишь одним каналом связи, вместо тысяч. Тем самым почти все свои драгоценные такты процессора игровой сервер сможет тратить на действительно полезные со стороны гейплея вещи - игровую логику. А шлюзовый сервер пусть уж там занимается сам поддержкой тысяч соединений и не лезет в премудрости игрового процесса. Все в выигрыше!


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


На картинке ниже - один из способов обеспечения нужного нам результата:

[Engines of Delight] Распределенные сетевые соединения Перевод, Онлайн-Игры, Архитектура по, Mizzdev, Engines of delight, Мультиплеер, IT, Gamedev, Длиннопост

То есть, при подключении игрока шлюзовый сервер "привязывает" игрока к определенному игровому серверу и все время игровой сессии шлюзовый сервер "помнит", к какому именно игровому серверу привязан игрок. При каждом поступающем от игрока сообщении шлюзовый сервер сверяется со своим "реестром" (т.н. картой маршрутизации) и на основании этого решает, какому игровому серверу передавать запрос. Для сообщений от сервера клиенту сверки с картой обычно не требуется, так как сообщение в себе и так содержит информацию о получателе.


Важно! Клиенты не обязаны, а в идеале и не могут знать о внутренней структуре вашей сети. Следовательно, у клиентской программы нет сведений о существовании вообще чего либо позади шлюзовых серверов. Не нарушайте это правило, так как в лучшем случае это приведет к тому, что любое изменение архитектуры вашей сети потребует крупных переделок клиентской программы, а в худшем - откроет огромную уязвимость для DDoS атак (Distributed Denial of Service), поскольку злоумышленники смогут управлять потоком данных и обрушить шквал нагрузки на наиболее слабые узлы сети ваших серверов. В идеальном случае после подключения клиент всегда должен думать, что общается напрямую с монолитом.


О том, как шлюзовый сервер выбирает, к какому игровому серверу привязать игрока. Варианты распределения нагрузки ограничены только вашей фантазией. Например:

- Выбирает случайный сервер из списка

- Выбирает "по кругу" (round-robin) - пример такого распределения на картинке выше

- Выбирает случайным образом но с учетом весовых коэффициентов в зависимости от мощности игровых серверов, что позволит большее количество игроков подключать к более мощным серверам


Вне зависимости от способа привязки, каждый игровой сервер изолирован друг от друга. По сути - это независимые виртуальные миры. Игроки с разных игровых серверов не могут взаимодействовать между собой. Это как если бы вы подключали их к двум разным монолитам. Это весьма серьезное ограничение для MMO игр, но и его можно обойти. Если не терпится узнать как, можете прочесть на языке оригинала статьи Map-Centric Game Server, а затем Seamless World Game Server. Если можете потерпеть, то ждите, пока я переведу :).


А что если мы сделаем не только множество игровых серверов, а и множество шлюзовых?