Хорошая статья, спасибо. Хочу только добавить, что KeyDB не стоит внимания. Данное решение не обновляется уже почти год. Через полтора года после того как перешли под крыло Snap. В процессе эксплуатации пришлось вернуться на Redis в связи с проблемами именно надежности, которые проявились, к сожалению, уже только в проде.
хороший вопрос ) я сделал сейчас запрос в базу для получения среднего количества ходов в игре и получил 80, цифра получена на базе из полутора тысяч проведенных игр. Максимальное количество шагов 111, что прям таки подбирается к границе, думаю надо увеличивать, спасибо )
4 кубика я решил использовать в случае дубля для наглядности количества сделанных ходов. После каждого хода соответствующий кубик становится полупрозрачным.
Вопросы к рандомайзеру кстати становятся уже обычным делом, по этому небольшой спойлер из следующей части.
В процессе старта игры, на сервере генерируется случайная комбинация первого броска, который нужен для определения того, кто играет белыми и делает первый ход, а также 128 бросков кубиков, которые можно скачать в виде архива с паролем в любой момент игры. Пароль будет выдан после завершения игры. Таким образом гарантируется неизменность всех предварительно сгенерированных бросков и подтверждается честность игры.
Сейчас для генерации используется классический Math.floor(Math.random() * 6) + 1, я посчитал, что его будет достаточно, а вы как думаете?
Вы совершенно правы относительно концепции докера и он указан в скобках скорее как один из вариантов развертывания приложения. В статье я упоминал о масштабировании за счет увеличения количества cpu/vcpu и в схеме хотел отразить именно этот подход.
Про авторизацию также соглашусь с вами, вариант с передачей токена в url я использовал в первой версии игры и действительно его единственный минус на мой взгляд это попадание токена в логи. Сейчас я использую куку с коротким сроком действия которую вешаю перед подключением и удаляю сразу после этого. Интересно было бы узнать ваше мнение на этот счет, с учетом того, что хранить локально токены доступа я категорически не хочу ни в localStorage ни где либо еще.
привет, таймер в планах, я хочу реализовать несколько режимов игры где можно выбрать время на ход, а в следующей части будет как раз описан процесс геймплея на сервере, а про апп для телеги - https://t.me/UnTalkGameBot/Backgammon
Ребята, расскажите лучше зачем все это делать, если ваш сервер постоянно отдает 502 ошибку и запорота рассылка на 70 тыс адресатов, потому что они не могут перейти по ссылке из письма. Повторная рассылка уже будет выглядеть слишком навязчиво. В общем отписал в саппорт и жду возврата денег.
Я «эту» книгу не читал, я читаю эту, и её данные не сходятся.
Расскажите, а в чем конкретно заключается сложность в хранении 100к комментов в сутки или создать табличку для аналитики это сейчас now how?
«около 100 000 в сутки» * 365 дней в году = 36 500 000, а вы говорите про 30 000 000 с 2011 года, если честно, то это вообще не «в условиях столь сильных нагрузок», ну правда
а если присмотреться, то длиннее все :)
Хорошая статья, спасибо. Хочу только добавить, что KeyDB не стоит внимания. Данное решение не обновляется уже почти год. Через полтора года после того как перешли под крыло Snap. В процессе эксплуатации пришлось вернуться на Redis в связи с проблемами именно надежности, которые проявились, к сожалению, уже только в проде.
Буду только рад, спасибо )
добавлен профиль, где можно сменить аватар, а также готовится возможность смены досок и игровых фишек
готов предоставить выгрузку для анализа, в каком формате будет лучше всего?
хороший вопрос ) я сделал сейчас запрос в базу для получения среднего количества ходов в игре и получил 80, цифра получена на базе из полутора тысяч проведенных игр. Максимальное количество шагов 111, что прям таки подбирается к границе, думаю надо увеличивать, спасибо )
4 кубика я решил использовать в случае дубля для наглядности количества сделанных ходов. После каждого хода соответствующий кубик становится полупрозрачным.
Вопросы к рандомайзеру кстати становятся уже обычным делом, по этому небольшой спойлер из следующей части.
В процессе старта игры, на сервере генерируется случайная комбинация первого броска, который нужен для определения того, кто играет белыми и делает первый ход, а также 128 бросков кубиков, которые можно скачать в виде архива с паролем в любой момент игры. Пароль будет выдан после завершения игры. Таким образом гарантируется неизменность всех предварительно сгенерированных бросков и подтверждается честность игры.
Сейчас для генерации используется классический Math.floor(Math.random() * 6) + 1, я посчитал, что его будет достаточно, а вы как думаете?
Обязательно доберемся до фронта сразу после того как закончим с серверной частью
Вы совершенно правы относительно концепции докера и он указан в скобках скорее как один из вариантов развертывания приложения. В статье я упоминал о масштабировании за счет увеличения количества cpu/vcpu и в схеме хотел отразить именно этот подход.
Про авторизацию также соглашусь с вами, вариант с передачей токена в url я использовал в первой версии игры и действительно его единственный минус на мой взгляд это попадание токена в логи. Сейчас я использую куку с коротким сроком действия которую вешаю перед подключением и удаляю сразу после этого. Интересно было бы узнать ваше мнение на этот счет, с учетом того, что хранить локально токены доступа я категорически не хочу ни в localStorage ни где либо еще.
Спасибо за интерес к проекту!
на S3 я складываю аватарки и прочие ресурсы, он подключен к CDN, клиент к нему обращается, надо будет дополнить схему, спасибо
привет, таймер в планах, я хочу реализовать несколько режимов игры где можно выбрать время на ход, а в следующей части будет как раз описан процесс геймплея на сервере, а про апп для телеги - https://t.me/UnTalkGameBot/Backgammon
спасибо, присмотрюсь )
var g = require('nw.gui');
то потом вот так легко открываем в дефолтном браузере ссылку
g.Shell.openExternal('https://google.com');
Расскажите, а в чем конкретно заключается сложность в хранении 100к комментов в сутки или создать табличку для аналитики это сейчас now how?