Ответы пользователя по тегу Разработка игр
  • Как реализовать систему перемотки времени назад, как в принц персии например?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Представьте что вам нужно вести запись демки в игре.
    Пишете координаты, что где заспавнилось, что задеспавнилось, куда двигалось и вращалось. Делаете в записи обратный ход времени, в простейшем случаее инвертируете логику спавна\деспавна.
    Ответ написан
    Комментировать
  • Как в ировом движке на C++ распаралерить функции Update и Render?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Imaginer, плавности добиваются не этим. Обычно опираются на дельту времени кадра и интеполируют значения, в идеале с последующей корректировкой через кадры.
    Т.е. к примеру, у тебя 60 фпс, просчет физики fps\3 =20. Недостающие кадры ты интерполируешь (тупо высчитываешь следующую координату из предыдущей и вектора движения), на ключевом кадре когда произойдет симуляция физики(со смещением времени) сравниваешь текущее интерполируемое значение и просимулированное, в случае различия двигаешь все на просимулированные данные т.к. они корректны и точны. Ошибки будут но они зависят от сложности физики, числа взаимодействующих объектов и фпс физики.
    Примерно так оно везде устроено если упрощенно, на самом деле могут еще и уменьшать число фпс физики в зависимости от дальности объекта от камеры и прочие прочие трюки.

    По потокам, дроби свой метод update на более мелкие задачи которые можно запустить параллельно. К примеру:
    - скайбокс на котором упрощенно двигаются облачка, самолетики и прочее, на геймплей не влияют как и на физики, можно спокойно вынести это в поток
    - расчет звуковых симуляций, это не бросится в глаза при неточностях.
    Раздербанивать опираясь на то какая у тебя игра именно, и чаще всего в потоки получится вынести очень малую часть от всего объема
    Ответ написан
    Комментировать
  • Какой лучший современный движок под mmorpg?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Сначала определитесь что для Вас будет миллион игроков. Они все будут одновременно в одной битве и одной точке? Я сильно сомневаюсь и такое не потянет ни один движек в реалтайме.
    Если это просто онлайн одновременный то в чем проблема? Игроки будут размазаны по миру, мир поделен на зоны которые обрабатываются разными серверами, соответственно нагрузка будет ложиться на них, а не на один мегасервер.
    Как вывод, выше уже предложили берите UE4 или cryengine или Lumberyard. Последний насколько я знаю более заточен под такие задачи и имеет много фич для онлайна именно но все будет только на серверах амазона.
    Брать другие открытые движки будет больнее, но вероятно результат будет лучше и потребует гораздо больше навыков и программистов т.к. вы реализуете все строго под свои задачи, а не будете заключены в рамки как с cryengine и ue4.
    Ответ написан
    Комментировать
  • Unreal Engine или Unity?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Что лучше Cola или Pepsi ? Объективно и конструктивно сможете сами понять почитав базовые особенности каждого движка. Кроме того этот вопрос обсасывался тут множество раз и достаточно воспользоваться поиском.
    Ответ написан
    Комментировать
  • Возможно ли конвертировать .bin.gz в .obj или .stl?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Ничего сверх сложного нет, по классике любой 3d рипер сцен и вперед. К примеру берите ninjaripper как популярный нынче, открываете страницу с нужной моделью, дампите. Дамп открываете в 3д максе\блендере, ручками правите косяки типа поехавших uv или ненужного мусора и экспортируете в то что вам нужно.

    Полноценный конвертер вряд ли кто то будет делать, это неблагородное дело. Тем кому надо купят модель и с чистой совестью будут ее использовать, а за украденную можно по шапке огрести.
    Ответ написан
    1 комментарий
  • Верно ли, что коммерчески успешная игра должна быть интересной и хорошего качества?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Если есть гениальная механика и реализация то сработает сарафанное радио и это победа.
    Если есть тонны денег на грамотную рекламу то это тоже победа.
    Если есть успех обскакать в реализации нашумевшей кривой идее.
    Самое сложное это найти небольшую нишу которой вы угодите и это тоже победа.
    Ответ написан
    Комментировать
  • Где брать бесплатные модели для Unreal Engine?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Тут как в поговорке "Чай с сахаром либо руки с мылом." Ищите просто бесплатные(а если еще и на игре заработать хотите то обязательно бесплатную для комерческого использования) модели и конвертируйте с адаптацией под ue4.
    Если и это сложно то довольствуйтесь теми которые вообще есть под ue4 и бесплатные.
    А вот если нужно что то конкретное то делайте сами\покупайте\заказывайте на фрилансе.
    Ответ написан
    1 комментарий
  • Выбор и разработка сервера для игр типа 2D стратегий на android( клиентская часть на unity)?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    У вас уже самая простая задача раз нет реалтайма. Тупо пихаете любым удобным способом запрос на сервер и получаете результат, тут даже обычного http\post запроса хватит с сериализацией в удобный вам формат(к примеру json если размеры существенные то за gzипеть его). В роли бэкенда даже пышка(php) прекрасно справится.
    Ответ написан
    Комментировать
  • Как использовать Vulkan API для собственного движка?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Раз вопрос поставлен таким боком то правильное решение будет не использовать вулкан. Очень вероятно что и чистый opengl поставит в ступор поэтому ищите готовые библиотеки по opengl в которых все максимально абстрагировано и завернуто в более удобный api.
    Ответ написан
    Комментировать
  • Cinema4D, Maya или Blender для разработки игр?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    А собственно в чем проблема?
    - Умеете в синьке так покупайте и спите спокойно
    - Не можете себе позволить покупку? Ну так значит может и не стоит тогда сидеть на синеме, значит и игра не принесет такой прибыли чтобы позволять пользоваться таким инструментом , а значит следует просто смириться и привыкнуть к бесплатным или более дешевым решениям?
    - Если не уверены что прибыль будет но синема очень дорога то может пойти на аутсорс и купить\заказать нужные модели там?

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

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Штатными средствами libgdx?
    А вообще у libgdx есть специальные рекомендации и реализации базовых штук для работ с памятью в т.ч. специальных пулов.
    Ответ написан
  • Какой ЯП выбрать для игрового сервера?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    По отстреливать себе ноги кучей циклов и if'ов сможете абсолютно в любом языке.
    Оптимизируйте текущий код или пишите на том что знаете.
    Как вариант берите за основу любой кастомный и его допиливайте аналогичное есть и для покет версии.

    Почитал комент автора. Если проблемы в генерации чанков то просто сгенерьте заранее весь мир сразу а игрокам просто подсовывайте готовые чанки подгружаемые из бд или файлов. Когда то давно на своем сервере именно так и делали, после вайпа за пару часов генерировали весь мир заново ограничивая радиусом мира.
    Ответ написан
    3 комментария
  • Что делать при несовпадении координат на клиенте и сервере?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Конкретно в Вашем случае ответ очень прост.
    Клиент предсказывает свое положение но сервер должен ответить координатами где клиент находится и этот ответ будет более приоритетным. Чтобы все это заработало правильно синхронизируйте клиента и сервера по тикам сервера а значит и храните последние N состояний мира на сервере и клиенте т.е. получится следующая схема:
    Клиент предсказывает свое положение и отправляет серверу что двигаюсь вправо тик 10
    Сервер принял пакет, смотрит тик, откатывает состояние мира до этого тика и задает движение вправо.
    Сервер отправляет клиентам состояние игрового мира с номером своего тика.
    Клиент приняв пакет со своими координатами и тиком сервера откатывает мир на этот тик и смотрит угадало ли предсказание координаты. Если угадало то ничего не меняешь, если не угодало то откат на эту позицию и слушать сервер дальше.
    Кроме того этот механизм сразу решит проблемы с выстрелами и взаимодействиями т.к. сервер может востановить картину что видел игрок в конкретный момент времени и мог ли он попасть в объект\игрока.

    По сути и простыми словами выглядит это так:
    Сервер всегда находится в настоящем времени но может заглядывать в прошлое.
    Клиент всегда видит прошлое состояние мира но сам(и объекты с предсказанием) находятся в настоящем.
    Ко всему сказанному сервер может(точнее обязательно должен! ) вводить искуственную задержку для клиентов(в пределах разумного, вычислять среднюю для всех клиентов или некую фиксированную), это гарантированно заставит всех клиентов видеть одинаковое состояние мира независимо от их задержки сети.

    Вот, это если вкратце и простыми словами.
    Ответ написан
    Комментировать
  • Как лучше реализовать мультиплеер?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Путем проб и ошибок, никто не скажет что будет лучше и быстрее конкретно для вашей ситуации.
    Ответ написан
    Комментировать
  • Стоит ли обфусцировать игру на Lua?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Если цель скрыть любые возможности модификации и закрыть пути для модов то стоит обфусцировать и поверх загнать все в модифицированный\самописный контейнер, у контейнера подсчитать хэш и захардкодить его проверку в ехе.
    Ответ написан
    Комментировать
  • В чем секрет графики серии игр Crysis? Почему никому не удалось превзойти Crytek в этом плане?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Равная часть кодеров и художников.
    На счет не превзошли это очень спорный вопрос и каждый может трактовать по своему.
    Единственное что подгадал и протолкнул crytek это то что они во время застоя решили плюнуть в лицо нищебродам слабого железа и хитрожопым производителям видеокарт. Грубо говоря производители карт не торопились выкатывать действительно новые железки т.к. все разработчики игр всегда пытаются охватить максимальный спектр железа а значит берут среднее массовое и ориентируются графикой на него а значит и никакой прорывной графики не будет.

    Аналогию можно провести с выходом процессоров райзен, плюнули застою интела в лицо и сделали скачек на рынке сбив цену\ядро.

    Логика действий разработчиков всегда есть как и выбор:
    - плюнуть на все и все силы с деньгами направить в разработку топовой по графике игры. Но есть огромные риски что игра не выстрелит а значит не окупится. Слабое железо не потянет а значит игроки не купят, среднее железо потянет на минималках а значит сильно вероятно в целом графика будет намного хуже чем еслибы графику точили на это железо а значит могут тоже не купить. Геймеров с топовым железом очень мало а значит не факт что прибыль будет большой.
    - идти по накатаной и ориентироваться на среднее железо. Средств и сил уйдет на порядок меньше а значит и прогореть будет не так страшно. Яркий пример этого варианта видно в любой игре, как правило выраженной разницы графики между средне-высоко-ультра настройками не будет.
    Ответ написан
    3 комментария
  • Что делают программисты на Unity целый день на работе?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Все как и везде. есть некий внутренний ресурс типа гитлаба в котором есть списки задач и списки багов. Тот кто старше рисует и назначает задачи, вот это джунам а это мидлам, так же с багами. Кодер пришел, открыл гитлаб и берет себе задачу или баг и бодается с ним.
    Сами задачи соответсвенно распределяются по сложности тем самым джунам\мидлам и т.д.
    В день необходимо сделать N задач а как ты их будешь делать уже твои проблемы. К примеру знаю что в эпаме такая ситуация, сделал быстро можешь даже домой свалить а если не успел то будь добр ишачь до последнего.
    Ответ написан
    Комментировать
  • Постоянно в процессе вызывается функция?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Хм
    setdone(true);
    чет падазрительна.
    Ответ написан
    Комментировать
  • Какие технологии/языки программирования использовались в таких легендарных игровых проектах как серия Demons/Dark souls?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    1) Какие языки знают девелоперы и какие технологии могут позволить себе купить.
    2) Если что то уникальное то тупо садились и писали на чем удобно, если изначально целились на определенный жанр к примеру стратегию то тупо покупали двиг у разрабов которые уже делали стратегию на нем. Условно говоря хотели клон дюны2000 значит купим двиг дюны и сделаем свою игру.
    3) Java\С#\C\C++\JS\Kotlin и еще с десяток. Что удобнее то и используют.

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

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Такой вопрос был тут отвечен уже тысячи раз. В кратце если учить с#\java и охватите сразу все платформы со своими плюсами и минусами. Если хотите прям по взрослому то с++ но готовьтесь к тому что придется его изучать гораздо дольше и не один год и даже не два и разработка займет намного больше времени но в целом вероятно сможете написать хоть какойто двиг с рендерем похожим на ААА движки.
    Ответ написан
    2 комментария