• Как организовать синхронизацию игрового мира между клиентом и сервером?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    Очень широкая тема. Про это книги пишут. Вот пара общих советов
    • Делайте клиента в браузере, меньше хлопот, шире аудитория. Такой выбор ограничивает транспорт до websocket и формат данных до JSON(ну еще msgpack).
    • Синхронизируя распределенное состояние сверяйте не весь массив, а только его пошаговые изменения как делают git и rsync (по возможности используйте не shared state , а message passing) Весь массив можно иногда проверять на консистентность его hash суммой.
    • Накапливайте состояние на сервере, как последовательность изменений адресованное hash суммой, как и делает git.(тут гуглить content addressable store)
    • При поиске консенсуса используйте не 'кто первый', а 'он знает, что я знаю'. (тут гуглить protocol consensus)
    • Определитесь, какая степень дублирования данных на сервере и клиентах достаточна для консистентности игры и приемлема по цене ресурсов. (тут гуглить sharding replication)
    Ответ написан
    Комментировать
  • Freelancer.com забрал у меня деньги за конкурс! Что делать?

    Sanes
    @Sanes
    Рассказать всем об этом, чтобы каждый делал выводы!
    Ответ написан
    Комментировать
  • Является ли код C# свободно конвертируемым в C++?

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

    Jump
    @Jump
    Системный администратор со стажем.
    Что вас не устраивает в текущей работе?
    Что вы предполагаете получить от фриланса или собственного бизнеса?

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

    Пока вы работаете наемным дизайнером ваш доход определяется вашими профессиональными навыками.
    Т.е зависит от того насколько вы хороший дизайнер.

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

    @Ramallah
    Мужик, не повторяй моих ошибок )
    Фриланс это не такая шара как может показаться.
    Ответ написан
    Комментировать
  • Как прeодолеть зону комфорта, стать фрилансером не обанкротившись?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    Я думаю на ресурсе полно действующих фрилансеров желающих получать >3К евро работая в сильной команде над интересными проектами. Иметь оплачиваемый отпуск, пенсионный стаж, мед. страховку, кофе печеньки и уборщицу в комфортабельном офисе, участие в профильных конференциях, хорошую запись в резюме и при этом время на семью. Рискну предположить, что это смахивает на мечту любого(ну почти любого) российского фрилансера. Есть еще хозяева дворовых веб студий, клепающих как семечки мусорные landing page и конвейерные your very own and truly original web site из пяти шаблонов. Для последней категории мечта неосуществима ввиду слабого профессионального уровня. Работу, которая у вас есть(если не лукавите) я бы стал менять только на лучшую или на собственный instagram, telegram, moneygram etc. Фриланс в вашем случае на мой взгляд просто шаг назад. Работа на дядю (даже паскудного) не такая уж трагедия.
    Ответ написан
    2 комментария
  • Как прeодолеть зону комфорта, стать фрилансером не обанкротившись?

    Прежде всего, стоит забыть о псевдоумных цитатах вроде "покиньте зону комфорта". Уйдя жить на, извиняюсь, городскую свалку, успеха не найдешь, так что напротив, нужно входить в зону комфорта как можно глубже. Ведь это все, что нам надо, как биологическому виду!

    По сути - если вы профессионал, с портфолио, с опытом и умениями, сможете работать с высокими ценами за свои услуги, возможно, даже на зарубежных биржах, и зарабатывать как минимум не меньше. Если вышеперечисленного нет - что ж, придется нарабатывать, занимаясь менее выгодными проектами первое время.

    И да, имхо: фриланс для проф. развития не подходит. Стремительное развитие возможно только в перспективной компании, создающей для этого условия. А фриланс - место для реализации уже имеющихся навыков.
    Ответ написан
    2 комментария
  • Как организовать синхронизацию игрового мира между клиентом и сервером?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Посмотрите вопрос https://toster.ru/q/142555, в нём есть некоторые моменты, которые вам пригодятся. Я там привожу несколько ссылок "на почитать".

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

    Если игроков много (сотня и больше), то архитектура очень сильно усложнится. Настолько, что начинать учиться на таком проекте нет никакого смысла. Почитайте про это тот вопрос, что я привёл выше.

    Какая планируется технология на сервере и на клиенте? (язык программирования, платформа)
    Ответ написан
    3 комментария
  • Как написать реал-тайм онлайн игру? Методология, паттерны, статьи?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    По части вопросов и общих моментов - присоединяюсь к @kazmiruk и @dplsoft, они всё правильно сказали. Их советы на самом деле хороши.

    Добавлю только несколько ссылок, которые вам могут пригодиться:
    0fps.net - ресурс по созданию реалтаймовых сетевых движков (на англ.)

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

    Две статьи от Маилру по созданию сервера: Базы данных в онлайн-играх. От Аллодов Онлайн до S... и
    Архитектура сервера онлайн-игры на примере Skyforge. Подробно и качественно рассматривают создание сервера игры.

    Сетевое программирование для разработчиков игр:
    Часть 1: UDP vs. TCP
    Часть 2: прием и передача пакетов данных
    Часть 3: виртуальные соединения поверх UDP

    Ещё полезные статьи с хабра:
    Высоконагруженные системы: решение основных проблем
    Создание многопользовательской realtime игры на node.js
    Как не нужно писать большие сервера - на java
    Ответ написан
    Комментировать
  • Как дальше совершенствовать свои навыки программирования?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Архитектурные аспекты - @Aen дал вам ответ.
    Алгоритмизация - порешайте задачки из книги "Алгоритмы: построение и анализ" Кормена.
    Ответ написан
    Комментировать
  • Наследование в ООП - стоит ли широко применять?

    Как по мне, не стоит ударяться в крайности. Добавляйте столько уровней иерархии, сколько будете использовать. Пример избыточного наследования: liquid->alcohol->beer. Если в вашем приложении есть только пиво разных марок, то от классов liquid и alcohol вы можете отказаться, но если вы в дальнейшем заведомо будете добавлять, например класс vodka, у которого будет общий функционал с beer, то класс alcohol можете оставить, то же самое касается и класса liquid, если в приложении будет например water или juice. Неоспоримое преимущество наследования - полиморфизм, чтобы когда вы дали своему человечку в приложении разные напитки, неважно сок это или пиво, он смог использовать их по применению. Всегда задавайте себе вопрос: "А зачем?" при проектировании своего приложения и избежите излишних абстракций и функционала.

    P.S. Пример упрощен до безобразия, чтобы можно было акцентировать внимание на нужных моментах.
    Ответ написан
    Комментировать