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

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Не пишите крутой сервер для крутой игры.

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

    Не бывает много или мало, бывают конкретные условия, от которых уже и отталкиваются, но реально - оценивать нагрузку, если у вас даже прототипа рабочего нет - как?
    Ответ написан
    4 комментария
  • С чего начать программисту-разработчику игр?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Разработчик игр это НЕ специальность.
    Специальность - это разработчик. А разработчик игр - это вакансия в компании, которая разрабатывает игры.
    Ответ написан
    Комментировать
  • С чего начать, чтобы сделать простой сервер для игры?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Написать серверную часть, которая будет по запросу от клиента лезть в базу, выбирать нужную информацию и отправлять ее клиенту.
    Доделать клиент игры так, чтобы он знал где сервер, как отправить к нему запрос и как разобрать ответ.
    Подумать о безопасности, чтобы не слать все в открытом виде, и чтобы не могли легко подделать запрос, получив чужую информацию.

    Почитать про tcp/ip, про http/xml, про API, про sql.
    Ответ написан
    Комментировать
  • На чем писать сервер для игры?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Количество онлайн вообще не так считается. Все зависит от игры.
    У меня был проект с онлайн под 100.000 в сутки. Легко держалось на php/fastcgi, правда для одной штуки пришлось написать примочку на ассемблере и внедрить как либу для apache, но к онлайну это отношения не имеет.

    Напишите нагрузочный тест, прикиньте что именно будут делать игроки. Можно плясать как от языка, так и от архитектуры игры. Например писать что-то типа aion/lineage - я бы предпочел C++, а не java. Хотя эмуляторы на java вполне держали под 1000 онлайн на среднем сервере еще до оптимизации.
    В общем все зависит от трафика и требованию к реакции игрока.
    Ответ написан
    8 комментариев
  • Как в играх эмулируются действия НЕ в радиусе видимости клиента?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    А зачем NPC вообще грузиться на клиент?
    Все действия он и так делает на сервере. ходит (меняет координаты), взаимодействует с другими (продает, то есть перемещает данные), дерется (уменьшается здоровье или мана), умирает (убирается обхект из памяти сервера).

    А на клиенте это все только рендерится для видео.
    Ответ написан
    4 комментария
  • Какую дорогу в GameDev лучше выбрать?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Если вы хотите писать серьезные игры ААА класса, учите С++, учите общие технологии (git/sql/codestyle/api), просматривайте вакансии в компании, в которые вы могли бы устроиться и читайте требования к вакансиям.

    Если считаете себя достаточно продвинутым, можете просто приходить в эти компании, искать ответственных за интернатуру людей и пробовать устроиться на стажировку. А может и на джуниора сразу.
    Ответ написан
    5 комментариев
  • Где делятся знаниями гиганты игровой индустрии?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    А зачем это делать?
    Дело даже не в том, что "просто так", а в том, что там ничего сверхестественного нет. Есть уйма работы, проектирования, написания кода.
    Написать в двух словах о чем-то сложном невозможно, а писать талмуды - некогда и незачем.
    Все знания, которыми делятся гиганты - в основном на stackoverflow по конкретным вопросам.
    Ответ написан
    Комментировать
  • Выбор технологии для разработки игры новичку?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Новичку следует не выбирать технологию для разработки игр, а сперва изучить основы программирования.
    Изучить язык программирования - это просто минимальная база, которая вообще ничего не стоит, а займет уже порядочно времени.
    Изучение библиотек и уж тем более движков - на вашем месте начните писать хеллоуворды, пока не почувствуете, что осилили достаточно, чтобы писать что-то сложное.
    Попытка написать сложное с нуля, без знания основ - неэффективно.
    Ответ написан
    3 комментария
  • Какие языки программирования используются в гейм-деве?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    На телефонах С++ вообще практически отсутствует.
    В соцсетях все еще активно рулит флеш.
    С++ рулит в основном в играх а-класса, типа топовых шутеров, всяких ева онлайнах, лигах легенд, но не он один.

    Взять ту же лигу легенд.
    C++ (ядро боевой части клиента)
    Lua (входит в ядро боевой части клиента)
    C# (разные утилиты)
    ActionScript (pvp.net, клиент с менюшками)
    Java (серверная часть)
    Erlang (серверная часть)
    Php/sql (веб платформа, API, официальные сайты с аналитикой и esport)
    Ответ написан
    Комментировать
  • Как разрабатываются неофициальные мультиплееры?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Ваши вопросы показывают вашу неграмотность на таком уровне, что адекватно объяснить вам не получится.

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

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

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

    P.S. Данный ответ достаточен и подробен. Если вам нужно понимать глубже - учите программирование, тогда вы сможете задать более правильные вопросы.
    Ответ написан
    Комментировать
  • Сервер для многопользовательской игры?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    "Пришло время когда нужно разработать сервер для онлайн игры"

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

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Единственный вариант - договориться с каким-нить издательством об издании перевода.
    Но нужно уточнить с юристами.

    Иначе - донат, которого может и не быть.
    Ответ написан
    Комментировать
  • Реально ли сейчас сделать "крутую" игру, имея такое изобилие инструментов?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Уровня крайзис - никак. Как вы себе представляете, как пару соратников смогут создать, написать и главное протестировать весь контент?

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Ваша задача сформирована недостаточно.

    Кто будет раздавать данные о перемещении игроков? Каждый клиент передает движение своего игрока, или каждый клиент передает нажатия кнопок а сервер вычисляет движения?

    Насколько свободно движение (двигаются только руки, или пальцы на руках, или фаланги пальцев, или с пальцев могут соскользать перчатки)?

    Удар меча идет по вертикально натянутой кольчуге с углом и радиусом удара, или удар меча идет по кольчуге, надетой на рельефный каркас тела, которая в разных местах может быть НЕ вертикальной, или удар меча идет по кольчуге, с вычислением попал ли он пластину, в сочленение пластин, или в сочленение какого-то колечка кольчуги?

    То есть вам нужно разобраться с желательной детализацией вычислений.

    А так - просто соприкоснования известных ударов - 2000 игроков может просчитать и один сервер, даже домашний.

    Вот обработать 2000 онлайн, особенно в пределах видимости - совершенно другая задача, пока что практически неподъемная. Лучшие MMORPG, на мощных серверах начинают глючить, если в одном месте более 200-300 игроков.

    Обработать видео, которая будет показывать такую детализацию движений хотя бы 30-ти игроков рядом - не потянут видяшки.

    То есть физика - это не главная проблема, пока что главная - сеть и рендеринг.
    Ответ написан
    Комментировать
  • Какая средняя заработная плата в GameDev?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Вопрос ни о чем.
    Геймдев - обычная работа, ничем не отличающаяся от любой другой разработки.
    Геймдев - разнообразная работа. Может быть унылый офис, где с утра до вечера колупаешь скрипты диалогов, или где в одиночку меняешь мир майнкрафтом.

    Средней ЗП нет вообще. Геймдев на мобилке может зарабатывать 1 бакс в месяц, может пару десятков тысяч в месяц. Может миллион в месяц. Может ничего не заработать.
    Ответ написан
    Комментировать
  • Какая схема управления в gamedev у вас?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Рядовые программисты хотели бы поучаствовать в схеме, где им платят хорошие деньги и ставят адекватные задачи.
    Продюсер или спонсор хотел бы поучаствовать в схеме, когда он оплачивает разработку, а она "взлетает", принося прибыль.
    Руководитель проекта хотел бы поучаствовать в схеме, в которой есть нормальный продюсер, нормальные программисты, а сам он имеет адекватные идеи, хороший опыт и способен организовать создание такого проекта.

    ВСЕ ОСТАЛЬНОЕ - это мелочи.
    Ответ написан
    Комментировать
  • Как происходит "соединение" языков при создании игры?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Почитайте что такое API.

    Например онлайн игры - клиент написан на одном языке, а серверная часть, которая обрабатывает запросы - на другом.
    А в Counter Strike есть внутри встроенный язык, на котором можно писать плагины - аналог LUA
    А многие языки поддерживают регулярные выражения.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Посмотрите готовые реализации подобных игр.
    У всех есть множество ограничений по поводу того кто и как часто может нападать.
    Ставите первоначально иммунитет, о котором сообщаете.
    Например игроки до 5 уровня не могут нападать на других игроков, игроки от 5 до 10 могут нападать друг на друга, потом все ограничения сняты.
    Если на игрока напали и уничтожили у него xx%, он получает иммунитет на yy%

    в общем тут дело больше баланса, а не расстановки.
    Ответ написан
    4 комментария
  • Что нужно знать, чтобы работать в сфере разработки игр?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Разработка игр и моделирование - как бы разные вещи.
    Если нравится моделирование - изучайте моделирование.
    Но оно может быть использовано не только в играх.
    Например создание видеороликов (мультики, реклама).
    Дизайн (создал 3д модельку маскота, затем крутишь ее по ситуации, получая нужные для дизайна варианты) и так далее.

    Если уже есть понимание моделирования (рисовать умеешь, пропорции угадываешь сходу), можно и в геймдизайн пойти. Для начала, можно посмотреть форматы 3д моделек популярных игр, и немного освоить эти инструменты. Затем моделировать, пробовать.

    В той же League Of Legend даже конкурсы бывают "нарисуйте модель или дизайн, получите плюшки, а лучшие дизайны могут войти в официальные скины доступные в игре". При удачных разработках можно даже заинтересовать компанию и устроиться туда штатно. Ну или попробовать любую другую, но уже имея портфолио.
    Ответ написан
    Комментировать
  • Как спроектировать авторитетный игровой сервер?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    1. Никак. Но у многих игр есть определенный критичный пинг, выше которого играть некомфортно.
    Выход - изначально проектировать игровую механику таким образом, чтобы популярный пинг (до 10-20 мс) был более-менее комфортен.
    2. У вас немного каша даже в том смысле, как вы описываете игру. Это шутер, это реал-тайм стратегия, это симулятор? У каждого свои фичи, но даже 50 мс вполне достаточно, чтобы более-менее адекватно успевать отрисовку. В большинстве случаев клиент некритичные вещи отрисовывает сразу по действию, а получая ответ-подтверждение от сервера уже доделывает более критичные (например уменьшить жизнь можно сразу, а уничтожить корабль можно только после подтверждения от сервера).
    3. Конечно сервер должен регулировать действия. Все критичные вещи должны быть вычислены на сервере. Клиент может делать предупреждающие вычисления, которые дублируют то, что делает сервер, но только в плане отрисовки. Для этого алгоритм должен совпадать. Но подтверждение с сервера обязательно. Иначе такую игру взломать поддельными пакетами будет доступно любому школьнику.
    4. В МОБА играх всего 10 игроков. Между моментальной и быстрой синхронизацией уйма времени.
    Например игроку из России комфортно играть на русском и европейском сервере. А на американском пинг свыше 20-30 уже ВЕСЬМА заметен.

    Протокол конечно же UDP, какой же еще.
    Оптимизация - уменьшение трафика, максимально продумать что именно следует передавать, от этого отталкиваться в механике.
    Ответ написан