• Elite: Dangerous и CosmosDB
    0

    Честно говоря — не помню и запросов с тех времён не сохранилось (только картинка и сохранилась). Но ваше рассуждение выглядит логично, так что надо будет построить это распределение ещё раз, на новых данных и с учетом распределения типов звёзд.

  • Elite: Dangerous и CosmosDB
    0

    Надеюсь, это сарказм :)

  • Elite: Dangerous и CosmosDB
    0
    1. Раз уж использовалась реляционная субд — хотелось использовать все ее преимущества.
    2. Каким образом докер отменяет необходимость бэкапов и повышает стабильность? Что если этот колхоз упадёт? Кубернетес мутить?
      Про читалки совсем не понял
  • Elite: Dangerous и CosmosDB
    +1

    Вы все верно предположили. действительно есть некий seed (матрица) и некие законы (гармоники) генерации звездных систем. но они не случайны (именно потому что есть зерно и алгоритмы). Случайно сгенерить галактику довольно проблемно — у звездного тела в элите с полтора десятка параметров, представьте что будет если просто случайно генерировать их значения? К тому же галактика (и реальная и элитовская) — не однородная. некоторые регионы, например центр, более горячие, некоторые (окраины) более холодные (речь идет о типах звезд свойственных тому или иному региону галактики). Такая закономерность и в реальной галактике и в виртуальной элитовской. Нельзя просто случайно раскидать звезды — такая галактика не сможет существовать. И этот алгоритм у FD иногда дает очень забавные результаты. Например (на хабре вроде даже была новость про это пару лет назад) когда в реале открыли планету Trappist-1 — точно такую (ну или очень похожую) и на том же самом месте в галактике нашил и в элите =) И это не разработчики ее туда поместили, это сгенерил алгоритм. В общем назвать это все случайной генерацией никак нельзя. Она, если можно так выразиться, пре-сгенерированная.
    P.S. А и да, чуть не забыл. Все системы видны на карте, если вы не играли в элиту поясню: у вас есть карта галактики, которая содержит все 400ккк систем. Вы перемещаетесь строго от системы в систему, т.е. это не так что вы летите неизвестно куда и хоп, новая система. Нет, вы явно выбираете на карте куда лететь. Карта как бы "распаковывается" или "генерируется" при зуме на определенном участке, который FD называют "бокселем". Это фактически куб. Галактика у них состоит из кубов. Так вот, когда вы приближаете карту к определенному бокселю — игра распаковывает из сида и гармоник стабильный набор систем в этом бокселе. Как-то так. Более подробней они рассказывали в своем интервью на ютубе, но что-то на скорую руку не смог его найти.

  • Elite: Dangerous и CosmosDB
    0

    Да, EDSM (и все остальные) накапливает только данные, которые отправляет специальный софт. Кто его не использует — те конечно не пополняют эту базу. Но других источников нет, не было и, скорее всего не будет, т.к. FD не собираются отдавать данные о галактике (на этом завязано много мистификаций в игре, та же Raxxla). Так что это максимальный объём информации, доступный игрокам. Иногда FD делятся частью своей статистики и, согласно их показаниям, пилоты открыли 0.02% галактики. Это не сильно отличается от показателя EDSM (0.015%)


    И нет, никаких случайных генераторов там нет. Статистические результаты могут не совпасть с реальностью из-за неполных данных (представим что остальная часть галактики состоит из белых карликов и там вовсе нет землеподобных планет). Ну так и график показывает — у каких систем пилоты чаще встречали эти планеты. Т.е. речь не об открытии новых в контексте галактики, они могут быть новыми для конкретного пилота (который ещё не посещал эту систему)

  • Elite: Dangerous и CosmosDB
    0
    я понимаю, что виртуалка будет сильно дешевле, но очень не хочу с ней связываться не из-за модности, а из-за того что не хочу отвечать за монги, постгресы и т.п. бэкапы, реплики, кластеры и вот это все — это излишний гемор. А так да, первая версия проекта работала на VPS-ке с постгресом (т.е. я даже приводил модель в реляционный вид, это был мрак) и стоило это все ~10 баксов в месяц
  • Elite: Dangerous и CosmosDB
    0
    1. тут правы. пока статья была на модерации, я уже успел прикрутить туда Optimistic Concurrency Control. В репе версия уже с ним, в статье обновлять не стал
    2. +\- согласен. можно вынести, чтоб не засорять message
    3. тут тоже соглашусь, опять же, пока шла модерация, я выяснил что Read операции стоят сильно дешевле и на этом можно неплохо сэкономить. Начал думать (и делать) в эту сторону, но столкнулся с другой проблемой: как проверить валидность сообщения? ведь входной канал у EDDN не поддерживает авторизации и заслать туда сообщение можно с любой биллибердой сколько угодно раз. Так что кто-то, теоретически, может сильно засорить данные. В EDSM для этого предусмотрен механизм валидации — одно и то же сообщение должно придти минимум от 3-х разных пилотов и, так как там есть аворизация, они могут себе это позволить. Ну а у меня пока upsert с надеждой что сообщение будет перезаписано другим пилотом. Пока разбираюсь что делать.
    В EventHub и bulk тоже уже смотрю, как на средство нормально сэкономить, но, опять же, это усложнит валидацию сообщений (если я ее все же придумаю). Если валидации не будет, то можно спокойно делать булки
  • Elite: Dangerous и CosmosDB
    0
    согласен полностью. для пет-проектов довольно кусаче, но т.к. тоже в интерпрайзе работаю с ажурой — решил попробовать на ней. но и в этом есть свой существенный плюс — при SaaS подходе с программиста спадает вся ответственность за администрирование, поддержку, стабильность, настройку и безопасность инфраструктуры. остается только программировать. кому-то это может показаться плевым делом (поднимать и настраивать VPS-ски и потом их админить), но я не фанат такого дела, так что решил занести в ажуру и не париться.
  • Elite: Dangerous и CosmosDB
    0
    вот спасибо, попробую!
  • Elite: Dangerous и CosmosDB
    +1
    Боюсь продакшн версию всего этого хозяйства не поднять, так как почти везде используются сервисы Azure: Azure Storage, Azure Functions, даже CosmosDB не поставляется on-premise. Разве что WebJob можно сделать на виртуалке, т.к. это просто dotnet приложение. Для себя\тестирования можно установить эмуляторы всего этого (в статье приводил ссылки на них) и тогда будет работать локально. Но, все же, это эмуляторы и они имеют некоторые ограничения.
  • Elite: Dangerous и CosmosDB
    0

    Можно и кафку, но, в зависимости от модели: через event hub — ну нет там стольких сообщений (хотя вариант рабочий и я думал на этот счёт), через HDInsights — слишком дорого.