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

    Tiendil
    @Tiendil
    Разработчик ПО.
    > Соцсети не помогают, для этого нужны денежные вложения.
    Либо время.

    Вопрос, как я понимаю, скорее не про ЦА, а про формирование сообщества. Чтобы народ не рассходился между выпусками игр.

    Для этого нужно тратить время и (опционально) деньги. Делается так:

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

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

    Tiendil
    @Tiendil
    Разработчик ПО.
    1. Открываешь текстовый редактор.
    2. Пишешь код.
    3. Компилируешь.
    4. Смотришь результат.
    5. Если не устраивает, переходишь к п.1.
    6. ?????
    7. Profit.
    Ответ написан
    Комментировать
  • Turn-based mobile MMO over HTTP?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Это называется long polling . Можно погуглить особенности решения по этому термину.

    Вот случилось у меня 1000 CCU - будет ошибкой такое решение? 10000?

    Глобально или на физический сервак? Это ж разные вещи. Как я понимаю, всё-таки в расчёте на физический сервак. Но и сервак-серваку рознь, как и само CCU беp "профиля нагрузки" мало что говорит.

    В целом, ответы на такие вопросы проще получать экспериментальным путём (собрать простой прототип и натравить на него ботов).

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

    Для прототипа и 1000 CCU точно хватит, если ходы не частые. Например, я по такому принципу сделал дебажный матчмейкер.

    Если бы не было мультиплеера (когда пользователь просто ждёт что-то), то покатило бы и для прода.

    В случае мультиплеера (когда пользователи ждут друг друга), не вижу преимуществ перед поддержкой обычного соединения, кроме сэкономленого времени на разработку MVP. Минусами же станус костыли для поддержки соедиенения и определения дисконектов. Для случая низкуоровневой работы с tcp есть куча мануалов и "стандартных" решений. В случае работы на уровне не ниже http могут возникнуть непредвиденные проблемы из-за промежуточного софта и самого протокола.

    Кроме того, при простейшей реализации long polling одно из соединений будет забито на обработку одной команды и послать другое будет нельзя. А значит потребуется делать отдельные http запросы на каждую дополнительную команду. Теоретически можно загнаться и сделать передачу нескольких команд через такое соединение, но это уже ничем не будет отличаться от собственного протокола через tcp (кроме дополнительных тормозов и костылей).

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

    Резюме:

    - если есть экспертиза и время: делать нормальную коммуникацию через tcp
    - если экспертиза не очень и сроки не горят, то делать нормальную коммуникацию через http с двумя командами (отправить изменения, получить текущее состояние)
    - если нужно ещё вчера, то long polling подойдёт.
    Ответ написан
    4 комментария
  • Можно ли перейти в GameDev, если ты разработчик сайта?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Бэкендеров в геймдеве не хватает: днём с огнём не сыщешь, иди. Может даже денег дадут хороших.
    Для большого количества игр бэкенд ничем не отличается от обычного сайта, разве что страницы рендерить не надо. Вообще, игровая логика — не самый большой кусок сервера, когда она на нём делается.
    Геймдев ничем не отличается от любой другой разработки. Это просто миф. Всё те же проблемы, всё те же критерии. Разве что работники менее дисциплинированные, но это от команды зависит.
    На питоне вполне неплохо пилят сервера (как непосредственно игровые, так и инфраструктурные). Wargaming не жалуется. На клиенте Python тоже есть (в тех же танках, например), но в индустри используется не так активно.

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

    Tiendil
    @Tiendil
    Разработчик ПО.
    Ответ написан
    Комментировать
  • У меня в перспективе работа над AAA проектами, поэтому стоит ли выбирать Unreal Engine лишь потому что там c++?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Как минимум Unreal Engine даст представление о том, как устроены джижки на C++.

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

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

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

    Tiendil
    @Tiendil
    Разработчик ПО.
    Возможно имеется в виду technical artist. Правда они очень разные могут быть: от верстальщиков интерфейса до программистов шейдеров и прочего. В общем случае должность подразумевает знание и программирования и арта.
    Ответ написан
    Комментировать
  • Имеет ли смысл писать игры вроде terraria,crypt of the necrodancer и т.д. на python(pygame)?

    Tiendil
    @Tiendil
    Разработчик ПО.
    terraria,crypt of the necrodancer

    Это очень разные технически игры. Crypt of the necrodancer вполне можно полностью на питоне делать.

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

    Тут правильно советуют готовые движки, у Python с ними не очень хорошо. Можно попробовать Godot, он позволяет использовать Python для описания логики. Или Kivy - движок не игровой, но для некоторых игр сгодится.

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

    Tiendil
    @Tiendil
    Разработчик ПО.
    Движок — это инструмент. А значит он обладает всем общими для инструментов свойствами. Например, все отвёртки во много одинаковы, все молотки похожи (хотя киянка и отличается от кувалды). Не так важно какой первый движок будет, потому что надо знать парочку.

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

    Если хочется начать быстро делать что-то законченное и зарабатывать какие-нибудь деньги этим, то C# + Unity выглядит лучше — они проще.

    Если хочется стать реальным профи и есть время на учёбу, то C++ будет более правильным выбором. Плюсы, при нормальном изучении, дают на много больше знаний о программировании в целом и о том, как программы работают. Человек, осиливший C++, на мой взгляд, осилит любой другой ЯП довольно быстро (за исключением Haskel, пожалуй :-) ). Обратное же неверно. Но времени на них надо куда больше.

    С другой стороны, учить всё равно можно в разном порядке. Смотрите по своим жизненным приоритетам и наличию работы в той области, где вы живёте.
    Ответ написан
    1 комментарий
  • Можно ли написать AAA-игру на языке программирование Си?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Возможно, но есть некоторые сложности.

    1. ААА разрабатывают командами от 50-100 человек, так что в одиночку в любом случае будет очень долго. Скорее всего даже не сможете успевать за технологиями, чтобы соответствовать ААА :-D
    2. Новые движки и либы почти (или уже совсем?) не пишутся на чистом С (может, разве что, в консолях каких он остался). Поэтому придётся линковаться с либами на С++, это может вызвать некоторые затруднения.
    3. Для ААА придётся писать и набор всяких утилит (редакторов и прочего), на С. А GUI на нём уже давно не пишут.

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

    к С++ и С# не расположен

    Смиритесь с тем, что сейчас недостаточно знать 1 язык. Чтобы сделать что-то серьёзное и большое, по-любому придётся писать на нескольких ЯП.
    Ответ написан
    Комментировать
  • Что делают программисты на Unity целый день на работе?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Обычно игровая логика (это к примеру):
    - управляемый персонаж
    - способность персонажем взаимодействовать с миром (предметами)
    - какие-то подвижные элементы в игре
    - АИ врагов и НПС
    - кнопки интерфейса, инвентарь.
    И всё... Так если ты умеешь уже это делать и ты "типо программист на Юнити", то ты напишешь всё это гораздо раньше, чем начнется твоя первая зарплата. А чё потом делать?

    Большинство программистов один элемент из этого списка качественно за месяц сделать не в состоянии.

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

    P.S. для примера. Моей первой работой была вот эта игра: https://en.wikipedia.org/wiki/Order_of_War

    Первые задачи на ней были примерно такие:

    - реалистичный поворот башни танка, синхронизированный с логикой ~ 3 недели, дошло до того, что рисовал графики в excel, чтобы обосновать, почему именно такая визуализация правильная и почему нельзя сделать лучше.
    - интерфейс управления отрядами (чтобы формацию сохраняли, не перестраивались лишний раз, etc) ~ месяц.
    - оптимизация цикла обновления графики с двухпроходного на однопроходный ~ два дня :-D
    Ответ написан
    2 комментария
  • Каков C++ в геймдеве?

    Tiendil
    @Tiendil
    Разработчик ПО.
    >За последние три месяца мне удалось освоить Python
    не удалось

    >Разобрался с гит
    не разобрались

    >линуксом на уровне пользователя
    не разобрались

    >Lua
    не разобрались

    Для начала приземлитесь. За 3 месяца вы ни в чём из этого разобраться на хорошем уровне не могли.

    >Где писать игры для портфолио
    Это делать не обязательно. Это, конечно, плюс, но не такой существенный чтобы прямо быть обязательным.

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

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

    А так, чтобы попась в геймдев достаточно просто навыков программирования и хорошей теоретической базы (графы, математика), демки не обязательны.
    Ответ написан
    3 комментария
  • Разработка игр (Start)?

    Tiendil
    @Tiendil
    Разработчик ПО.
    В принципе браузеры уже должны тянуть уровень графики, как на скриншоте. Так что для клиентской части можно оставить HTML+CSS+JS. Тем более графических движков для JS уже хватает.

    Для сервера не уверен, что подойдёт PHP, он может оказаться неудобным (не знаю как у него с поддержкой websockets, а они нужны, поскольку полностью stateless архитектурой тут можно не обойтись, опять таки, судя по скринам).

    Как альтернативу серверной чати рекомендую Python. Или Go, но для хобби и экспериментов больше подойдёт Python, так как более гибкий.

    P.S. Если не хочется учить новые ЯП, а писать игры, то для сервера берите Node.js. Но лично мне он не нравится по идеалогическим причинам :-)
    Ответ написан
    Комментировать
  • Как лучше реализовать обновление координат игроков в игре?

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

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

    Tiendil
    @Tiendil
    Разработчик ПО.
    Это вопрос тут раз в месяц появляется.

    Сервера WoT на Python с большего, видимо можно.
    Ответ написан
    Комментировать
  • Как выбрать актуальный путь в Game Dev'e?

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

    Нигде. Геймдев никогда не был прибыльным для большинства участников. Прежде чем лезть в него это надо осознать. Большинство прогорает, везунчики выходят в ноль. Те кто смог выйти в ноль 2-3 раза, начинают зарабатывать деньги с помощью полученного опыта.

    PC+Steam и браузер + HTML5 - очень разные платформы по монетизации и циклам разработки. Крайне разные. Если упрощённо, то браузерные HTML5 - это конвеер, берущий массовостью выпускаемых игр, Steam - это штучное производство оригинального продукта.

    >где реальнее получить первые деньги и заработать?
    С первого продукта нигде. Со второго скорее всего тоже. В этом плане HTML выглядит лучше, потому что путь в пару продуктов можно пройти за полгода-год, а в стиме за 2-3 года.

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

    Tiendil
    @Tiendil
    Разработчик ПО.
    Вот статистика моей браузерки: the-tale.org/statistics

    Доходы указаны в игровой валюте, но она легко переводится в реальную.

    Небольшой рассказ про доходы: https://dev.by/lenta/main/nemnogo-o-reklame-i-mone...
    Ответ написан
    Комментировать
  • Разгрузка сервера?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Используйте https://en.wikipedia.org/wiki/Content_delivery_network и не парьтесь чёрной магией.

    Например можно амазоновскую взять: docs.aws.amazon.com/AmazonCloudFront/latest/Develo...
    Ответ написан
  • Какие книги по разработке игр стоит прочитать?

    Tiendil
    @Tiendil
    Разработчик ПО.
    «Компьютерные игры — как это делается» — интервью с «отцами» о разных аспектах разработки игр. Книга старая, но всё ещё актуальна, содержит огромное количество отсылок к реальному опыту.

    https://www.ozon.ru/context/detail/id/111274/
    Ответ написан
  • Лучшие gamedev блоги?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Просмотрел свои rss и вижу что большинство блогов, на которые был подписан, мертвы. Я даже не знаю что рекомендовать, чтобы треша много не было.

    Вот список живых и полуживых бложиков (правда они больше не про новости):

    - вот тут круто: https://engineering.riotgames.com/
    - https://www.reddit.com/r/gameai/
    - https://www.deconstructoroffun.com/blog
    - www.fantasticmaps.com
    - blog.ihobo.com
    - www.lostgarden.com
    - projectperko.blogspot.com.by
    Ответ написан
    Комментировать