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

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    , т.е. на сервере на каждого подключенного человека создается объект, куда мы вносим данные из БД и обновляем их в нем же до его отключения, после делаем PUT реквест нашего объекта игрока в БД?

    Ну не объект, структура. Структура есть для каждого персонажа (игрока, моба, NPC), для каждого предмета. Структура - вещь не большая, в памяти хранится в виде двухстороннего списка структур (массив тут не очень подходит, так как постоянно идут добавления/удаления). А список легко в этом плане модифицировать.
    Список для игроков не связан со списком предметов, там как в реляционных базах - у предметов есть айдишник владельца

    И весь мир тоже хранит данные о его состоянии в оперативки, и лишь при падении сервера, он вносит обновленные записи в БД, которые касаются постоянных хранилищ, как клан холы и респ боссов?

    БД регулярно и асинхронно обновляется. Например в каждой структуре есть флаг "сохранен или нет". Если структура меняется, флаг скидывается. Потом какой-то поток сохраняет в базу все структуры без флага и устанавливает флаг. Так оптимизировано и безопасно обновляется база относительно текущего состояния в оперативке.

    По такой логике и чат тоже в оперативке лежит?

    Чату в оперативке вообще нечего делать. Это же просто фраза - появилась, разослалась, скинулась в лог. Логи в базе. Поток который пишет в базу - асинхронный.

    Получается не столь важна БД, сколько наличие оперативной памяти на сервере?

    Ну как не важна.. без базы игры не будет =), просто она не для того, чтобы постоянно ее дергать для каждой операции.

    Что ваш коллега имел в виду, когда говорил про key-value dbms?

    Ну тут он ошибся - как минимум для LineageII, да и для игр вообще, реляционные базы вполне даже удобны.
  • Как происходит обмен с БД данными в Lineage2?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    нет, там всё, что выпало с мобов лежит 5мин, то, что выбросил персонаж, лежит до ребута самого сервера

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

    именно в ла2, коннект с сервером идёт всегда, даже при обычном движжении

    Коннект идет, но синхронизация с базой не мгновенная, а параллельная. В основном для того, чтобы если сервер внезапно упал/был завершен насильно без graceful shutdown, не было слишком большой потери игрового времени.
    Если игрок после ребута еще не логинился, его инвентаря в оперативке нет.
    Вот после логаута, я не знаю точно выгружается ли из оперативки его стафф - в дебри официального сервера лазить неудобно.
    Как минимум в одной другой ММОРПГ мы выгружали. Но это было задолго до линейки. даже в 2004 году вся база предметов не особо нагружала оперативку.
    Там вообще основная нагрузка на сервер была из-за АИ мобов и поддержка всех подключений и их трафик.
  • Как программировать на машинных кодах?

    saboteur_kiev
    @saboteur_kiev
    flexpc, Может быть ты не в курсе, но процесс компиляции везде идет как n > машинный код.

    Не совсем понятно что ты имеешь ввиду что "язык работает без ОС", потому что пример кода, который ты указал НЕ МОЖЕТ работать без ОС принципиально. Почему я и спрашиваю, насколько ты в курсе как работает код.

    Машинные коды это просто инструкции процессора.
    Перед тем как писать свой язык, было бы неплохо хорошо изучить хотя бы 2-3 уже существующих. Но твоя постановка вопросов и фраз показывает, что ты плохо представляешь что это такое.

    И например самый простой вопрос. Если язык работает без ОС, как ты в принципе планируешь писать и запускать программы?
  • Как программировать на машинных кодах?

    saboteur_kiev
    @saboteur_kiev
    flexpc, То есть ты хочешь написать С ?
    Ты точно понимаешь что такое int 21h и как оно работает?

    Может быть ты даже думаешь, что это будет работать под Windows? или Linux?
  • Чем технически и физически обусловлена частота обновления ЖК экрана?

    saboteur_kiev
    @saboteur_kiev Куратор тега Железо
    mayton2019, При этом у ЭЛТ задержка меньше, чем у ЖК, практически отсутствует.
    Для шутеров задержка критичнее частоты обновления
  • Чем технически и физически обусловлена частота обновления ЖК экрана?

    saboteur_kiev
    @saboteur_kiev Куратор тега Железо
    Яркий пример - стробоскоп в кадре может сильно сломать качество сжатия.
    Поэтому его стараются в кино не снимать. Видео-кодеки поджимают энтропию.


    Явно не по этому. Режиссеру фильма срать и плевать на ваши видеокодеки со сжатием, исходники фильма могут в raw сжимать, а в прокат пойдет в lossless dvd или sdd. Это уже вопрос пиратов как там у них стробоскоп сожмется.

    А вот аудитория, особенно с эпилептиками, такому фильму могут не обрадоваться.
  • Подходит ли Python для первого языка ребёнку?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    Вообще, детям желательно учить тот язык, который максимально быстро выдает рабочий результат.

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

    Сейчас зависит от ребенка, в какую игру он готов играть. Если она визуально не очень, или вообще псевдографикой но ему это ОК, то язык в принципе не особо важен.

    Важно минимизировать время между началом написания и рабочим прототипом. А там уже усложнять можно.

    На питоне можно, например, простенький морской бой сделать в телеграмме через телеграм бота. И визуально и современно.
    Ну или действительно Unity 3d сразу
  • Из чего собрать домашний мини-сервер?

    saboteur_kiev
    @saboteur_kiev Куратор тега Железо
    жесткие диски сейчас могут быть низкопотребляющие. А SSD в пике могут 8-10 ватт есть, если выбрать опять же
    Таким образом в основном жрут CPU, видео и плохой блок питания
  • Из чего собрать домашний мини-сервер?

    saboteur_kiev
    @saboteur_kiev Куратор тега Железо
    Buddy_Bro, а вы видяшку уберите игровую
  • С помощью какого приложения можно открыть ссылку?

    saboteur_kiev
    @saboteur_kiev
    ftp признан слишком открытым и небезопасным. Поэтому с него на https уехало почти все.
    В отличие от http, к фтп не вышло прикрутить шифрование, а sftp и ftps это вообще другие протоколы, не основанные на фтп.
    Вот и решили дропнуть поддержку во избежание. Видимо слишком много злоупотреблений и непонимания безопасности в мире
  • С помощью какого приложения можно открыть ссылку?

    saboteur_kiev
    @saboteur_kiev
    современные браузеры (хром и файрфокс) уже должны были дропнуть фтп протокол
  • Как передать переменную окружения в команду?

    saboteur_kiev
    @saboteur_kiev Куратор тега SSH
    ну если даже вы не знаете что сделать нужно, то я тем более =)
  • Как выполнить команду подхватывая окружения хоста и удалённого сервера?

    saboteur_kiev
    @saboteur_kiev Куратор тега SSH
    вам стоит почитать базовые команды linux shell

    $() обозначает выполнить команду в скобках, ее результат поставить на место $()
    соответственно если я добавляю экранирование, то команда выполняется не во время выполнения ssh а уже позже, во время выполнения docker
  • Как автоматически задеплоить бота Telegram?

    saboteur_kiev
    @saboteur_kiev
    Deniel,
    Ну вы разработчик. Если ваш бот такой сложный, что под каждый нужен свой сервер, делайте свой сервер.
  • Можно ли писать бэк на C#, а фронт на React и есть ли в этом смысл?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    В современном программировании, фронт часто генерится бэком, поэтому "сервер" и "фронт" называть сервером и клиентом можно довольно условно. Клиент это все-таки браузер.
  • Как скормить звук python чтобы после его распознания выполнялось действие?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    В языках программировании надо не плагины искать а библиотеки. Но все не так просто.
  • Есть мультипанельный файловый менеджер?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    Современных - нет. Раньше были поделки на три панели, насколько они актуальны сейчас - не знаю.
    Но вы бы пояснили задачу, возможно то, что вы делаете, нужно делать с другим подходом.
  • Как реализовать кастомную систему контроля версий комментариев на JS/TS?

    saboteur_kiev
    @saboteur_kiev
    partyzanx, БД занимает ровно столько, как вы ее настроите.
    Ну и в принципе. не делайте тогда ничего, ибо чтобы вы не сделали - все будет занимать память.