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

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

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Тут для начала определитесь покадровую или скелетную .
    Покадровая заставит вас именно рисовать каждый кадр и в зависимости от числа кадров и будет ее плавность. Рисуйте в чем удобнее.
    Скелетная(чаще всего еще и мешовая в 2д) заставит сначала нацепить на кости нужные текстуры\спрайты а затем анимировать уже именно кости. Как правило присутсвует интерполяция. Т.е. вместо анимирования 30 кадров прямого движения можно анимировать ключ 1 и 30 кадра а все что между будет интерполировано автоматом. Из софта нынче один из популярных это Spine2D animation
    Ответ написан
  • Как в LibGDX создавать геометрические фигуры с полостью внутри?

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

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Найти или собрать команду легко. Найти деньги на разработку тоже можно, начиная от инвесторов и заканчивая кредитами. Принесет ли игра прибыль и зайдет ли игрокам вообще уже рулетка.
    Ради эксперемента посмотрите сколько игр выходит ежедневно в стиме. Выпишите названия рандомных игр штук 10-20, проделайте тоже самое через месяц-2 и сравните сколько у этих игр проданных копий.
    Какой жанр и стилистика игр будет популярен никто не знает. К примеру тотже pubg, крайне кривая игра но режиму королевской битвы уже лет 15 и тем немение игра популярна. Кроме того многое зависит от того сетевая игра или одиночная и ее ценника. Одиночные игры сейчас зайдут только если в игре просто невероятный сюжет но при этом в игру были вложены минимальные суммы и сроки разработки. С мультиплеером все интереснее, если есть много много денег на рекламу и продвижение то скорее всего игра хотябы окупится, если же она фритуплейная но с донатом то может случится эффект сарафанного радио и через какоето время появятся те кто будет заносить чемоданы с зеленью.
    Хотите поробовать не тратя много времени, можете купить готовую игру со всеми правами и пробовать ее продавать, к примеру есть такая площадка для мобильных игр, скорее всего есть подобные и с ПК играми. Можете попробовать составить ТЗ и закинуть поиск по фрилансу, там же вам и скажут цену сами фрилансеры\подрядчики\аутсорсеры.
    В целом рынок игр сейчас крайне перенасыщен и выстреливает хорошо если 1 из десятков тысяч игр, другой вопрос если у вас именитая игра от именитой студий и именитый издатель который вложил астрономические бабки в игру а точнее в ее продвижение и рекламу.
    Ответ написан
    Комментировать
  • Phaser JS | Как указать, что нужно camera.follow.canvas?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Ну так просто не вызывай методы обработки логики у объектов если они не попадают в экран.
    Ответ написан
    4 комментария
  • Как улучшить визуальное отображение модели?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Может для начала покажите как выглядит сейчас и что хотите в итоге?
    Чтобы выглядело прилично нужно:
    1) Освещение
    2) Самозатенение
    3) Bump карта для мелких деталей
    4) Specular и glossiness для отражений и его интенсивности.
    5) MipMap для устранения "резкости" на отдалении.
    Ответ написан
    Комментировать
  • Как создать лаунчер для игры Minecraft?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    1) называется аргументы и работает как и везде что то типа "java.exe -jar --username Pupkin --uuid 12j21hj3hjbn1j31j --some"
    тут еще замечу что в майне с модами не все так просто и нужно указывать правильный порядок библиотек. В свое время очень много нервов и времени это все съело.
    2) Как хочешь так и храни, путь до библиотек, нативок, ассетов указывается в аргументах запуска игры.
    А вообще гиблое дело т.к. подводных камней крайне много если не точишь лаунчер под конкретную сборку или не реализуешь все механизмы анализа и запуска как в оригинальном лаунчере.
    Ответ написан
    6 комментариев
  • Как сделать паузу в игре на языке javascript?

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

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    1) Абсолютно в любой защите найдется дырочка, она будет очень страшной или так себе.
    2) Чем сильнее и серьезнее защита тем меньше комфорта игроку.
    3) Некоторые (статистика молчит но есть множество доводов) разработчиков специально некоторое время не латают дыры и не банят читеров дабы срубить бабла волной банов на покупках новых копий игры. *
    4) Многие разработчики полагаются на сторонние античиты но это зачастую равносильно тому что пытаются перегородить дорогу светофором.
    Ответ написан
    Комментировать
  • Как создаются большие игры на c++ или c#?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Как, да просто.
    1) Взять талмут особенностей карт nvidia и такой же amd.
    2) Взять талмут особенностей винды\линукса\макось.
    3) Изучить матан,геометрию и все связанное.
    4) Изучить и овладеть с\с++ на очень хорошем уровне, лучше даже быть одним из лучших.
    5) Дальше оп и двиг готовый какраз на уровне ue4, ce, unity или фростбайта.

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

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

    Если так хочется с\с++ то попробуйте для начала сделать простенький 2д двиг и игру на нем, думаю желание отпадет где то в самом начале =)
    Ответ написан
    2 комментария
  • Какие архитектурные подходы выбрать для разработки клиент-серверной игры?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    1) Разделите мир на "чанки", т.е. просто на квадраты конкретного размера. В случае 2д это будет очень удобно.
    2) Сервер обрабатывает только те чанки в которых находятся игроки, в случае отсутсвия игрока в нем то он сейвится на винт\бд. На клиенте чанки так же выгружается из памяти если он ушел в новый чанк.
    3) Понадобится система пресказания какой чанк надо подгрузить. Скажем зная направления игрока предполагаем что он попадет в такойто то чанк а значит грузим его заранее.
    4) Игроку при приближении к чанку отправляй его полное состояние а уже после только то что в нем изменяется.
    5) Часть вычислений для линейных(предсказуемых) объектов можно синхронизировать только периодически. К примеру летящий астероид логически обсчитывается и на клиенте и на сервере но только в случае событий(столкновение к примеру) идет синхронизация между клиент-сервером.

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

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Майнкрафт не 8 битный, у него просто пиксельная графика.
    Преимущество в том что рисовать ее крайне просто(касательно конкретно майнрафта потому что текстуры всего 16х16 пикселей). Звуки тоже записаны подручными средставми.
    Касательно движка пиши сам или возьми любой готовый погуглив "voxel engine c#".
    Ответ написан
    Комментировать
  • Ваш процесс рисования, чтобы сохранить пропорции объектов на экране?

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

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    1) Немного разобью ваши мечты. Миллиона установок приложения достичь очень, очень, очень сложно и нереально даже для бывалых разрабов у которых уже много игр и приложений.
    2) Срок пол года для простой игры если она хоть чуть сложнее чем очередной клон flappy bird нереален особенно учитывая, как я понимаю, с полным отсутствием багажа знаний.
    3) Движок абсолютно до лампочки какой изучать, какой удобнее для конкретной игры или чисто вам, на том и делать. Либо берете готовый удобный движек в котором уже все есть и попадаете в анальное рабство на бабки с лицензией либо берете любимый ЯП и пишите свой колхоз с нуля но бесплатно.
    4) На чем делать сервер тоже абсолютно до лампочки. Либо берете удобство и платите за него другим разрабам либо долго и упорно пишите свой велосипед.
    5) Если целитесь на игру типа clash royale то учтите что расходов будет еще в огромное количество раз больше. Не умеете рисовать? Платите художникам. Не знаете где взять звуки и музыку? Платите звукорям и музыкантам или покупайте коммерческие лицензии. Не умете очень хорошо программировать? Будьте добры платите программистам. Жаба душит платить за очень удобный коммерческий движок? Платите за него, купите или платите программистам которые напишут двиг. Хотите мультиплеер? Платите за аренду\покупку библиотек\реализаций серверной стороны. Нет кучи серверов где все это разместить? Платите за аренду серверов. Игру не скачивают? Раскошеливайтесь на огромные суммы ради хорошей рекламы. Не можете сделать нормальные рекламные баннеры и видеоролики? Платите тем кто это сделает.
    В общем либо у вас большой кошелек и вы просто и легко берете готовый двиг с кучей редакторов и сетевой частью, платите\покупаете контент для игры, и за небольшое время в пол года по туториалам собираете аналог clash royale. Либо вы берете набор кирпичей\цемента\гвоздей\досок(к примеру libgdx) бесплатно, пишите необходимую часть движка для себя, пишите собственно игровую логику к этому движку, рисуете все модели\текстуры сами с нуля чтобы не нарушить ничьей лицензии или берете с полностью бесплатными лицензиями, дальше арендуете пару душманских серверов за копейки куда размещаете игровые сервера(чат\мм\сервера игры), платите гуглу за аккаунт разработчика, проходите 9 кругов ада чтобы вашу игру разместили в гуглплее. Дальше остается только собственноручно атаковать геймерские форумы\чаты\группы с целью рекламы вашей игры. Для того чтобы сделать портировать игру на ios придется еще прикупить аккаунт разработчика у эпла, макбук\аймак и желательно айфон\айпад. Дальше останется переписать пол игры или всю игру на другом ЯП с учетом специфичных моментов для платформы и пройти 9 кругов ада для того чтобы разместить игру в айтюнсе.
    Все выше описанное подходит, повторюсь, для игры типа clash royale. Для игры типа flappy bird почти ничего ненадо кроме аккаунтов разработчика, рекламы и эпловской техники если планируется порт на ios. Так что ценник в "$1000 до $20000 в месяц" даже очень низок и затраты как во время разработки так и после могут быть во много раз больше, из за чего собственно стараются сделать донат на каждый чих и пук в играх.
    Ответ написан
    6 комментариев
  • Необходимость использования игрового движка для создания игры под Android?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    1) Все зависит от сложности игры и необходимых фич. Если игра что то типа пасьянса\пятнашек\2048 и т.д. то естественно намного проще сделать на голом андроиде без использования движков. Если же захочется задействовать GL для игры по типу бродилочки в 2д то можно и на голом апи андроида сделать но сколько времени уйдет на реализацию простых вещей. И т.д.
    2) Можно как обычно сделать другое активити и пользоваться, никто не запрещает. Вопрос скорее в том насколько инородно будет выглядеть такие меню, намного проще использовать scene2d и скины к нему.
    Ответ написан
    2 комментария
  • Как создать преследующего врага, который идет за игроком только в своей зоне видимости в Unity (2D)?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Предполагаю что у вас банальное подтягивание по координатам за игроком. В таком случае это школьная геометрия, нужно просто игнорировать игрока когда он за пределами нужной зоны.
    Ответ написан
    2 комментария
  • Как создать лаунчер для CS: GO?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Все это делает стим. Заканчивайте пиратить игра и так копейки стоит.
    А по факту чтобы такое сделать нужно примерно следующее:
    1) Тут можно конечно извратиться но в абсолютно любом случае. Вам нужно будет писать плагин для сервера на с++ в котором каким либо образом осуществлять коннект с клиентом к примеру по сокетам. С клиентской стороны писать опять же писать плагин все также на с++ для игры и при этом отключать верефикацию сертификата или получить его у valve чтобы плагин заработал на клиенте. Промежуточное звено в виде веб сервера с простым скриптом и БД для хранения и верефикации токенов Дальше обвязывать все это друг с другом что то типа:
    -запуск игры из лаунчера(получение токена от промежуточного сервера) и передача его в игру
    -игра запустилась и приняла плагином движка этот токен, коннект к серверу и передача на него этого токена.
    -клиент подключился к серверу и принял токен. Сервер делает верефикацию полученного токена от клиента на промежуточном сервере и по результату разрешает вход в игру или дисконектит с сервера.
    2) Свой античит даже близко недостающий функционалом до VAC у вас не получится, на это во первых тратят огромные деньги, во вторых нет исходников игры чтобы понимать чем пользуется чит. В третьих сама ОС
    антивирус забракует такую подозрительную активность от левого процесса в система посчитав ваш лаунчер вирусом.
    3) Тут делать как угодно можно, начиная от скриншотов самим лаунчером, заканчивая тем что их может делать плагин движка.
    4) Зависит от функционала.
    Ответ написан
    8 комментариев
  • Какой аналог BGE (Blender Game Engine) стоит выбрать?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    1) Огр3д MIT.
    2) Godot MIT.
    3) Panda3d BSD.
    4) Urho3d MIT.
    5) jMonkeyEngine BSD.
    5) Ну и всякие Unity \ UE4 с отчислениями от продаж.
    Ответ написан
  • Как создавать подобные анимации главных героев в катсценах?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Если ничего нет то только покадрово. Другой вариант существуют огромные бесплатные библиотеки mocap анимаций(гуглить по слову BVH), есть уже прилепленные к скелету, есть сырые мокапы которые надо будет ручками лепить на скелет. Бесплатные библиотеки действительно огромные.
    Можно сделать мокап своими руками, для этого покупают кинект(желательно 2й версии) и ipiSoft Motion Capture. Получается очень годно и просто но всеже это не профессиональное оборудование.
    Ответ написан
    Комментировать
  • Какой есть легковесный движок для игр?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    love2d, код на lua, очень прост, бесплатен и есть возможность пускать в браузере.
    Ответ написан
    Комментировать