Задать вопрос
  • Как происходит обмен с БД данными в Lineage2?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    1. Каждое открытие инвентаря это запрос к БД (т.е. при стоянии на месте и щелкая кнопку, мы будем нагружать БД запросами)?

    Нет. Данные загружаются в оперативку при логине персонажа. Изменения также касаются оперативки. В базу скидывается при логауте. Ну еще периодически для синхронизации.

    2. Каждое выпадение золота в мир это новая запись в общую таблицу мира, что в такой-то точке есть объект "золото"?

    Да. есть объект "предмет". Есть структура "список предметов", скорее всего двухсторонний список. Он обновляется, в него добавляется, из него извлекается. Предметы в мире не записываются в базу вообще (если вы помните, при ребуте все что не в чьем-то инвентаре, пропадает. Не так уж много оперативки это занимает. Просто посчитайте.
    Максимальный онлайн на шарде - 5000 игроков.
    Объект - ну учитывая тип предмета, уникальный айди, разные параметры типа заточки, владельца, место, и так далее - 10-20 байт более чем достаточно. Ну давайте 50 байт возьмем, хотя на деле я уже не помню сколько там было, явно меньше.
    50 байт * 5000 игроков и скажем 100 предметом у каждого - получим примерно 23 мегабайта.
    Добавить клановые хроанилища. ну 30 мегабайт. Много это оперативки на сегодня? По-моему вообще разговор ни о чем.

    3. Что происходит после того, когда золото было поднято, эта запись превращается в null?

    Объект удаляется из списка.

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

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

    5. Для игр подходит любая БД (например Postgres) или есть определенный тип игровых БД?

    Любая. В Lineage2 использовался MSSQL, в самописном народном java эмуляторе использовался mysql
    Ответ написан
  • Как запустить LLM на встроенной видеокарте?

    @rPman
    На встроенной видеокарте не запустить большие языковые модели, потому что не хватит оперативной памяти. Но даже если умудриться выделить в биосе для встроенной gpu нужный объем памяти, работать это будет медленнее чем llama.cpp на процессоре.

    При использовании llama.cpp требования можно снизить за счет квантизации (на самом деле код есть и для python tensorflow реализации, но там не так удобно все организовано, придется изучать и ковырять), но даже в этом случае начальный обем vram где то 8Gb (с 4бит квантизацией и 7B модели, будут работать плохо, минимально рекомендованная это 5_1 квантизация, штатный tensorflow код с которым релизятся модели, без проблем умеет 8бит квантизацию), не жди от 7B моделей хорошего качества, и тем более при использовании квантизации, они и так уже уменьшены по максимуму.

    p.s. llama.cpp умеет часть матриц переносить в gpu, это имеет смысл если vram не хватает чуть чуть, т.е. модель влезает почти полностью добавляй ключ --n-gpu-layers N где N число слоев нейронки, которые нужно перенести в vram, подбирать экспериментально пока не начнет ругаться на нехватку памяти.

    скорее всего тебе придется пересобрать ее с ключом OPENBLAS или CLBLAS
    mkdir build
    cd build
    cmake .. -DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS
    cmake --build . --config Release

    (полистай документацию возможно еще ключи добавлять)
    Ответ написан
    Комментировать
  • Умерла флешка, как восстановить?

    yakovlev_13
    @yakovlev_13
    Шаманство, экзорцизм и некромантия.
    флешка всё...(
    пишет диск защищён от записи.

    так часто делают флешки с видеорегистраторов когда вырабатывают ресурс.

    Шаманить её есть смысл только если там экстроважная инфа или на энтузиазме ради знаний-умений.
    В остальных случаях самый логичный способ
    GavriKos @GavriKos
    Выкинуть и купить новую
    Ответ написан
    Комментировать
  • Когда вписывать технологию в свой стек?

    Я больше десяти лет участвую в процессе найма и уже давно перестал смотреть эти списки "знаю HTML на 88%, а javascript на 42%". Помимо того, что эти проценты абсолютно бессмысленны и высосаны из пальца, действительно, обычно люди пишут туда всё, мимо чего проходили.

    Корректно и этично пользоваться вашим критерием (за исключением "без документации"), но это может понизить ваши шансы на этапе первичного отбора.
    Ответ написан
    Комментировать
  • Когда вписывать технологию в свой стек?

    paran0id
    @paran0id
    Умный, но ленивый
    Когда готов ответить на вопросы по ней на техническом собеседовании.
    Ответ написан
    Комментировать
  • Как дружить сторонние ZigBee с Яндекс станцией?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Универсально - ставить свой сервер с Zigbee2Mqtt и/или Home Assistant и дружить его как с устройствами, так и с Алисой.
    Ответ написан
    1 комментарий
  • Сто́ит ли покупать неизвестные SSD?

    xez
    @xez
    TL Junior Roo
    Старинная русская-народная поговорка гласит: "No brand - no doverije"
    Ответ написан
    Комментировать
  • Как установить модифицированный загрузчик на Lenovo ThinkPad?

    xez
    @xez
    TL Junior Roo
    rEFInd, например: https://habr.com/ru/articles/394005/
    Ответ написан
    Комментировать
  • Как задать размеры лучу из камеры (Raycast)?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Никак. Либо ты лучом проверяешь каждую дробинку, либо используешь другой каст, например SphereCast
    Ответ написан
    Комментировать
  • Как подобрать 2 и более монитора?

    xez
    @xez
    TL Junior Roo
    Технических проблем не будет при любом сочетании. Можно поставить рядом с 4к монитором на 160hz старый 1366х768@60hz и все будет прекрасно работать.
    Минусы такого решения:
    - не всегда удобное перемещение мышки между мониторами
    - разный масштаб окон
    - разная цветопередача
    Для кого-то это всё не существенно, а кого-то может сильно раздражать.

    Я рекомендую брать с одинаковыми разрешением, прежде всего, лучше ещё с одинаковой матрицей, а ещё лучше - из одной серии одинаковые мониторы - чтобы не было разницы в цветопередаче.
    Ответ написан
    1 комментарий
  • Можно ли восстановить данные с отформатированного диска с ОС убунту?

    • попытаться ничего не записывать на диск
    • посекторно клонировать диск на другой и ужё на нём пытаться вытащить через различные утилиты для восстановлеения после загрузки с LiveCD/DVD/flash USB
    • нести в специализированный сервис
    Ответ написан
    Комментировать
  • Стоит ли перепоступать в другой вуз ради айти?

    @ewgenc
    Не стоит, диплом педагога в жизни вполне может и пригодится.
    Ответ написан
    Комментировать
  • Цикл async for в telethon, в чем ошибка?

    febday
    @febday
    Причём тут телетон?
    Ты используешь async в цикле, который не имеет асинхронной итерации. У метод range нет встроенной асинхронности, поэтому просто не используй async
    Ответ написан
    Комментировать
  • На каком уровне нужно знать c# для начала разработки на Unity?

    Нужно, чтобы ты умел в сам C#, BCL и умел читать ошибки, о которых тебе пишет компилятор.
    Понимать различие между полем и свойством.
    Абстрактным классом и интерфейсом.
    Зачем нужен static.
    Отличие значимых и ссылочных типов.
    Как работает yield.

    Винформы, впф и асп трогать не нужно
    Ответ написан
  • Почему НЕ vim? Vim для серьезной разработки?

    @code_panik
    Среды разработки отличаются уровнями абстракций средств, предоставляемых пользователям.

    В самом простом текстовом редакторе нам доступны функции редактирования последовательности символов.

    vim добавляет новые уровни абстракций, например команды и регулярные выражения. Поток символов получает структуру слов, строк, абзацев, содержимого (например в скобках) и т.п.

    Текстовые редакторы в IDE добавляют уровень абстракций языка программирования. Слова становятся именами классов, функций, инструкций языка.

    Голый vim не заменит IDE, а IDE не заменит vim, потому что они существуют на разных уровнях абстракций.
    Можно в vim тащить функции IDE или в IDE тащить vim. Я выбрал второй путь и тащу голый vim с минимальным vimrc почти в каждую IDE. В visual studio, vs code есть vim plugin, в Idea есть свой плагин, наверное лучший из всех. В Qt Creator есть fake vim. При работе со всеми плагинами сталкивался с ограничениями функциональности самого vim, а fake vim был самым проблемным. Но если нет особых требований к работе в vim, этот путь намного проще. Поэтому лучше начинать с него, и только потом, если будет не хватать функций vim, переходить на vim с IDE плагинами.
    Ответ написан
    1 комментарий
  • Почему НЕ vim? Vim для серьезной разработки?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Это не вопрос, а размазывание соплей. "Ой мне сказали то, ой мне сказали сё, а скажите ещё чего-нибудь". Ну и закономерно получаете полную панамку ответов от специалистов, которые vim в глаза не видели, но спешат поделиться своим экспертным мнением.

    Это было бы вопросом, если бы было задано в форме "можно ли из вима сделать полноценную IDE?".
    Ответ - можно.
    Любых плагинов как грязи. Руководств масса, на том же Хабре. Пользователей - ну, не столько сколько IDE intellJ - но тоже прилично. Есть сообщества, где всегда можно спросить. Вот там и надо задавать вопросы. Причем конкретные, а не вида "ой мне пацаны сказали что круто, а теперь другие пацаны сказали что отстой". Ну правда английский может понадобиться.
    Ответ написан
    Комментировать
  • Как решить уравнение вводимое пользователем на c#?

    Как решить уравнение

    Тебе нужна "компьютерная алгебра".
    Раз: https://symbolics.mathdotnet.com
    Два: https://am.angouri.org/demo/#solver

    sqrt(25) +2^2 * 20

    А это не уравнение, а выражение. Его можно просто вычислить - главное соблюсти все приоритеты. Для простоты жизни лучше взять опять же одно из двух решений выше - они оба умеют парсить произвольные выражения и вычислять значение.
    Про то что ChatGPT не может это решить

    Кстати, зачем с этим вопросом идти к chatgpt, если это выражение решает даже не очень дорогой калькулятор?
    6567f6b78b570968976892.jpeg
    Ответ написан
    Комментировать
  • Как зайти в биос на ноуте?

    @maximq
    QA Engineer
    Пока компьютер не включен, нажмите и удерживайте кнопку [F2] на клавиатуре, а затем нажмите [Кнопку питания] (Не отпускайте кнопку F2, пока не отобразится конфигурация BIOS).

    https://www.asus.com/ru/support/FAQ/1008829#Win10
    Ответ написан
    Комментировать
  • Как зайти в биос на ноуте?

    axifive
    @axifive
    Software Engineer
    На сайте asus есть инструкция
    https://www.asus.com/ru/support/FAQ/1008829
    Ответ написан
    Комментировать