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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Говоря по существу, игры на Python лучше вообще не делать, тем более под Android. Если вы хотите именно делать игры, то сразу откажитесь от Python в пользу C# (движок Unity) или Java (потому что чисто под Android, так что тоже обоснованный выбор). Если же очень нравится Python, то посмотрите на движок Godot, это интересный зверь, и там встроенный язык очень похож на Python. Ну а Kivy и PyGame не вариант ни разу, разве что змейку сделать, а в чуть сложнее проекте намучаетесь.
    Ответ написан
    4 комментария
  • Прошу помощи с GameMaker Studio 2?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    но этого не происходит

    А что происходит? Нужно указывать такие подробности.
    Теперь придется перебирать варианты на основе догадок...
    • Объект не отображается. Это значит, что вы его не добавили в комнату. Нужно перетянуть объект в комнату, чтобы он там был виден. Естественно, у объекта должен быть хоть какой-то вид, спрайт или даже анимация, иначе его также не будет видно даже после добавления в комнату.
    • Объект не двигается. На самом деле двигается. У вас же событие Create, которое срабатывает единожды при создании. Вот оно и срабатывает, и объект смещается влево на 200 пикселей. Просто вы этого не замечаете, потому что для вас объект сразу как бы спавнится в других координатах в момент запуска игры.


    Попробуйте так:
    1. Add Event ---> Key Down ---> Left
    2. Добавьте код:
      move_contact_all(180,200);
    3. Запустите игру и нажмите стрелку влево. Объект должен перемещаться при нажатой клавише и останавливаться при отжатии.


    И еще вопрос, можно ли пользоваться данной справкой

    К слову, это нарушение п.3.7 правил Тостера. Лучше было бы отдельный вопрос создать, никто за это не осудит и не накажет. Но всё же отвечу:
    Справка та по Game Maker 8.0, что как бы совсем другой продукт. Пользоваться ей не стоит, она устарела. Пользуйтесь встроенной справкой в GameMaker Studio 2, там всё есть. А чего нет, всегда можно спросить на официальном форуме. Здесь, на Тостере, про этот движок почти не знают (кроме меня разве что), а там обязательно подскажут. Но нужно знать английский.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Огорчу. Ваша идея ничего не стоит (как и любая идея). Если вы по каким-то причинам думаете, что идея стоящая, то это главная ошибка. Естественно, я измеряю стоимость в деньгах, то есть в прибыли.

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

    Если же вы хотите заработать, то советую поскорее отказаться от этой затеи, потому что без опыта у вас нет шансов. Каждый день выходит около 200 мобильных игр. Но сколько из них стали известны и успешны? Причём, это только те игры, которые дошли до публикации в сторе. Но ещё больше игр, которые разрабатывались и были заброшены.

    Понадобится не только программист, но и другие специалисты. Минимальная стоимость хорошей игры будет более 100 тыс. долларов. В случае успеха это ничто, потому что прибыль всё окупит многократно, но шансы успеха крайне малы. А в случае провала, что более вероятно, вы просто потеряете эти деньги. Вы готовы к этому?

    Как вы хотите
    Вы платите программисту немного денег, он всё делает. Вы публикуете игру, а дальше толпы фанатов бросают в вас деньгами. Вы не спеша их собираете, изредка поощряя какими-нибудь словами.
    Как будет
    Вы нанимаете программиста. Но оказывается, что еще нужен и художник. Вы нанимаете и его. Но время разработки оказывается 8 месяцев. Всё это время вы практически платите зарплату из своего кармана. В конце получается нечто типа игры, что вы публикуете. 10 человек скачивают игру, и всё, больше никто о вашей игре не знает и не узнает никогда.
    Как надо
    Вы изучаете, что такое геймдев и с чем его едят, читаете статьи, проходите курсы, получаете второе высшее в этой сфере. Затем вы подробно описываете свою идею, находите инвестора, который готов дать вам 300 тыс. долларов, собираете команду из 10-15 человек. Проходите через все этапы разработки, держите KPI на высоте. Готовую игру тестируете на небольшой аудитории (например, на Филиппинах). Это значит, что вы закупаете трафик оттуда, а не просто выкладываете игру в стор. Смотрите, как пойдет, что подрихтовать и т.д. Если игра в целом успешна, т.е. стоимость игрока меньше, чем прибыль с игрока (LTV > CPI), то вливаете огромные деньги для закупки трафика по всему миру, что естественно окупается и вы становитесь миллионером. Если же игра плохо себя показала, то больше не тратитесь на эту игру, а закрываете её, и приступаете к разработке следующей, но с учётом ошибок, либо вообще уходите из геймдева.
    Ответ написан
    Комментировать
  • Игровые движки и 3Д моделирование?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    1) Unity - отличный вариант. Хорошее соотношение возможностей движка и простоты изучения. Несомненный лидер в геймдеве. Шедевр по современным меркам движков.
    2) Unreal Engine - отличный вариант. Но только если вы опытный программист С++, да ещё и точно знаете, что хотите от игры, и вам нужно больше свободы и специфических возможностей, чем предлагает Unity.
    3) CryEngine - довольно плохой вариант из-за низкой гибкости. Как говорится, что ни делай на CryEngine, всё Crysis выходит.

    Какую лучше выбрать программу для 3D моделирования для движков?

    А это нарушение п.3.7 правил данного сервиса, потому что отдельный вопрос. Но всё же отвечу. Программы для 3D моделирования примерно одинаковы. Совместимость с движками везде хорошая. Я бы выделил 3dsmax, также blender выделяется бесплатностью (но не какими-то супер фичами). Но всё же возможности примерно одинаковые, потому лучше использовать ту программу, к которой уже привыкли, или выбрать по другим (любым) соображениям. Основные - это Blender, Maya, 3ds Max.
    Ответ написан
    Комментировать
  • Как организовать учетную запись клиента в игре?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    У нас на обоих клиентах должно по идее одно и то же отображаться?

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

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

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

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

    В общем, ответ: 1) сделайте сессии 2) кикайте из старой сессии при создании новой.
    Ответ написан
    5 комментариев
  • Как понять устройство Unity?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Разные тематические видео-курсы:
    https://learn.unity.com/

    За деньги более индивидуальный подход:
    https://unity.com/ru/learn-premium

    Ну а так вообще можно просто API смотреть или читать официальное руководство, вот и всё. Ничего более чёткого не придумано пока что.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    1. Обычный сайт. "Мультиплеер" подразумевается по умолчанию. Это голый html/js плюс что-то на сервере (например, php и mysql).
    2. Обычный хостинг.

    Без программирования, к сожалению, не получится. Даже типа конструкторы предполагают наличие логического мышления. А раз оно есть, то освоить программирование вполне возможно и упирается лишь в наличие времени, желания и терпения.

    Кстати, "просто" создать хорошую игру не получится. Геймдев это очень сложная область. Прикиньте, сколько времени у вас это займёт, и смело умножайте на 10. А шанс, что игра-таки будет доведена до конца, не выше 10%.
    Ответ написан
    Комментировать
  • Комбинации языков программирования для игр?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Точно не С++. Если уже знаете его, то ещё можно на нём, а с нуля учить точно не стоит, сейчас полно нормальных альтернатив, начиная от системных и быстрых, кончая скриптовыми. На чем сам движок написан не особо важно, если вы не будете его допиливать или переписывать.

    А комбинация языков имеет смысл только в одном случае, когда требуется поддержка модов. И в этом случае выбор падает однозначно на Lua, т.к. это уже стандарт в этом направлении. Ну и ещё вариант комбинировать, чтобы не учить сложный язык, когда ядро движка на одном языке, а разработчику предлагается более простой язык, и здесь опять же выбор либо на Lua, либо на свой движковый скриптовой язык. В остальных случаях комбинировать языки не нужно.

    Кстати, в Unity (где игра на C#) вполне можно добавить Lua, с этим проблем нет. Так что, как вариант, связка - C# + Lua.
    Ответ написан
    Комментировать
  • Что проще разработать онлайн 3D или 2D игру?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    2D проще.
    Ответ написан
    Комментировать
  • Си или С++, что учить в начале?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Ценятся хорошие специалисты, прежде всего. Если вы профи, и у вас за спиной многолетний опыт, то вас достойно оценят.

    Насчёт сферы сложно что-то сказать, потому что её обычно выбирают не из-за денег. Например, больше всего ценятся продюсеры, аналитики и очень крутые программисты, но это в Москве, а в регионах внезапно ситуация слегка иная, там почему-то больше платят ПМам. В любом случае, полностью переучиваться ради зарплаты довольно странно, т.к. через пару-тройку лет картина снова поменяется. Одно могу сказать точно: всё выучить не получится, и придётся работать с другими людьми в команде.

    А в плане языка программирования лучше исходить из задачи. К примеру, если игра простая, то её можно вообще на Lua сделать (или на другом скриптовом, просто Lua это уже классика). А если какие-то сложные вычисления, что-то вроде ИИ, поиска пути или сложных механик, то лучше нативный язык, т.е. Swift/Kotlin (для мобайла) и C++/Rust/и прочие для десктопа.
    Ответ написан
  • Corona SDK для десктопа - легально?

    dollar
    @dollar Куратор тега Lua
    Делай добро и бросай его в воду.
    А не будет полностью 100% кроссплатформенных движков, потому что сами платформы отличаются. На десктопе есть мышь, так что в игре можно сделать "наведение мыши на объект (или кнопку)" с последующей всплывающей подсказкой, либо можно сделать "нажатие правой кнопкой мыши" для вызова контекстного меню. Про клавиатуру вообще молчу. Если вы хотите это всё, то либо путь в мобайл будет закрыт, либо придется делать как бы две версии игры. И это не автоматически движком подхватывается, а вы сами должны решить, как у вас в игре будет. Часть кнопок клавиатуры можно вынести на экран, но не всю клаву, а как можно меньше кнопок. Правую кнопку можно эмулировать долгим нажатием и т.д. Соответственно, если плясать от мобильного приложения, то в игре управление будет сильно ограничено, примитивно, да и сам геймплей может пострадать в итоге.

    Что касается Lua, то это вообще практически самый простой язык в мире. Учится минут за 15-30. Весь. Гораздо больше времени потребуется на освоение самого движка, его документации, возможностей, API и пр.

    P.S. Насчёт слова "легально" так и не понял, какое оно имеет отношение к вопросу.
    Ответ написан
    Комментировать
  • Что лучше для разработки игр под iOS: Unity или swift?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В общем случае лучше Unity.
    Потому что по современным меркам это шедевр. Сочетание простоты освоения (относительной, конечно) и большого числа возможностей.
    Плюсы
    • Низкий порог входа
    • Бесплатно
    • Комьюнити, учебники
    • Эффекты, графика
    • Куча интеграций (реклама) и готовых игровых систем (поиск пути и пр.)
    • Куча SDK ориентированы именно на Unity
    • Куча ассетов (почти бесплатно)
    • Кроссплатформенность

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

    P.S. Кстати, ставить вопрос как "Unity или Swift" - не совсем правильно, т.к. эти термины из разных категорий.
    Ответ написан
    4 комментария
  • Разработка игр.Как начать?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Сейчас можно вливаться в геймдев, изучая Unity. Во всяком случае, это идеальный инструмент для быстрого и дешевого создания прототипа.

    Если вы знаете С++, то скорее всего вам зайдет другой движок - Unreal, так что можете начать с него. Он не такой модный, потому что порог вхождения выше, как раз из-за С++, но вы-то его знаете. И он вполне годный. В чем-то даже лучше Unity - меньше готовых решений (которые ограничивают ваши хотелки) и больше свободы, настроек, возможностей. Красиво устроен внутри. Продуманный. Вообще он для серьезных бородатых людей, а Unity нынче может даже школьник освоить.

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

    Короче, нужно помнить два основных момента:
    1. Геймдев - это сложно. Реально сложно. Одному человеку, как правило, не под силу. Конечно, если это не пятнашки или тетрис, а также если ваша конечная цель - прибыль.
    2. Геймдев и любовь к играм - это не одно и то же. Совсем. Разница примерно такая же, как ездить на машине и чинить машину (и тем более, проектировать ее). Поэтому если вы просто игроман и хотите применить навыки программирования к играм, то делайте моды (Lua) и не касайтесь сферы геймдева.

    Готовы спуститься в ад? Тогда добро пожаловать в геймдев. :) И удачи! Она вам понадобится.

    P.S. Родственник явно далёк от геймдева. Но если очень хочется, вот вам исходники игр.
    Ответ написан
    Комментировать
  • Где вести блог о разработке своей игры?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Я бы ещё добавил про фейсбук, если вы, как и многие коммерчески нацеленные игроделы, ориентируетесь на запад и сша.

    Фидбек - дело тонкое. Его лучше получать от тестеров. Вы же не собираетесь прогибаться под любые капризы игроков? Проблема в том, что они, как правило, сами не знают, что хотят. И если реализовывать все их желания, то игра может скатиться в треш. А обычным путём вы и так получите фидбек после альфы.

    Не забывайте, что фанаты - это не самая большая часть вашей аудитории. Въедливые дотошные игроки, которые всё проанализируют и предоставят вам полный отчет о проделанной работе - это редкое исключение. Так что если у вас будет многомиллионная аудитория, тогда можно надеяться на такое, иначе не стоит. По умолчанию отзыв (или хотя бы лайк) оставляет примерно каждый 200ый, и среди них только некоторые будут вам полезны.

    И не забывайте, что блог (форум, соц. сеть) - это время. В идеале для работы с аудиторией нужен КМ, т.е. отдельный человек. А если ваш проект сложный и долгий, то людей и времени, как я понимаю, у вас не так много. Так что до первой альфы я бы на вашем месте вообще не занимался маркетингом. Кстати, долго ждать никто не любит, имейте это в виду. Если разработка больше года, то вы почти гарантированно начнете терять потом и кровью собранную аудиторию. Желательно за полгода выйти в ранний доступ, а дальше уже полноценно работать с аудиторией. И, опять-таки, нынче "ранний доступ" это полноценный продукт с небольшими огрехами, т.е. за короткие сроки желательно сделать всю игру.
    Ответ написан
    1 комментарий
  • Видел кто-нибудь быстрый алгоритм динамической генерации бесконечного пещерного лабиринта?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вроде тот же алгоритм, с той лишь разницей, что генерация ведется не до тех пор, когда пространство для генерации кончится, а до тех пор, когда будет достигнута заданная глубина (или расстояние) от текущей позиции.

    А дальше начинаются оптимизационные моменты, которые зависят от нюансов задачи. К примеру, в 2D вам, скорее всего, нужно заполнить экран и немного за экраном. А в 3D прямой коридор придется делать бесконечно, пока он наконец не повернет, ведь пользователь от первого лица должен увидеть конец коридора, а не пустоту, каким бы длинном он ни был.

    Далее не понятно, как вы данные храните. Если у вас нет поля заданного размера, то хоть какое-то поле есть? Или каждая клетка/комната/соединение у вас представлены отдельным объектом в куче? И лабиринт по сути не сетка, а граф? От этого алгоритм тоже зависит.
    Ответ написан
  • В чем/как/где записывать сжетные лини квеста?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Почитайте про UML-диаграммы, что это такое и с чем их едят.
    Вам должно понравиться, скорее всего.

    P.S. https://www.draw.io/
    Ответ написан
    Комментировать
  • Как организовать движение в 2D под определённым углом?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вот как раз синусы и косинусы и являются ответом на вопрос.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вы считаете новые координаты от начальных, а нужно считать новые координаты от предыдущих.

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

    То есть вам нужна простая физика (известная вам со школы) - скорость и ускорение. В момент прыжка есть только начальные координаты и вектор скорости. Всё. В качестве ускорения есть гравитация (тянет всегда вниз) плюс можно разрешить пользовательское ускорение стрелками клавиатуры, а можно и не разрешать, зависит от геймплея.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Это нормально.

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