Ответы пользователя по тегу Разработка игр
  • Можно ли написать AAA-игру на языке программирование Си?

    terrier
    @terrier
    Можно ли написать AAA-игру на языке программирование Си?

    Ну, гм, в принципе, конечно, да - Quake 1/2/3, например, написаны на C. Но сейчас для такого рода игр стандарт де-факто - C++
    Ответ написан
  • Как искать работу game developer?

    terrier
    @terrier
    Всем привет.

    Хэллоу.
    Второй месяц изучаю C++, сейчас пишу простенькую игру на sfml, потом в планах UE4.

    Хорошее начало, однако вы должны понимать, что пока что ваш уровень в C++ околонулевой.
    Периодически захожу на разные сайты смотреть вакансии и там всё грустно - их почти нет!

    Ну это просто неправда. https://gamedev.ru/job/forum/?vacancy - я вот здесь вижу 4 C++ - вакансии только на первой странице, то есть за вчера-сегодня. И в целом вакансий достаточно.
    Поэтому хотел спросить, реально ли вообще найти работу гейм девелопером

    Конечно.
    (а тем более без коммерческого опыта)

    Упс, тут небольшая проблемка. Опыт нужно приобрести. Смотрите - с нормальным знанием C++ и внятным опытом в UE хотя бы в пару лет ( пусть даже некоммерческим ) проблема трудоустройства в геймдеве стоять перед вами не будет. Вывод - продолжайте изучать C++, осваивайте UE, пишите прототипы, не комплексуйте и, когда набьете скиллы, сможете поучаствовать в геймдев-движухе. Можно пока присоединиться к какой-нибудь любительской разработке для опыта.
    Пока не прокачаетесь, ну, наверное, нужно будет что-то зарабатывать - есть смысл попробовать геймдев-индустрию на ощупь, устроившись тестером, например. Может у вас сразу слетят розовые очки и вы сразу предпочтете вэб.
    Ответ написан
  • В действительности ли читеры могут без проблем взломать клиенты многопользовательских игр и таким образом получать преимущество?

    terrier
    @terrier
    Само по себе то, что сервер является авторитативным ( авторитарный это политический режим ) не панацея.
    Что могут сделать читеры даже если вся логика на сервере?
    - Автоматизировать то, что по идее должен делать игрок на клиенте. Отсюда aimbot'ы и штуки типа автоматического добивания крипов в доте.
    - Покрутить параметр transparency в движке клиента. Упс, теперь нам стены мешают гораздо меньше
    - Подсветить на клиенте то, что не должно быть не очень заметно. Враг спрятался за ящиком, так что только один пиксель виден - покажем это ярко красными буквами.
    То есть мы можем читерить в очень широких пределах даже в случае идеального сервера. А если мы вспомним, что по соображениям производительности мы должны отдавать клиенту все-таки несколько больше, чем игрок видит вот данный момент, то получаем еще бОльшее количество возможных автоматизаций и волхаков.

    баны читеров и вообще возможность читерить на клиенте - это просто способ разработчиков закрыть свои недоработки и непрофессиональность

    Полностью избежать любого читинга на практике нельзя. Создание античитинговых систем ограничивается
    - стоимостью
    - удобством пользователя
    Ответ написан
  • Как создаются большие игры на c++ или c#?

    terrier
    @terrier
    Для AAA-проектов "самописный" движок - это как правило означает, что он был создан выделенной командой разработчиков, используется только внутри проектов данного издателя и наружу не отдается. Яркий пример - Infinity Ward Engine, разные версии которого уже второе десятилетие тянут серию Call of Duty. Или, скажем, движок Diablo 3.
    А так - ну, можете представить себе, что движок обеспечивает то, что "объекты" сталкиваются, груди и волосы колышутся, сетевые сообщения передаются, а вот собрать из всего этого Battlefield предстоит тем десяткам программистов студии-разработчика.
    (Да, стандарт де-факто программирования для AAA-проектов - это, конечно же C++, ради портабельности и производительности. Но для скриптов и инструментов используется куча всего разного C#/Lua/Python и т.д. и т.п.)

    P.S. Вспомнил, кстати, пример интересной игры на самописном движке на C# - Bastion.
    Ответ написан
  • Какие сетевые протоколы лучше использовать мобильной онлайн игре?

    terrier
    @terrier
    UDP или TCP?


    Ну, давайте подумаем вместе: когда я отсылаю с клиента на сервер информацию о своем передвижении в онлайн-шутере я отсылаю может быть десятки UDP-пакетов в секунду. Если я потеряю несколько - это не критично. А если, в вашем случае, я потеряю информацию о ходе в пошаговой игре это приемлимо? Вот то-то и оно.

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


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

    terrier
    @terrier
    Выглядит как PubSub-задача. Допустим у нас есть карта "Король гоблинов" 5/5 таунт, класс - гоблины.
    Когда мы кладем ее на стол она ( в смысле соответствующий объект ) отписывается от канала "для тех, кто лежит в руке" и подписывается на каналы "Лежим на столе", "Класс - гоблины", "Карты с таунтом" и тэ дэ.
    И посылает в соответствующие каналы сообщение - "Я 5/5 гоблин пришел на стол на такую-то позицию".

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

    terrier
    @terrier
    Пункт номер 0 - не сомневайтесь, С++ - один из основных языков в гейм-индустрии.
    1. Гейм-индустрия сильно разная. Лабать инди-игру на кухне - это одно, фигачить очередную часть AAA-тайтла - это другое, делать веселую ферму с енотиками для вконташи - это третье
    2. Соответственно, если фирма еще не вышла из стадии "Вася и Петя решили сделать новый фэллаут и уже даже наняли одного программиста Толяна", то условия очевидны - Толян фигачит пока не упадет за копейки.
    3. А вот если фирма уже перешла на более индустриальный уровень, то тут обыкновенная IT-разработка, с некоторыми особенностями:
    - В индустрии вполне встречаются энтузиасты и кто-то в компании будет работать с восьми до восьми ( хорошо, если это продюсер ), но это совсем не обязательно должны быть вы.
    - В целом в управлении как правило бардак, для того чтобы рулить одновременно и художниками и программистами и геймдизаннерами нужны очень классные менеджеры, а таких в индустрии нет
    - Уровень технической организации ( CI, vcs, code-review, внятные стандарты кодирования ) колеблется от "стихийного" до весьма высокого, есть суперкрутые специалисты, работать с ними - большая удача, особенно для новичка.
    - Однако если вас интересует конкретно стек технологий с C++ - там крутых спецов вымывают яндекс/мэйл, они способны предложить условия получше
    - Переработки случаются, поскольку планирование как правило весьма "креативное". По идее разработчки должны с этим бороться, насколько успешно - другой вопрос
    - По деньгам - средне, вот тут сильно зависит от заказчика/проекта
    - Есть ли улучшение со временем? Ну, вот недавно тем, кто работает на западного заказчика одномоментно стало резко лучше, гггг))) Но в целом, вы правильно поняли, в плане условий труда индустрия эволюционировала от "Полный треш, подойдет только для долбанутых подростков" к "Можно рассматривать, если есть толерантность к некоторому творческому беспорядку"
    Ответ написан