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

    @Ezekiel4
    Охотник на пиратов и сборщик монолитов
    Вы можете вручную модифицировать текстуру. Зная X/Y пикселя, вы можете вызвать SetPixel (https://docs.unity3d.com/ScriptReference/Texture2D...) и указать ему нужный цвет. Делая это цикле в корутине, вы можете сделать эффект плавным.
    Ответ написан
    Комментировать
  • Как реализовать автоматическую самонаводящуюся стрельбу в unity 3d?

    @Ezekiel4
    Охотник на пиратов и сборщик монолитов
    Вам нужна точка выстрела и позиция цели. Далее вам нужно получить направление к цели, а значит из координат игрока вычтите координаты прицела. Чтобы скорость была удобной и контролируемой, нормализуйте получившийся вектор, после чего умножьте на скорость. Если вы хотите стрелять по параболе вверх, то придётся высчитать {y} угол выстрела. Дальше вам осталось добавить снаряду Rigidbody и либо тащить его в FixedUpdate с помощью velocity, либо дать пинок через AddForce.

    Если на снаряде будет коллайдер, то вы сможете регистрировать попадания коллайдерами.
    Ответ написан
    Комментировать
  • Куда щас вообще стоит влезать: Unity3D или Unreal Engine?

    @Ezekiel4
    Охотник на пиратов и сборщик монолитов
    Если вы начинаете - берите что угодно. Ни ценообразование, ни детали оптимизации вас не касаются, пока вы только начинаете. Навыки и понимание процессов, полученные в одной программе, по большей части, актуальны и для другой. Unity проще для старта, но это не значит что он проще, чем UE в принципе.
    Ответ написан
    Комментировать
  • Из-за чего ломается скрипт?

    @Ezekiel4
    Охотник на пиратов и сборщик монолитов
    Ошибка в использовании пустой ссылки:
    // вместо
    public static List<Vector2> colliderPositions;
    
    // напишите
    public static List<Vector2> colliderPositions = new List<Vector2>();


    Это не связано с вашим вопросом, но есть ещё одна ошибка. Перед тем как проверять "с чем луч столкнулся", стоит проверить, а столкнулся ли он вообще хоть с чем-то.
    if (hitInfo.collider == null) {
    	// то же как в блоке else
    } else if (hitInfo.collider.CompareTag("Mirror")) {
    // ... ну и так далее
    Ответ написан
    Комментировать
  • Почему Instantiate иногда создаёт объект не в том месте?

    @Ezekiel4
    Охотник на пиратов и сборщик монолитов
    Уверен, что проблема в том, что коллайдер пистолета выталкивает коллайдер пули. Это можно проверить в редакторе создав пулю в месте её спавна, а затем, выбрав одновременно пистолет и пулю, посмотреть, не сталкиваются ли их коллайдеры. Проблему можно решить двумя путями:
    1) Переместить точку выстрела туда, где точно нет коллайдеров
    2) Отменить коллизию. Для этого нужно создать два Layer - для пистолета и пули, затем в Edit/Project Settings/Physics в самом низу есть схема коллизий. Там нужно снять одну галочку, между слоем пули и слоем пистолета.

    Если это не помогло, пришлите скрипт оружия и скрипт (если такой есть) пули в комментарий к этому сообщению, посмотрим, мб там что-то влияет.
    Ответ написан
    4 комментария
  • Как сделать переход между сценами в unity 3d?

    @Ezekiel4
    Охотник на пиратов и сборщик монолитов
    Самый простой способ, пометить игрока как DontDestroyOnLoad. Такие объекты переносятся.
    Способ чуть сложнее в том, чтобы вы определили данные игрока для переноса в некую структуру, затем сериализовали перед и десериализовали после перехода.
    Ответ написан
    Комментировать
  • Как удалить Audio Listener для остальных игроков кроме себя?

    @Ezekiel4
    Охотник на пиратов и сборщик монолитов
    Ну тут есть два варианта - либо вы удаляете компоненту AudioListener с камеры всех, кто удовлетворяет условию:
    using Photon.Pun;
    using UnityEngine;
    
    public class FixAudioListener : MonoBehaviour {
    
    	// заполнить ссылки в инспекторе до старта игры
    	public AudioListener listener;
    	public PhotonView photonView;
    
    	private void Start() {
    		if (!photonView.IsMine)
    			Destroy(listener); // удалить компоненту с камеры
    	}
    }


    Или вы руками его удаляете до старта игры, а на старте помещаете на камеру игрока:
    using Photon.Pun;
    using UnityEngine;
    
    public class FixAudioListener : MonoBehaviour {
    
    	// заполнить ссылку в инспекторе до старта игры
    	public PhotonView photonView;
    
    	private void Start() {
    		if (photonView.IsMine)
    			AddComponent<AudioListener>(); // добавить компоненту на камеру
    	}
    }


    С точки зрения логики, логичнее второй вариант, ибо в первом юнити сначала его создаст, а потом поудаляет почти у всех. А во втором он создаст компоненту лишь раз.
    Ответ написан
  • Можно ли найти работу gml(GameMaker)-разработчику игр?

    @Ezekiel4
    Охотник на пиратов и сборщик монолитов
    Найти работу возможно, но очень сложно. Нужно быть отличным специалистом и закидывать своими резюме все студии, использующие game maker, какие только найдёте.
    Вы можете устроиться на работу официально с 14 лет при выполнении кучи условий, которые отобьют желание взять вас на работу любого потенциального работодателя, не связанного с вами одной фамилией.

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

    Есть шанс залететь с этой темой на фриланс/аутсорс, но тут нужно отдельно хорошо разобраться, чтобы не случилась та самая "пустая трата времени и сил".

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

    И непрошенный совет напоследок.
    Если же вы всерьёз намерены войти в тему разработки игр, подумайте о переходе на Unity или Unreal Engine. Там тоже не всё гладко, но многие вопросы решаются просто за счёт их дикой популярности.
    Не спешите, вы ещё успете заработать очень много денег. Сейчас у вас есть время, когда не нужно платить за квартиру, оплачивать своего стоматолога и платить по кредитам. Вы можете просто делать игры "в стол" в свободное время.
    Пошарьтесь по вакансиям вашего направления разработки, посмотрите, что от соискателей требуют. Соберите самые часто встречаемые и попробуйте придумать игры (не обязательно интересные/сложные), которые будут это реализовывать. В процессе отметьте места, которые вам остались не понятны и в следующем проекте сосредоточьтесь именно на них.
    За оставшиеся до совершеннолетия пару лет у вас будет достаточно времени, чтобы в 18 сразу залететь как Middle+ разработчик и за несколько месяцев работы получить столько денег, сколько вы бы заработали на любой легальной, доступной официально вам работе в течение всего этого времени.
    И, если вы ещё этого не сделали, выучите английский, хотя бы на А1.
    Ответ написан
    Комментировать
  • Какая физика нужна разработчику игр?

    @Ezekiel4
    Охотник на пиратов и сборщик монолитов
    Вопрос не в том что учить, а что вы хотите сделать. Это вопрос эффективности траты времени.

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

    Если вы хотите делать именно игры, и не хотите мучаться с формулами, то существует множество движков, позволяющих без боли и нервов использовать физическую систему всего в пару кликов.

    Возьмём, к примеру, Unity. Там на каждый объект игры можно добавлять компоненты, каждая из которых имеет свою функцию. Добавили коллайдер, и у вас готовая область для столкновений вокруг объекта. Добавили твёрдое тело, и у ваш объект теперь подчиняется физике. Добавили постоянную силу и теперь объект будет сам двигаться и/или вращаться.

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

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

    @Ezekiel4
    Охотник на пиратов и сборщик монолитов
    Если ваша игра ещё не вышла в прод - открыть на форуме с играми свою ветку с тестовой версией игры и предложить попробовать поиграть и оставить своё мнение, также можете выложить своё приложение на itch.io и там тоже попросить в комменты написать что думают люди.

    Мой же ответ на ваш вопрос слишком сильно зависит от выбранной вами ЦА. Ведь есть стратегии, куда можно зайти, поиграть 5-20 минут, а есть такие, где около часа сессия длится. Есть стратегии, где всё просто, а есть такие, в какие играют только хардкорные олдфаги жанра.

    Если вы ориентируетесь на большинство, то это казуал/мидкор аудитория, которые готовы уделять на игровую сессию примерно до 30 минут. В мобильной стратегии такого игрока может отпугнуть: перегруженный/непонятный UI, плохая цветовая гамма, отсутствие/плохой/недостаточный отклик на важные действия игрока, однообразность геймплея, навязчивый донат, ломающий баланс донат, пинг (мультиплеер), плохой матчмейкинг (мультиплеер) читеры (мультиплеер), а также баги, влияющие на состояние потока или сохранение прогресса игрока. Это не весь список, но то, что сразу приходит в голову. Если нужно более детальное пояснение по какому-либо пункту, напишите в комменты.

    Также полезно будет посмотреть на ютубе разборы разных стратегий.
    Ответ написан
    Комментировать
  • Стоит ли учить C++, если нет возможности использовать Unreal Engine?

    @Ezekiel4
    Охотник на пиратов и сборщик монолитов
    Освоив один язык, вы без проблем освоите и другой. Тем более, если речь идёт о языках группы C и производных. Поэтому не переживайте, что вы потратите время зря, изучая С#. С него легко перейти на большинство современных востребованных языков. А если учесть, что ваш ПК не тянет Unreal Engine, то почему бы не начать с Unity? Кто бы что не говорил, а эта программа ничуть не хуже ни в функциональном плане, ни в плане перспектив будущего трудоустройства. Если вдруг вам будет по началу трудно вникнуть в конструкции языка, то в Unity есть система визуальных скриптов (Bolt).
    Ответ написан
    Комментировать
  • Как сделать возможность игры в Minecraft прямо из браузера?

    @Ezekiel4
    Охотник на пиратов и сборщик монолитов
    Самый простой и дешёвый (из всех возможных) вариант это сделать - написать свой майнкрафт. В качестве примера могу привести minecraft classic, который сделали на 10-летие майнкрафта.
    Ответ написан
    Комментировать