Snusmumriken
И клиенты точно такие же:
- Так, нам прислали сообщение что вон тот противник пол секунды назад выстрелил ракетой
Откатывает игровой стейт до того момента, выполняет действие выстрела, обновляет мир с ракетой.
Все анимации оказываются нормальными (только чуть ускоренными на старте, как лерп с того до текущего момента), ракета находится в нужной позиции и так далее.
Snusmumriken
Поэтому кстати очень любят продолжительные эффекты, вроде шлейфов.
Шлейф очень хорошо скрывает что действие было треть секунды назад, и только-только обновилось до текущего момента. Анимация не кажется ускоренной.
Aqendo
Aqendo
Source: забиндите именно из консоли переключение оружия на колёсико мыши и покрутите секунд 5 колесико
Aqendo
Причем если не биндить самому а просто по умолчанию поставить на колёсико то всё будет ок
Igor
Я вообще одно время, кстати, хотел сделать что-то типа hack&slash рпгшки с мультиплеером, но посмотрев на объём работы как-то мальца подзабил))
Snusmumriken
На самом деле всё не так страшно.
Если постоянно синхронизировать сиды рандома, то можно даже сразу показывать цифры прокового урона например, чутка корректируя от сервера в будущем.
Aqendo
Как говорил мой товарищ,
"бля, как же сложно начинать что-то с нуля"
Snusmumriken
Сук, пора мне писать сетевые ивентовые либы, шоб было сразу как у больших дядек.
Шоб легко прикручивать мультиплеер.
Igor
Ну а одному работать над чем-то таким ну страшно как-то, больно много работы для волка-одиночки, лол
Igor
Да и левел дизайнер из меня никакой, а хотелось бы условный опенворлд, в котором более-менее интересно находиться
Igor
У кого-нибудь ещё сейчас есть проблемы с вк на компе? У меня вечная загрузка, страница если и рендерится, то она некликабельна. Браузер не может получить ответ то от vk.com, то от сервера какого-нибудь со статикой, н-р st1-13.vk.com
Igor
А, во, загрузилось. Но прям ну ооочень медленно, но диалоги всё равно некликабельны.
Igor
Snusmumriken
Вот неплохая мысль, полезная.
Во, ты сталкивался со сжатием видео? Мол, у нас есть предыдущий кадр и разница со следующим, из которого мы строим следующий.
Snusmumriken
Вот это принципиально не отличается от ивентового мультиплеера, и тут разница со следующим это действия игроков ))0
Igor
Snusmumriken
Да банальный gif, там такое же сжатие
Igor
Igor
Я пока только писал сервер для одной рилтаймовой серьёзной игры, и та на TCP протоколе работает. Сервер как альтернативу неповоротливому и жирному Java оригиналу разрабатывал.
Igor
Так шо опыта маловато, но может когда-нибудь с духом соберусь и всё таки сделаю ченить прикольное
Igor
Знания все необходимые, вроде как, имеются, останавливает только непреодалимая лень
Snusmumriken
Более чем понимаю, только я прям глубоко изучал вопрос
Snusmumriken
И воровал куски сорцов лиги легенд. Там сама технология мультиплеера очень стронк. Вообще всё видно. Ощущается как на ладонях даже при пинге в 100-200 (за не самых быстрых персонажей).
Aqendo
Snusmumriken
Aqendo
Прикольно
Snusmumriken
И некоторые мгновенные атаки как будто чуть-чуть заторможены. Когда ты сам играешь за персонажа, твой чар делает маленькую задержку (привет, ясуо) на мгновенных скилловых тычках.
Поэтому у противника не создаётся впечатления что атака прошла как бы быстрее чем ты мог среагировать, и отсутствие косяков анимации. А ля у тебя персонаж сделал полтора коротких взмаха, а у противников — один тычок, и это более чем корректно воспринимается. Хотя всё равно пинг нужен крошечный чтобы за таких играть. Но это уже геймплейные фишки для поддержания иллюзии целостности.
polioan
polioan
Snusmumriken
Хе )
Igor
Aqendo
Aqendo
наш
Igor
Товарищ снус пишет код во благо коммунистического общества
Snusmumriken
polioan
и ещё по бекенд пару вопросов
polioan
у меня есть линукс машина в облаке
polioan
я управляю ей через ssh со своего компьютера
polioan
хорошая ли это практика?
polioan
или лучше запускать ssh с виртуалки?
Snusmumriken
polioan
ещё я думаю как сохранять картинки
polioan
просто в папку на машине
polioan
или лучше в base64 / binary в mySql
UtoECat
хорошая ли это практика?
Ммм... А что в этом такого? Если ssh у тебя не по паролю, а по ключам, и приватный ключ с паролем, то всё будет нормально... Разве нет?
polioan
паранойя😇
polioan
тут уже не в безопасности, а просто думаю что будет рациональнее
polioan
хранить на диске
polioan
или же в бд
UtoECat
или же в бд
По идее разницы нет... Только если не надо запрашивать определённый сет картинок и их как-то группировать, сортировать... И делать это часто...
polioan
спасибо
Hello, World! 🎄
Hello, World! 🎄
Справа текущая debian система, слева примонтировал /dev/sda5 и зашел в chroot окружение
Hello, World! 🎄
Aqendo
дублируешь сообщения)
Silly Vlad
Hello, World! 🎄
У меня с windows часто ошибки различные возникают, например сейчас она отказывается загружатся, просто в процессе загрузки зависает.
0xSU
Igor
Igor
Они умудрились сломать рендеринг love2d на уровне своего драйвера
Igor
Igor
А я сидел, пытался понять, почему у меня неожиданно вся ловка рендериться перестала, только потом вспомнил, что я двумя днями ранее видеодрайвер обновлял, полез на сайт AMD, а там вот
usernameak
usernameak
кто-то неправильно использует апи и оно разваливается в случайный момент
Igor
Мне сложно представить, че они там такого сделать могли, чтобы сломать именно love2d, потому что ну SDL1/2 весь работал, я даже проверял, когда ловка сломалась
Igor
Из-за того что SDL работал, я и не стал искать проблему на стороне драйвера видеокарты
Igor
Igor
А тут вот такая приколюха
usernameak
хотя дрова видеокарт это обычно кривая дырявая штука
B
Где можно почитать про файловые форматы и как они работают? Как например текстовый редактор открывает txt или cpp, или jpeg в графических редакторах и тд.
Aqendo
ну про txt и cpp это файлы без всяких заголовков, просто тупо текст
Hello, World! 🎄
Hello, World! 🎄
Snusmumriken
Где можно почитать про файловые форматы и как они работают? Как например текстовый редактор открывает txt или cpp, или jpeg в графических редакторах и тд.
Текстовый редактор просто открывает txt или cpp.
Иногда пытается определить кодировку.
Подсовывает соответствующим байтикам соответствующие символы. Сейчас обычно можно дёргать utf8.
С CPP — аналогично. Только текст нужно ещё и раскрасить по кейвордам.
Но это — текстовые форматы. Их собственно и нужно интерпретировать как текст.
С любыми бинарными форматами интереснее.
Как правило, там есть некоторая волшебная последовательность для идентификации формата даже если расширение утеряно. У png это [89 50 4E 47 0D 0A 1A 0A] вот такая ерунда в начале файла, и 50 4E 47 распознаются в ascii-кодировке как буквочки PNG. У zip это обычно что-то такое: [50 4B 03 04], где первые два байтика интерпретируются как PK.
Потом, как правило (если нет обратных правил) интерпретатор такой смотрит на заголовки. Выдирает оттуда байтики параметров файлика, например размер архива, содержимое корневой директории и указатели на смещения до заголовков с директориями в этой корневой директории. Как правило всё бинарное, то есть конкретные байтики указывают как разбирать заголовок, другие байтики — как разбирать содержимое и т.д.
Snusmumriken
Например, заголовки mp3 выглядят примерно так.
Hello, World! 🎄
В общем на данный момент я поставил себе openbox, панель сверху это polybar.
Сейчас редактирую тему под себя.