Перейти к содержанию

PointerRage

Постоялец
  • Публикаций

    126
  • Зарегистрирован

  • Посещение

  • Победитель дней

    6
  • Отзывы

    0%

Сообщения, опубликованные PointerRage


  1. Если отключать увеличенный вес точек, которые граничат с непроходимыми элементами графа, то можно получить интересный кейс с диагональными точками, которые могут участвовать в конечном пути:

    ooToo
    oTxxx
    oTxxx

    Где о - открытая точка, x - непроходимая точка, а T - точка, которая попадет в результат поиска. В контексте обсуждаемой говноигры, это даст зацеп за угол и ломание экстраполяции движения на клиенте, и как следствие - кровавые слезы администратора сервера. Данный кейс надо учитывать и добавлять диагональным точкам граничащим с непроходимыми точками дополнительный вес.

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

     

    И да, если серьезно, то вес точки -- это одно, а эвристика -- другое. Не следует путать теплое с мягким.


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

    • Upvote 1

  3. ITT врыв от бывшего разработчика этого говна.

     

    В 24.04.2018 в 00:48, gvb сказал:

    Мне очень интересно знать, кроме меня их кто-то ковырял(ет) вообще ?  Или я один мазахист :D 

    fork2/fork3 был основан на второй люцере. Думаю, что Вы уж точно должны знать, где он стоит и по сей день. Больше я не видел производных работ от второй люцеры, поэтому, видимо, почти один:) Ну и ковырять без прода - гиблое дело, впрочем, так везде. Рекомендую забить на это говно и просто использовать некоторые механики оттуда [в плане легковесных библиотек для построения кода], которые были дописаны и улучшены в fork2/fork3, найти их можно тут (улучшенные гитавовские слушатели [с поддержкой многопоточного уведомления и предикатами], шедулер а-ля спринг, стартап система). Некоторые из этих библиотек используется другими лыадвыа командами, в некоторых эмуляторах серверов (привет BDO-Emu ;)), а некоторые и вообще в проектах, которые не связаны с пейратством.

     

    В 24.04.2018 в 07:41, gawric сказал:

    я поверхностно ковырял ->код очень грязный:) не берусь брать на сколько он работоспособен....

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

     

    В 24.04.2018 в 07:41, gawric сказал:

    Была даже идея перевести его на Kotlin дабы уменьшить кол-во строк кода и попробовать хотя бы частично перевести на spring или dagger

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

    Давайте по честному: зачем Вам спринг в игровом сервере? Спринг отлично подходит, если Вам нужно за день написать какой-то веб-сервис с мордой, который получает данные по типу REST из какой-нибудь Уругваи. Вот для этого он создан и в таких задачах его применение - идеально. В остальных случаях, он будет избыточен и можно легко и просто выкинуть 98% этого всего говна, что там есть. Также, как если и писать нормальный веб-сервис не за день, а за месяц, на нормальном EE 7.0 с беком имплементации от какого-нибудь TomEE или IBM WebSphere.

    Вот что требуется в игровом сервере? Депедли инжекты? Autowire из бута легко заменить на Guice. Репозитории из спринг орм, в виде, "ляп-ляп интерфейс и в прод" -- легко заменяются абстрактным CRUD репозиторием. Что еще? А больше в игровом сервере и не нужно. Ну, окей, вывести REST апишку: это можно сделать и с помощью встроенного уэб-сервера в джаве (его вроде бы не удаляли из стандартной библиотеки, верно?).

    • Like 1
    • Upvote 1

  4. 5 часов назад, †DeMoN†™ сказал:

    Более 90% проектов на яве - это системное программирование.

    Извините, но Вы говна объелись? Какое нахрен системное программирование на джаве? 

    А про веб -- просто смешно. Вы хоть одним глазком посмотрите на энтерпрайз, где и используется в большинстве случаев джава, а только потом говорите. PHP видишь ли у них тут погоняет вебом. Хотя спорить не буду, для страничек-бложеков васи пупкина -- рулит :D

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

     

    По сабжу: релиз говно, он нужен по большей части для разбиения самого RT на части, что даст плюсы всяким там андроид-девам, плюс начальные реализации нескольких интересных проектов, которые будут доступны в полную силу лишь в J10/J11, плюс улучшения для других JVM-языков (что сделано не на уровне языка, а на уровне самой JVM и байткода) типа котлина, скалы, груви и так далее. Остальные улучшения, типа стек-валкинга - смотрятся очень бедно и, в принципе, они не имеют никакого влияния.

    • Like 1

  5. Не голосовал, ибо мультивыбора нет:)

    Дома стоит подпиленная кубунта. На серверах, в основном, стоит дебиан, а если серьезное что-то, то центось (сосурити, все дела, всякие вайт-списки динамических библиотек и так далее). С 2010 до захвата мира systemd - арч в качестве домашней системы, да и на некоторых тестовых серверах. 

    • Upvote 1

  6. Геодвигло:

     - неадекватно обрабатывает трехмерную (cansee) трассировку луча снизу наверх (и наоборот), например: трейс видимости со стены вниз и наоборот.

     - неадекватно обрабатывает трехмерную (cansee) трассировку луча, если в середине трейса есть провал по высоте, например: трейс с башни на башню.

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

     

    Это так, на вскидку.

    • Upvote 1

  7. Ой да господи, речь о вебсервере, а не о ядре игры..... Разумеется нода для этого не предназначена...

    А в чем принципиальные различия между веб-сервером и игровым?

     

    Не наблюдал проблем с d3.js

    На мозилле проверьте. Хотя, там уже могли и починить :)

  8. Я не буду тут сейчас бить пяткой в грудь и устраивать холивары, но нода достаточно быстр. И способен поддерживать куда более чем 4000 одновременных соединений. Вопрос скорее к реализации и криворукости.

    Быстр без логики? Ну, может быть, только кому нужен сервер без логики? ;) Сервер с которым ко мне прибегали - был игровым, игра была клоном агарио, а это расчеты векторного передвижения и столкновений объектов.

     

     

    4. Использование современных API - filerider, canvas, webgl, html5API и многое, многое другое.

    WebGL который не на всех браузерах поддерживается (а те куски, которые поддерживаются - работают ужасно криво, с симптомами "цпу в сотку") - думаю был плохим примером :)

  9. Касательно интерлюда думаю ничего не изменилось, так как последний реальный коммит, связанный с разработкой, а точнее с переписыванием SQL запросов был сделан 10 лет назад...

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

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

    А это меня интересовало в первую очередь.

    Отец всего этого безобразия l2jserver, поэтому ориентируйтесь на него. Никаких API у 98% эмуляторов лыдва нет и не будет, ибо "разработчики" не умеют в код. Рекомендую к прочтению статейку Блеккки от 2009 года, которая по прежнему актуальна.

     

     

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

    Не знаю еще правда как это все на производительности будет отражено...

    А так ну сам посуди, веб положили вместе с базой и сервак лег..... + никто не исключает уязвимости веба на предмет SQL иньекций.... да мало ли как его можно нагнуть

    Все таки я за концепцию "разделяй и властвуй!"

    Если АПИ сделано нормально, а не рукажопами, то никакого замедления не будет, т.к. все данные, которые вываливаются наружу / принимаются должны кешироваться, включая игровые сущности (например те же предметы и контейнеры). А там, где есть кеш, можно вообще повредить базу данных и нарушить работу сервера, если в рантайме чето там руками в БД пихать. Как минимум, есть хорошие такие шансы схватить коллизию ключей (и да, для уэберов - они далеко не AUTO_INCREMENT).

    Но не стоит волноваться! Все равно в 98% эмулях ладвы нет никакого кеша :D Правда это не отменяет остальные проблемы по большей части.

     

     

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

     

    Стоит ли заморачиваться на его изучение (возможную доработку, переписку)?

    Вообще думаю бэк запилить на ноде, а фронт сделать в стиле SPA, своего рода такое изоморфное приложение, с фронтом на реакте.

    (Кто в теме тот понимает о чем я, другие же могут задать вопросы).

     

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

    1. Стресс - говно мамонта, которое ненужно.

    2. Не стоит заморачиваться.

    3. Перестаньте уже таскать за собой фронтэнд язык в серверный сегмент, ему там не место. За... заели уже своим NodeJS. Пример из жизни:

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

    4. "Приколюхи современной веб разработки" (на фронте, как я понимаю, ибо упомянуты мобильные девайсы) -- это проц в 100% и сжирание 100500 гб ОЗУ при просмотре картинки котиков? Ненужно.


  10. Автор - Ник, который еще первую люцеру пилил :) Это капитальное ненужно, которое устарело на много лет. И да, оно не работает начиная с 7 версии джавы, т.к. нет поддержки инструкции байткода invokedynamic.


  11. Перестань юзать эклипс, он в дефолте ставит Cp-1251

    Перестань юзать винду, она дефолтно всегда работает в cp-1251.

     

     

    Я юзаю IntelliJ. Исходы буржуев , у них изначально видимо стоит другая кодировка.

    Компилятору javac укажите кодировку исходников. Для gradle: compileJava.options.encoding = 'UTF-8'

  12. Делал у себя по фану регруп мобов вокруг игрока. Вот код, может поможет чем-то или наведет на какие-нибудь мысли :)

    ...
    		if(!firstTarget.character.isMoving() && regroupLock.compareAndSet(false, true)) { //regroup to other location
    			ThreadPoolManager.getInstance().scheduleGeneral(() -> regroupLock.set(false), Rnd.get(11), TimeUnit.SECONDS);
    			if(regroup(range)) {
    				return;
    			}
    		}
    ...
    
    	protected boolean regroup(int range) {
    		final L2Attackable actor = getActor();
    		
    		final int collision = actor.getTemplate().getCollisionRadius() * 2 + MathUtil.DiscreteSize;
    		final int currentCount = actor.getWorld().getVisible(L2Attackable.class, actor, collision, false).size();
    		if(currentCount == 0) {
    			return false;
    		}
    		
    		final Location target = firstTarget.character.getLocation();
    		final Location current = actor.getLocation();
    		final Location currentGeo = MathUtil.conv2geo(current);
    		
    		final List<Location> around = new ArrayList<>(360 / 20);
    		for(int i = 0; i < 360; i += 20) {
    			final Vector3 pos = target.toVector3();
    			final Vector2 direction = pos.toVector2();
    			direction.rotate2(i);
    			direction.normalize();
    			pos.multiplyAndAdd(direction, range);
    			around.add(new Location(pos.toPoint3()));
    		}
    		
    		Collections.sort(around, (o1, o2) -> { //sort locations by distance
    			final double distance1 = o1.getDistance2(current);
    			final double distance2 = o2.getDistance2(current);
    			return distance1 == distance2 ? 1 :
    				distance1 < distance2 ? -1 : 1;
    		});
    		
    		int count = currentCount;
    		int selectedIndex = -1;
    		for(int i = 0; i < around.size(); i++) {
    			final Location loc = around.get(i);
    			if(loc.getZ() == Short.MIN_VALUE) {
    				continue;
    			}
    			
    			if(currentGeo.equalsWoZ(MathUtil.conv2geo(loc))) { //pass current point
    				continue;
    			}
    			
    			if(!GeoData.getInstance().raycast2(current, loc, actor.getInstanceId())
    					|| !GeoData.getInstance().raycast3(loc.getX(), loc.getY(), loc.getZ(), target.getX(), target.getY(), target.getZ())) {
    				continue;
    			}
    			
    			final List<L2Attackable> actors = actor.getWorld().getVisible(L2Attackable.class, loc, collision, false);
    			if(actors.isEmpty()) {
    				selectedIndex = i;
    				break;
    			}
    			
    			if(count > actors.size()) {
    				count = actors.size();
    				selectedIndex = i;
    			}
    		}
    		
    		if(selectedIndex == -1) {
    			return false;
    		}
    		
    		params.set("isRegroup", true);
    		setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, around.get(selectedIndex));
    		return true;
    	}
    
    • Upvote 1

  13. О этого не кто не застрахован а так как вы работаете с топ проектами то думаю вам также много чего продавали или сливали.

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

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

     

    UPD: немного не верно сказал, про "не работу"; на данный момент я изредка делаю какую-либо сдельную работу людям, с которыми успешно работал в прошлом, либо которые пришли по рекомендации.

     

     

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

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

     

     

    Ну вот смысл с этого бага? Ну будешь ты бегать и кикать по 1 человеку.. 10 человек за 5 минут... В итоге за час грубо говоря 50 - 60 человек... И? Смысл ?)

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

    И да, откуда такая математика (в стиле: "у нас реализация 98%" :D )? Или че, идиотизм вовки заразителен?


  14. Мне лично без разницы что вы употребляете, но то что вы пишите звучит немного бредово.

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

     

     

    А то что вы там себе составили в уме, меня некоем образом не интересует да и не должно не как интересовать вообще.

    Тогда хренли Вы забыли в моей теме?

     

     

    Владимир человек своеобразный и эксцентричный, много брани, но работать с ним можно.

    Если Вы заметили в логах только брань, то все как-то очень плохо. У человека нет мозга, от слова совсем, а его попытки развести меня на сплоит, это просто успех, от которого я долго смеялся :) Ну, и не стоит забывать, что данный человек не более чем личер.

    Кстати, он мне чем-то теому напоминает, интересно чем? (:

     

     

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

    Как только утихомирите своего "партнера".

  15. Не нужно меня приписывать, не зная всей сути.

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

     

    Скрины:

    http://joxi.ru/Y2LKgyltndgJRm

    http://joxi.ru/eAORplEH4Zblp2

    Да мне как-то все равно. Факт в том, что Вы повязаны с "Вовой" (именно он бегал и шантажировал администраторов сплоитом с ДДСками 2009 года :D ), который вымаливал у меня сплоит (сначала денег обещал, потом вымаливал, потом угрожал, а потом опять вымаливал), но так и не получил его, и как только его развели ребята с кетры (при этом они же его до этого развели на раскрытие страш-ш-шного сплоита с ДДСками) сказав, что купили у меня фикс и-и-и-и... внезапно якобы мой сплоит выставляется Вами на продажу. Чудеса да и только :)

     

    Анивей, как я уже написал в первом предложении - мне насрать, "правду" от Вас я не хочу знать и у меня уже сформировалось свое виденье всей картины в целом.

     

    P.S: ну чисто так поржать немного логов с "Вовой", при том, что парень вообще ни в зуб ногой, в какой-либо код/

     

    Заливальщик троянов и вирусов, апаснастэ пиупиу:

    TELE GA, [03.10.17 01:00]
    смотри
     
    TELE GA, [03.10.17 01:00]
    можно еще как то файлы
     
    TELE GA, [03.10.17 01:00]
    вливать?
     
    TELE GA, [03.10.17 01:00]
    типо клан значка?
     
    TELE GA, [03.10.17 01:00]
    или клан значок максимум
     
    TELE GA, [03.10.17 01:01]
    я думал вируса вписать туда
     
    TELE GA, [03.10.17 01:01]
    и как то залить что бы формат
     
    TELE GA, [03.10.17 01:01]
    оставался
     
    TELE GA, [03.10.17 01:01]
    не изменный
    

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

    TELE GA, [03.10.17 00:48]
    я тебе реально говорю
     
    TELE GA, [03.10.17 00:48]
    не знаю функции дебагера
     
    TELE GA, [03.10.17 00:48]
    я думаю это какие то хуйни в патче
     
    TELE GA, [03.10.17 00:48]
    которые отслеживают
     
    TELE GA, [03.10.17 00:48]
    го даже я те дам ип зайдешь
     
    TELE GA, [03.10.17 00:48]
    через свой патч
     
    TELE GA, [03.10.17 00:48]
    покажешь кик
     
    TELE GA, [03.10.17 00:49]
    чет мало вериться что прям ты так маштабно все описал
     
    TELE GA, [03.10.17 00:49]
    100% 1 раз заюзал и сплалися и все
     
    TELE GA, [03.10.17 00:49]
    покажи визуально
     
    TELE GA, [03.10.17 00:49]
    на любом сервере
     
    TELE GA, [03.10.17 00:49]
    на твой выбор
     
    TELE GA, [03.10.17 00:51]
    взял раздраконил меня
     
    n3k0, [03.10.17 00:52]
    ну право, смешно уже читать, честное слово. человек, который имеет свой пакетхак пробует меня убедить, что не знает что такое отладчик, а когда ему отказали в продаже - пытается заставить меня всеми правдами и неправдами продемонстрировать работу сплоита.
     
    ну надо же понимать границы и иметь уважение к собеседнику, ты тут не дропа себе берешь у всяких низкосортных социоблядей для расчехления дампов картона.
    не нужно считать собеседника за имбицила, пожалуйста, а то мне становится грустно.
     
    TELE GA, [03.10.17 00:54]
    бля чувак, я тебе реально написал
     
    TELE GA, [03.10.17 00:54]
    что я не знаю что такое дебагер
     
    TELE GA, [03.10.17 00:54]
    поверь я словами не бросаюсь,  если сказал что даю слово пацана что я не знаю то знач я не зню
     
    TELE GA, [03.10.17 00:54]
    я же пакетник не писал
     
    n3k0, [03.10.17 00:54]
    тогда все что у тебя есть — лишь работа и заслуга других людей
     
    TELE GA, [03.10.17 00:54]
    у меня талант находить дырки
     
    TELE GA, [03.10.17 00:54]
    мне чисто плевать я заплатил за эту работу
     
    TELE GA, [03.10.17 00:55]
    юзаешь какую то проверку
     
    TELE GA, [03.10.17 00:55]
    если просто то что у тебя закрывается и у других в пиду такой крит
    • Upvote 1
×
×
  • Создать...