В этом видео я проведу Вам короткий обзор на еще один набор инструмента для электриков. Расскажу стоит ли покупать такой, или проще будет собрать такой самому из подручных инструментов.
Я разрабатываю эмулятор сервера для Lineage 2 Chronicle 1: Harbingers of war на Node.js.
Столкнулся с проблемой синхронизации скорости персонажа на сервере с клиентом. Когда в игре вы нажимаете мышкой в то место, куда хотите перейти то происходит плавный переход с анимацией движения. На сервере в этот момент тоже происходит движение по таймеру, но не такое плавное.
GIF
GIF
C(client) – двигается плавно из одной точки в другую. S(server) – делает прирост координат по таймеру.
Для примера я взял сборку написанную на java l2j-lisvus Сборок много. Но все они являются fork’ами проекта l2jserver https://l2jserver.com/И многое наследуется. В том числе и передвижение персонажа.
В l2j-lisvus, как и во всех сборках l2jserver перемещение персонажа на сервере идет при помощи таймера с приростом одинаковых значений.
Проблема проявляется, когда нам надо сделать какое-то действие после того, как персонаж добежал до пункта назначения. Например, нанести удар по NPC.
GIF
На коротких расстояниях проблема незаметна. Нога наступает точно в монету.
GIF
На длинных расстояниях действие атака начинается раньше, чем персонаж добегает до цели.
GIF
А если выкрутить скорость на максимум (900) то проблема расхождения очевидна. Это связанно с тем, что помимо скорости бега есть скорость ходьбы.
Как работает передвижение персонажа на сервере.
За основу взяты базовые характеристики персонажа. Скорость бега 126.
126 — это количество внутренних unit’ов за секунду.
На данной схеме идет прирост координат персонажа каждые 1000мс на 126 unit’ов. Исходя из схемы выше пример кода для действий персонажем после достижения пункта назначения:
// Прироста координат нет. Просто считаем когда персонаж дойдет до конечных координат. const distance = 1500; const playerSpeed = 126; const ticks = distance / playerSpeed; // 11.90 const time = ticks * 1000; // 11900mc
setTimeout(() => { // действие персонажа после бега }, time);
GIF
На коротких расстояниях.
GIF
На длинных расстояниях.
Расхождения на коротких расстояниях.
Расхождения на длинных расстояниях.
Зеленой зоной показана точка куда должна ступить нога персонажа если бы не было расхождений.
Рост скорости при развитии персонажа.
126 — это базовая скорость. И по мере развития персонажа будет расти и скорость передвижения. А значит расхождение будет больше. Но перед тем, как создать формулу надо подтвердить теорию, что скорость ходьбы влияет на расхождение.
Данные о характеристиках персонажа передаются от сервера к клиенту.
Выставляю значения walkSpeed: 126. Если скорость ходьбы будет равна скорости бега, то расхождения должны пропасть.
GIF
Нога персонажа достигает правильной конечной точки.
Персонаж синхронизирован и начинает атаку вовремя. Теперь надо понять, как скорость ходьбы влияет на расхождения между клиентом и сервером.
Сколько же персонаж успевает пройти перед тем, как начинает бежать?
Надо поймать момент когда ходьба переходит в бег. Для этого передадим в клиент данные, где скорость ходьбы будет больше скорости бега. Из-за этой разницы будет виден переход и можно будет рассчитать пройденное расстояние при ходьбе.
runSpeed: 10
walkSpeed: 600
GIF
Ходьба быстрее бега.
При скорости шага в 600 персонаж успевает пройти 250, прежде чем начинает бежать.
600 / 250 = 2.4
700 / 291 = 2.4
800 / 333 = 2.4
Из этого вывод, что персонаж перед тем, как начать бежать успевает пройти расстояние в 2.4 раза меньше, чем его скорость ходьбы.
Значит при скорости ходьбы 88 персонаж пройдет 36 unit’ов.
88 / 2.4 = 36
Первое деление — это начало движения (ходьба) а следующие деления — это бег.
Один день полностью переворачивает жизнь двадцатилетней студентки Уны. И не только ее. Рейкьявик проснулся от новостей об ужасной аварии, среди жертв которой оказался парень Уны. Но из-за того, что молодые люди хранили свои отношения в тайне, девушка не может выразить свои истинные чувства.
Разбирая в очередной раз углы в гараже нашла несколько своих изделий, давно завалявшихся в углу и изрядно запылённых. Наверное, что-то из этого уже промелькивало, но всё-таки.
Резьба по камню, кости, работа с металлом (олово) и бисер. По камням - агаты, резной перламутр (это не я резала), один не помню как назывался.
Зашёл с бутылкой Flash в руке весёлый густобородатый товарищ. В первый раз, глаза блестят и хихикает. Хихикают многие, мы привыкли уже к такой реакции. В один угол заскочил посмотреть, в другой, глаза разбегаются и всё вокруг интересное. Может, помочь в выборе? Рассказать чего? - подтягиваюсь. - Да я бы спросил, но как я вас спрашивать буду? Я как-то от такого поворота событий озадачилась. Значит, сейчас будем деликатно выспрашивать, добывая истину по букве. Но не молчит, уже хорошо. - Ну, вот вы чем пользуетесь? - понятно, за жизнь поговорить хочется. - Мы не обсуждаем свою личную жизнь. - непробиваемо улыбаюсь. Ну, вы в курсе. - А что люди лет 30-40 берут? - Выбор бывает очень разный, в зависимости от личных предпочтений. - А жижи? Так, вейперы у нас напротив, но тут нужно жидкое из секс-шопа. Опуская нюансы, это или смазка, или какое-нибудь массажное масло. Если что-то другое жидкое нужно, будем копать дальше. - Ну, жижа такая, в женщину заливать. - о как.. - Смазки у нас здесь. Солидол, литол На водной основе, на силиконовой... - делаю красивые пассы руками вокруг смазок, стартово пробегаясь по характеристикам. Взял самую маленькую и бюджетную, аргументируя тем, что студент. Попутно изумлённо хохотал, показывая пальцем на леденцы и спросил как я тут работаю, среди такого всего смешного и неприличного. Нормально работаю, станки - они у каждого свои. Разогнавшись, поинтересовался самыми крупномасштабными неприличностями. Отвела к полке, где в углу грустно притаился оставшийся в одиночестве фаллоимитатор-гигант. Увидел, был потрясён, поражён и шокирован. Сказал, что сейчас встанет у входа и будет всех затаскивать за руку к нам, чтобы успели купить первыми. Отговорила, сказала что не оценят. 🙂
На первую официальную работу меня устроили по знакомству. В смысле, по-родственному, со словами: "Хорошая работа, не пыльная и при науке. Рисовать ты умеешь." Несколько лет посещений изостудии автоматически делают из человека рисовальщика на всю оставшуюся жизнь. Так я стала художником по камням в Институте Археологии и этнографии СО РАН в должности лаборанта.
При всём разнообразии археологии мне достался сектор неолита ещё до появления керамики. По меньшей мере мне в руки она не попадала ни в каком виде. Везде были камни - маленькие и большие, полностью обработанные и с единичными сколами, наконечники каменных топоров и обтюканные булыжники. Набор рабочих инструментов ограничивался баночкой с тушью, пером, штангенциркулем и бумагой. Весёлые археологи порадовались появлению юной барышни с косой до пояса и плотно обложили ящиками с камнями, подтаскивая ещё и ещё.
Каменные орудия труда - штука интересная, если рассматривать картинки, а потом идти заниматься своими делами. Восьмичасовой рабочий день, заполненный измерениями и штриховкой тоже вдохновляет только первое время. Ты берёшь очередной каменный топор, а строгали их в те времена в промышленных масштабах, и с замерами зарисовываешь во всех проекциях, тщательно обозначая штриховкой все волны по сколам. Если наш предок оставил необработанные моменты, то тут неровности прорисовывались точечками. Выглядело это всё примерно так:
Ящиков накопилось много, очень много. Судя по всему, штриховать и ставить точечки по восемь часов в день, желающих не находилось давно, а количество находок росло. Я с завистью посматривала на отделы других временных отрезков нашей истории. Там бегали с ржавыми железками, черепами и хвастались гораздо более любопытными обломками. На фоне всего этого великолепия завалы камней вокруг меня казались ещё тоскливее.
Только один раз из шкафчика достали коробочку, в которой рядами лежали хорошо обработанные наконечники из разноцветных камней. "Ооооо!" - выдохнула я и потянулась рукой. Коробочку тут же закрыли и спрятали на место. Меня ждали мои монохромные валуны.
"Ну что, придёт лето, поедем в экспедицию! Тайга, романтика! Мы будем копать, а ты в лагере рисовать, ну и еду готовить будешь. Там такая красота! Вот смотри, в прошлом году маньчжурский тигр в лагерь пришёл." - мне сунули под нос чёрно-белую фотографию с полосатой мордой на фоне палаток. Глаза археологов горели нездоровым блеском и были полны духом авантюризма. Я представила себя с котелком еды на банду здоровых, накопавшихся за день мужиков, вернувшихся из тайги. С поварёшкой наперевес отбивающуюся от тигра в лагере, в крайнем случае можно было заплевать бумагой.
Настолько моя тяга к приключениям в те времена ещё не окрепла, я собрала нехитрые пожитки в виде кружки и тихо исчезла из мира науки. Сейчас думаю - а может быть, стоило остаться? Кто знает, как повернулось бы.
В этом видео мне бы хотелось показать Вам проект своей квартиры, и показать как данный проект соответствует тому, что сделано на данный момент в этой квартире на самом деле.
У нас тут в Новосибирске после +2 градусов, когда всё текло и капало, резко давануло -30 и ниже. Это я не жалуюсь, просто констатирую факт. Закономерно все улицы превратились в весёлое развлечение с залихватскими пируэтами и взмахами руками, сопровождаемыми непрерывным "да блин!" Вчера я легкомысленно поскакала в любимый секс-шоп в зимних ботиночках, потому как красота - наше всё. Прокляв весь мировой империализм, добралась вечером домой с целыми руками и ногами, хоть и слегка замёрзшая. Но это лирика.
Сегодня сказав заранее "да блин!" и сделав выводы, замоталась потеплее и пошла в любимых ичигах. Они так-то для охоты зимой или холодной осенью, поэтому вид у них поживший и видавший многое. Но главное - они не скользят совсем. Буду честной, на голый зеркальный лёд я не выходила, не попался по пути. Но по вчерашним местам, на которых я выписывала замысловатые кандибоберы, прошла не заметив. Носки тёплые тоже не нужны даже когда за -30, если цель доскакать из пункта А в пункт Б. Если на снегу спать собираетесь, то тогда лучше всё-таки с носками шерстяными их носить. Или с двумя парами носок, если спать на снегу предполагается в мороз посильнее.
Кожа натуральная, внутри тёплый двухслойный вкладыш из нетканого войлока, который можно заказать отдельно, когда старый исшоркается. Подошва, как я уже написала, не скользит и многослойная как бутерброд из нескользящего слоя, какой-то клиновидной эвапоры и чепрака. Есть модели со шнурками, без шнурков, женские разноцветные и детские.
Вот вообще ни разу не реклама, просто реально годная штука, если у кого ноги зимой мёрзнут и гололёд вокруг. Мои, которым уже дофига лет, и видали они многое:
Минусов два - подошву нужно подклеивать, она может расслаиваться и по последним моделям сказали, что могут скользить. Вот это грустно, но сама не проверяла, у меня модель из старой линейки. Ичиги от Поскрякова.
Отдых в моём исполнении выглядит как "фигачить месяц нон-стоп", потом падать и спать часов 12 подряд. Выглядит это примерно так:
Зато мой гараж, он же "Ранчо мечты" потихоньку движется от вида "сырой бункер на совсем уж всякий случай" в сторону "моя мастерская". В свободное от безделья время туда волочётся очередной кусок гипсокартона или какой-нибудь стеллаж. Через криво-косо вырисовывается относительно осмысленный силуэт будущего.
Для тех, кто не в теме - эпопея с покупкой гаража за почти без денег и его ремонта на тех же условиях, собрана в подборку "Ранчо мечты". Понятное дело, что в ход идут все дендрофекальные технологии, до которых я додумалась и которые смогла осуществить в одну женскую силу. Наверняка с применением приличного количества денег всё было бы быстрее и задорнее, если бы это количество было. Но тогда и гараж можно было бы купить уже с отделкой. Я считаю, на пути к осуществлению многолетней мечты такие мелочи несущественны.
Так что прошло чуть больше года с момента нашей нежной дружбы с гаражом, борьбы с мокрыми стенами, разрушенной кладкой, косыми воротами и бандой мышей, которые решили что тут клёво. Мышам наваляла по толстым откормленным задницам методами далёкими от гуманизма и больше они дружить со мной не хотят. Последнее творчество на стене, созданное из гипсокартона озадачивает даже меня, но как выяснилось, я пока ещё не очень умею обходить заковыристые места и выводить розетки методом от головы, а не через задницу. По плану к весне хорошо бы прогнать все стены и перейти на новый уровень - отделка и сооружение рабочих столов.
Фото сразу или почти сразу после покупки и то, что уже сделано. Было - влажность около или больше 85%, текущая стена с разрушающейся кладкой, температура зимой с отоплением около 5 градусов. Стало - влажность ниже 30%, стена больше не течёт, отсыревающих пятен нет, кладка восстановлена, температура зимой с отоплением и без дополнительного обогрева около 16-17 градусов. Фотосессия вышла случайно, так что всё в рабочем беспорядке.
99% времени работа(подработка), очень много экспериментов, закупка материалов и оборудования, в работе: зимние кроссы, разработка пыле/вытяжки, и классика в мехе, 1% пью для перезагрузки
Здесь должен был быть длинный пост, как я люблю, но я оставила только культурные выражения и скриншоты. 4 км до дома - половину проехала на маршрутке, остальное решено было добежать, получилось быстрее.
Наткнулась я тут в VK на группу, в которой продавцы тусят. Ну, думаю, братья по разуму, байки продавцовые травят и говорят по-продавцовому. Сижу, листаю, в основном кого и от чего бомбит рассказывают, на покупателей жалуются и иногда на начальство. Одну историю читаю - не бомбит, а должно бы. Вторую, третью, втянулась уже, привыкание пошло но не цепляет. Ну, бабка въедливая попалась или покупатель какой особо дотошный доковырялся, ну и что?"
А потом флешбэком вьетнамским накрыло, я же дизайнером столько лет проработала! Это жОпыт по воспитанию внутреннего дзена такой, какой продавцам и не снился. Это же каждый заказчик со своим чувством прекрасного, как альянс бабок въедливых в одном лице. И не забежал на полчасика, а дружите вы с ним долго и счастливо, пока проект не сдашь, а то и не один. И проекты попадаются такие, что из тебя цистерну крови выпьют в процессе.
Потому что:
"Всё отлично, именно так, как мы хотели. А теперь давайте всё переделаем, хотелось бы видеть ещё несколько вариантов." - уже в финале.
В процессе: "Нет, это полная информация, которую мы хотели бы разместить, больше ничего не будет" Когда макет почти принят с кучей правок, выеденным мозгом и вытекшими глазами: "Мы тут забыли вот эти несколько блоков текста, логотип, ведро картинок и вот эти несколько слоганов. Но это же немного?" - сцуко, это много. Это переделывать всё.
Правки под лозунгом "а внучатая бабка моей племянницы, психологи, вот тот блогер (список бесконечный, нужное подчеркнуть) сказали, что для того, чтобы вызывать доверие людей, сюда нужно ещё сюда поместить ребёнка, котёнка, розового пуделя, часть тела (тоже бесконечно, нужное подчеркнуть, пропущенное дополнить)". - не забыть выяснить наличие родственников и прекрасного вкуса у них.
"Мой племянник, сестра, сын, хрен с горы, очень хотят стать дизайнером. Не могла бы ты их научить по-быстрому?" - озвучивание цены обижает смертельно, по-дружбе или по-родственному должно быть только бесплатно. Тыждизайнер, это легко и просто.
"Да, нам вас рекомендовали как дизайнера, который всегда делает отлично. Но стоимость вашей работы выше, чем у других и мы заказали у них. Получилось плохо, но денег уже нет, не могли бы вы недорого всё по-быстрому переделать? Там же уже всё готово." - ребята, это называется делать с нуля.
"Это же не долго." - очень часто, как аргумент почему ты должен сделать это очень быстро, качественно и желательно бесплатно. Ну или почти. Обычно идёт перед портянкой с информацией, требованиями и "сдать в печать нужно ещё вчера", если ты внезапно дал слабину.
Ну и до бесконечности. Ты можешь оговорить количество правок, стоимость работы и сказать что "это же немного" - это много и не влезет, нужно всё переделывать и сказать про доплату. Но чемодан нервов уже закончился и на очередном радужном пони с забытым блоком текста и искорки по фону не забудьте, ты познаёшь дзен.
А вы говорите, покупатели бесят. Идите в дизайн, творите прекрасное, а потом возвращайтесь в магазин к любимым бабкам, отдохнуть.
P.S. На всякий случай, пока тапками не закидали - в дизайне проработала всю сознательную жизнь, а это не мало. Выгорела к чёртовой матери.
Когда в секс-шоп заходит пикабушник, то я сразу же нужно показать свои сильные стороны - споткнуться о табуретку и свалить что-нибудь с полочки. Становится ясно, что тут не зазнавшаяся звезда работает, а вполне себе такой же человек. Моё всестороннее нападение с коварной целью вывалить все накопленные знания довершают картину полного хаоса.
Но, собственно говоря, не об этом я написать-то хотела. Честно говоря, на фразе "а в вашем обзоре написано..." - я малость прифигела, но постаралась сохранить невозмутимость при общем внутреннем волнении от встречи. Это было весьма неожиданно и в финале я конкретно затупила, пропустив один из пунктов программы - вручение ещё одного подарка от компании, помимо уже врученного. Так что если он нужен и интересен, то вернись, он ждёт! Он не именной, его можно передарить и действует он до конца февраля.
Завтра там буду тусить не я, но тоже можно забежать. Потом три дня - мои смены. Фото подарка прилагается, чтобы можно было решить, нужен он или нет.
P.S. На вопрос "что покупают пикабушники" я традиционно не отвечаю. Так же как и не разглашаю личные данные и вопросы тех, кто мне пишет в телеграм или на электронную почту.
Когда он зашёл, я честно подумала, что по старой памяти телефон в починку принесли. Давным-давно тут ремонт был и по старой памяти пенсионеры иногда заходят, растерянно оглядываясь и протягивая в руке сломанный кнопочник. Антураж вокруг совсем не телефонно-ремонтный и пожилые люди слегка теряются от неожиданности, но спрашивают: "А вы чините?" Нет, не чиним. К ремонтникам неподалёку отправляем, отзывы хорошие.
Подняться по лестнице с палочкой и плохо работающими ногами ему стоило большого труда. Остановиться, отдышаться на пороге и с трудом продолжить остававшийся, уже короткий путь по магазину. Я вышла навстречу, готовясь объяснить, где тут недалеко телефоны ремонтируют. Обычный пенсионер, очень солидных лет, почти не видящий и плохо слышащий, он достал из кармана коробочку от нашего БАДа. - Вот это нужно. Ещё недавно всё и без него хорошо было, а теперь немного помощь нужна. Ну, и посмотреть что новенького привезли.
Так что фиг вам, а не кнопочник в ремонт и растерянно оглядываться по сторонам.