24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Буду неспешно пилить io-мобу. Круглые герои, башни,
Буду неспешно пилить io-мобу. Круглые герои, башни, скиллы, предметы, все вот это вот. Отчеты каждый день. Стек: js, phaser, colyseus, с бд пока не определился. Погнали!
>>701927 Да, бродкастит. Второй вопрос не очень понял. Легитимное состояние хранится на сервере, клиенты его читают и воздействуют на него своими сообщениями, которые, опять же, проявляются на легитимность на сервере.
>>701944 я не очень знаю, как работает колизей. вопрос был в том, ждешь ли ты ответ от сервера, прежде чем поменять локальное состояние, или меняешь сразу на основе инпута. если второе, у тебя возможны расхождения с состоянием на сервере. если первое - будут лаги
>>701955 Все иошки в которые я играл, просчитывают перемещение на сервере, на основе твоих инпутов. Да, лаги есть, но до 100мс вполне комфортно играть яскозал. Зато не будет гемора с читерами, лагерами и синхронизацией. В доке, лоле и других страгияобразных так же сделано, и всем ок.
>>702028 Хм, а ведь мобы в таком исполнении ещё нет? Причём игровую сессию можно не делать жёстко привязанной к игрокам. Если один игрок вышел, то на его место может зайти другой, со своим героем.
Коллизии и простенькая атака готовы. Завтра запилю хп, нанесение урона игрокам и что-нибудь еще.
>>702045 Да, думаю сделать бесконечный дэтматч, по крайней мере, на первых порах. А еще крипов не будет. Так что называть это мобой неправильно, наверное. Так, миниэкшнрпгшечка.
Решил вернуться к идее с героями-кругляшами. Сделать их можно няшно, плюс не придется париться с анимациями. йобу только за донатшучу
Идею с просчетом перемещений на сервере отмел, т.к. гемор и лаги. Будет достаточно просто проверять, не ходят ли игроки сквозь стены и не юзают ли спидхак.
Алсо, чекайте другую мою браузерку. https://nvzaa.github.io/dungeon-671/ надо сделать визуальное отнимание/прибавление хп, плюс чтобы окно гемовера не вылезало мгновенно после смерти, не дав понять, что произошло. на днях мб
>>702527 Круто, слуш, Артем, сурсы будешь выкладывать? Я сейчас тоже на колизее хренячу игру (ток пошаговую), интересно посмотреть как другие делают бекенд логику. Со временем пришел к тому, что 1 плеер у меня roomOwner и "главную" логику делает он (физика, AI, еще что-то), в моем случае это работает и при этом я разгрузил сервер частично. А ты пишешь 50/50, если будешь что-нибудь править, будет удобно в 2х местах одну и ту же логику делать?
>>702645 Сурсы - нет. Логика у меня только на сервере. К примеру, работа скиллов: 1. игрок прожал кнопку 2. отправил на сервер USE_SKILL { name: 'bombezhka-zhopy', angle: 87 } 3. сервер просчитал кто попадает под действие бомбежки, отнял им хп (то есть воздействовал на внутреннее состояние), что-то еще 4. сервер отправил всем (в т.ч. использовавшему скилл) PLAY_SKILL_ANIM { name: 'bombezhka-zhopy', angle: 87, playerId: '1488 } 5. каждый клиент проиграл у себя анимацию "на" указанном игроке
И так работает все. Кроме перемещения: оно сообщается серверу по факту совершения.
>>702670 >Логика у меня только на сервере Валидацию от нескольких вызовов одного скила будешь делать? Можешь показать хотя бы как основной gameState на колизее выглядит? map Player; map Units; map skills;?
Цены на домены .io - мое почтение, конечно. 6к у reg.ru, 4.2к у godaddy, 28$ у namecheap. Возьму какой-нибудь .online или .space, цена вопроса 200р +- Накинул один вариант названия игры/адреса сайта: funtasy.space Сервер уже присмотрел, цена вопроса 5-10$/мес, есть вероятность, что будет ок. В гермашке для начала возьму.
Вообще, маняцель разработки - коммерческий успех. Средство достижения банальное - реклама. Раскручивать попробую сайтами-каталогами браузерных игр, самые крупные это crazygames, iogames плюс миллиард более мелких. Также можно будет подключить двач, реддит, етц.
Дедлайн на выкат первой версии: 14-й день. Озвучиваю чтобы сохранять настрой и мотивацию. 3 класса, 12 скиллов, 10 предметов, работающие башни, чатик, лог убийств, большая карта.
Как будут происходить катки, общая механика игры - пока неизвестно, думою.
Этот анон >>702044 прав, конечно, нужно переделать. Старая карта 1600х1600 тайлов. Думаю, 3000х3000 будет ок.
Забавно, что в ОП-посте писал про "неспешно", но получается вполне в темпе.
>>702715 Я не использую typescript, если что. Так что state в виде произвольного объекта.
>Валидацию от нескольких вызовов одного скила будешь делать? При прожимании скилла задаю currentCooldown, и не разрешаю повторно прожимать, пока это значение > 0.
>>702685 да взять обычную концепцию стратегий из 00-х типо варкрафта 2 или вархаммера главное это адаптировать геймплей под быстрый In'n'out чтоб человек заходил, делал катку, и выходил с некоторым опытом, некоторым количество очков, которые бы он мог потратить на развитие и т.д. главное же в .io играх это именно быстрый безболезненный, понятный, не перегруженный лишней информацией, вход и выход а потом уже если ему понравилось пусть остаётся и совершенствуется дальше типо изи ту лёрн хард ту мастер, идеальная формула гиперкэжуал игр возьми как анон из треда ассеты от рпгмейкера и на их основе сделай стратежку, количество игроков в сессии, и размер карты можешь уже настраивать потом в ходе тестов главное в этой игре должна быть идея in'n'out человек должен быстро зайти совершить какой то минимальный набор действий, или даже не совершать его и сразу идти и месить противника
>>702720 первое что приходит на ум в данной концепции это: начало игры, у игрока есть базовый юнит "постройки" который идёт и кушает окружение, юнит типо матка, саранча, таракан, муравей, шарик круглый как агарию, только этот шарик кушает не игроков а окружение, леса, камень, чи ещё какую нить хуету поедая окружение он копит деньги, становясь немного больше и сильнее трятить деньги можно на его лёгкий апгрейд, или на покупку юнитов, которые "рождаются" из него, инкубируются в нём, пока юниты инкубируются, эта "матка" обездвижена или замедленна и уязвима ну а дальше уже дело техники, строим юнитов и отправляем их пиздить чужую матку потеряв матку игрок проигрывает это важно в концепции in'n'out, должна быть конечная цель победы, а не просто уничтожить все юниты и построики врага хотя это тоже можно сделать в качестве достижения победы, но не на ранних этапах цели победы: уничтожить матку накопить определённое количество "еды" не дать сопернику матки развиться, заставлять его держатся на определённом количестве "еды" определённое время ну и много чего уже на этой базе можно повыдумывать
>>702722 >из вархаммера из вархаммера я имел ввиду это захват точек в данной концепции это можно реализовать так, типо на карте есть точки добычи "еды" для матки, особенные захватываешь их, и "курьеры" типо из этой точки\магазина\склада\пещеры таскают еду для матки
>главное же в .io играх это именно быстрый безболезненный, понятный, не перегруженный лишней информацией, вход и выход
про вход я тоже давно понял, но оформление выхода пока только по таймеру придумал. Что меня безумно раздражало в агар.ио (и что в зобмб.ио намного лучше сделано имхо) - это как раз выход. В агар.ио (исходной версии, сейчас там батл рояли вроде тоже появились, но в текущей версии переусложнен вход) ты начинаешь и не знаешь, когда все это кончится. А если остановишься - тебе пиздец.
Также если вспоминать стратегии 90х и 00х, в старкрафте партия могла длиться достаточно долго, что тоже шло во вред фану. Мне нравится идея, что матку нужно кормить, если добавить исчерпаемость ресурсов, то появляется ограничение на катку (можно даже голодные игры делать, лол)
>из вархаммера я имел ввиду это захват точек в ваху не играл, но общую идею вроде бы понял
Спасибо за идею, попробую наваять что-то подобное, по результату отпишусь
>>702762 в агарио вся игра на рейтинг идёт и на накопление баллов типо там нет конечной цели, конечная цель стать топ1, самым жирным и заработать по больше баллов
>>702867 Мне кажется он не про перфоманс, а просто токсик. Кстати на каком хосте серв будешь покупать? А то у меня горький опыт был с русскими хостами постоянно бля отваливается, хотя пишут 99.9%
>>703017 Пока придумал и пилю такую механику: в один момент времени у каждой стороны деактивирована одна башня, какая именно - выбирается случайно каждые 1-2-3? минуты (офк выбирается самая дальняя на линии). Враги могут прийти и сломать ее. При выпиле всех башен хотя бы на одной линии (2-3?) трон становится уязвимым, можно его сломать и победить.
постить теперь буду по мере запила контента, а не каждый день
>>703071 >какая именно - выбирается случайно Только не это. Минимизируй рандом по возможности. Пусть будет лолоподобный критшанс, но вот это точно фана не принесет. И опять же: а что делают игроки, пока таверы активны? Ну тип вот я на миду сделал фб. И чем мне заняться дальше?
>>702060 > с перемещением на сервере Ты просто изобретаешь велосипед. Движение на сервере, на клиенте тоже движение + предсказание и лагокомпенсация + коррекция от сервера. Читни эту серию статей https://m.habr.com/ru/post/302394/
>>703112 А какой именно способ подойдет для игры ОПа? Хотя у него примитивная 2D йоба. Но какой вариант подойдет для большой чанковой ММО, хранить снимки состояний будет слишком дорого.. Есть еще что читнуть?
>>706230 Проблема любых не опытных гейм-девелоперов. Как только проходит вдохновение от 1 до 14 дней обычно, всё забрасывается, либо переключается на новую идею и так далее.
А фарм нейтральных юнитов будет? Что с сетью, просто вебсокеты делал и не парился? Матчи или закидывание игроков когда угодно как обычно в ио? Если первое, трафик будешь покупать, чтобы матча по 24 часа не ждать? Под зум разные спрайты рисовал или не?
>>706639 >фарм нейтральных юнитов будет? Нет. 5х5 на такой карте будет не пустынно. >Что с сетью, просто вебсокеты делал и не парился? colyseus >Матчи или закидывание игроков когда угодно как обычно в ио? Второе. Кидает в рандомную комнату, в которой есть место для тебя. Сломал башни -> сломал трон -> катка по новой. Позже запилю рейтинги, чтобы было на что дрочить. >Под зум разные спрайты рисовал или не? Не, зачем?
Из заметок: больше никогда не писать код без типизации.
>>706816 Из за типов, из за них родимых. Как то потратил на дебаг вечер, а оказалось что в какую то парашу передавался не объект нужного "типа", как написано в апи, а массив из одного элемента с этим объектом мимо
>>701894 (OP) Оп ты действительно молодец. Впервые за этот год удивил тред в /b/. Даже тред в /gd/ есть, кто же знал, что среди васянов такой гений появится. Стек отличный выбрал, желаю тебе удачи и успехов с игрой.
>>706921 >Поподробнее. Сам чет не замечал. Сначала я был в синей команде, союзники были синими, а враги красными. Потом я перешел в красную команду, сам отображался красным, союзники красным, враги синим. Спустя время союзники начали отображаться синим, враги красным.
>>706919 Что-то слишком много сарказма на один пост. ОП, конечно, молодец, что пытается сделать игру, но нахваливать его пока рано, слишком сырой прототип.
>>706924 Обычно если игру делают, это скопированная по образцу из готовых ассетов на Юнити. Чтобы на Фазере игру делать уже мозги нужны, а ОП пишет не только клиентский код, но и серверный что в два раза сложнее. Да игра сырая, но за 6 дней он достиг таких успехов, которых мало кто достигает из начинающих геймдев разработчиков. Как один анон пишет >>706233 , они пробуют не получается и бросают. Проще скопировать чужое, чем делать свое. Оп не просто так боится загружать свой код на гитхаб, ему будет обидно, если кто-то украдет его тяжелую работу и выдаст за свою, а бояться будет только действительно тот, кто старался и делал.
>>706929 Вообще-то в /gd/ много игр "не из готовых ассетов на Юнити". Где-то тут есть даже очень похожая веб-игра, где анон достиг чуть больших успехов (что было дальше не знаю). Кроме того, нахваливать за клиентский/серверный код пока рано, игра лагучая и багучая, почти неиграбельная, а ОП тратит уйму времени на дебаггинг, следовательно код он писал не слишком внимательно (навалить кучу говнокода любой сможет, если вложит в это достаточно времени, в этом нет какого-то великого достижения; а качество его кода мы можем оценить только по наблюдаемым багам, лагам и глюкам).
И потом, если он выложит на гитхаб под свободной лицензией, это будет не "украл", а "форкнул". Да, кто-нибудь может просто скопировать и запустить свой сервер, но кто-то может начать развивать и сделать игру ещё лучше - в этом вся суть опенсурса, ты можешь развивать чужой проект, когда даже автор забил на его развитие (или умер, или по любой другой причине больше не может работать над ним). Многие популярные в прошлом игры умерли навсегда лишь из-за того, что разработчик, владелец или издатель решили закрыть невыгодный проект, а исходные коды остались закрытыми. Многие бывшие игроки таких мёртвых проектов просят отдать им исходные коды, чтобы можно было продолжить то, что не смог изначальный разработчик. Разве было бы плохо, если бы проект продолжал жить и развиваться даже после смерти своих изначальных разработчиков?
>бояться будет только действительно тот, кто старался и делал Также будет бояться тот, кто не старался и навалил кучу говнокода, за которую его могут высмеять. А также тот, кто натырил готовых решений из туториалов и склеил в клубок лапши, за что тоже будут высмеивать. Так что "я старался и поэтому никому не дам" - не единственный возможный сценарий.
ОП, я нисколько не преуменьшаю того, что ты уже сделал, но нахваливать тут пока реально не за что. Тебе ещё долго работать над игрой, чтобы довести её до презентабельного состояния... А то тебя сейчас перехвалят и потом будет очень больно сталкиваться с жестокой реальностью, в которой нужно не только сырой прототип склеить)
>>706932 По-моему это как-то связано с обновлением игры, когда клиент теряет связь с сервером. Сделай уже принудительное обновление страницы после потери связи с сервером. Или хотя бы уведомление "сервер всё".
>>706936 Ты прав, листаю и действительно много хороших игр. Странно, что ты так строг к этой игре, всего ведь 6 дней делается. Насчет гитхаба, тут те кто уже хорошо игры делают им заходить туда вообще нет смысла. Плохие же разработчики форканут в лучшем случае, а в худшем будут наживаться на игре. Если бы разрабы открыли код старых игр было бы печально увидеть их новые версии с лутбоксами.
>>706951 >всего ведь 6 дней делается Ты что-то путаешь, шестой день был три недели назад: >>701894 (OP) >02/10/20 Птн 20:29:29 >>702670 >07/10/20 Срд 21:27:43 > День 6.
>>706951 >ты так строг к этой игре Похвалами делу не поможешь. Лучше указать на ошибки, которые можно исправить, чем безосновательно хвалить. Можно указать на что-то, что понравилось лично тебе - это будет иметь смысл, в отличие от "ты делаешь игру = ты молодец".
>те кто уже хорошо игры делают им заходить туда вообще нет смысла По-твоему в опенсурсе только плохие разработчики копаются? >Если бы разрабы открыли код старых игр было бы печально увидеть их новые версии с лутбоксами Существуют опенсурсные клоны старых игр. Существуют оригинальные исходники старых игр. Где же версии с лутбоксами? https://github.com/id-Software/DOOMhttps://github.com/id-Software/Quake и другие игры от id Software https://github.com/minetest/minetest - опенсурсный клон майнкрафта Мне лень перечислять все опенсурсные игры, но что-то я не вижу среди них "жертв лутбоксов". Да и правильно реализованные лутбоксы приятно видеть в игре, они не выкачивают из тебя деньги и только радуют)
>>701894 (OP) Сделай игру пободрее. Сейчас получается так: - бежать до чужой базы или хотя бы первой вражеской базы - долго; - ХП игрока слетает за 2-3 удара чужой башни/игрока; - самоотхил очень долгий, фонтан не лечит, карманных хилок нет; - деньги на шмотки копятся очень долго, даже в доте шмот раньше покупается, чем здесь; - из-за лагов пвп/пве сильно затруднено, даже тупо по башне попасть трудно; - для победы нужно вынести все башни, а это очень долго. Моё предложение такое: - или карту сжать, или увеличить скорость движения; - ХП должно быть побольше и самоотхил повыше, лечилки дешёвые добавь; - цены на шмот снизь, нужны несколько уровней шмота - от беспонтовой дешёвки до дорогой имбы; - нужен какой-нибудь прицел (кроме курсора мыши), возможно автострельба как в доте; - условие победы, да, я слышал, ты собираешься сменить на только одну линию, это норм. Ещё можно TDM на время/число убийств и CTF на время/флаги замутить для разнообразия.
>>706961 >лечилки дешёвые добавь Или лучше точки на карте, где спавнятся одноразовые лечилки. Потому что даже если можно прокачать регенерацию или сбегать на базу, всё равно должен быть способ не выходить из боя лишний раз. Сейчас лучшая тактика выноса башен - встать рядом и кликать на неё, пока не умрёшь, затем снова добежать до башни и снова кликать, это уныло.
Алсо я так и не понял, можно ли уклониться от атаки? Игрок может промахнуться, а башни вроде не промахиваются совсем. В Доте 2, насколько я помню, снаряды башен летят медленно и от них можно буквально убежать, а у тебя по-моему башни бьют мгновенно и со 100% точностью.
Да, на счёт динамичности - в такую игру никто не будет играть с долгим развитием как в доте (там катка минимум полчаса, а то и целый час), должно быть максимум минут 10. Следовательно геймплей нельзя растягивать долгой ходьбой, долгим регеном, долгим фармом монет и т.д.
Я знаю, существуют ММОРПГ с точно таким же стилем графики, в которые задротят не меньше, чем в крупные ММО, но у тебя вроде как прицел на быстрые бои, а не длительное развитие?
>>706983 Сейчас зашёл - работает. Скорее всего у него IP-адрес меняется (No-IP не сразу цепляет новый IP).
>>706971 >Это в фазере, надо просто задать время жизни таким частицам Хочешь сказать, эти частицы у него остаются в памяти даже когда исчезают? У него явно какая-то утечка в клиенте.
У меня есть другая теория: 1. Т.к. башни стреляют струёй огня, а не снарядом, у каждой башни есть своя струя, по умолчанию невидимая. 2. Когда башня стреляет в игрока, она поворачивает свою струю в направлении игрока и временно делает её видимой. 3. Когда игра завершается, комната сбрасывается, но струи огня башен по ошибке становятся видимыми, не скрываются. 4. Если подойти к вражеской башне, она снова выстрелит - её струя развернётся и скроется как положено. Т.е. проблема в шаге 3, на котором процесс сброса комнаты зачем-то делает видимыми эти струи огня. Вангую, это вообще не частицы, а анимированные спрайты, там всего несколько кадров.
Апдейт с фиксом известных багов, улучшением баланса, логином/регистрацией тру-анонимусы по-прежнему смогут оставаться анонимусами, рейтингом сегодня до конца суток. Нравится пилить, но иногда такая лень наступает, что только обещание на дваче мотивирует, лол.
>>707010 >7.jpg Зачем на листочке? Поди потом сам же будешь гадать, что за слово ты написал) Может от руки и быстрее, но мне больше нравится в Inkscape такие схемы набрасывать.
>>706995 >Хочешь сказать, эти частицы у него остаются в памяти даже когда исчезают? У него явно какая-то утечка в клиенте Клиент и написан на фазере, скорее всего он юзает группу для хранения всех эффектов или эффектов игрока, так вот там вручную надо очищать ее чтобы с экрана все лишнее убрать, вообще в js нет сборщика мусора и там надо ручками вычищать все говно, а учитывая как там массивы криво работает и т.п. То это становится болью
>>707035 >свой почерк всегда поймешь Я когда в школе учился, к последним классам вообще перестал понимать свои записи на уроках. Да даже записи своих идей по программированию с тех времён не могу расшифровать. Так что мне проще напечатать, чем возиться с ручкой и бумагой... На компе в любом случае удобнее, даже если схемы придётся мышкой строить. И показать другим людям проще, им-то придётся в твоём почерке разбираться, чтобы прочитать.
>>707036 >в js нет сборщика мусора и там надо ручками вычищать все говно Правда? Я думал, в JS-то он обязан быть. Тогда понятно, откуда у него утечки/нарастающие со временем тормоза)
Блин, такие проекты вдохновляют запилить что-то похожее, но JS и сеть для меня дремучий лес...
>>707083 >проблема не в типах, а в мутабельности! Ты видел хотя бы одну сложную игру на функциональном ЯП, в котором все переменные получают значение всего один раз в своей жизни, при создании? Как, по-твоему, должна будет выглядеть игра, если для каждого действия игрока нужно создавать новый объект Player, потому что ни одно из его полей невозможно перезаписать? А в функциональном майнкрафте пришлось бы заново генерировать новый мир для изменения любого отдельного блока (и нет, одним чанком дело не обойдётся, ведь кроме чанка нужно пересоздать хранилище чанков; разве что остальные чанки можно перетащить в новое хранилище, но всё равно геморрой).
И как иммутабельность поможет ОПу, если у него в коде, условно, нужно заменить >Tower.Flame.Visible = true на >Tower.Flame.Visible = false // или добавить эту строчку в метод Room.Reset(), в цикл обхода всех башен и тогда пламя не будет оставаться на экране, а для переписывания на чисто функциональную парадигму уйдут недели?
Хотя это спор ни о чём, нужно смотреть конкретный код и тогда будет понятно, что там и почему.
>>707086 >в идеале нужно это как-то отключить А в других HTML5-играх отключается? У меня вот проблема что иногда игра не перехватывает фокус клавиатуры и нажатие на backspace (набирая сообщение в чате) отправляет на предыдущую страницу (экран входа в игру)...
>если для каждого действия игрока нужно создавать новый объект Player Ты не очень понимаешь, о чем говоришь: изучи матчасть, пойми, как это реализовано и т.п.
>И как иммутабельность поможет ОПу Я вот на это ссылаюсь: >3. Когда игра завершается, комната сбрасывается >или добавить эту строчку в метод Room.Reset(), в цикл обхода всех башен Ты же понимаешь, что "комната сбрасывается, но не до конца" - это баг мутабельности? И что "обход всех башен и вызов ресет" - это артефакт мутабельности? При нормальном подходе ты просто выкидываешь старое состояние комнаты и все. Грубо говоря, вот есть у тебя переменная counter, тебе нужно его сбросить; ты пишешь: counter = 0, а не начинаешь как-то там менять биты в текущем значении, чтобы привести его в итоге к нулю, если фаза луны сегодня правильная. Вот и тут то же самое.
>>707100 >У меня вот проблема что иногда игра не перехватывает фокус клавиатуры Два чаю, тоже бывает. Если еще пользуешься вимиумом или подобным расширением - не дай бог забудешь добавить сайт в исключения. Еще иногда почему-то в файрфоксе "западает" клавиша, типа нажимаешь w - и персонаж идет вверх, пока не перезагрузишь страницу. Еще иногда появляется какая-нибудь левая прокрутка, если позумишь страницу. Вообще гейминг в браузере - изначально ущербная идея, конечно. Когда думают жопой о технологиях, а не о юзере.
>>707139 >При нормальном подходе ты просто выкидываешь старое состояние комнаты и все По-моему тут как раз проблема в том, что он возвращает состояние по умолчанию (все спрайты видимы). То есть сброс происходит, но это сброс к состоянию по умолчанию (0, false, null), а не к состоянию "как задумано геймдизайнером" (hide = true).
>ты пишешь: counter = 0, а не начинаешь как-то там менять биты в текущем значении, чтобы привести его в итоге к нулю Если у меня не переменная counter, а объект Room, то у него должен быть метод Create, в котором происходит инициализация. Инициализация будет включать создание вложенных объектов и вызов метода Reset, устанавливающего исходные значения полей. Если в будущем мне нужно вернуть Room в изначальное состояние, я могу просто вызвать Room.Reset. Room.Reset в свою очередь вызывает Tower.Reset всех вложенных Tower, которые были созданы вызовом Tower.Create в Room.Create. Как видишь, всё просто, ничего не нужно уничтожать и заново создавать, всё создаётся один раз и сколько угодно раз может быть возвращено в исходное состояние.
А чтобы можно было "Room = CleanRoom", нужно создать новый объект CleanRoom, а затем уничтожить Room и присвоить Room ссылку на CleanRoom, что эквивалентно созданию Room заново. Поскольку операции с Create/Destroy слишком дорогие, лучше сбросить состояние вызовом отдельного метода Reset, чем создавать объект заново.
Просто представь, что у тебя counter содержит не биты, а пачки пачек пачек пачек ... пачек битов, и ты не можешь просто так взять и присвоить миллион битов сразу, тебе нужно сначала собрать пачку битов, потом пачку пачек битов, потом пачку пачек пачек битов... и так далее, пока у тебя не получится новый counter, которым ты можешь заменить старый. Но это будет слишком долго по сравнению с тем, чтобы послать сигнал сброса вложенным объектам, не уничтожая и не создавая их заново.
Проблемы начнутся только если программист был пьян и создал новое поле, забыв присвоить ему значение в Reset, но уже где-то использует его. Чтобы такого не было, нужно каждому новому полю сразу присваивать начальное значение в Reset - но только если нам вообще нужно когда-либо возвращаться в это самое начальное значение (обычно смысла в полном сбросе нет).
>>707139 >Вообще гейминг в браузере - изначально ущербная идея, конечно. Когда думают жопой о технологиях, а не о юзере. Ущербная идея - рендерить 3D-графоний процессором на интерпретируемом языке в и без того тормозном браузере. А 2D-игры в браузере могут быть неплохими и даже удобными - ты можешь играть на любом ПК, планшете и смартфоне, просто открыв браузер. Единственный фатальный недостаток - зависимость от сервера, но онлайн игры так и так от этого зависят... Юзерам ведь реально удобнее зайти через браузер, чем что-то качать и устанавливать (хотя обычный пользователь не догадывается, что браузер качает игру в кэш, потом кэш ломается, игра качается вновь и т.д.).
>>707154 >По-моему тут как раз проблема в том, что он возвращает состояние по умолчанию (все спрайты видимы). >1. Т.к. башни стреляют струёй огня, а не снарядом, у каждой башни есть своя струя, по умолчанию невидимая.
>Если у меня не переменная counter, а объект Room Ты путаешь identity и value. Корректным было бы сравнение "если у меня не число типа Int, а объект типа Room".
>объект Room, то у него должен быть метод Create У объекта Room метод create? И что же комната создает? Это уже и с точки зрения ООП никуда не годится.
>Если в будущем мне нужно вернуть Room в изначальное состояние, я могу просто вызвать Room.Reset В котором тебе нужно не забыть вызвать reset для всех дочерних объектов. И для всех объектов, на которые у тебя могут быть ссылки. Точнее не для всех, а только для тех, которые надо сбросить. Еще могут быть кэши и пулы... И еще тебе нужно удостовериться, что никакие иные объекты не ссылаются на твой Room или его дочерние объекты, потому как ты их сбрасываешь, т.е. логически (с точки зрения игры) это уже другая комната. И еще тебе нужно не забыть внести соответствующие изменения по всю эту портянку при рефакторинге. Ну программисты же умные, не забудут, да?
>Как видишь, всё просто )) эх, вот бы мне вернуться лет на 15 назад, тогда тоже все было просто
>А чтобы можно было "Room = CleanRoom", нужно создать новый объект CleanRoom Зачем создавать новый объект, если данные иммутабельны?
>Поскольку операции с Create/Destroy слишком дорогие Кто сказал?
>лучше сбросить состояние вызовом отдельного метода Reset, чем создавать объект заново Чем лучше? Ты понимаешь, что сейчас всерьез пытаешься "оптимизировать" создание одной структуры раз в 15 минут (или сколько там матч идет), что как бы намекает на непонимание принципов и методов оптимизации?
>Но это будет слишком долго по сравнению с тем, чтобы послать сигнал сброса вложенным объектам, не уничтожая и не создавая их заново. Во-первых, это будет присваивание одного указателя - и все. Во-вторых, см. предыдущий абзац. В-третьих, еще раз тебя прошу: прочитай литературу по теме, прежде чем строить домыслы и пытаться на их основе вести дискуссию. Это непродуктивная трата времени.
>Чтобы такого не было, нужно каждому новому полю сразу присваивать начальное значение в Reset ...вот еще немного подумай в этом направлении и как раз придешь к иммутабельному дизайну, лол.
>>707154 >Ущербная идея - рендерить 3D-графоний процессором 3д графоний в браузере рендерится гпу. И 2д, собственно, тоже.
>ты можешь играть на любом ПК, планшете и смартфоне, просто открыв браузер Браузер, в котором игра рендерится через опенглное апи. Которое доступно и без браузера. На мой взгляд самый идеальный пример всего этого безумия - это веб-билд какой-нибудь стратегии про покрас на юнити, ну или аналогичного жанра игр, где все завязано на интерфейсе. Вот тогда получается просто идеально: у тебя браузер, в котором как бы хтмл5, и в нем один элемент, в котором рендерится игра, в которой свой уи-фреймворк.
>Юзерам ведь реально удобнее зайти через браузер, чем что-то качать и устанавливать На смартфонах, где у юзеров есть выбор, никто не пользуется клиентами через браузер (потому что это убого), все устанавливают приложение. Это не про удобство, а про безысходность, потому что "так исторически сложилось".
>>707153 Ты весь день один апдейт пилишь или некогда игрой заниматься? Если крупный апдейт пилишь - тестируешь на своей локальной версии, отдельной от публичной?
Вчитался в подсказки в игре. "Магическое исцеление" требует 200 маны и даёт 300 маны, в результате прирост 100, но использовать можно только если есть больше 200. Это нормально? Я не спец в РПГ и фентези, но обычно какое-то действие не может одновременно требовать ману и давать ману - оно либо тратит ману на какой-то процесс, либо синтезирует ману из какого-то материала/собирает её из окружающей среды. Мана же "магическая энергия", если бы можно было тратить ману на получение большего количества маны - получился бы вечный двигатель, как заряжать батарейку от самой этой батарейки.
...хотя, по лору маг может тратить ману на ритмичные сокращения ануса, в результате чего резко увеличивается пассивный сбор маны из окружающей среды и поэтому маны получается больше, чем было затрачено, да и с геймплейной точки зрения элемент интересный (нельзя получить ману, если только что заюзал всё что было)... Просто показалось странным, когда заметил.
>>707161 Во-первых, ты слишком придираешься к терминологии. Во-вторых, мы из разных миров; ты профессионал, а я любитель, и отрицание(любовь(я(), функциональный(язык()))). Я собирался возразить и привести аргументы, но зачем, если каждый останется при своём и будет по-своему прав. И вообще это тред проекта ОПа, а мы тут флудим о программировании...
>>707169 Куда третье очко статистики дел? Там вроде уничтоженные башни считались. Алсо кроме убийств и смертей обычно считают "помощь" - если "убйством" считается последний нанесённый удар, то "помощь" это нанесение урона игроку, который вскоре после этого умрёт от чужого удара. Если уж считать башни, то для них тоже нужен отдельный параметр "помощи в сносе башни". Не то, чтобы это было очень нужно, но многие геймеры, я думаю, любят дрочить на циферки и писькомерство... Кому-то может не нравиться чистое пвп, они могут пытаться побить рекорды по сносу башен, например.
>>707174 >фаст тп на базу и к любой живой союзной башне с небольшим кулдауном >прожал - стоишь n секунд без движения и получения урона - тпшишься В доте для этого вроде как специальные свитки телепортации юзались, покупаются дёшево на базе.
>>707175 >а лучше йоба-реген, когда постоял на месте, или йоба-хилки Можно просто прерывать реген после получения дамага. Большинство игр с регеном так и делают: пока получаешь дамаг, регениться не можешь, если скроешься от врагов за преградой или сбежишь - сможешь относительно быстро излечиться. Однако возвращение на базу всё равно нужно, там же магазин.
>>707179>>707182 Лол, чего вы хотите от прототипа, который всего дня два онлайн? Да и пик числа игроков онлайн пока не превысил вместимости одной комнаты, насколько я понимаю. Но соглашусь, ручное создание комнат с уникальным ID - хорошая фича, во разных подобных играх видел.
А конфа в дискорде есть, немного выше ОП постил >>706863
>>707164 >Вчитался в подсказки в игре. "Магическое исцеление" требует 200 маны и даёт 300 маны, в результате прирост 100, но использовать можно только если есть больше 200. Это нормально? Я не оп, но оно дает ману и ближайшим союзникам, то есть 1500 маны может дать. Но только раз в 15 секунд. Вполне нормально. Часто еще делают спеллы по типу "отдай 200 маны сейчас, получи 400 маны в течение 30 секунд". Это распространенная механика в том числе и в настолках.
>>707167 Так мой основной поинт в том, что ты сперва попробуй и разберись, а уже только после этого делай выводы о любви\нелюбви. Иначе получается (как это часто и бывает), что "не читал, но осуждаю". А по поводу частностей особо смысла дебатировать нет, угу, тем более в итт треде.
>>707197 Добавлю, что в случае мтг (даже без учета трешолд-эффекта) это далеко не просто +1 мана; смысл тут в том, что это инстант, поэтому ты можешь иметь 2 маны в манапуле, и твой соперник будет рассчитывать свой ход исходя из этого, а ты ВНЕЗАПНО можешь заиметь 3 маны вместо этого, и кастануть соответствующий спелл, который ты по мнению соперника скастовать не мог. То есть "истинная" механика тут немного другая, но основа та же, да.</offtop>
>>707169 >чекайте Ты хотя бы объявляй время сходки, чтобы тест был полноценным, типа >йо, сегодня в XX:X0 мск проводим тест %фича_нейм%, нужно NN анчоусов, иначе не получится Потому что просто заходить на пустой сервер, полчаса бегать в одиночестве и выходить, не дождавшись соперников - это бред, да и один на один тоже не очень. Если бы у тебя была ММОРПГ, где можно было бы занять себя ПвЕ, фармом, крафтом, квестами и т.д., если бы у тебя была песочница, где можно было бы строить всякую хрень в одиночестве, если бы у тебя были боты вместо недостающих живых игроков - тогда был бы смысл заходить на пустой/полупустой сервер. У тебя соревновательная игра 5 на 5 игроков, из ПвЕ контента только снос башен (унылый донельзя - стоишь на месте и кликаешь, ладно ещё абилки можно юзать с умом, чтобы быстрее башню разобрать, но этого мало) - мало того, что игроку нечем заняться в одиночестве, так и тестеру сложно протестировать геймплей игры, который будет в полноценных боях 5 на 5 (или хотя бы 3 на 3).
Вот, допустим, ты сейчас по просьбам ребаланснул атаку и цены, а как это повлияло на игру 5 на 5? Неизвестно. Если бы твоя игра была бы уже популярна, игроки бы сами находили друг друга и писали отзывы о текущем геймплее, а пока популярности нет - нужно объявлять время тестов. Ну и дни, когда ориентировочно собираешься проводить очередной тест. В остальном, даже держать сервер 24/7 смысла пока мало (уверен, 95+% времени на него никто не заходит, ибо не с кем).
Кстати, ботов делать будешь? Во многих io-играх, по-моему, есть боты, как минимум в портах на мобилки (некоторые даже маскируются под онлайн, хотя на деле играешь всегда только с ботами). Грустно будет игроку, который оказался 101 и не попал ни в одну из 10 уже заполненных комнат, а хотя бы 102 всё ещё не заходит.
Запилил тред в /b. Ближайшие пару часов будет народ. Попробую каждый вечер создавать. Интересно, модеры задушат? С другой стороны я пропагандирую другие разделы помимо раковника с двач-я-посрал и танцулько-тредами.
>>707259 Лаги возрастают с течением времени и до перезагрузки страницы. В какой-то момент от нажатия на клавишу навыка (1-4) до применения навыка проходит больше секунды. Сообщения в чат поступают через 2 секунды. В общем, с таким лагодромом играть нереально, при том что компьютер не перегружен (хотя может браузер только одно ядро нагружает?).
>>707262 У тебя Firefox? У меня Firefox (Nightly 84). ОП говорит, что на хроме лагов нет или их меньше, но у меня нет хрома.
Если это >>707132 >Очень странный там сборщик и у каждого брузера свой правда, то, возможно, проблема действительно со сборщиком мусора Firefox. Но мусор за собой всё-таки нужно убирать)
Только что обнаружил и убил процесс firefox, загруженный на 30% ЦП и 1 ГБ RAM, по всей видимости он завис и не мог завершиться самостоятельно. Могла ли это быть эта игра? У меня на каждую вкладку создаётся отдельный процесс (мне так удобнее), а когда сегодня вечером пытался поиграть со всеми на сервере - вкладка с игрой сильно тормозила, аж интерфейсные кнопки не сразу отвечали, не факт, что она закрылась корректно. Хотя ничего не могу гарантировать, я потом ещё кучу вкладок открывал и в фоне у меня пара десятков вкладок в т.ч. несколько с ютубом (заметил только после запуска другой игры - процессор загрузился на 100% и я полез искать, кто создаёт такую нагрузку).
В любом случае, рекомендую ОПу сфокусироваться на проблемах с лагами/утечкой ресурсов. Наверняка где-то забываешь корректно освободить какую-нибудь картинку, а в результате клиент перегружается этими картинками)
Лайфхак: лучше сначала нарисовать архитектуру проекта схематически, прежде чем переходить к кодингу/рефакторингу. Даже если не хочешь выкладывать код, такую схему проекта продемонстрировать не страшно) Нубам урок, а опытные смогут что-нибудь подсказать по этой схеме.
>>707295 Я не ОП. А зачем карту с сервера подгружать? Имхо, подгружать нужно только то, что динамически меняется. Если произойдёт существенное обновление контента игры, игрок должен будет нажать F5 (ctrl+F5) и таким образом скачать клиент заново.
>>707301 Можно было бы рендерить случайные карты на сервере и клиент бы подгружал просто, это же обычный массив с кодом тайла, да и так надежнее, но я так понимаю на сервере коллизии не проверяются? Я не стал долго рыться в коде ОПа если что, вот только не пойму, там сжато все или ОП пишет в функциональном стиле?
>>707302 >Можно было бы рендерить случайные карты на сервере и клиент бы подгружал Я так понимаю, цель ОПа - сделать статичную карту а-ля Дота2, только в формате io-игры. Плюс такой карты - игрок может задрачивать навыки, тогда как на рандомной карте рандом будет влиять на исход каждого боя. Кроме того разработка хорошего генератора карт - отдельная тема, ему до неё ещё далеко)
>только не пойму, там сжато все или ОП пишет в функциональном стиле? В чате он говорил что пропускает через какой-то обфускатор, т.е. то что ты видишь - не исходный код. Да и как он, по-твоему, может писать код вида "function n(t,e,i,n,r,s,o,a)"? Это же явно обфусцированный код.
А мне вот непонятно, зачем ему 13 отдельных js-файлов, каждый из которых подгружает одну png-картинку (см. пикрилы)... Он говорил, что это результат работы обфускатора, но как по мне, так нафиг этот обфускатор нужен, если он зафлуживает проект лишними мелкими файлами? Они занимают отдельное время на загрузку и интерпретацию, и место в кэше для хранения. Может выглядит как мелочь, но суммарно выходит много (будет заметно сильнее, если проект начнёт развиваться и пополняться контентом). Почему нельзя загружать картинки из одного скрипта?
>>707086 >в опере Все в 2008-й, включаем автономный режим. Ну ты сам все понимаешь по своему сарказму
>>707302 Карта всегда одинаковая, рандома в этом плане не будет. Да, коллизии сейчас не проверяются на сервере, любой какер, угоревший по сетевому коду, сможет ходить сквозь лес, но только тссссс! В будущем надо будет при помощи того же фазера (@geckos.io/phaser-on-nodejs) создавать экземпляр игры на сервере и проверять их.
Предметы хранятся в items.json, который общий для сервера и клиента. Зачем что-то подгружать, если он 2 кб и статичен?
>>707192 Сейчас озадачился мотивационной частью игры. По завершении катки будет появляться окно со статистикой всех игроков: - убийства + ассисты - общий нанесенный урон игрокам, башням и трону - сломанные башни + ассисты - командная работа (сколько отхилил союзникам, сколько баффов наложил)
За твое место в каждой из таблиц будут даваться очки (например, #1 - 10, #2 - 6, #3 - 3, далее 2, 1). Очки игроков команды-победителя будут умножены 2, например. За трипл-киллы, доминейшны и прочие эпичные мувы будут даваться какие-то медальки, на которые все женщины будут смотреть и течь. Будет месячныей рейтинг (+недельный?, дневной?). Топовые игруны клешнями будут получать соответствующие короны возле ника. При достижении какого-то количества очков можно будет выбрать скин покрасивше. Я бы рад добавить возможность ставить свои кастомные картинки, но как тогда понять, кто из чьей команды, какого класса?
>>707179 В главном меню будет список комнат с количеством игроков. Сможешь присоединиться к одной из или создать свою. И даже скопировать код комнаты чтобы кинуть корешу.
Лаги поправлю, ей-богу, руки не доходили еще.
itch.io даже траффик дает, на первой странице по некоторым тегам, где-то даже в топ 5, есть переходы с главной (?????). 50 просмотров, 21 запуск за 3 дня. Запилил превью покрасивше.
Также надо будет отслеживание траффика добавить, откуда люди приходят, просто записывать в базу их referrer.
Автобаланс сделаю. Когда разница в кол-ве игроков по командам критичная, выбираем в преобладающей команде игрока с меньшим кол-м киллов, пишем ему мол "через 10 секунд будешь переброшен", потом "через 5", потом перебрасываем.
>>707315 >>в опере >Все в 2008-й, включаем автономный режим Настоящая Опера давным-давно сдохла, остался только прикольный скин для хрома с пачкой ненужных фич из коробки, который по недоразумению всё ещё называют оперой. Однако тебе стоит позаботиться обо всех возможных браузерах, или по крайней мере ставить заглушку "играйте на современном браузере", чтобы пользователи не жаловались на баги. Но ты пока для хрома и фаерфокса оптимизируй всё, чтоб не начинало дико лагать, когда в комнате больше 2 человек.
>создавать экземпляр игры на сервере Звучит как костыльный велосипед с палками в колёсах.
>Все сжато webpack'ом. И картинки тоже, судя по коду? А нахрена ты png сжимаешь, шакал? Сжимать png дополнительно - только увеличивать время загрузки. Лучше будет оптимизировать его объём каким-нибудь графическим редактором (некоторые умеют удалять из png всё лишнее; ещё можно убрать лишние оттенки и сохранить в 256-цветовой палитре, если не нужен альфа-канал).
>Сейчас озадачился мотивационной частью игры. Чего там озадачиваться? Уровень игрока + монетки + премиумные баксы + персонажи и скины к ним + шмот (например, начальный шмот для входа в бой, или усилялки, или навыки) + лутбоксы со всем перечисленным. Таблицы рекордов и всё такое это хорошо, конечно, но 95% игроков будут ниже тысячи, а хвастаться перед друзьями "я сегодня с 15230 места перешёл на 14543" как-то беспонтово. При этом топ-10/топ-100 всегда удерживают самые хардкорные задроты и донатеры, если читеров нет... Таблицы - зло, короче. Лутбоксы - ангелочки в сравнении с таблицами. Таблицы могли быть приятным бонусом в 90-х, когда ты мог соревноваться только с друзьями, но с приходом интернета получение 15634-го места совсем не мотивирует (особенно когда на первом месте стоит X@k3P со счётом 999.999, а следом за ним едет паровозик из донатеров-"акул", и ещё пара тысяч задротов). А вот лутбоксы обязательно, лутбоксы это хорошо, люблю пускать лутбоксы по вене, открываешь лутбокс и кайфуешь, лутбоксы лучше секса, обязательно реализуй лутбоксы. Шучу. Нет, не шучу. Одной рукой пишу пост, другой открываю лутбокс.
>Я бы рад добавить возможность ставить свои кастомные картинки Ты быстро перестанешь радоваться, когда твой сервер завалят дикпиками, говном, ниграми и ЦП. Не забывай, где ты пиаришься) >как тогда понять, кто из чьей команды, какого класса? Команда - цветной контур. Класс - пиктограмма. Но чтобы всё уместить, придётся поработать над дизайном. Алсо хорошо бы зафиксировать масштаб, но разрешить сдвигать камеру вбок относительно персонажа, в доте так можно (но там ещё ограниченное поле видимости врага, можно видеть только то, что рядом с твоими напарниками/глазами на палке). А то уже несколько раз попадал в ситуацию, что меня видят, а я в это время приблизил камеру и разглядываю траву... А нуб даже не успеет узнать, что камеру можно отдалять, чтобы видеть больше врагов. Ну и миникарта пригодится (значки - пиктограммы классов, команда - цвет пиктограммы; пиктограмма должна быть однотонной, разумеется, если хочешь - могу примеры предложить).
>В главном меню будет список комнат с количеством игроков Не забудь реализовать команду /room, красноглазикам проще пичатать команды в чат, чем целиться мышой в гуевы кнопки.
>itch.io Ссылку-то дай, нам самим искать?
>Лаги поправлю, ей-богу, руки не доходили еще. >Также надо будет отслеживание траффика добавить Пока лаги не поправишь, я тебе и без отслеживания могу сказать, что трафик сквозь игру проходит all the way through. Шучу, исправление лагов не добавит контент для достаточного удержания игроков))
>выбираем в преобладающей команде игрока с меньшим кол-м киллов ТЕБЯ ЗАБРОСИЛО В КОМАНДУ НАГИБАТОРОВ @ ВРАЖЕСКАЯ КОМАНДА ОБОСРАЛАСЬ И ЛИВАЕТ @ >через 10 секунд будешь переброшен @ ТЫ ПЕРЕБРОШЕН РЕАКТИВНОЙ СТРУЁЙ
С таким "автобалансом" фармить очки на те же скины будет слишком трудно, ящитаю. Даже в крупных сессионных играх а-ля овердроч не перекидывают во вражескую команду, а подбрасывают новых игроков или оставляют как есть (в соревновательных матчах). Ты не представляешь, насколько это больно, оказаться в команде, против которой ты только что воевал и почти победил.
>>707417 Справедливости ради, потом я смог найти в диспетчере задач процесс вкладки с игрой (по pid) и он потреблял, кажется, около 7% ЦП и 150 МБ RAM, но это после захода в пустую комнату, где ты один, в то время как серьёзные лаги возникают через какое-то время после игры с несколькими людьми. А вкладка, которая загружала на 30% и требовала гигабайт памяти - возможно, была связана с ютубом, т.к. после её убийства у меня все вкладки с ютубом покорёжило.
Да и глупо пенять на стек технологий, если говнокодер наговнокодит на любом стеке, а профессионал сможет выжать максимум возможностей из любого говна, на котором придётся работать.
Нужно будет проверить нагрузку вкладки с игрой через диспетчер задач и about:performance во время крупного боя... или создать клонов отдельным окном с игрой... Но с сервером какие-то проблемы сейчас.
>>707502 >нужен срочно оптимизон >As of today, the compiler still has its limitations and we are patiently waiting for and prototyping future WebAssembly features Пытаешься убрать из своей игры лично тобой сделанные костыли @ Добавляешь в игру чужие костыли, на которые ты повлиять не можешь
Компилируемый код, конечно, быстрее интерпретируемого, но это не решает проблемы, а только маскирует их. Ну вот у него допустим полоски ХП долго рисуются. Сейчас он это заметил с 3+ игроками на сервере. Если он сейчас скомпилирует код, возможно, код станет чуть шустрее, но проблема не исчезнет, только будет проявляться с 6+ игроками на сервере. При этом он потратит время на переделывание кода под требования компилятора и отладку возможных проблем, вместо того, чтобы просто поменять способ отрисовки полосок здоровья (например, сделать сегменты вместо непрерывных полосок).
tl;dr: это не оптимизация, это костылизация.
Алсо по моим наблюдениям, WebAssembly последних версий Unity-плеера не может работать на последних версиях Firefox: происходит какая-то безудержная утечка памяти (десятки гигабайт) и игра крашится, не успев загрузиться, так что я сильно сомневаюсь, что перекатиться с JS на WA очень просто - там слишком много тонкостей, о которых ОП точно не знает.
>>707557 Я точно знаю что WA еще сликом сырой чтобы на нем игры пилить, даже простые примеры вылетают с ошибками в моем хроме и по наблюдениям жс работает быстрее чем WA на 30%
>>707976 -Эй, Джон смотри, ты когда-нибудь видел такой огромный древний храм? -Нет. Пошли, посмотрим, какие тайны он в себе хранит. -Я не думаю что это хорошая идея. -Не трусь, мы посмотрим и уйдем, все равно мы уже натаскали достаточно дров для лагеря. -Ты как хочешь, а я возвращаюсь в лагерь. -Ладно, иди, я тебя догоню. Чем ближе Джон подходил к храму, тем больше он жалел о том, что не послушал своего друга. Оказавшись около его входа, он без лишних мыслей вошел в храм… -Бен, беги! -Что ты натворил?! -Не когда рассказывать уносим ноги скорее!
Запилено: - Создание комнат, присоединение к существующим, лимит в 10 игроков - В одну комнату нельзя с одним и тем же IP - Подсвечивается ник в скорборде - Статистика битвы по завершении. За каждый тип активности даются алмазики. Не по занятому месту, как изначально планировал, а по показателю активности, умноженному на соотв. коэффицент. Из алмазиков формируется месячный рейтинг ниже - 1 место - драконовая корона, 2 - аметистовая, 3 - алмазная, 4-10 - золотые, 11-20 - серебряные, 21-30 - бронзовые - Короны показываются на главной странице, в чате, в логе убийств, в статистике битвы
Проблема с лагами решена одной строчкой. Она была, как и предполагал, в полоске хп.
При изменении хп игрока/башни/трона, я перерисовываю полоску методом .fillRect объекта типа Graphics. Казалось бы, если поверх старого квадратика нарисовать новый квадратик, который полностью перекрывает старый, то при рендере нам не нужно рисовать старый. Ан нет, предыдущие .fillRect наполнили commandBuffer графического объекта девятью тысячами команд на отрисовку квадратиков, и метод рендера проходится по ним.
hpGO.clear() для очистки буфера перед перерисовкой и все заебумба.
Офк, сейчас выглядит уныло. Просто у меня был челлендж - как можно быстрее сделать что-то и чтобы оно хоть как-то игралось. Доказать, что я не фантазирующий шизик-кирилл, который что-то годами пилит, но так и не запиливает.
Планы: - Path finding - Targeting system - Крипы - Разнообразие героев - Разнообразие предметов
Крипы будут ходить по жестким маршрутам, каждый по своей "рельсе", не следуя за врагами. Конечная цель - вражеский трон. Встретил вражеского героя, крипа или башню - атакует. Также можно добавить лесных мобов, эпичных драконов, которых будет смысл зачем-то убивать - ради баффа, денег, итемов, очка статистики, etc. Эти мобы будут тупо стоять на месте и атаковать ближайшего врага.
Коллизий не будет, так меньше гемора.
Добавлю звуки, музычку на фон, будет веселее.
Алсо, ищется хуйдожник для рисования анимаций скиллов, иконок героев/мобов и чего угодно, к чему лежит душа. Бесплатно, конечно же. @nvzaa, nv#9898
>>712394 Советую тебе бросить эту затею, получается какая-то лажа не понятная, для кого, и главное зачем. Не опыта ты из этого полезного не получишь, не анонам чего либо. Заведи пет проект на хабе и делай что нибудь полезное в портфолио. Мобу делать когда ничего не понимаешь, пустая трата времени
>>712457 Делай то, что считаешь нужным, это твой проект и тебе решать, что с ним делать. Однако этот >>712420 прав в том, что сейчас проект выглядит как >какая-то лажа не понятная, для кого, и главное зачем. Полезный опыт ты из этого проекта извлечёшь, уже извлёк (хотя бы про типизацию), но как игра... пока сомнительно.
>>712686 >что нового в индустрии несет этот проект Ты рофлишь? Как еще проект? Еслиб это был очередной китайский клон допустим на мобилки того же лола или доты, то ладно, ради быстро поднять кэша, анона понять можно. Но это, помимо того что находится в виде прототипа, так тут не механик, не арта, не чего-то уникального, ничего нет. И возникает закономерный вопрос, зачем, почему, для чего?
>>712702 То же самое говорили про агарио и слизерио. Времяубивалки, не привнесшие абсолютно ничего нового, однако в какой-то момент заполонили нишу тонной игроков и родили направление ио-игрушек на любой вкус.
>>713192 Начались мантры про - сперва сделай, потом критикуй?
Мне не надо поесть говна чтобы сказать что это говно. И я пишу, что выглядит твоя игра как говно, играется точно также. Прошло, сколько уже, месяц, два, с момента разработки? И что ты показываешь в итоге? Слепленное говно за пару дней на юнити/годоте/рпг макере или на любом уже готов движке.
Еслиб ты действительно хотел даже в мечтах что-то родить, пусть даже для фана в /b/ ты бы уже сделал кривое поделие, а то что ты показываешь это хуже разработки ленивого-чсвшного-червя пидора.
Не понимаю зачем ты выёбываешься и защищаешь свою парашу на которую потратил за всё время не больше пары часов разработки, из которых половину это ты смотрел видосики на ютубе как вывести картинку на экран.
>>713209 Зачем ты такой живешь? В смысле это не агрессивный выпад в твою сторону, но мне просто интересно, чем ты руководствуешься когда вбрасываешь не обоснованную критику, а просто "говно говна говну говном"? Ты же тратишь и свое время и возможно трепишь нервы опу
>>713288 Короче не буду писать очевидно что это ссанина. И останется ссаниной через пол года, год, помните это. Тех кто защищает этот кал прочтите этот пост через пару месяцев, и убедитесь что я был прав.
Сажа+скрыл. рака яичек ОПу, такого бездаря надо еще поискать на всей доске
>>713209 >Слепленное говно за пару дней Каждый раз проигрываю. Типичный пост человека, который в жизни ничего не разрабатывал и понятия не имеет, сколько времени может уходить не то, что на сам код, а на ПЛАНИРОВАНИЕ ебаного кода.
>>713218 Все просто. Есть массив с определениями 12 крипов, по 6 на каждую команду. Определение каждого крипа это waypoints, по которым он должен следовать, и описание базового скилла-атаки. С интервалом в n секунд каждый спаунится в waypoints[0].x, waypoints[0].y. Затем в цикле в функции onUpdate проходимся по каждому крипу: если в области его видимости есть враг, то бьем. Если нет, то немного продвигаемся дальше, к ближайшему недостигнутому вейпоинту.
Есть проблема: крипы могут накапливаться, стакаться в одной точке. В качестве временного решения буду давать им разный радиус атаки.
>>713305 Постоянно зажимать кнопки движения утомительно же. Пусть лучше будет по православному, ведь истерично кликать мышкой, дроча героя из стороны в сторону это неотъемлемая часть геймплея моб.
>>714374 Ты там на слух, что ли, звуковые эффекты нормализуешь? Пиздец у вас там в шиндусе NOSOFT, в линупсах с полдюжины команднострочных инструментов для того, чтобы у всех аудиофайлов в каталоге подогнать громкость под один уровень.
>>718205 Я иду по пути наименьшего копротивления, и ковыряние в протоколах вместо использования того, что дает ванильный колизеус, не входит в планы, увы.
Спок парни, оп занимается сменой работы и попутно вкатывается в юнити. Всегда считал его калом, но делать игры наполовину мышкой изкаропки, попутно кодя на немного похожем на приличный язык цэ решетке, не так уж плохо, оказывается. В ряду ассетодебилов пополнение.
Данный же проект люблю, продолжение запила не за горами. Перспективы туманны, геймплей под сомнением, онлайн не гарантирован, баланс в экселе не просчитан, графон спизжен, звуки не нормализованы, работает только в последнем хроме, но мы идем!
>>718470 А ведь тебе, как типичному кириллу сказали в начале что ты делаешь хуйню, и ты продолжал её 2 месяца, пока не понял что надо делать игру, а не маятся хуйнёй.
>>719976 Поц, проверь свой жабаскриптовый радар. Я как раз писал ОПу что он хуйнёй маится, или ты думаешь он еще не съебался со своего треда с обосраными трусами?
Начнем с матрицы, по которой будем искать. Наш тайловый редактор Tiled сохраняет карту в json, где каждый слой это массив вида [0, 0, 222, 333, 100, 0, 0, ...]. Мы заблаговременно все объекты с коллизиями кидали на отдельный слой. Нам как раз и нужен массив, в котором пустые места это 0, а не пустые - число больше нуля. Массив одномерный, а нам нужен двумерный - используем функцию chunk либы lodash, передав ей ширину мирка.
Клиент кликнул в точку на карте, выслал на сервер координаты этой точки X:Y. На сервере мы каждую целочисленно разделили на 32 (ширина клетки мирка), получили индексы конечных точек в нашей матрице. Передаем их в функцию поиска пути и получаем двумерный waypoints, т.е. точки следования. Путь можно сгладить функцией smoothenPath, чтобы персонаж не двигался прям по клеточкам.
На сервере, в функции onUpdate, потихоньку передвигаем персонажа к первому недостигнутому вейпоинту (см. Vector2.MoveTowards в том же юнити, чтобы понимать о чем речь). Достигли - удалили его.
Теперь если в качестве цели был выбран враг. В момент выбора мы так же нашли waypoints до этого врага. Так же записали их и двигаемся по ним. Один момент: в onUpdate нужно их пересчитывать в момент, когда враг меняет свою позицию. Сначала я думал, что это фейл - 20 раз в секунду пересчитывать пути 10 гипотетических героев. Ведь у нас в лучшем случае есть всего 50 мс на каждое обновление, и, скажем, 6 мс на каждый поиск нас уже не устроит. Методом теста выяснил, что на каждый поиск уходит ~1-2 мс. Но стоит ограничивать расстояние, на котором поиск срабатывает. Не разрешать выбирать слишком далекие точки для следования, ведь карта 100х100 клеток, и сервер загнется, если начнет считать перемещение из одного угла в другой, например. Возможно, в один момент я неиллюзорно пососу, когда одновременных битв станет больше одной-двух-трех не станет, ведь жс-пидоры снова соснули
О коллизиях, сквозь которые нельзя прострелить, написано выше. В момент, когда расстояние до врага меньше радиуса атаки героя, просто проверяем, что линия атаки не пересекается ни с одним полигоном коллизий. Если пересекется, то ничего не делаем и двигаемся дальше.
>>720465 Спасибо. > smoothenPath Позволяет срезать путь, а не идти через центры тайлов, верно?
> 20 раз в секунду пересчитывать пути 10 гипотетических героев. Часть путей можешь считать на клиенте. Как минимум пути героя к точке. Серверу только валидацию нужно будет делать.
Могу проконсультировать по геймплейной составляющей. Самая главная проблема твоего проекта - онлайн. Думай, как будешь эмулировать других игроков ботами. Нужны ли тебе команды и вся моба механика? Команды уменьшают вероятность сражения (сравни с десматчем). Моба механики ограничивают подключение (и отключение) новых игроков во время боя.
Исходи из требований: 1) Единственный игрок на сервере сможет играть. 2) Игрок может подключиться после старта боя. 3) Дисконнект любого количества игроков не портит опыт всем остальным. 4) Игроку с первой секунды понятно, что нужно делать.
Вот тебе концепт для сравнения: Игрок управляет маленькой машинкой. Катается, дрифтует, собирает бонусы. Машинка имеет "пулемет" и способности. Бой может быть дезматч, батлрояль, "догонялки". За бои зарабатываешь валюту. За валюту покупаешь/прокачиваешь машинки.
>>720615 >Позволяет срезать путь, а не идти через центры тайлов, верно? См. пик, наверное, ты это и имеешь в виду.
>Часть путей можешь считать на клиенте Годно, услышал тебя.
Я сейчас как раз пилю разделение на рейтинговые матчи и фановые. В первом режиме все жестко - если вписался в игру, то за лив будешь наказан. С учетом того, что катки будут по 5-10 минут, они должны набираться рано или поздно, при хоть каком-нибудь онлайне. Можно сделать 3х3 чтобы ускорить процесс. К запиливанию этого режима меня подтолкнуло наличие прокачки в игре. Ведь при классическом io-раскладе ты будешь заходить первоуровнемым лошком, а там уже васяны макс уровня с предметами. А так все будут стартовать в один момент и даже есть спортивная составляющая когда-нибудь проведу двач кап
Если все-таки хочется хаоса и шлюх, и ранкед катка еще не набралась, то добро пожаловать во второй режим. В любой момент зашел, в любой вышел. Можно и тут сделать какой-то цифродроч, какой-то отдельный рейтинг. Либо чтобы он влиял на основной, но слабо. Что-нибудь придумаю. Виджет с поиском ранкед катки будет висеть во время фановой катки.
>эмулировать других игроков ботами Проще застрелиться
>Единственный игрок на сервере сможет играть Технически да, но смысла колупать крипов и башни в одно рыло нет. От нейтралов отказался
>Игрок может подключиться после старта боя Фан режим
>Дисконнект любого количества игроков не портит опыт всем остальным В фан режиме не портит. Там и автобаланс есть, если что
>Игроку с первой секунды понятно, что нужно делать Если не сегодня подключил интернет, то разберется. Но какую-нибудь справку на видном месте все равно сделаю. Мб ты что-то другое имеешь в виду.
>>720629 >они должны набираться рано или поздно, при хоть каком-нибудь онлайне Зная, как ты будешь сегментировать игроков (регионы, режимы игры, "наказанные"), ты можешь посчитать, какой онлайн тебе нужен. Прикинуть длину средней игровой сессии. Посчитать необходимый дау. Посчитать необходимое количество активных юзеров. Подумать, где ты их возьмешь.
> Если не сегодня подключил интернет, то разберется. Но какую-нибудь справку на видном месте все равно сделаю. Мб ты что-то другое имеешь в виду. Я хочу сказать, что игрок будет попадать в твою игру случайно, жать "старт игры", бегать 10 секунд и закрывать вкладку навсегда. Возможно он бы поразбирался, если бы это была единственная игра на свете, но к сожалению свободного времени у людей гораздо меньше, чем хороших игр. Ты будешь конкурировать со стимом и апстором. Получается, что у тебя есть буквально 5-10 секунд, чтобы заинтересовать игрока. Сравни с http://slither.io/. Матч ищется мгновенно. Игра цепляет с первых секунд. И разбираться в ней не нужно.
- просмотр хп, маны, стат, скиллов, итемов других героев по клику - задержка на респаун в зависимости от уровня - произвольное перемещение камеры - фокус на своем персонаже на пробел
стремно заебывать доску своими однообразными высокохудожественными высерами с минимальными отличиями, но это мотивировало с самого начала, иначе никак, извините
А что там по сетевой части, как организована? Или ты просто отдал всё на откуп колизею и сам не в курсе, чё как? У меня так в 13-ом году моба на ноде накрылась, когда я посчитал, что не смогу держать более нескольких сотен игроков на одном сервере. Если каждому юзеру слать хотя бы десять апдейтов в секунду, да ещё делать проверки, сервер охуеет. И дело тут даже не в ноде, а в природе браузерных реалтаймовых игр. По-моему, без доступа к p2p их банально дорого содержать. Но я могу ошибаться.
>>721816 Щас впс с 2 ядрами пиздатыми всего 400р/мес стоит. В одном потоке сетевое взаимодействие пилишь, на втором обсчет игровой логики. Все, можешь держать онлайн в 2-3к запросто, считая для каждого по 10 раз в сек числа фиббоначи.
>>721872 >Щас впс с 2 ядрами пиздатыми всего 400р/мес стоит Не верю. Не окупится месяц работы двух мощных ядер, они электричества больше сожрут. Я когда гуглил, находил что-то похожее только от 100 баксов.
>>721879 Ты майнкрафт с тяжелыми модами (которые взаимодйствуют с тонной мегов оперативки каждый тик) собрался пилить, или мобу с простейшей игровой логикой? Для первого может и понадобится выделеный серв за 100 бачей в месяц, а для мобы где чекается почти нихуя и vps за 400р пойдет.
- полоски хп и размеры крипов. теперь можно различать крипов/героев, своих/чужих - выдрочка интерфейса - камеру можно двигать стрелками, wasd и (!) мышкой - получение опыта за убийство врагов союзниками в радиусе
>>722150 Этой бы штуке да оригинальный геймплей. А так... ты ведь понимаешь, с кем будешь конкурировать? Тут без шансов просто. Разве что делать ставку на скучающих клерков, которые нормальную доту не могут поставить на рабочий комп.
>>722378 >делать ставку на скучающих клерков, которые нормальную доту не могут поставить на рабочий комп. А ведь можно. Задротящее в доту поколение как раз пойдёт в офисы...
>>723809 Тоже так думал, за 3 года получил несколько отключений и перенос сервера, при этом оповещения не приходят и иногда узнаешь про это спустя месяц. Итог: за 300р можно брать "поиграться", для релиза или плати больше или ставь малинку на холодильник
>>723818 Так на период разработки нет смысла брать за косарь в месяц, а за смешные копейки иметь 98% онлайна - самое оно. И судя по ip ОП из казахстана, и до него другим анонам линк может быть ебанутым из-за провайдерской маршрутизации. К примеру из ДС пинг будет 50мс, а из Питера 250мс. Всеж у датацентров то линковка между магистралями посерьезней, чем у домашнего инета. В билайне вообще порой гоняют весь RU трафик через европу, и люди охуевают, что до соседнего города пакет идет через люксембург.
>>723946 Даже если ты шутишь, то у моей мобы в 13-м году "всё" наступило примерно на этом же этапе. Причины были таковы: 1. Быдлокод, из-за которого сложно добавлять новые фичи. 2. Отсутствие интересных идей, куда вообще развивать проект. 3. Понимание, что постоянного онлайна без вливаний бабла нет и не будет. Не знаю, какие из пунктов для тебя актуальны.
Пилил ОП код, удовлетворял фетиш на онлайн-игру, и только по окончании понял, что это нахуй не всралось, агарио не придет. Игрок зашел, убил/умер 2 раза, закрыл навсегда, т.к. МОТИВАЦИИ и ЧЕЛЛЕНДЖА нет. Можешь рвать жопу сколько угодно, но вольво не станешь.
>>723958 >2. Отсутствие интересных идей, куда вообще развивать проект. >3. Понимание, что постоянного онлайна без вливаний бабла нет и не будет. Всё так.
Посему решил ОП переобуться в оффлайн мобу с уровнями для прохождения. Запилить ботов-героев в дополнение к крипам. Куча переменных, меняющихся от уровня к уровню вроде силы врагов, силы союзников, их количества, время спауна крипов, ограниченное время на прохождение, любые другие условия. Также можно прикрутить внесессионную прокачку - уровень, айтемы, дэйли квесты, etc.
Каловые круглешки очевидно будут заменены на нормальные спрайты с анимацией. Когда-то можно будет закинуть это всё в бомжеплей.
Много сил потратил на сетевое взаимодействие. Его можно выкинуть, перенести всё на клиент, но это так грустно (выкидывать код). Оправдать его наличие можно защитой от накрутки и какими-то рейтингами. Мол вася228 прошел этот уровень, набрав 9000 очков, а ты 8999, это будет мотивировать тебя задротить и улучшаться. Или на время там, спидранерские движения. Что думаете, это интересно кому-то?
В общем, рейт идею в целом, и накидывайте мысли по поводу того, что можно сделать в рамках разумного, чтобы это хоть как-то интересно игралось и было востребованно, и возможно ли это в принципе.
>>723950 >неверно выбранный стек технологий например? Да нет, тут претензий нет. Причесать код, убрать //@ts-ignore в некоторых местах. Может кто нормально объяснить претензии к стеку не в стиле жс-хейтера? Я, конечно, понимаю, что есть сеньоры-помидоры с академическими знаниями об ООП и компьютер сайнс, и для них это всё кал. Но куда нам до таких.
>>723946 >>724024 >Буду неспешно пилить io-мобу. Круглые герои, башни, Аноним 02/10/20 >27/01/21 Срд 00:30:52 Поверь, принять, отпустить, вынести для себя опыт, это тоже полезно, хоть и заняло у тебя эта тягамотина на месяц-два дольше стандартного срока. Стандартный срок разработки инди проекта в одно рыло +-2-3 недели, если по истечению этого срока у тебя нету прототипа, или тебе не нравится/не видится смысла зачем ты это делаешь, то дропаешь и переосмысляешь всё то что сделал. И далее как повезёт, кому то с 2-3 раз удаётся найти то что хочется, кому-то же не везёт и он вечно замкнут в кругах разработки-дропа.
>>724024 >Посему решил ОП переобуться в оффлайн мобу с уровнями для прохождения. Запилить ботов-героев в дополнение к крипам. Куча переменных, меняющихся от уровня к уровню вроде силы врагов, силы союзников, их количества, время спауна крипов, ограниченное время на прохождение, любые другие условия. Также можно прикрутить внесессионную прокачку - уровень, айтемы, дэйли квесты, etc.
Роуглайк-составляющие - это хорошо. В первую очередь это хорошо потому, что позволяет обойтись меньшим количеством контента. Если у тебя качественная генерация префиксов к оружию, ты можешь обойтись 20-ю спрайтами и описаниями вместо 2000. Вообще, почаще думай, где можно срезать угол и уменьшить человекочасы, без жёсткой экономии разработка с нулевым бюджетом обречена на провал. Ищи наименее затратный стиль: юниты-фишки, твининг вместо покадровых анимаций, крупный пиксель, минимализм. Грамотное 3D и постпроцессинг тоже творят чудеса.
По поводу идеи игры - не спеши. Гореть идеей очень важно, так как ради её реализации придётся тратить месяцы и годы. Лично я не рекомендую полностью отказываться от сервера, сервер сейчас есть у любой игры - хотя бы хранить хайскор. Даже если ты сделаешь что-то синглплеерное, можешь оставить часть кода на сервере (например, генерацию уровней) и тем самым защититься от пиратства, если игре вдруг начнёт светить коммерческий успех.
> Мол вася228 прошел этот уровень, набрав 9000 очков, а ты 8999, это будет мотивировать тебя задротить и улучшаться. Тут ты путаешь причину и следствие. Обычно людям сначала нравится игра, а уже потом у них появляется мотив показать в этой игре какие-то результаты. Мне сначала понравился старкрафт, а потом я решил доказать себе, что гидралискам под свармом батлкрузеры нипочём. Мне сначала понравился кроссаут, а потом я решил проверить, хорошо ли мой крафт держится в бою с другими игроками. А ты будто решил сделать какую-то чисто киберспортивную штуку. Это как новый вид спорта ввести, без миллиардов бюджета так же нереально.
>>724024 Попробую вылечить тебя от апатии бесплатно и без смс. Смотри, мне неповезло в силу возраста застать еще battle.net в пике своей формы для 3 варкрафта. И знаешь какие карты конкурировали с дотой тогда среди кастомных? Тауэр дефенсы всех мастей! Самыми популярными были green td и elemntal td насколько помню. А знаешь почему? Они были не слишком сложные, и можно было катку буквально за 10-15 минут пройти, в отличие от долгой доты. Школота вроде меня толпами сидела и пересоздавала их, стараясь не проебать в очередной раз крипов и вовремя апгрейднуть башню. Плюс когда отваливался человек или ебланил, это становилось БОНУСОМ, т.к. его неубитые крипы шли через тебя и давали больше денег.
Это я к чему. У тебя уже движок вполне способен выдать простенький тауэр дэфенс и играть в него толпой будет довольно свежо в отличие от заебавшей всех механики доты. Плюс если не будешь люто спамить, то можно же каждую неделю делать тред в /b и набирать новую партию игроков, а там и до выпуска на мобилы недалеко, где уже есть некий костяк фанатов. Кароче подумой над перекатом в TD, мне кажется это лучше, чем сразу делать никому не нужный оффлайн варик3 на 2д-канвасе в браузере. Без пиздатого сюжета никто не будет мириться с всратостью графена, и подобные проекты вытягивет только мультиплеер. Как-то так.
>>724054 >Без пиздатого сюжета никто не будет мириться с всратостью графена, и подобные проекты вытягивет только мультиплеер. Как-то так. Господи, что несёт. Игры вытягивает геймплей. Гейм-плей, блять. Сюжет вытягивает книгу. Если твои игры вытягивает сюжет, лучше становись писателем. А геймплей вообще не зависит от графики и сюжета. Либо у игрока есть интересный ему челендж, либо его нет. Вчера я полчаса наяривал в chrome://dino , хотя графики там нихуя, как и мультиплеера. Мультиплеер просто читерский способ дать игроку челендж, но это можно сделать и без него.
>>724024 Не очень понятно в чем проблема. Просто добавляешь ботов и вывешиваешь онлайн. Когда придет популярность, места игроков будут занимать живые люди.
>>724056 Ох уже эти доёбы до точной терминологии. Суть ты понял. Если не понял, простыми словами: ОП не сможет сделать пиздатые синглпеерные кампании типа как в Warcraft III: The Frozen Throne. Для этого надо быть неплохим сценаристом как минимум и дохера работы с персонажами проделать (при этом вселенная варика 3 - это штамп на штампе и заезженным штампом погоняет). Но это не потятнуть в одиночку. Лучше идти по проторенному пути, делая бессюжетные мультиплеерные механики типа доты или TD, но с короткими катками и фаном. Это же под браузер игра, которую запускают в обеденное время в офисе. Дома то можно и в стиме поиграть в норм игры.
>>724112 Пришел к такой же очевидной мысли. Добавлю ботов, анимации персонажей (уже примерил - выглядит неплохо), вывешу на crazygames'ы и тысячу подобных, буду в месяц тратить 1$ на vps и получать что-то с рекламы. И это уже будет успех. Мысли о переобувании в другую игру - минутный бред сумасшедшего.
>>724054 >Тауэр дефенсы всех мастей Так ведь моба - поджанр товердефенсов, там тоже башенки друг в друга пиу-пиу делают, не?
>>724056 >Если твои игры вытягивает сюжет, лучше становись писателем Грань между книгой и игрой сегодня размыта. Есть интерактивные книги, например, их кому делать - писателям?
>А геймплей вообще не зависит от графики и сюжета Зависит. Геймплей можно приделать к любой графике и любому сюжету, но с говёной графикой играть будут только копрофилы и копроеды. Без сюжета выкрутиться можно, если сделать песочницу, но некоторые люди вообще не играют, если нет никакого сюжета, для таких уникумов даже в майнкрафте главбосса запилили.
>>724196 >пиздатые синглпеерные кампании типа как в Warcraft В них кто-то ещё играет? В смысле, сейчас основная аудитория в кликерах на мобилках...
>Дома то можно и в стиме поиграть в норм игры Стим нужно запустить и дождаться обновления всех игр, а мобильник всегда под рукой и игры запускает сразу...
>>724221 >Так ведь моба - поджанр товердефенсов, там тоже башенки друг в друга пиу-пиу делают, не? Не совсем. Tower Defense и MOBA - это, так сказать, два ростка, проросшие из одной компостной кучи, где покоится труп реалтаймовых стратегий. Уже в девяностых стало понятно, что геймплей старкрафта/варкрафта и им подобных РТС явственно распадается на макроменеджмент и микроконтроль, которые требуют от игрока совершенно разных качеств. Макроменеджмент без микроконтроля - это защита башнями. Микроконтроль без макроменеджмента - это ДотА.
>>729395 >>729548 Не обращай внимание на сагеров, задумка хорошая (хоть и реализация пока хромает) Хотя я лучше завалю ебальник ибо за 6 лет работы в сфере гд выкатил только 2 прототипа
Предварительная система подсчета рейтинга. Конкретные цифры могут быть другими.
За каждую игру игроки победившей команды получают 50, 40, 30, 20, 10 очков в соответствии с активностью во время игры. Проигравшей команды - то же самое, только со знаком минус. Далее, высчитываем коэффициент силы каждой команды, который основывается на соотношении суммы очков игроков оной (глобальных очков, которые были на момент начала игры) по отношению к вражеской команде. Допустим, получили 0.8 и 1.25. Допустим, выиграла команда с силой 0.8. Очки каждого игрока этой команды делим на 0.8 - их становится больше. Если проиграла, то умножаем на 0.8 - отрицательное значение становится менее отрицательным.
Когда глобальных очков у игрока становится больше, скажем, 1000, начинает действовать замедляющий коэффициент, равный (2000 - POINTS) / 1000. Количество получаемых за каждую победу очков будет умножаться на него. Очки за поражения не трогаем.
Когда очков становится меньше, скажем, 300, помогаем выбраться из ямы - на каждое поражение будет действовать коэффициент (POINTS / 300), а очки за победы не трогаем.
Есть фатальный минус этой системы: если ты попал в команду к слабым игрокам, играл очень хорошо, но вы все равно проиграли - неизбежно получаешь минус. Надо думать.
Лучше без разделения на команды давать от 1 до 10 места 50..-50 очков соответственно. Далее каждому победителю накидывать 20, а у проигравшего снимать 20.
Советую сделать более щадящию систему, и к примеру при проигрыше отнимать не так как обычно, а на процентов 50% меньше стандартного значения. Всё таки у тебя не киберспорт, меньше горения у игроков, больше задержатся в игре.
>>729943 >50, 40, 30, 20, 10 очков в соответствии с активностью 1. Почему кратно 10? У тебя всё равно деление и вещественные числа потом идут, где-то придётся округлять, так зачем брать крупные круглые числа? 2. Как вычисляется активность? По-моему тут должен быть сложный рассчёт, а не простая табличка с сортировкой по убийствам. Игрок может выполнить много полезных действий для команды, но при этом никого не убить, и наоборот, сделать всего одно убийство и оказаться первым в таблице игроков. >то же самое, только со знаком минус Не то же самое. Лучший проигравший должен получать минимальный штраф, в то время как худший победитель получает минимальную награду. Т.е. очки проигравшего = - (макс_очков - очки_активности), это как минимум. >коэффициент силы команды Несущественный. В идеале команды не должны отличаться более чем на несколько пунктов. Смысла в игре между двумя сильно отличающимися командами просто нет, одна другую быстро раскатает. >замедляющий коэффициент Зачем? Топовых игроков будет мало, и они сами друг друга урегулируют. В итоге топовые игроки будут болтаться в каком-то диапазоне чисел, правда, у них и матчи будут существенно дольше искаться (что логично). >помогаем выбираться Опять же смысла нет. Если игрок хорош, то он выберется из ямы сам, всегда занимая первые места в своей команде.
>>729943 Короче, вот такой формулы должно хватить: points -= round((lose - activity) x max); Где: lose может принимать значение 0 (победили) или 1 (проиграли), activity в диапазоне [0..1] обозначает активность игрока во время матча, max - константа, определяет максимум очков за матч (например, 30). Примеры: 1000 - (1 - 0.5) x 30 = 985 (проиграли 15 очков) 985 - (0 - 0.2) x 30 = 991 (выиграли 6) 991 - (1 - 0.1) x 30 = 964 (проиграли 27) 964 - (0 - 0.99) x 30 = 994 (выиграли 30) И т.д.
Никаких искусственных ограничений не нужно. Ну, кроме нижней планки, чтобы не получался отрицательный ранг. В остальном система откалибрует сама себя, если будешь собирать в матче команды с равными суммами очков, а в каждой команде разброс очков будет не больше 500 или около того.
Параметр активности игрока должен вычисляться по действиям, которые он совершает, например: дамаг, удачное применение способности, участие в убийстве. Важно считать все параметры, а не только число убийств. Потом приводим к диапазону [0..1], сравнивая с товарищами по команде. Скажем, очень хороший игрок будет в районе 1, а его его намного более слабые товарищи в районе 0, но именно для этого нужно ограничение в разнице ранга между игроками одной команды.
А вообще всё придумано для нас, нужно смотреть систему Elo и не изобретать велосипед. Я лично описал то, как приблизительно может работать ранговая система в Overwatch, в который я периодически играю, правда я там болтаюсь в бронзе (около 1000 очков) и поэтому не знаю, как дела обстоят на высоких рангах, только слышал что время ожидания больше часа, в то время как у меня матчи почти мгновенные (за непопулярные роли).
>>729943 Да, забыл добавить, что вычисление награды - не самое сложное. Самое сложное, на мой взгляд, это первоначальное определение ранга игрока, т.н. калибровка. Мы ведь должны присвоить новичку какой-то определённый ранг. Тут нужно смотреть на его активность в матчах, сколько он действий совершает в секунду и сколько из них успешны, в общем измерять его эффективность. Правда, в любом случае будут игроки, создающие новый аккаунт и специально проваливающие первые матчи, чтобы получить низкий ранг и потом нагибать нубов - т.н. смурфы. Но их должно быстро повысить на их ранг, давая каждый раз по максимуму за победу и не штрафуя за поражение (всё по формуле).
Правда есть ещё проблема с игроками, которые специально бросают игру и бездействуют в матче, чтобы проиграть и слить рейтинг. Таких программно отследить трудно, они могут имитировать бурную активность и обманывать систему. С такими можно бороться системой репортов, игроки должны сами докладывать о тех, кто бездействует в соревновательных матчах.
А вообще, я тут вспомнил другие игры... К примеру, есть APB:R - там игроки сортируются по комнатам в соответствии с рангом, но рангов всего 4: зелёный, бронзовый, серебряный и золотой. Вычисляется, вроде бы, по соотношению убийств к смертям, т.е. если тебя постоянно убивают, тебя быстро отбрасыаает в нижние ранги. И зайти в комнаты можно только в соответствии с рангом +/-1, т.е. золото может только к золоту и серебру, а зелень только к зелени и бронзе. Ну, эта система не для соревнований, а скорее для песочницы, в которой игроки сортируются по комнатам в соответствии с личными умениями. Ты же вроде подумывал изменить суть игры, я ктому.
>>729597 >да, время на сборы будет В таком случае предусмотри отсутствие необходимого кол-ва игроков в онлайне. Пусть при недостатке игроков комната ожидания заполняется ботами.
>>730036 Elo придумана не для командных турниров, а для дуэлей (шахматных), поэтому в командах она показывает погоду на марсе в лучшем случае (банальный пример - ты суперзвезда, но с тобой в команде одни овощи которые поддаются, ты один никак не вытащишь - а оценку за проигрыш тебе понизят из-за них.)
- Нейтралы. Есть обычные, за которых опыт + золото, есть дракончики, с которых еще и полезные штуки выпадают вроде дэблдэмджа на время. У каждого типа нейтрала уникальные статы. Респаунятся, офк - Командный чат - Командные киллы и личный kda в углу экрана - Стильный магазин - Избавление от //@ts-ignore везде, и от any там, где это возможно
Короче, глобально сделал всё, что хотел ботов не будет, и это охуенно приятное чувство - теперь можно спокойно рефакторить, дрочить карту, расставлять нейтралов, шатать спрайты, цифры, прочее. Не нужно ДУМАТЬ, крутить велосипеды.
>>730965 Вообще, какую-то реальную пользу от тайпскрипта ощущаешь? Я подумываю свой node-сервер на TS перевести, но код довольно объёмистый (около 300 килобайт с пробелами и комментариями) и не хотелось бы оказаться в дураках.
Я не советчик, опыта в ts мало, стал бы внедрять, только если код будет еще много допиливаться, грубо говоря, его станет в разы больше (как было у меня в момент внедрения). Если нет, то забить на эту идею.
Он супер "полумерный", скорее всего, у тебя будут грязные хаки, т.к. вряд ли захочется все переписывать на новый лад. Будешь стараться держать их под контролем, не давать разрастаться.
Попробуй кое-где внедрить, по ходу поймешь, надо ли оно тебе.
>>730965 И это ты родил за почти пол года разработки? СЕРЪЁЗНА!? Не хочу обижать, но такое на юньке или даже господи упаси годоте за недельку слепишь. На что ты тратил время?
>>731147 >И это ты родил за почти пол года разработки? Только тролль или безыгорник может не увидеть в том ролике кучу проделанной работы. Все эти хтмл-менюшки с подсказками и стилями отжирают время только так. Я уж не говорю о том, что это мультиплеер.
>>731211 > кучу проделанной работы Как человек, пытавшийся в своём время писать игори на сраном sfml - неистово двачую.
>>730965 Прикольная абилка это ты сам сочинил или с гендзи из овера скопировал? Алсо, по поводу расходников - ты не думал заменить банальные тиры2 на что-то более уникальное? Или это просто сейчас не приоритет?
>>731292 >sfml Жму руку. Когда-то HGE ковырял, хоть это другое.
>Прикольная абилка это ты сам сочинил или с гендзи из овера скопировал? Дружок предложил дэш, я прикинул, что реализовать просто - перманентно меняем позицию, накидываем анимацию из одного кадра, за счет твинов в phaser'е получается даже плавное перемещение. В оверы не играл, в других играх встречается часто, ничего необычно.
>Алсо, по поводу расходников - ты не думал заменить банальные тиры2 на что-то более уникальное? Или это просто сейчас не приоритет? Тиры - очередная неудачная идея, через которые просто нужно пройти. И да, не приоритет. Я как бы по функционалу угорал, контент был на уровне заглушек, лишь бы запустить и протестить с анонами.
>>734849 О, все стало по лучше и отзывчевее, нашел 1 баг с фокусом (пик1) если убрать фокус с вкладки то игра работает дальше (все анимации, прожектаелы, перемещение камеры), а юниты не обновляют своих позиций, так вот на скрине видно как юниты встали в центре, а прожектаелы летают слева снизу, при этом если вернуть фокус окну - все начинает работать as expected.
Еще за мага можно бить нейтралов, а они не дерутся в ответ (радиуса не хватает)
>>734922 >баг с фокусом Фича ғой. Когда у вкладки нет фокуса и она вообще не отображается на экране, браузер снижает на ней производительность и некоторые вещи делает странно. Раньше, если уйти с вкладки и вернуться на нее спустя пару минут, все почти намертво зависало и "пропердывалось" через время, непроизошедшие перемещения происходили за долю секунды. Я связываю это с tween'ами - штуками в фазере, которые позволяют перемещать игровые объекты плавно, в координаты XY за N миллисекунд, а не мгновенно и с рывками. Они в фоне то ли вообще не обрабатываются, то ли медленно. Короче, чтобы не было проблем, я проверяю фокус на вкладке, и, если его нет, то не обновляю позиции юнитов. А с прожектайлами еще не сделал такое, поэтому и возникает эффект. Надо. Проверять, что у вкладки фокуса нет, но она все равно на экране, смысла не вижу (и не знаю, возможно ли это), т.к. это редкая ситуация. Можно как-то визуально это обозначать, писать мол фокуса нет, затемнять экран.
>Еще за мага можно бить нейтралов, а они не дерутся в ответ (радиуса не хватает) Пока не проработал это. Еще есть проблема с тем, что скиллы простреливают через лес.
>>734858 Браузер? Мб проседание интернета в тот момент у кого-то из нас было. Чекни еще раз, если не сложно.
создатель колизеуса похвалил и заджойнился в дс сервер, лул
Оптимизирую для встраивания в милипиздрические айфреймы на игровых порталах, первый ориентир - crazygames с минимальным размером 922 x 487. Примеряю рекламку. Еще между катками видео показывать можно.
Запилил мини-справку для хлебушков.
Охуеваю от себя, дело почти доведено до конца и не дропнуто. Осталось раскрасить карту, получше расставить нейтралов и наладить баланс. С одной стороны игры так и нет. Со стороны ио-дрочилен в стиле насади врага на меч или скушай чужой кружочек - она очень даже есть.
Присмотрел бюджетный vps от ruvds. Всего 1.7$. Одно ядро xeon 2.2 ghz, озу 512 мб, 10гб hdd. Должно хватить для начала.
>>735445 >дело почти доведено до конца Чё? Ты серьезно сейчас? Игра-то где? Не вижу игры. У тебя сейчас геймплейно готово примерно 1% от полноценной игры, хотя бы инди масштаба, которую можно было бы продавать в стиме.
>>735453 От слова игра у тебя ничего нет, конечно если сервер будет онлайн 24/7 найдётся десяток шизиков на весь мир которые может и будут гамать, обычные же игроки уйдут в обычные мобилко парашные красочные игры.
Какой же дерьмовой идеей были ранкед битвы. Какое-то вставание в очередь, ожидание, штрафы, хитровыебанный рейтинг. Этим никто не будет заниматься в бесконтентной безонлайновой иошке. Обидно, но надо убрать. Только рейтинг для мотивации оставить.
Режим гостя/регистрацию/логин тоже нахуй, слишком душно. Ввел ник - произошла авторегистрация чтобы рейтинг хранить в базе - сразу в бой.
Сила в простоте.
Кстати, подгоняя под маленькие размеры окна, понял, что и на мобилки перенести проблемы не составит.
максимально сократил путь от открытия игры до вступления в битву, даже выпилил выбор комнат. колизеус сам приконнектит к активной со свободными слотами или создаст новую. когда из игры ливает последний игрок, комната уничтожается. если бы не эта либа, хуй бы я когда-то взялся за такую игру
Щас довели с анонами из бэ катку до конца, и оно играется НЕ ТАК УЖ И ПАРАШНО, я бы даже сказал неплохо. С прошлых разов увеличил хп всем в 2 раза, т.к. хуйня была - пришел - умер за 1 сек - по новой. Из проблем - упирание в 10 лвл, денег становится много, предметов для покупки больше нет, крч лейтгейма вообще нет.
И для меня показатель, что рандомные аноны стали НАМНОГО дольше задерживаться в игре. Избавление из кружочков, нейтралы, другие мелочи сыграли очень сильно.
Забавный рыночек я себе выбрал. Покликал средне-донные игры на порталах браузерок. Игра открывается - сходу баннер/видео. Умер - аналогично. Сами эти сайты по кругу обвешаны 50-ю баннерами. Понятное дело, что всё это ориентировано на детей ясельного возраста.
Бомжеплеи на мобилках - такой же ад.
Стим после отмены гринлайта тоже превратился в кал уровня мобилок.
>>736041 ОП, ты проводил исследования / писал бизнес-план / диздок и всё остальное? У меня вопрос стоил ли вообще скрывать тему браузерных игр в 2к21. Судя по моим личным прикидкам - можно для бета тестов а дальше не уверен
>>736041 >делает говно для умственно-отсталых с icq < 5, обвешанное баннерами >воет, что всё проебали Так ты лично этому поспособствовал, чего разнылся-то? Выбрал путь говнодела - не ной теперь.
>>735501 Ебтвоюмать. Ты еще рекламу с увеличением хуя повесь на весь экран. Нет выбора языка: играют русскоговорящие - высирает попап "ландан из зе кепител оф грейт бритн" Хуита какая-то, потыкал 3 минуты и ливнул.
Проигрываю. Детектор сломан окончательно. В треде этого чувака я сделал два поста, к сранью не причастен. В /gd за всё время постил так же пару раз. Артем Еремеев это если что рандомный анон, который просто лайкнул на гитхабе.
Крайне эпичная хуйня, у человека реально ПРОБЛЕМЫ.
Окончание стрима особо порадовало. Чувак понял, что мальца проебался, растерялся, сказал "счастливо оставаться" и оффнул стрим. Крайне эпичная хуйня, буду внукам рассказывать.
Чувак пытался позвонить мне на найденный через whois мобильный телефон, говорил, что позвонил в мой универ, который на кубани, палил фотки в вк какого-то чувака мол это я, обвинял что я закинул свою игру на ag.ru и ставил себе оцени "шедевр". ag.ru кста сам собирает с itch.io игры и добавляет их к себе без спроса.
>>736175 Этот аккаунт действительно мой, тут секрета нет. Еремеев когда-то заффоловил мой акк, в соответствующем разделе и отображается. Какой еще контакт?
Adsense в процессе рассмотрения заявки, также веду переговоры с Adinplay. В качестве запасного варианта crazygames, чтобы монетизироваться у них, в самой игре не должно быть рекламы (но можно встроить через их SDK). Выглядит неплохо, у них 17 млн посетителей в месяц, раздел с иошками не очень большой, даже непопулярные получают траффик.
ОП, не нашел нигде треда про фейзер, может ты подскажешь. У меня спрайт персонажа полтора тайла высотой, поэтому второй уровень деревьев срезает ему башку. Как эту проблему решать? Ладно деревья я сделал объектами, но здания, заборы и все остальное я хочу просто рисовать в редакторе карт.
>>737517 Как у тебя устроено перемещение по миру? Произвольное, не по клеточкам? Как у тебя определяются коллизии? Навскидку: используй аркадную физику с нулевой гравитацией, объекты вообще не будут пересекаться.
>>737544 Да, произвольное, вектор скорости добавляю осям. Для коллизий использую слой, отмечаю там основания построек. Физика и так аркадная без гравитации. Представь в тайледе колонну, одна клетка это нижняя часть с коллизией, а над ней на новом слое клетка с верхней частью, с максимальным z индексом, этот слой должен перекрывать персонажа. Если перс за колонной стоит, проблем нет. А если перед, то верхняя часть колонны срезает ему башку, потому что высота перса больше, чем высота нижней части колонны. Короче я нашел уже решение. Нужно задавать глубину тайлам, как объектам. Но движок не поддерживает разные z индексы у отдельных тайлов, поэтому в create() автоматически создаю новые пустые слои и наполняю их этими верхушками из тайледа, а уже слоям назначаю глубину.
>>737690 Ага, ммо на простых сокетах. Их вполне хватает для синхронизации объектов в открытом мире. Интерфейс пока просто для галочки, чтобы виден был лут для квеста, и то намучался пока эти три элемента вместе сводил. Надо ещё посмотреть какие есть готовые интерфейсы, чтобы с геймпадом тоже хорошо работали. Пока занят более важным делом, сменой локаций и мобами. Перед сном смотрю что Пинтерест подобрал по пиксельарту. Да тут работы еще на годы, но я и не спешу.
>>737703 https://www.kamatera.com/Products/250/Pricing Очень советую, от 4$ сможешь подобрать себе что-нибудь. У меня щас триал за 25$, взял на похуй, всё летает. Потом буду переходить на максимально дешевые варианты. Рувдс за 130р (2.2 ghz, 512мб) лагал. Но в тот день у меня инет лагал, не сразу это понял. Так что не знаю, в сервере (вероятнее всего, т.к. 512мб это смех, не знаю, чем думал) была проблема или в инете, лол. Мб позже протестирую.
>>736704 Как можно было пушить на итч игру, не добавив криптоботов по скрипту хуячащих? Там же делов на 3-4 дня разработки, карта то одна, логика простейшая.
>>701894 (OP) Какой у тебя примерно за день онлайн на данный момент? В каком состоянии договорённости с платформами? Рассчитываешь ли, что платформы с io играми приведут основной трафик? Или есть ещё какие-то варианты?
И вообще, поделись плз, какие планы на развитие? Правильно ли я понял, что сейчас MVP готов и ты просто хочешь понять зайдёт ли геймплей игры, чтобы продолжать развивать?
>>738913 Crazygames реджектнули (причину не сообщают), iogames засухарилилсь, запросили одно изменение, я его сделал, после этого перестали реагировать. Почитал, у многих так. Мб опубликуют, мб нет, мне уже похуй.
5-7 человек в день заходят.
На гитхаб думаю выложить сегодня-завтра и не ебать себе мозги, мб аноны присоединятся к такой фановой разработке. Было бы неплохо донатами пару баксов на сервер ежемесячно собирать, чтобы оно продолжало жить. Рейт идею.
Говнокода и откровенного бреда очень много, т.к. делал на скорость, за это можете не предъявлять. Рад любым пулл реквестам с облагораживанием кода и новыми фичами.
только я опять все сломал, т.к. надо было живучести и динамики добавить. вот бы кто снова посчитал, на этот раз уже есть ориентиры как оно должно выглядеть.......
тем временем, немного поправил карту, нейтралов по-другому расставил, неспешно накидываю другие коммиты, изучаю блендер и юнити
>>739504 их нет. дрочит-дрочит, а кончить никак не может
>>740021 На словах это просто. Смотришь что делают боты в альтернативных играх подобного жанра, представляешь как они реализованы, делаешь. Проще всего делать так - Посылаешь бота на самую пробитую линию, если враги в радиусе, он начинает их бить, как только хп/мп мало, он убегает хилится. Это в грубой, но простой форме. Потом начинаешь довешивать разные условия, по примеру добить/убежать противника/ждать кд скиллов/отдаться ли противнику, или убежать. Главное в конце не забывать что игроку должно доставлять удовольствия играть с ботами, если они будут играть слишком токсично, это будет вызывать дикое желание абуза механик против бота(а они всегда будут), либо же дропнуть игру. Так-же в данный момент самый максимум что у тебя получится - Это бот который идёт на линию/лес/фармит/не умирает по возможности/доджить скиллы, и пытается попасть своими. Единственный вариант добавлять сложность боту, это искусственно давать золото/опыт/статы, по другому бот всегда будет сосать, не смотря на его 0мс реакцию. В общем если есть вопросы пиши.
>>740091 Сразу видно что не шаришь в теме. В старкрафте боты(Те которые тренируются на миллионах чужих игр) - Мгновенная реакция, идеальный микроконтроль, то что может делать алгоритм, но выигрывается это абузом тактики, или чем-то не ординарным. Если же боту режут до человеческих ограничений, отключают мапхак, то даже в равном макре он сосёт, реакция не спасает от тактических ходов, которые он естественно не может просчитать, это же не шахматы чтобы наперёд знать всё. В доте - Тот который опенАи. Опять же идеальное микро, ясно по какой причине, но всё остальное сосёт. 1х1 на линии да, он заставит потеть про игрока, но как только начнётся его шатание/хитрые мувы, всё, гг. В 5х5 так это сосо с проглотом, опять же из-за мувов и тактики людей. Яж говорю, если не шаришь в теме, не стоит бросаться словами за AI, единственное где он превосходит людей, это реакция, скорость мышления, и то, до той поры, если его не занижают для честной игры на равне, тогда и там сосёт.
>>740194 >Те которые тренируются на миллионах чужих игр Эти боты появились относительно недавно благодаря нейроночкам.
В первой доте бот делал как этот >>740028 описал только еще и с костылями. Стандартный AI варкрафта кастовал скилы когда врагов больше 2, а кастомный хак прям удалял способности у героев чтоб этого небыло.
Вообще деревья и стейты всему голова, я своим ботам закидываю "знания" уровня где враг, где воюют, где квест и что может сделать мой бот прямо сейчас и потом просчитываю лучшее решение (просто интом). Плюсы: бот умнее чем просто "пошел в атаку - получил пиздюлей - ушел под фонтан" Минусы: чем сложнее игра, тем больше стейтов нужно дать боту и тем больше времени на просчет.
Еще инфа, боты в каэс 1.6-сурс делают примерно так же в конкретной катке, но после конца раунда они сохраняют "лучшие исходы" чтобы не бегать в одну и ту же локу и постоянно умирать.
>>740020 >изучаю юнити Забудь про вебгл и колизей, ты же помнишь мою простую демку, в которой даст боже 20 фпс будет))0
>>740194 >Яж говорю, если не шаришь в теме, не стоит бросаться словами за AI > за Слушай, свинка колхозная, а тебя не учили, что начинать сообщение со слов "ты не шаришь в теме" вредно для взаимопонимания с собеседником, а? Я хотел сказать что-то полезное, но ты со своим ЧСВ заслуживаешь только харчка в ебало.
ОП ожил, немного поумнел, теперь будет пилить мобильные гонки на юнити на ассетах по большей части. Пока хз будет ли это изометрический вид или от третьего лица. Треки в блендере делать научился, надо будет таким же макаром начать делать поребрики и гардрейлы. Кар контроллер будет RCC или ACC.
ОПа создатель колизея в одну темочгу подтянул. Все-таки нет во мне жилки, криэйтерских способностей и одержимости что-то в соло сделать успешное. А делать таски как кодер это заебись.
по мелочи: анимация смерти, а то раньше просто исчезали телепорт на базу и к башням
начинаю делать ботов, первый кирпичик заложен
не отпускает меня эта хуйня. все-таки веселое время было, когда с горящими глазами что-то придумываешь и пилишь без опыта, а не формошлепствуешь на работе
Как же хочется запилить браузерную ммортс. Не типа клэш оф клэнс с улучшением зданий по 9 часов, а трушную, реалтаймовую, с большим процедурно-генерируемым миром, живущим неделями/месяцами, десятками игроков, десятками юнитов у каждого, добычей ресурсов, нейтралами. На первых порах два типа юнитов и зданий, графика квадратиками и кружочками. Это фигня, не суть. Над чем действительно стоит поломать голову, так это над адекватным перемещением кучек юнитов, чтобы не ходили сквозь друг друга, перестраивались, удобно контроллились в битвах. Это, сцуго, такой рокет сайнс, выглядит слишком сложно.
>>769725 Это все довольно элементарно запрограммировать, хоть и нудно. Проблема будет в балансе этого говна. Ну вот что будет делать нуб, когда папка развивался неделю/месяц. Его просто съедят или надо донатить тысячи долларов, нахуй такое надо.
>>772942 Че это за сельская местность пьяных обезьян на карте? Топографически точный план поселка Кужлевка? Не хватает сельхоз совета и клуба на одной из сторон.