Ответы пользователя по тегу Разработка игр
  • Стоит ли заранее заботится о возможности поддержки предыдущих версий многопользовательской мобильной онлайн игры? И как?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Вопрос можно разделить на два:

    - как обновлять протокол взаимодействия?
    - как обновлять логику игры?

    С протоколом всё просто. Есть много вариантов, я предпочитаю такой подход:

    - Для каждого метода API вводится версия, которую явно указывает клиент.
    - Может поддерживается несколько версий одного метода.
    - Есть деструктивные изменения API (увеличивают версию) и недеструктивные (не увеличивают версию).
    - Недеструктивные - это добавление новых параметров в ответ или опциональных в запрос, без изменения логики реакции сервера на получение старых параметров.
    - Деструктивные: удаление, переименование, изменение семантики или формата данных в ответе, изменение логики реакции сервера.
    - Когда надо сделать деструктивное изменение, старый метод оставляется в поддержке, пока все клиенты (или нужный их процент) не обновится.

    С логикой сложнее. Но тоже есть варианты:

    - Самый простой - принудительное обновление. Выкатили новый сервер, все должны обновить клиент. Наиболее просто в поддержке, если не делается топовый продукт, то лучше так и поступать - сэкономит огромное количество ресурсов. Но сесть нюансы, например, сложно добиться одновременного выхода мобильных клиентов на разных платформах (Google Play, App Store) из-за особенностей ревью, договорённостей по фичерингам, etc.
    - Запускать несколько версий сервера: старую и новую. Если игрок обновил клиент и поиграл на новой версии, старым клиентом он уже не подключится. Тут надо грамотно распределять клиентов по серверам и озаботиться непересечением разных версий игры. Например, нельзя чтобы клиенты с разными версиями играли совместно (PvP, турниры, etc).
    Ответ написан
    Комментировать
  • С чего начинается написание игрового сервера?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Вообще, написание любой штуки начинается с ТЗ, а потом уже становится куда яснее что и как делать дальше.

    Сервера для Mu и Lineage пишут командой из довольно большого количества человек.

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

    Tiendil
    @Tiendil
    Разработчик ПО.
    Можно искать количество компонент связанности, начать разбираться можно отсюда: https://ru.wikipedia.org/wiki/Связный_граф
    Ответ написан
    Комментировать
  • С чего начать программисту-разработчику игр?

    Tiendil
    @Tiendil
    Разработчик ПО.
    >узкую специальность "Разработчика игр"
    Это ни разу не узкая специальность. Уже давно один человек не может быть прошарен во всех её аспектах. Лучше уточните чего конкретно хотите в качестве итога обучения.

    >с чего же начать?
    С написания игры, любой: хоть теттриса хоть next-get MMO. Ничего не получится, но появится отправная точнка и базовое понимание чего вообще происходит.
    Ответ написан
    Комментировать
  • Несколько вкладок в браузерной игре?

    Tiendil
    @Tiendil
    Разработчик ПО.
    >Что делать, если пользователь зашел в браузерную игру с двух разных вкладок?
    Это небольшая мелкая проблема. Можно и с двух браузеров зайти, а можно и бота написать, который 1000 сессий создаст.

    Всё зависит от доступных ресурсов и геймдизайна.

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

    Tiendil
    @Tiendil
    Разработчик ПО.
    Колизии на сервере считаются так же, как и на клиенте. Только на сервере.
    Ответ написан
    Комментировать
  • Мультиплеерная браузерная игра- исходники?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Если вы хотите запустить игру с таким подходом - не запускайте. Только потратите время и деньги.
    Ответ написан
    Комментировать
  • Как организована многопоточность в играх жанра RTS?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Два потока: графика и логика.

    Логика пошаговая с шагом 0.1-0.2 секунды, в зависимости от потребностей. Пошаговость означает, что реальное время в ней не учитывается, игра идёт по ходам: 1, 2, 3, 4...

    Логика шлёт в графику команды, которые управляют отображением. Например, если юнит сдвинулся на X метров, то логика шлёт команду в графику: "сдвинуть юнит на X метров за время 0.1 секунды". Команда выполняется на каждой перерисовке и постепенно сдвигает спрайт/модельку юнита в нужную позицию (при 60 FPS он будет сдвинут за 6 перерисовок, каждый раз на x/6 метров). Одновременно отображение юнита может изменяться несколькими командами, например, одна перемещает танк, а другая вращает его башню.

    Поток может быть и один, но принци тот же остаётся. Так в большинстве AAA игр делается, в частности, в Order of War.
    Ответ написан
    Комментировать
  • Какие записи актуальны для дев блога?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Хорошие темы для блога:

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

    Tiendil
    @Tiendil
    Разработчик ПО.
    1) Нужно найти толкового геймдизайнера или бизнес-аналитика с опытом в геймдеве, дать ему денег, сесть с ним и сформировать документ на пару страниц под названием "концепт-документ". Это краткое (очень краткое) описание игры (подробнее можно погуглить, но Ваш партнёр должен будет знать что это). В процессе работы над документом, у Вас решится множество вопросов и появится множество новых. После этого уже можно думать что делать дальше.

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

    Tiendil
    @Tiendil
    Разработчик ПО.
    Не нужно ничего вырезать.

    Берёте все ключевые точки в области видимости (врагов, друзей, лут, ещё что-то) и проверяете есть ли препятствия на линии между ними и ботом. Т.е. проверяете, пересекает ли линия какое-либо препятствие. Если пересекает, то бот точку не видит.
    Ответ написан
    2 комментария
  • Возможно ли разработать конкурентно способную 2-d игру написанную на Python ( pygame)?

    Tiendil
    @Tiendil
    Разработчик ПО.
    БольшАя часть цивилизации 4 написана на питоне.
    БОльшая часть WoT написана на питоне.

    Так что вполне возможно. Наверняка есть биндинги для популярных графических библиотек/движков.
    Ответ написан
    Комментировать
  • Каким игровым движком удобнее создавать инстанс авторитарного сервера для матча?

    Tiendil
    @Tiendil
    Разработчик ПО.
    BigWorld можно использовать, но не знаю как у них сейчас с лицензиями (раньше была даже для инди).

    А кроме него, пожалуй, ничего доступного и не вспомню. Если погуглить на тему сессионных mmo и всяческих moba, то наверняка можно откопать ещё пару сырых продуктов.

    Возможно проще собрать самостоятельно.
    Ответ написан
    Комментировать
  • Возможно ли заработать на играх?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Заработать можно, если команда состоит из профи. В одиночку тоже можно, но сложно — нужно быть мастером на все руки.

    Реклама нынче ооооочень дорогая — это главная проблема для независимого разработчика. Поэтому нужны либо деньги либо оригинальный продукт. Причём оригинальный для массовой аудитории, а не для узкого круга лиц.

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

    Можно пытаться сделать игру-сервис (какую-нибудь многопользовательскую, но простую). Теоретически можно за год-полтора сделать клон популярной браузерки с какой-нибудь оригинальной фичей, собрать сообщество и жить с него, постепенно развивая игру.

    Я, собственно, последние 3 года этим и занимался, но игра вышла через чур оригинальной и полностью жить с неё нельзя, но что-то более массовое вполне может обеспечить создателя.

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

    Tiendil
    @Tiendil
    Разработчик ПО.
    Скорее всего шрифт, которым это написано, является, как минимум платным. Поэтому использовать точно такой же шрифт будет нельзя, явно не заплатив его правообладателям (вопрос, продадут ли вообще).

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

    Tiendil
    @Tiendil
    Разработчик ПО.
    Посмотрите рекламу в группах вконтакте, можно задёшево найти пару тысяч игроков. Если повезёт найти профильные группы.
    Ответ написан
  • Алгоритм распределения "энергии" от "генератора"?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Поиграйте в FTL, там этот момент раскрыт.
    Ответ написан
  • Какие публикации на Хабре о технологиях в геймдеве вы считаете наиболее интересными?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Вот, например, моя статья про генерацию квестов: habrahabr.ru/post/201680
    Ответ написан
    Комментировать
  • Оптимальная архитектура сервера сетевой игры?

    Tiendil
    @Tiendil
    Разработчик ПО.
    предевременная оптимизация — ЗЛО
    KISS

    Вы хорошо описали, что хотите сделать, но ни словом не обмолвились о том зачем Вы это хотите:

    - какого типа планируется взаимодействие игрока с сервером?
    - какие предполагаются нагрузки? Средняя, пики…

    Без знания ответов на эти вопросы, ответ на Ваш вопрос один: делайте как Вам приятно. Потому что критериев выбора архитектуры не приведено.

    Вот универсальное правило принятие решений: «Х решает какую-то проблему? Если решает, делаем Х, если не решает — не делаем.»
    Ответ написан
    5 комментариев