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

    dollar
    @dollar
    Если в игре есть логика, то без программирования не получится.

    Когда вам говорят "без программирования", то лукавят, потому что визуальный конструктор для восприятия сложнее, а не проще, чем текстовая программа (грамотно написанная). По сути там всё то же - логические И/ИЛИ/НЕ, арифметика, функции и пр.

    Прототип 3D игры можно делать на любом 3D игровом движке, на бумаге, и даже в Blender.
    Но лучше всё же в Unity, это отличный инструмент для прототипирования.
    Ответ написан
  • Почему js не обработал столкновение?

    dollar
    @dollar
    Потому что код плохо написан.
    Из-за этого высока вероятность бага.

    Писать код нужно так, словно завтра его будет проверять человек в 10 раз глупее вас, и по итогам будет начислять вам зарплату. То есть если не поймет, как он устроен, то зарплата, соответственно, ноль. Это позволило бы не только вам самому легко найти или сразу увидеть ошибку, но и показать код другу-программисту.

    На самом деле даже без других людей это правило тоже важно. Потому что вы-сегодня и вы-завтра - это два разных человека. И чем дальше во времени, тем больше разница. Через месяц или, скажем, через полгода вы уже сами не сможете разобраться в своем коде. Что такое x? А что значит aex? Будут примерно такие вопросы. Что делает функция game, за что отвечает? Ведь по названию не понятно, а комментариев нет. Где главный цикл игры? Только после полного прочтения кода и долгих попыток разобраться, удастся понять логику структуры кода, но в таком случае проще заново написать с нуля.

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


    Начните с этой статьи в Википедии, и если захотите продолжить в том же направлении, то закончите какой-нибудь книгой по теме. Есть много таких книг, достаточно прочитать хотя бы одну. Например, "Совершенный код" (Макконнелл) или "Рефакторинг" (Фаулер).
    Ответ написан
  • Возможно ли полностью отделить движок?

    dollar
    @dollar
    Если ваша цель - просто попробовать, то лучше что-нибудь попроще сделать.

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

    dollar
    @dollar
    Начните с книги The Art of Game Design: A Book of Lenses.
    Основные термины для общения на геймдизайнерском языке можно быстро почерпнуть в этой статье.

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

    dollar
    @dollar
    Если вы освоили Godot, то дальше делаете apk, это не сложно.
    Это гораздо проще, чем изучить GDScript и тонкости разработки игр на Godot.
    Ответ написан
  • Какую программу для разработки игр 2d для Android и iOS на языке Lua выбрать?

    dollar
    @dollar
    Unity + MoonSharp

    Кроссплатформенные игры, очевидно, делать лучше на Unity. И важно понимать, зачем вам Lua. Надеюсь, не для галочки и не затем, что вы его просто знаете. В любом случае, Lua прикручивается практически к чему угодно, в том числе к Unity в виде лучшей (имхо) реализации с названием MoonSharp.
    Ответ написан
  • Возможно ли портировать десктопную игру на движке RenPy в веб? Может используя Django/Flask их альтернативы?

    dollar
    @dollar
    Если вы хотите протащить игру на все платформы, то лучше переписать её на Unity. Он поддерживает 24 платформы, включая веб (WebGL).

    Так как у вас визуальная новелла, то сложностей не должно возникнуть, там же не много механик, по сути один лишь сплошной контент. Кроме того, есть удобный Fungus как раз для этих целей, на его создание разработчиков вдохновили RenPy и Twine.

    Так что Unity + Fungus будет идеальным решением.
    Ответ написан
  • Почему медленно работает игра на c++?

    dollar
    @dollar
    Возможно, между получением времени и сбрасыванием таймера проходит дополнительное время, которое вы не учитываете?

    Попробуйте заменить это:
    float time = clock.getElapsedTime().asMicroseconds();
    clock.restart();

    На это:
    float time = clock.restart().asMicroseconds();
    Ответ написан
  • Будет ли правильно делать всю игру через UI?

    dollar
    @dollar
    Можно, но зачем?

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

    Хотя, если это что-то очень очень простое типа визуальной новеллы, то вполне вариант, почему бы и нет.
    Ответ написан
  • Какие возможности у движков GameMaker и Construct?

    dollar
    @dollar
    Слабые возможности.

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

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

    dollar
    @dollar
    Потому что игра Rust очень требовательна к ресурсам.
    А в минимальных требованиях в Steam разработчики пишут, что сами хотят написать, так что могут спокойно завысить или занизить.

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

    Наиболее близкий ответ, имхо, - слабая оптимизация игры. Но это пальцем в небо.
    Ответ написан
  • Game-dev путь. Что мне делать?

    dollar
    @dollar
    Не достаточно быть программистом, чтобы сделать хорошую игру.
    Нынче (в 2020 году) в одиночку игры практически никто не делает.

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

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

    С чего начать, спрашиваешь? Начни, например, с того, чтобы понять, кто такой геймдизайнер. Через месяц, когда поймешь, что это такой человек в проекте, который просто бумажки перебирает (утрирую), у тебя будет вся жизнь впереди, чтобы им стать. Это лишь один(!) из путей войти в game-dev с хорошим бэкграундом. Ну а так можно и через тестеры попробовать, и через ПМы... Ну и через программиста тоже можно, только немного странно, потому что если соскочить на другую роль, то на программирование времени не останется, и 90% опыта улетит в трубу, а если остаться программистом, то тема игр тебя будет касаться лишь косвенно. Такие дела, брат.

    Любой может отыграть 10000 часов во всевозможные игры, но далеко не каждый может сделать это с вниманием и любовью к своему делу, имея четкую цель.
    Ответ написан
  • Какой принцип работы Fastconnect'а для samp?

    dollar
    @dollar
    Можно, если на игровом сервере присутствует несовершенство, которое можно эксплуатировать для быстрого подключения к серверу. Сложность в том, чтобы найти эту уязвимость и понять её. И ещё сложность в том, чтобы знать C++. Если две эти сложности преодолены, то не вижу проблемы в том, чтобы написать свой fastconnect на языке C++.
    Ответ написан
  • Математика в игровой разработке?

    dollar
    @dollar
    Зависит от того, кем ты хочешь стать в рамках разработки игр.

    Например, если геймдизайнером, то в подавляющем большинстве случаев достаточно школьной математики и знания Excel. Ещё понимание теории вероятностей пригодится, но без фанатизма.

    Если продюсером или маркетологом, то примерно те же знания, а также экономика, плюс аккуратность и внимательность. Потому что если просчитаться в сделке на миллион долларов, то это может сильно усложнить жизнь.

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

    dollar
    @dollar
    Ответ в форме мини-теста. :)
    Тест из одного вопроса
    Какова цель обучения?
    • Хочу разрабатывать игровые движки просто так, ради интереса.
    • Хочу разрабатывать игровые движки ради зарабатывания денег.
    • Хочу зарабатывать деньги, а игровые движки это прибыльная сфера.
    • Хочу зарабатывать деньги.
    • Хочу иметь крутую работу, чтобы меня ценили и уважали, а гейдев это круто.
    • Хочу сделать нормальный движок, потому что возможностей UE4 явно мало.
    • Хочу сделать наконец-то нормальный движок, потому в UE4 всё не правильно.
    • Хочу как-то сделать движок лучше, чем UE4 (пока не знаю, в чём именно, но лучше).
    • Хочу исправить пару недостатков UE4 ценой кроссплатформенности, она мне не нужна.
    • Хочу просто делать игры на своём движке, а не на чьём-то ещё.
    • Хочу всё знать про игры про игры со стороны разработчика, а не игрока.
    • Другое
    Ответ написан
  • Как вставлять изображение на canvas НЕ только при загрузке?

    dollar
    @dollar
    С помощью data:URL (RFC 2397).
    Пример
    <img src="data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0j
    vb29t/f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAA
    Re8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0Cc
    guWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7" width="16" 
    height="14">

    К слову, загрузка всё равно будет. Просто вы переносите картинку из отдельного файла в саму страницу, увеличивая время её загрузки. Иногда это оправданно. Но если картинки большие, то вы просто лишаете себя возможности показать какой-нибудь preloader, чтобы пользователь не скучал в ожидании.

    Соответственно, ваш код нужно поменять примерно так:
    Код
    const image = new Image();
    image.src = strDataURI; // картинка уже в строке
    texture = image;
    Ответ написан
  • Mobile Game art/design - как создавать такой дизайн?

    dollar
    @dollar
    Используется художник, который специализируется на таком стиле или умеет его копировать (подражать другому художнику).
    Ответ написан
  • Что будет в геймдеве с Flash после его закрытия?

    dollar
    @dollar
    Использовать Flash для разработки игр как-то странно в 2020 году. Это устаревшая технология, и закрытие лишний раз это подтверждает. Не будем вдаваться в подробности, что к этому привело, будем довольствоваться итоговыми фактами.

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

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