Hiromantik

Hiromantik

Нравится разрабатывать качественные продукты
Пикабушник
в топе авторов на 442 месте
91К рейтинг 1079 подписчиков 27 подписок 308 постов 43 в горячем
Награды:
10 лет на Пикабуболее 1000 подписчиков
31

MMORPG за 80 дней. День 5: Танк поехал, кирпичи "развалились", MVP пришлось оптимизировать

Серия MMORPG за 80 дней: Entropia Tanks

Главный вывод из комментариев первого поста: Нельзя мечтать. Нужно делать как все. Нужно идти проторенными технологиями. Использовать стандартные серверные решения. Нельзя выделяться. Я все понял, потерял мотивацию и мы решили закрыть челендж (((

А вот хрен ) Лучше пусть у нас ничего не получится, чем получится очередная гриндилка аля "убей 500 кабанов и получи 100500 опыта".

Спасибо всем, кто поддержал и подписался (+150 человек!), пишу отчет 5-го дня (в конце поста будет короткое видео), поехали:

Генерация от Трипо

Генерация от Трипо

Генерация от Meshy

Генерация от Meshy

Перво-наперво запомните. Если вы захотите делать игру - используйте полигональную графику. С сегодняшними нейросетями с 2 кликов и 1 минуты генерации сразу получаются отличные варианты без затрат на дизайнеров:

Да что там говорить - даже стандартный ЧатГПТ уже рисует неплохо. В данном случае за 60 секунд можно получить визуально приличный концепт/заготовку под полигональную модель и радоваться.

Но у нас-то воксельная графика. Что для меня было сюрпризом, так это то, что нейросети не могут реализовать нужный уровень абстракции и рисуют откровенно страшные вещи. Вот работа ЧатаГПТ на короткий промпт:

Ненастоящий воксельный танк

Ненастоящий воксельный танк

Кажется, что это воксель, но нет. Видите - у него рисунок не из квадратиков состоит? Видны скосы и трапеции - нейросеть попыталась сделать что-то ПОХОЖЕЕ на воксельную графику, но не шмогла.

Напрягаем ГПТ дальше и заставляем ее рисовать именно воксельный танк в формате VOX. Готово:

Я и не ожидал сразу халявного результата, что чтобы ТАКОЕ... )) Для этой модели референсом был спрайт от оригинальной БатлСити (желтый танк Player 1).
Подумали, разузнали, что наши языковые модели нейросетей сейчас просто не умеют рисовать воксель и объективно "видеть" свой результат. Потому ошибаются нереально. Упростили им задачу - попросили просто написать алгоритм для Python, а питоном потом уже генерировали модель вне нейросети (локально). Ну получилось конечно лучше (смотрим галерею успеха):

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

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

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

Что уж говорить про гусеницы - это отдельный извращенский процесс - сделать так, чтобы они крутились, соблюдая истинную физику:

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

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

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

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

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

Уже к этому моменту мы начали подозревать, что для работы в UE5 нужно не только иметь интеллект, но и некоторый опыт (просто большое количество "моточасов" в движке), которого у нас пока не много. Объясню. В UE5 для прототипирования активно используем Blueprint-ноды (полувизуальное программирование) - это удобно для начинающих. Можно программировать и по классике - но нодами действительно удобнее. Приведу пару наших примеров:

Почувствовали себя программистами-пауками

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

Дальше нужно для дальнейшей разработки получить какой-то завод/АЗС - где танки можно было бы производить и заправлять топливом. Референс был такой:

Много часов спустя получилось вот такое:

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

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

Ну и дальше объединяем: Танк + Рабочую сеть + первые объекты в виде базы + кирпичи и т.п.

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

Как видите - с кирпичами проблема. Их прямо ОЧЕНЬ тяжело свести в 3D, в отличие от 2D.

Решилось это вот такой простой схемой:

И внедряя этот алгоритмик - кирпичи начинают быть смотрибельными:

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

Вы знаете, перечитал пост и нашел его избыточно уверенным и "повышающим градус" для кого-то, кто предлагал альтернативные идеи по реализации игры. Я стирать начало поста не буду, но тут напишу v2 истинного посыла:

"Главный вывод из комментариев к первому посту: Пикабу нашел самое слабое место в нашей затее - сетевые решения и масштаб могут быть рискованными.

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

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

На этой позитивной ноте завершаю пост - нужно разрабатывать игру дальше :-) Буду рад вашим идеям в комментариях под постом!

P.S. Забыл написать затраты:

  • tripo3d - 2300 руб.

  • meshy - 1400 руб.

Итого всего затрат: 31 500 руб.

Показать полностью 22 1
338

MMORPG за 80 дней. День 0: звучит как диагноз, поэтому начинаю с правил

Серия MMORPG за 80 дней: Entropia Tanks

Приветствую всех Пикабутян. Вероятно вы помните - я тот парень, который 6 лет назад публиковал серию постов: Танчики - Возрождение любимой всеми игры! про Танчики. Игру с Денди, которую мы (командой из 2 человек) воссоздали с нуля на мобильниках, чуть улучшили, причесали и заняли Топ-1 аркаду в России (в Google Play) и нескольких других странах. Игра была Пикабу-ориентированная, конечно же бесплатная и ввиду невероятной популярности в конечном итоге заблокирована Гуглом по жалобе правообладателя :-) Это был ожидаемый результат, ведь команда из 2 парней явно не получала разрешения у японской Bandai Namco Entertainment ))

Пока игры была в строю - уже был разработан режим игры по сети (чтобы одноклассники из Нового Уренгоя смогли играть с друзьями из Сыктывкара) и даже разрабатывался отдельный режим (лайтММО - когда можно было бы играть по сети сотням людей на действительно большой карте):

По прошествии лет удалось найти только какой-то полурабочий прототип под ПК. Идея, думаю, понятна.

По прошествии лет удалось найти только какой-то полурабочий прототип под ПК. Идея, думаю, понятна.

Карта была большая, но не бесконечная.

Сразу после "злосчастной блокировки" мы долго грустили, активно обсуждали что нужно было переделать так, чтобы больше не попадать на авторские права. Но желание сделать огромный сетевой мир на базе "вайба" и "лора" Танчиков_на_денди уже захватило нас и мы поняли, что вероятно не потянем это прежде всего финансово.

На самом деле 6 лет паузы - это повод хорошо все продумать. Потому лор мы продумали и его описание занимает сейчас примерно 400 страниц. Он принципиально полностью сохраняет все то, что было в Battle City и очень сильно расширяет и объясняет все то, что там происходит (вы никогда не задумывались, почему НПЦ-танки хотят уничтожить птичку? ;-) ). Японцы в 1985 году бы сильно удивились, если бы прочитали сейчас описание всей этой "вселенной" ))

Дабы не растягивать - перейду к сути:

Статистически в современных ММО часто фигурирует цифра 8 или 80:
- средняя ММОРПГ разрабатывается около 8 лет;
- бюджет на нее примерно 80 миллионов долларов (доходит и до 200млн);
- штат сотрудников в среднем составляет 80 человек ну и т.п.

80 - хорошая цифра. Плюс я люблю книгу Жюля Верна "Вокруг света за 80 дней". Потому мы с нашей командой из 2 человек, возрастом в 40 лет каждый (и 80 лет в сумме), решили с нуля:

Написать ММОРПГ за 80 дней!


...Ибо сейчас просто есть такая финансовая возможность, есть знания, опыт в смежных ИТ-нишах, наверное какая-то смекалка и остатки подросткового драйва. Очевидно, что если не сейчас - то в 50 лет уже точно ничего мы делать не будем ) А мечта - есть мечта )

Сразу поясню, чтобы меня не закопали в первом же комментарии: мы не делаем "убийцу WoW", "новый EVE Online" и "лучшую игру десятилетия". Полноценные MMORPG делают годами, большими командами и за бюджеты, от которых обычный человек начинает пересчитывать свою жизнь в ипотечных платежах.

Моя задача скромнее, но тоже достаточно безумная: за 80 дней собрать играбельный онлайн-прототип MMORPG.

Игра называется Entropia Tanks. С лором придётся познакомить в следующем посте (он все-таки 400+ страниц составляет), потому не буду захламлять этот стартер-пост описанием мира Танковой Энтропии, но кратко обозначу что точно будет в этой ММО:

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

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

  • Мы идеологически портируем в мир Танчиков лучшие на наш взгляд идеи от топовых ММО планеты (Систему скилов и отношений - возьмём от EVE Online, PvP-драйв возьмём от Dark Orbit, систему майнинга (добычи ресурсов) от Entropia Universe, систему производства и некоторого "хардкора" от Mortal Online. Мы это будем внедрять только потому, что это заходит людям и затягивает на долгие года.

  • Плюс, дабы не прослыть "копипастерами" чужих идей - будут внедрены минимум 4 кор-механики, которые не были реализованы еще ни в одной игре.

  • Конечно игра будет бесплатной. Просто потому что и прошлую игру мы распространяли бесплатно и, надеюсь, порадовали сотни тысяч человек. Нам нравится.

  • Игра будет Песочницей. С фул-лутом. Это очень сложно. Большинство игр идут по пути квестов (т.е. разработчики создают набор аттракционов, на которых люди развлекаются). Когда все квесты пройдены - остаются циклические дейли-квесты или "гринд разломов" (привет Диабло 3-4) --> наступает скука и игрок уходит из игры. В игре-песочнице все игровые моменты создаются самими игроками в процессе их взаимодействия и социализации, как в реальном мире. Поэтому "квесты" там бесконечные и уникальные. Мир будет на 100% живой.

  • Игра будет строго Воксельная (пиксели в 3D), дабы отдать дань оригинальной пиксельной игре. Это самый сложный вид графики на сегодняшний день. Мы подумали - почему бы и нет? Мы же делаем игру для кайфа.

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

.. и попробовали с нуля отрисовать их на пробу в 3D:

Игра планируется топ-даун (вид сверху)

Игра планируется топ-даун (вид сверху)

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

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

Кратко суть игры (и дальше буду раскрывать в последующих постах)

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

По технологиям разработки решили:

  • Как сетевой движок взять топовый Nakama и самостоятельно модифицировать его под бесконечный мир.

  • Клиент-движок: Решили отказаться от Unity в пользу Unreal Engine 5

  • Как генератор воксельных моделей взяли MagicaVoxel

  • Из нейросетей на старте ChatGPT (его точно не хватит - будем выбирать что взять еще себе в помощь)

Далее в каждом посте буду писать:

  • какой сейчас день из 80;

  • что планировал сделать;

  • что реально получилось;

  • что сломалось;

  • сколько денег потратил;

  • какие инструменты использовал;

  • что покажу скринами или видео;

  • сколько дней осталось до проверки "оно вообще живое или нет".

Что должно быть к 80 дню, чтобы я сам себе не сказал "ну ты и клоун":

  1. Рабочий клиент игры.

  2. Возможность залогиниться хотя бы 1000 человекам одновременно.

  3. Управляемый танк (минимум 1 модель; но вероятно осилим штук 20) + минимум 1 танк для НПЦ-фракций.

  4. Стрельба и урон (ПвЕ + ПвП).

  5. Бесконечная карта с биомами.

  6. Энтропийное поле, которое реально разрушает все, что строит человек.

  7. Безопасная зона (купол) вокруг шпиля анклава.

  8. Минимальная экономика: ресурс, вес/объем, ценность. Бог даст - еще маркет можно попробовать осилить.

  9. Несколько моделей техники или объектов (помимо танков: 1-2 вида профильных зданий + защитные пушки-туретки).

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

По затратам сейчас:

Unreal Engine - 0 рублей.
MagicaVoxel - 0 рублей.
ChatGPT - 2400 руб х2 = 4800 руб.
Сервер - 23000 руб.
Nakama - 0 руб (скоро станет очень дорого, похоже).

Итого потрачено в первый день: 27 800 руб.

Большое спасибо всем, за то, что прочитали. Писал все-таки от руки.

В следующем посте, надеюсь, уже отрисуем первую модель танка и попробуем запустить его сразу через сеть так, чтобы 2 клиента друг-друга увидели по сети - все покажу + начну рассказывать про механики игры, лор игры + отчет по финансам.

Если всё пойдёт хорошо - возможно даже реализуем модель разрушения воксельного мира и реализацию истинной воксельной физики (беру около 2 дней таймаута и напишу пост)!

Показать полностью 6
5567

Вопрос в НЕуважаемому маил.ру10

Вопрос в НЕуважаемому маил.ру

Я понимаю, что у вас есть коммерческий интерес вкрутить нам в задницы свой сраный VK ID и авторизацию по номеру. Я понимаю, что вы хотите у меня это спросить и мой ответ - НЕТ.
Я хочу входить по паролю и никак иначе.

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

И. Я. НИКОГДА. Не. перейду. на. ВК. АйДи.

КАКОГО ХРЕНА вы при КАЖДОМ обращении к сайту маил.ру (не является рекламой и помоему входит в мой личный список террористических организаций) вы напрягаете моё сознание этим нескончаемым вопросом, на который я никогда не соглашусь?

Тут есть представители маил.ру или VK? Почитайте комментарии под этим постом - ХРЕН ВАМ, а не авторизация по номеру телефона и ВК.АйДи.

Я просто устаю от вас и скорее всего скоро усталость от ваших навязываний пересилит мою 20-летнюю привязанность к ящику.

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

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

Люблю теории заговора, но сейчас!...

Трамп на последнем выступлении в Давосе.

Трамп на последнем выступлении в Давосе.

Я тут обратил внимание на интересную вещь.

Люблю вообще "теории заговора" ) но тут прям красота.

Вот каноничная печать США

Вот каноничная печать США

Орел смотрел с 1946 года на оливковую ветвь:

Это особенность геральдики.

Типа направление работы страны - условный "мир". До 1946 взгляд орла был направлен на стрелы и США участвовало ОЧЕНЬ активно в собственной милитаризации, во Второй Мировой сразу с несколькими странами и т.п.

А тут орла явно сделали заново. И он стал смотреть на стрелы.

Это 23 января было.

Смотреть на стрелы по геральдике - это военное направление работы страны.

Так что возможно истории с захватом Канады, Гренландии, Панамы и т.п. в самом деле сейчас получат свой ход и США готовится к большой войне.

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

Показать полностью 3
2243

Ответ на пост «В полку прибыло!»3

Мой сын уничтожил палкой первую крапиву не в 4, а в 2,5 года и я тогда аналогично акуел, ибо никто при нём не косил палками ни крапиву, ни другие растения. Это точно где-то в ДНК у нашего брата сидит!

2396

У меня вопрос к Яндексу!

У меня вопрос к долбанному Яндексу.

Кстати, я очень люблю Яндекс и пользуюсь на 90% только им. У меня стартовая страница - Яндекс. Аккаунту 18 лет.


Яндекс, ДОКОЛЕ ты каждый день будешь всех нас спамить абсолютно ТУПОРЫЛЫМ запросом "Хотите сделать Яндекс стартовой страницей?"? Ей-богу это когда-то достанет и я буду гугулить в гугле ) Я даже в Bing скоро готов буду перейти, лишь бы не кликать в эту кнопку "Нет-я-не-хочу-установить-яндекс-стартовой-страницей-потому-что-сука-ты-уже-у-меня-стартовая-страница-все-года-с-момента-регистрации!"


Я понимаю, что "маркетологи" "бьются" за "аудиторию". Но можно этот вопрос задать 1 раз. Можно даже 21. Но не всю же жизнь? Неужели нельзя снимать статистику с акаунтов и понимать, что этот человек пользуется яндексом КАЖДЫЙ день и ему не надо впихивать этот тупорылый вопрос каждый день? Я не говорю уже про алису и яндекс браузер и спам запросами на установку.


Скоро про яндекс начнут писать истории, как сейчас про тиньков.


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

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

Правильный компонент от #Абсент животворящий

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


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


На самом деле правильный рецепт такой: идём в аптеку, платим 24 рубля, получаем пачку Горькой Полыни, завариваем горький чаёк на ночь и утром ощущаем весь спектр вкусов и запахов.


Скрин с примерной ценой из интернета прилагаю, рекламу закрасил, подойдёт любой "бренд" любой горькой полыни.

Правильный компонент от #Абсент животворящий

Пользуйтесь и будьте здоровы!

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

Где грипп?

Я уже старый, как и большинство пикабутян.

Я вырос в стране, где в октябре ежегодно растёт количество заболевших гриппом.

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


Осенью 2021 года я впервые понял, что новостей про грипп нет. Гриппом никто не болеет. О гриппе ни одной новости. Даже прививки от гриппа ставить не предлагают.


Ну серьезно, хоть кто-то из ваших чихающих знакомых сходил в поликлинику и получил диагноз - ГРИПП или ОРВИ? Мечта наших родителей исполнилась - по ходу грипп побеждён!


P.S. К...

Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества