Вообще сегодня формально 104 день идёт и я в лютом "коматозе" от того, как все не просто даётся. Это даже с учетом того, что пришлось нанять на работу сначала девочку. А потом еще и мальчика ))) Но друг-проектировщик сказал мне: "Чего ты паришься? Дополни пояснением, что имел ввиду 80 РАБОЧИХ дней :-)" - потому сегодня 70-й РАБОЧИЙ )) день и я докладываю что получилось сделать.
Игра заработала (предоставлю доступ для всех). Пока понимаем, что это пре-пре альфа, но общий вид такой:
Очень не мало времени ушло на то, чтобы отрисованный интерфейс интегрировать в Unreal Engine. Делала, кстати, нанятая девочка с Пикабу. Ник не рекламирую ) Про девочку много рассказывать смысла нет - в пятницу она вышла замуж, потому поздравляем ее от всей пикабушной компании. Надеюсь, что останется в проекте.
Дальше очень много работы было с бэкэндом (это та часть, через которую администраторы игры настраивают игровой баланс, мониторят серверы, игроков и т.п.). Чтобы бэкэнд "выгрузить" из головы - пришлось нанять еще и Мальчика. Тоже с Пикабу ) Хорошее сообщество у нас тут.
Вот как выглядит 5 серверов бэкенда:
Много неведомых циферок, но всё очень (нам) классно, понятно и наглядно :-)
Дальше было очень много работы со зданиями и работе внутри:
Просто база, куда танк заехал
Ангар с танками. Управление/замена/тюнинг и т.п. Сейчас отображаются танки-"затычки".
Хранилище лута, модулей и т.п. Тут же осуществляется заправка топливом, пополнение боеприпасами и т.п.
Интерфейс ремонта
Производственная линия. бОльшая часть предметов в игре будет создана игроками.
Разбор/демонтаж/переработка предметов.
Интерфейс маркета.
Дальше очень глубоко "закопались" в генератор нашего бесконечного мира. Вроде задача не сложная, но у нее много "слоёв" и подводных камней: нужно предусмотреть будущие обновления игры, совместимость будущих алгоритмов и дополнений, слой энтропийного фона, слой подземных ресурсов, их генерации, воспроизводство и т.п.
Так выглядит карта в большом масштабе
Так выглядят настройки генерации карты
Это дополнительный модуль генератора карт, где можно создать какие-то "привычные" модели/образы/объекты на карте.
Для генерации и корректного перемешивания биомов сначала использовали метод шума Перлина. А потом подмешали туда алгоритмы Вороного (также диаграмма Дирихле или полигоны Тиссена) и получилось очень достойно.
Отдельная работа была связана с ланчером.
Ох уж и попил он нам кровушки, но сейчас он внутри работает как ланчер от ААА-игры, сам обновляется, обновляет игру и т.п. Все хранится в облаке, каждая загрузка учитывается/оплачивается провайдеру и т.п. - никаких "наших серверов" для хранения контента, никаких встроенных торрент-клиентов. задел технологий на 20 лет вперед :-)
В общем у меня осталось 10 РАБОЧИХ дней для релиза. Очень надеюсь, что успею. Все ребята работают (кроме девочки, которая сейчас в состоянии Медового Месяца - пожелаем ей максимального счастья! и чтобы вернулась поскорее).
Сегодня я не потяну бухгалтерский отчет. Там уже точно больше 500 тыс затрат (сервера, зарплаты, лицензии).
Скоро опубликую посты по:
1) Лору игры (давно обещал) 2) Фронтэнд-сайту, который еще предстоит написать не невероятно быстрой скорости 3) Созданию тысяч иконок предметов игры и т.п. 4) По экономике и механикам игры.
*(Речь везде про ISK — внутриигровую валюту, никакого реала.)*
Рано или поздно каждый капсулир упирается в потолок аномалок: ракеты кончаются, дроны ломаются, а ISK всё те же. Логичный шаг — идти в трейдеры. Кажется, что это лёгкие деньги: сиди в станции, щёлкай мышкой. На деле — отдельная профессия со своими скиллами, ошибками новичков и способами разориться, даже не выходя из хаба.
Что вообще такое станционная торговля
На рынке всегда есть два типа заявок: buy order (кто-то хочет купить по такой-то цене) и sell order (кто-то хочет продать). Между лучшим buy и лучшим sell почти всегда есть разрыв — спред. Станционный трейдер зарабатывает именно на нём: ставит свой buy чуть выше текущего лучшего buy, свой sell — чуть ниже текущего лучшего sell. Люди, которым лень ждать, продают вам по вашей цене и покупают у вас по вашей — а вы просто держите обе заявки и ждёте.
Условный пример (цифры для наглядности, не текущий рынок): предмет продаётся по 105, покупается по 95. Ставите buy на 96, sell на 104 — и на каждой паре сделок кладёте в карман 8 ISK, за вычетом комиссии.
Комиссии съедают больше, чем кажется
Broker fee (за размещение заявки) и sales tax (при продаже) в сумме легко откусывают несколько процентов от каждой сделки. На маленьком спреде это разница между «торгую с прибылью» и «просто плачу CCP за развлечение». Оба процента снижаются скиллами — Broker Relations и Accounting соответственно, и прокачать их до среднего уровня стоит в первую же неделю, до того как заходить с серьёзным капиталом.
Скиллы, без которых сложно
Trade → Retail → Wholesale → Tycoon — количество одновременных заявок. Без них вы упрётесь в лимит буквально через пару дней активной торговли.
Marketing — дальность, на которую видно ваши заявки.
Daytrading — можно двигать заявки удалённо, не летая физически в хаб каждый раз. Это резко экономит время.
Broker Relations / Accounting — про них уже сказано выше, но повторю: это не «приятный бонус», а то, что определяет, работает ли вообще ваша стратегия на тонком спреде.
Частые ошибки новичков
Гнаться за самым большим % маржи, не глядя на объём. Красивые 40% на предмете, который продают раз в неделю, — это не доход, а мёртвый капитал. Второе — лезть в перегретые позиции, где уже сидит десяток трейдеров и все режут друг друга по копейке. Третье — не считать комиссии заранее и удивляться, почему «прибыльная» сделка на деле в минус.
С чего начать
Возьмите пару ликвидных предметов с приличным дневным объёмом, понаблюдайте за спредом несколько дней, прежде чем заводить капитал. Начинайте с сумм, потерю которых не жалко — это всё ещё обучение.
Раньше я сам вручную выгружал ордера в таблицу и высчитывал маржу и объём руками — то ещё удовольствие. В итоге написал для себя инструмент, который уже отсортировал позиции по марже, объёму и волатильности по всем четырём хабам сразу — https://eve-hub.ru/, раздел Station Trading. Пользуюсь сам каждый день, поэтому и делюсь.
Если торгуете или только начинаете — заходите в наш Discord, там разбираем конкретные позиции и делимся находками.
Крупнейшие альянсы в EVE Online на сегодня это Goonswarm Federation, The Initiative, и Fraternity, на скриншоте показано общее количество пилотов, Остальные альянсы обладают заметно меньшим количеством боеспособных пилотов
источник - телеграм канал @100MN_AB
Альянсы Silent Company, Absolute Order, хотя и обладают большим количество пилотов, но это альянсы новичков, которые несопоставимо слабее первой тройки.
Большинство альянсов живущие в нулях как правило ассоциированы с этими крупнейшими альянсами, которые обеспечивают защиту. Это так называемые коалиции, например Impeium собравшаяся вокруг Goonswarm. Разборки между крупнейшими альянсами нередко переходят в войны за передел территорий. Недавно было выяснение отношений между Goonswarm и Fraternity, которые привлекли на свою сторону союзников и устроили очередной рекорд/коллапс в EVE Online - 10тысяч игроков/персонажей зашли в одну систему Atioth, запустили дронов для атаки и сервер выделенный под эту систему не выдержал нагрузки, после перезагрузки сервера, многие пилоты не смогли сразу зайти в игру в результате чего было потеряно несколько титанов и множество мелких кораблей. Независимые альянсы в EVE Online существуют, и хотя они менее многочисленны, между ними происходят не менее интересные бои.
Привет. Работа продолжается. Решили отказаться от нашего "наброска" танка и наняли профессионального воксельного художника. Вот что получилось сделать за 2 суток:
На всякий случай покажу как было сделано нами изначально:
Отдельная статья расходов - работа воксельного художника. Взяли человека, который умеет делать не просто "кубики", а нормальные игровые модели с читаемым силуэтом и деталями. Ставка - 20$ в час.
Из-за дороговизны пошли пока по хитрому пути: все танки - это по сути один вот этот танк:
...который мы сделали "модульным":
...и добавили в "палитру" ему различных запчастей, которые могли бы недорого разнообразить внешний вид (башни, орудия, гусеницы, катки, подключаемые модули брони, доп. топливный бак и радиомодуль - список будет расширяться):
По деньгам:
15 часов работы 20$ в час итого 300$ по курсу 75 руб - 22 500 руб
Общий бюджет проекта на сейчас: 31 500 + 22 500 = 54 000 руб
Дальше покрасили в разные цвета и в результате получили "недорогое" разнообразие танков:
Это визуальные направления: цвета, силуэты, настроение, будущие классы и фракционные стили.
И у них нет названий.
Я решил не придумывать все сам, потому что не хочется однообразных названий в стиле "Аннигилятор Энтропии МК-7".
Хочется живее. Как будто танк назвали не маркетологи, а механики в гараже, потому что он на что-то похож или как-то себя ведет.
Например: Голиаф, Мастодонт, Утюг, Рельса, Клоп-007 и т.п.
Один комментарий - одно название, чтобы за него было удобно голосовать плюсами. Можно и возможно даже благоприятно давать названия еще и на английском.
Через пару дней соберу самые удачные варианты, выберу те, которые реально ложатся в игру, и опубликую список победителей.
Если название попадет в Entropia Tanks, автора укажем в титрах/благодарностях. Не как "великий нейминг-директор", конечно, но честно: ник с Пикабу и танк, который он назвал.
Увидел новость, что DeepMind, ну которая от гугла, они решили игроков Eve Online использовать. Типа будут смотреть как четверть миллиона человек играют и на этом учить свой ИИ.
Четверть миллиона, Карл! Это ж сколько народу.
Eve Online это такая игра где космос, корабли, корпорации, предательства и вообще бардак редкостный. Один раз там чувак типа банк обчистил на реальные бабки через внутриигровую валюту. Серьезно, там драмы больше чем в сериалах.
И вот гугл говорит: мы возьмем этих всех людей, запишем что они делают, и скормим нейросетке. Чтобы она научилась тоже рулить кораблями, торговать там, воевать.
Я сначала подумал ну ок, круто же. Потом сижу и думаю. А зачем?
Ну серьезно. Играть за тебя будет ИИ? Или они хотят ботов сделать умнее? В Eve и так ботов полно, только их банят постоянно. А если гугловский ИИ научится играть как человек его же не отличишь. Это ж весь смысл сломает.
Или может они к чему то большему готовятся. Типа если ИИ выживет в Eve, где игроки постоянно друг друга кидают, где экономика как в реальном мире, где войны за ресурсы то он в реале тоже справится. Тактика, переговоры, обман в конце концов.
Но блин. Eve это же не шахматы и даже не Dota 2. Там один бой может три часа идти, а подготовка к нему недели. Ты просто наблюдаешь как кто то фармит руду или летит через полгалактики по одному и тому же маршруту. ИИ это быстро надоест, ему же скучно.
Хотя нет, ИИ не скучно, ему пофиг. Он просто учится. Но чему именно он научится? Игроки в Eve это специфические люди. Там половина времени не игра, а политика. Корпорации договариваются, шпионят, предают. Если DeepMind выучит это все получится ИИ интриган который сначала подружится с тобой а потом сольет твои координаты врагам.
Еще момент. Четверть миллиона игроков это дохренища данных. Гугл говорит это поможет ИИ "понимать сложное социальное взаимодействие" и "долгосрочное планирование". Но цена какая? Вся жизнь этих игроков будет записана и проанализирована. Каждый их лог, чат, трейд. Кто на это подписывался?
Ладно, может я зря паникую. В конце концов DeepMind уже учил ботов в StarCraft 2, в Dota 2, в шахматы. Везде они людей обыгрывали. Но Eve это другой уровень. Тут нельзя просто микроменеджить юнитов. Тут надо втираться в доверие, сидеть в дискорде, обсуждать сделки. ИИ это не умеет.
Главный вывод из комментариев первого поста: Нельзя мечтать. Нужно делать как все. Нужно идти проторенными технологиями. Использовать стандартные серверные решения. Нельзя выделяться. Я все понял, потерял мотивацию и мы решили закрыть челендж (((
А вот хрен ) Лучше пусть у нас ничего не получится, чем получится очередная гриндилка аля "убей 500 кабанов и получи 100500 опыта".
Спасибо всем, кто поддержал и подписался (+150 человек!), пишу отчет 5-го дня (в конце поста будет короткое видео), поехали:
Генерация от Трипо
Генерация от Meshy
Перво-наперво запомните. Если вы захотите делать игру - используйте полигональную графику. С сегодняшними нейросетями с 2 кликов и 1 минуты генерации сразу получаются отличные варианты без затрат на дизайнеров:
Да что там говорить - даже стандартный ЧатГПТ уже рисует неплохо. В данном случае за 60 секунд можно получить визуально приличный концепт/заготовку под полигональную модель и радоваться.
Но у нас-то воксельная графика. Что для меня было сюрпризом, так это то, что нейросети не могут реализовать нужный уровень абстракции и рисуют откровенно страшные вещи. Вот работа ЧатаГПТ на короткий промпт:
Ненастоящий воксельный танк
Кажется, что это воксель, но нет. Видите - у него рисунок не из квадратиков состоит? Видны скосы и трапеции - нейросеть попыталась сделать что-то ПОХОЖЕЕ на воксельную графику, но не шмогла.
Напрягаем ГПТ дальше и заставляем ее рисовать именно воксельный танк в формате VOX. Готово:
Я и не ожидал сразу халявного результата, что чтобы ТАКОЕ... )) Для этой модели референсом был спрайт от оригинальной БатлСити (желтый танк Player 1). Подумали, разузнали, что наши языковые модели нейросетей сейчас просто не умеют рисовать воксель и объективно "видеть" свой результат. Потому ошибаются нереально. Упростили им задачу - попросили просто написать алгоритм для Python, а питоном потом уже генерировали модель вне нейросети (локально). Ну получилось конечно лучше (смотрим галерею успеха):
1/5
Очевидно, что нейросеть прям потела и старалась - у нее явно были светлые идеи, но обуздать сложную воксельную графику она не смогла.
Решили рисовать руками танк-заглушку, чтобы потом нанятый художник бы сделал нам конфету. Это был первый опыт с МагикаВокселем:
Самое сложное оказалось не нарисовать красивый и узнаваемый танк. Самое сложное - сделать так, чтобы он в топ-даун режиме (вид сверху) остался читаемый. Раньше в играх освещение делали с "запеченным светом" и все было просто - все детали были понятны и узнаваемы, а сейчас "солнышко не с той стороны посветило" - и не понятно где у танка дуло. Так что эта "заглушка" - триумф триангуляции воксельной простоты, передачи образа и топ-даун узнаваемости. Реально было сложно.
Что уж говорить про гусеницы - это отдельный извращенский процесс - сделать так, чтобы они крутились, соблюдая истинную физику:
Хотелось, чтобы они не выдавали какую-то стандартную анимацию, а в самом деле крутились по принципу цепи.
Хотелось, чтобы танк, наезжая на разные поверхности - мог получать разные сопротивления грунтов на каждую из гусениц и чтобы это корректировало траекторию танка. Чтобы при разворотах гусеницы крутились в разные стороны - ну прям как у настоящего танка. В результате гусеницы тоже были побеждены:
Дальше сделали примеры снарядов в вокселе, чтобы было чем стрелять. Тут без приключений - рисовали руками:
Параллельно дорабатывали сетевой движок (у нас это Nakama) и в принципе мы уже начали видеть друг друга в сети. провели несколько тестов, включая первые нагрузочные - полёт нормальный.
Уже к этому моменту мы начали подозревать, что для работы в UE5 нужно не только иметь интеллект, но и некоторый опыт (просто большое количество "моточасов" в движке), которого у нас пока не много. Объясню. В UE5 для прототипирования активно используем Blueprint-ноды (полувизуальное программирование) - это удобно для начинающих. Можно программировать и по классике - но нодами действительно удобнее. Приведу пару наших примеров:
1/3
Почувствовали себя программистами-пауками
Это первый опыт с нодами в таком формате. Поняли, что мы справляемся, но лучше найти кого-то, с кем можно проконсультироваться по части того, как всю эту паутину можно "расчесать" и упорядочить. Если кто-то на пикабу имеет опыт - дайте знать, пожалуйста, будем благодарны.
Дальше нужно для дальнейшей разработки получить какой-то завод/АЗС - где танки можно было бы производить и заправлять топливом. Референс был такой:
Много часов спустя получилось вот такое:
Дальше нам нужно было разработать купол упорядочивания (защита от энтропийного излучения). Идеально было не разрабатывать своё, а взять готовое в UE5, если оно там было. К счастью оно там было. Выглядит примерно вот так:
Из-за топ-даун режима и огромных площадей с полем еще предстоит поработать. Но хорошо, что оно есть "на халяву" и выглядит оно приятно. Внедрим в игру - покажу.
Ну и дальше объединяем: Танк + Рабочую сеть + первые объекты в виде базы + кирпичи и т.п.
В видео уже видно тестовую физику разрушения воксельных элементов, управляемую на сервере (см. как разваливается кирпич, когда по нему попадают снарядом). Это не преднастроенный эффект разваливания. Каждый элемент отлетает в сторону в соответствии с весами и скоростью взаимодействующих элементов.
Как видите - с кирпичами проблема. Их прямо ОЧЕНЬ тяжело свести в 3D, в отличие от 2D.
Решилось это вот такой простой схемой:
И внедряя этот алгоритмик - кирпичи начинают быть смотрибельными:
К следующему посту я уже хочу показать вам, как несколько игроков по сети взаимодействуют друг с другом, разрушают предметы, лутают ресурсы и что-нибудь еще. Но для всего этого в наш бесконечный мир нужно будет внедрить генератор карты (с биомами и т.п.). Пока генератора нет - набросали ручной "рисователь" карт (он, кстати, рисует тоже сразу на сервере):
Вы знаете, перечитал пост и нашел его избыточно уверенным и "повышающим градус" для кого-то, кто предлагал альтернативные идеи по реализации игры. Я стирать начало поста не буду, но тут напишу v2 истинного посыла:
"Главный вывод из комментариев к первому посту: Пикабу нашел самое слабое место в нашей затее - сетевые решения и масштаб могут быть рискованными.
Возможно не надо в первые 80 дней мечтать про "тысячу игроков онлайн", бесконечный мир и серверную архитектуру мечты. Сначала надо доказать более простую вещь: танк должен ехать, снаряд должен лететь, кирпич должен разваливаться, а нескольким игрокам должно быть интересно находиться в одной карте. С этим спорить трудно - разумно же.
Но полностью уходить в "самый простой путь" тоже не хочется. Мы делаем проект не только ради сухого результата, но и ради процесса. В хорошем смысле - как дети в песочнице: строим, ломаем, переделываем, пробуем странные идеи и смотрим, начнет ли это оживать. И радуемся!"
На этой позитивной ноте завершаю пост - нужно разрабатывать игру дальше :-) Буду рад вашим идеям в комментариях под постом!
и забрали весь груз который перевозил этот корабль.
Корабль не долетел 2,71км до станции
Игрок вёз ценные материалы, его подстрелили на подлёте к станции, где он планировал сдать свой груз двое пилотов на линейных крейсерах Tornado
Это по видимому рекордная потеря и добыча у представителей этой профессии. Полтора триллиона это сумма которой можно оплатить примерно 50 лет подписки на EVE Online, каждый месяц подписки стоит как минимум 1000рублей. Это сумма потерь далеко не рядового боя в EVE Online с участием сотен дредноутов и тысяч обычных кораблей. Это годовой бюджет крупного альянса в игре. Даже самые редкие и дорогие корабли в EVE стоят в несколько раз дешевле.
Ганкеры или "суицидники" в EVE Online стоят в проходных системах и возле станций в относительно безопасном как считается космосе, когда за атаку на чужой корабль местная полиция уничтожает через несколько секунд корабль нападающего. Это создаёт иллюзию безопасности. Но когда стоимость груза на порядки превышает стоимость корабля атакующего пилота ситуация меняется кардинально и космос становится смертельно опасным - никогда не знаешь кто из встречных игроков в тебя выстрелит.
Обычные цели ганкеров - неопытные игроки, но в это случае игрок был опытный. Неизвестно с чем связана такая беспечность, но цену он заплатил очень дорогую. Далеко не каждый игрок за всё игру собирает такую сумму.
Это примерно то же самое что в реальной жизни везти еврофуру набитую наличкой по дороге без сопровождения - может доехать, а может и нет. Игрок мог собрать команду для сопровождения, как минимум, использовать более защищённый корабль, разделить груз на 10-15 "мелких" по 100-150миллиардов.
Фейл получился эпичный, сложно сказать какие эмоции испытал этот игрок потерявший за 1 секунду гигантское состояние, а возможно и общие деньги корпорации игроков в EVE.