24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
На Unity сделано много замечательных игр - Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.
FAQ
- Какие у Unity сильные стороны? - Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.
- Какие у Unity слабые стороны? - Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
- На каких языках я могу писать скрипты для Unity? - На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.
- Для каких жанров подходит Unity? - Для абсолютно любых! Жанр ограничивается лишь фантазией разработчика (и его умением писать скрипты, разумеется). Можно создавать и РПГ, и стратегии, и слэшеры. Можно делать VR-проекты или Minecraft-подобные песочницы.
- На каких платформах работают созданные с помощью Unity игры? - Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.
- Часто вижу скриншоты с красивой природой на Unity. Как такое создать? - Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.
- Что такое стартер киты? - Starter Kit - это набор скриптов и префабов, а зачастую и графических элементов для игры. Они призваны облегчить разработку игры определённого жанра и как правило разбиты по жанрам (Action-RPG Starter Kit, RTS Starter Kit, 3D Shooter Starter Kit, Space Game Starter Kit, VR Starter Kit и так далее). Также бывают стартер киты различных игровых элементов, не связанных с геймплеем (Nature Starter Kit с дополнительными природными объектами, Medieval Starter Kit со средневековыми объектами и так далее). По сути, стартер киты выполняют в разработке игры ту же роль, что и фреймворки в программировании. Однако стоит отметить, что использование геймплейного стартер кита принуждает разработчика изучать большое количество чужого кода и чужой структуры для внесения своих изменений и полноценного использования. В связи с этим большинство разработчиков предпочитает писать почти всё с нуля, получая полное понимание работы своей игры. Новичкам крайне не рекомендуется начинать знакомство с Unity со стартер китов.
- Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки? - Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).
- Бесплатен ли Unity? - Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно! Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.
- Движок Если ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендется купить/скачать книгу Unity in action (Unity в действии). В ней подробно описываются множество возможностей движка. http://www.ozon.ru/context/detail/id/34792570/ Также посмотри на видеотуториалы с официального сайта: https://unity3d.com/learn/tutorials Если же ты не любишь видеотуториалы (или не понимаешь разговорный английский) и предпочитаешь текст, то посмотри здесь: http://catlikecoding.com/unity/tutorials/ Тут крайне подробно описан процесс разработки и приведены примеры кода. Эти туториалы универсальны и описывают множество различных частей игры, от работы с текстурами до генерации карты мира. А вот в этом туториале описыватся разработка двухмерной игры с видом сверху: https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started Это будет полезно, даже если ты планируешь разрабатывать трёхмерную игру. Ни в коем случае нельзя обойти вниманием этот сборник туториалов: https://noobtuts.com/unity В нём подробно описывается процесс пошагового создания разных игр - двухмерных и трёхмерных.
Разумеется, все эти туториалы охватывают лишь часть возможностей Unity. Самый надёжный способ выучить Unity - это начать делать игру и по мере разработки гуглить непонятные моменты.
>>470127 Нужно оптимизировать игру как в игре "horizon zero dawn", где отрисовывается только то что попадает в поле зрения камеры, вк в группе unity видел гифку как этот процесс происходит, там еще "умники" в коментах пиздели что это костыли и так не должно быть а на самом деле ни одна ААА игра без этого не обходится.
>>470387 Когда я использовал эту штуку в юнити, у меня почему-то не было разницы в производительности, может там надо побольше объектов, чтобы эффект был, ну типо настраивать сетку получше.
>>470403 > у меня почему-то не было разницы в производительности Главное правило – чем меньше модель, тем больше полигонов она должна иметь. Должно быть как минимум 120к вершин на одно яблоко, чтобы нищуки на себе ощутили всю мощь современной реалтайм графики.
>>470387 Из-за этого был лёгкий скандалец, Guerrilla зачем-то показали frustum culling для нормиес как ниебаццо технологию, за что её дружно уринировал весь геймдев
Анчоусы, нужен ваш совет. Как эти блядские иконки сортировать? Не в смысле "как именно", про то, что их можно скрывать и двигать по иерархии я знаю. Не могу придумать сам алгоритм, в каких случаях как делать. Юзкейсы пикрелейтед.
https://m.youtube.com/watch?t=1221s&v=SIUTqG4wtxM Ромка Агапов выкатил новый дневник, спустя ГОД молчания. Я уже думал загнулся его долго строй. Наркоман уже ШЕСТЬ лет пилит свой халф лайф с блэкджеком. Начинал он его ещё наверное на 2 юнити. Охуеть. Вот вам и пример юнитеки как не стоит затягивать проект, и как нужно уметь ограничивать себя.
>>470532 >Котаны. А есть годные степ-бай-степ туторы по созданию 2д платформера с 3д бэкграундом? Как бы если ты умеешь в 3д, то тебе и туториалы ни нужны.
Ставлю Юнити на новый пека. Вылезает плашка с выбором ПРо или Персонал. Тыкаю персонал, дальше выбираю что я не от организации а вообще домашний и всё на этом.
Из всего семейства калечных байтоблядских языков (С,С++) - паскаль самый вменяемый и сопровождаемый. Просто ему в свое время не повезло с хайпом.
Это говноплюсы тяжело поддерживать. А вообще, надеюсь, что РАСТ добъет это все байтоблядство - вон уже и соснули на простой плейн-пк архитектуре стали.
>>470524 >Лооол блядь, у него что движок на паскале написаный? Пиздец.
Щас охуеешь.
Там движок, написанный на придуманном этим же обмудком паскалеобразном языке - посмотри другие видосы на канале, где он конпелятор этого своего велосипеда пишет пишет.
>>470652 > и по сравнению с другими это кусок дермища Потому что это процедурный язык, ёлы-палы. Как и голый C. А у чувака на видео вообще не он, просто похожий синтаксис. То, что ты в школе или универе сортировал массивы на паскале, знатоком этого языка тебя явно не сделало, раз ты его так легко путаешь с другим только по оператору присваивания.
>>470654 В дополнение этому анону скажу, что современные версии паскалей обладают всеми модными, молодёжными фишечками типа прототипирования, делегирования. Фактически в 2х18 важен не язык, а "фреймворк", предметно-ориентированная среда разработки. Все велосипеды написаны и письмо на голом языке в блокноте - путь в ряды отстающих. мимоНЕпрограммист
>>470707 > что современные версии паскалей обладают всеми модными, молодёжными фишечками типа прототипирования, делегирования > Фактически в 2х18 важен не язык, а "фреймворк", предметно-ориентированная среда разработки Ну если уж совсем покопаться, то делфи - это как раз фреймворк. А язык там используется Object Pascal. Это я так, к слову, раз уж о делфи заговорили.
Какие блять паскали и делфи, Блоу пилит свой язык программирования, и чтобы показать, что язык -- не пустой proof of a concept, а реальная вещь, на которой можно писать игры, дополнительно пилит на своем языке движок игровой.
Джонатан Блоу -- красавец, один из немногих в игровой индустрии, кого заебал C++ и кто хочет и пытается что-то поменять.
Не на C# же высокопроизводительные вещи писать, это нам на Юнете хватает C#, который все равно в C++ транслируется.
>>470741 >Блоу пилит свой язык программирования, и чтобы показать, что язык -- не пустой proof of a concept, а реальная вещь, на которой можно писать игры Зачем он еще раз изобретает колесо?
>>470742 Потому что C++ -- говно мамонта. У него куча проблем, которые пытаются решить ребята повсеместно, те же MS пилят кучу своих фишек в VS.
Но главная проблема -- долбоебы из комитета стандартизации, которые заворачивают тысячи охуенных вещей и идей, просто потому что кому-то может что-то не понравится.
А хули жаловаться? Делать-то все равно нечего. Уже жаловались тысячу раз, не просто так в UE3 и прошлых версиях был Unreal Script. Вместо него BluePrint сделали, чтобы не так тошно от плюсов было. Да и к тому же в анриале C++ вообще просто перелопачен собственными макросами и кодовой базой очень сильно, у C++ задротов от кода для анриала жопу печот, потому что НЕ ПРАВОСЛАВНО.
C# Job System -- это враппер над C++, который компилируется C++ Job Compiler, а не переходит в байткод. Даже проекты на C#, которые через AOT компилятор MS прогоняются, в разы медленнее C++ кода.
Добавлю просто то, что у C# OOP головного мозга, что в геймдеве вообще-то не особо и нужно. Для игровой логики может быть и подойдет, а для каких-то серьезных задач -- нет. Именно поэтому в Unity скоро будет Entity Component System, где вообще никакого OOP нет и все на структурах работает. Давно уже решили, что любовь к OOP только в ентерпрайзе полезна, в играх лучше всей этой хуйней по минимуму пользоваться. Ибо все эти виртуальные функции и прочая хуета абстрактная вашу производительность сажают ого-го..
>>470756 >И стало ещё более тошно от дебага макаронной фабрики Ты че? За визуальным программированием будущее. Прорекламирую свой тред о ВП: https://2ch.hk/pr/res/1088308.html
Макросы, заголовочные файлы, распухший синтаксис, крайне большое время компиляции из-за усложненного процесса компиляции (препроцессинг, линковка и т.д.), виртуальные функции, шаблонное метапрограммирование, отсутствие рефлексии.
Это из первого, что приходит в голову. Там один канал по геймдеву в телеге обещал пост написать по этому поводу, я подожду и если не забуду, то пришлю тебе список. Самому лень писать все.
>>470762 Ну с последним ты загнул. Рефлексия это м-м-м-максимум нинужная фича, которая разве что костылем в хуевом коде работать может. Хотя в остальном я с тобой согласен.
>>470761 Как дезигнер пользующийся тем же субстансом могу согласится и в тоже время не могу, со временем ты всё равно скатывашься в изващённый ооп, генеря отдельную ветвь пака под генерацию нормалей, отдельную под альбедо, отдельную под генерацию веточек, и отдельную под генерацию камушков, если ты делаешь это по стандартным урокам с офютаба у тебя всё либо статично, либо происходит макаронная фабрика, и ты не можешь например быстро отключить/переключить камушки вместе с альбедо и нормалями, а ведь это всё вместе и стыкуется и переходит на другие генераторы/постэфекты, и т.д.
>>470741 >это нам на Юнете хватает C# Вообще то разница между шарпом и плюсами минимальна, если не ударятся в байтоёбство. Высокопроизводительный язык - это С. Но по такой логике можно и на ассемблере писать игры - вообще летать будут.
Любой компилируемый строготипизированный язык программирования без насильного OOP.
Пока из самых популярных тут С++, именно поэтому на нем все и пишут. А про его проблемы я выше писал. Пока нет языка, все графические пайплайны, физические движки и прочее будут писать на C++/C. Вообще, по секрету скажу, в геймдеве очень-очень много вещей в тех же движках, которые попросту C++ врапперы над Си.
Нет, и байтоебство тут ни при чем. Чтобы писать на C# быстрый код, нужно будет вообще про OOP забыть настолько, насколько возможно. Си высокопроизводителен, да, но C++ не настолько отстает от него по производительности, чтобы быть на уровне C#.
Если мне не веришь, то советую написать тебе Cellural Automata на C++ и C# (SFML взять, как основу, для обеих языков он есть), будешь приятно удивлен результатами.
Конечно, ускорить C#, чтобы в некоторых задачах добиться почти скорости С++ можно. Только это unsafe-код будет и последствия тебе, я надеюсь, известны.
>>470762 Ну так хули, у тебя всегда есть выход - писать на чистом С. Что, собственно, большинство четких пацанов, двигающих геймдев, и делает. Плюсы, в общем-то, за исключением пары мелких нововведений, нахуй не нужны. Не встречал ещё задачи, с которой бы чистый Си не справился. Предвещая вопрос - да, у меня есть свой самописный движок на Сях/ОпенГЛ, и с написанием его у меня никаких сложностей не возникало. Самая ебатня - это писать врапперы над системными функциями винапи и иксов, а во всех остальных местах, где не нужно с чужим говнокодом взаимодействовать - всё просто, легко и понятно.
Именно поэтому на C++ пишут игровые/физически движки и прочие низкоуровневые вещи, которые очень редко переписывают с нуля. Никто не будет жертвовать производительностью в таких местах ради ускорения сроков разработки.
Более того, я же писал, что у С++ есть проблемы и его надо заменять. Спокойно можно писать быстрый код на низкоуровневом языке программирования, если он современный, типо системного Rust или Go. Такие дела. Скорость разработки тут проебалась только из-за архитектуры языка.
>>470776 Есть вещи, в которых C# всегда был заметно быстрее C++. Одна из самых известных - быстрая работа с памятью. Лично столкнулся с этим, когда заметил, что любой словарь на плюсах раз в 10-30 медленнее словаря на C#.
Ну, тут есть доля правды: выделение и освобождение памяти в адресном пространстве виртуальной машины намного быстрее, чем системные вызовы (malloc, realloc, free).
Но по поводу словарей в С++ медленных могу точно ответить, что проблема тут чисто в темплейтах и ООП, которое в С++ ооочень медленное (потому что криво делали).
Никому нахуй не въебалось учить С\С++ в поздние 20, если в колледжу/универе уже не изучал. Беспонтово. Да и нахуй не нужно, если только не планируешь свой Круизиз 6 писать, для простого 3D или 2D говно - можно беспроблемно юзать хуюнити c C#. Пикрил как доказательсво - ну круизис, но норм для инди-говна. Назовите мне хоть одного пидара в этом треде, который сделал что-то близкое к Ori или Hollow Knight. Про пикрил или Субнаутику молчу уже.
Я уже выше писал про темплейты и виртуальные функции. Если хочешь, проверь сам, что выдает ошибка в темплейте вот тебе пример, даже тузлы сделаны для этого уже, хотя это должно быть на уровне компиляторов и языка stackoverflow.com/questions/7974544/how-to-deal-with-way-too-long-stl-template-error-reportи как они работают сами по себе.
Сравни с теми же самыми generic в C#. Метапрограммирование для решение простейших задач -- это же пиздец чистой воды. Мало того, что это само по себе ужасно с точки зрения написания кода, так это еще и порождает сложные синтаксические конструкции, что усложняет отладку и поиск багов.
А по поводу виртуальных функций -- советую почитать про то, как они работают. Охуеешь с того, как каждый компилятор выстраивает свою таблицу виртуальных функций как хочет, и как это потом можно отладить.
>>470787 >выделение и освобождение памяти в адресном пространстве виртуальной машины намного быстрее, чем системные вызовы (malloc, realloc, free). это не из-за виртуальной машины. это из-за сборщика мусора. вся память линейная и выделение памяти - это сдвиг указателя на число байт. потом во время сборки мусора вся память освобождаются и снова пакуется линейно. менеджер системной памяти намного сложной, т.к. там могут быть дырки
>>470779 >большинство четких пацанов, двигающих геймдев Большинство чётких пацанов двигающих геймдев не умеют программировать, либо им поебать на эти тонкости, но они умеют в сюжет, геймдизайн, нарратив и операторскую работу
>>470832 >чётких пацанов двигающих геймдев 1) выгнали за то что тормоз 2) композитор в игре, от которой прёт потому что она бесплатная в стиме 3) ноугеймс пс4 голая задница, сука, проебал весь дракенгард
>>470833 >проебал весь дракенгард Там больше компания клепающая все остальные аспекты обосрала, сам-то он клепает сюжеты дай боже, правда денег на его сюжеты с каннибализмом, трапами и инцестом особо не дают. Вообще местным Кириллам стоило бы больше в сторону адекватного повествования идти чем задрачивать шейдера, сейчас это больше окупается
>>470839 >PUBG продался 20миллионов не из-за лов стори ретард. Пабг вообще повторение истории доты, повторить сейчас подобное может только метелица, а не мимокроки с двощей. Ну и уныл кстати это пабг, либо я недостаточно аутичен
>>470843 Никогда не интересовался играми как способом заработка, или созданием шитдевров, меня оно больше заинтересовало как система имитации своих личных хикканских мирков, ещё со времён первой кваки.
Хотя об этом намного лучше Деви Вреден в своём The Beginner's Guide показал, а мне до его тараканов ещё долго ехать и возможно это хорошо, я бы повесился нахуй с его тараканами
>>470832 И что это за нонеймы? Знаю только китайца, который поганил неплохие экшн-игры своими ебанутыми подростковыми фантазиями вместо сюжета, и охуел от своей мании величия настолько, что выгнан в шею.
Парни, выручайте. Есть у меня UI-кнопочка. На кнопочке висит метод OnPointerEnter, который входит в интерфейс IPointerEnterHandler извиняюсь если коряво выяснился, только начинаю знакомиться с интерфейсами. Так вот, данный метод вполне себе выполняет нужные действия если мышку навести на кнопку. Но моя кнопка при определённых обстоятельствах может стать на время неактивной, а затем снова активной. Из-за чего возникают случаи, когда кнопка становится активной прямо под курсором. И так как мышка не наводилась на кнопку, а кнопка просто появилась под курсором, метод OnPointerEnter не срабатывает, для этого надо отвести мышку с кнопки и навести заново. А мне надо чтоб срабатывал. Пробовал использовать OnMouseOver, но он не работает с UI.
>>471000 > Тултипы небось херачишь? Почти. > По контексту зависит Делаю васянскую версию тауэр дефенс. Есть у меня на локации специальные точки, на которые можно посадить какой-либо юнит. Делается это так: кликаешь по этой самой точке, всплывают кнопки с вариантами юнитов, которые можно здесь расположить. При наведении на кнопку появляется прозрачная моделька юнита и подсвечивается радиус его поражения. Если у тебя хватает на него бабла, то кликаешь по кнопке и юнит устанавливается. Но если бабла на юнит не хватает, то кнопка неактивна. Ну на самом деле активна, то есть её видно, но вместо наименования юнита там написано "нет бабла" и на кнопке отключается скрипт, который как раз и детектит OnPointerEnter (чтоб не появлялась прозрачная модель юнита). Так что если на неё наводишь, то нихера не происходит. Как только набивается нужное для юнита количество бабла — кнопка снова становится активна (то есть на ней активируется скрипт, который детектит OnPointerEnter) и можно снова ставить нужный юнит. Но! Если бабла на юнит не хватает и ты держишь курсор над неактивной кнопкой, ждёшь пока набьётся нужное количество денег, когда набилось — кнопка активируется, а прозрачная моделька не появляется, потому что мышка была над кнопкой ещё до активации скрипта. Приходится отводить мышку и снова наводить. Да, можно просто не держать мышку над неактивной кнопкой, но я хочу это починить.
>>471007 >IsPointerOverGameObject Эта вся хуйня мне не помогало.
У меня был тултип который продожал существовать после закрытия окна-хозяина. Я сделал отправку сообщения (через эвенты). Тултип на него подписывается и реагирует
public virtual void Hide() { gameObject.SetActive(false); var @event = Hidden; if (@event != null)// check for subscribers @event(this); //fires event for all subscribers }
Ребят жопа горит пиздец.Компилирую проект под ведроид.Не в первый раз. Build completed with a result of 'Failed' UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
ЧТО ЭТО ЗА ХеРнЯ?Все обновы стоят,откуда это вылезло вообще ума не приложу.На форумах ответа так и не нашел.
>>471085 >Компилирую проект под ведроид >жопа горит пиздец >ЧТО ЭТО ЗА ХеРнЯ? >UnityEngine Как водится, правильно заданный вопрос уже содержит в себе ответ. Перекатывайтесь в уеч, глупцы!
Вопрос: У меня в игре есть куча фабрик, у каждой фабрики может быть куча владельцев, у каждого владельца - куча фабрик.
Как сделать так чтобы и из владельца можно было получить принадлежащие ему фабрики и из фабрики получить список владельцев, не перебирая весь массив данных (тысячи записей)
>>471085 У меня такая хуйня была с UnityEditor - иногда рандомно на нее ругается, мол нет такой хуйни.
>>471105 Т.е. иметь 2 словаря, один в фабрике, другой в во владельце. А нет ли возможности хранить это в неком одном словаре с 2мя ключами? И дать ссылку на этот словарь и фабрике и владельцу? Просто не хочу плодить сущности..
Алсо, надо похвастаться. Я таки сделал сортировку и фильтры в таблицы. (Население, предприятия). Фильтры правда работают кривовато потому что я пока не осилил сложение предикатов в Expression http://nashet.github.io/EconomicSimulation/WEBGL/index.html
>>471125 У тебя два обьекта - владельцы и фабрики. Владельцы могут существовать без фабрик, фабрики не могут без владельцев. У владельцев есть поле - список его фабрик. У каждой фабрики есть ссылка на своего владельца. Никаких новых обьекта не появляется. Добавить поле не значит создать сущность. А вот создать отдельный обьект, который зависит от двух других и от которого не зависят другие - это уже то, чего ты опасаешься.
>>471137 >У тебя два обьекта - владельцы и фабрики. Владельцы могут существовать без фабрик, фабрики не могут без владельцев. У владельцев есть поле - список его фабрик. У каждой фабрики есть ссылка на своего владельца
Все так, только у фабрики может быть несколько владельцев, как у акционерного общества. Поэтому просто ссылка на владельца не канает.
Ну и создавать класс ownership я все равно буду, хотя бы что бы инкапсулировать специфические методы по управлению владением.
>>471148 >Ну сделай List<Владелец> Лучше жи Dictionary, чтобы не повторялись владельцы.
>>471148 >А как ты в своём ownership будешь делать многие-ко-многим? Я вот без понятия как, научи
Если сделать его глобальным например. Захуячить йоба массив пар фабрика-владелец. Вот только ключи вроде как не уникальные будут, следовательно тормозить это будет..
Так что, нет такого типового и быстрого решения для хранения отношения многие-ко-многим?
>>470093 (OP) Посоны, допустим у меня есть несколько персонажей отличающихся цветом одежды, головы и т.п. Анимация у всех одинаковая, мне на каждого персонажа свою анимацию придется делать?
>>471159 Есть несколько 2д персонажей, отличаются очень незначительно друг от друга. Движения у всех абсолютно одинаковые, мне для каждого персонажа свою анимацию делать или можно как-то унифицировать и сделать 1-у общую?
Если эта операция будет выполнятся постоянно в Update, то это ресурсно затратно? Или лучше поставить условие if что бы выполнилась только раз? cf.force = new Vector3(3, 0, 0);
>>470623 Ты конечно посоветовал хуйню, но натолкнул меня на интересную мысль. Надо будет сделать супериконку, которая будет изображать систему целиком, в данном случае Земля как сейчас, вокруг неё Луна и спутник. Спасибо, антоша, успехов тебе с твоим экономическим симом и поменьше комми-даунов в треде.
Как бы это выглядело в реальной ситуации? У владельца нет списка его фабрик, на фабриках не знают кто их владельцы, но есть йоба министерство, которое хранит эти связи и к которому обращаются владельцы, чтобы узнать где у них чего ? И причём владельцы локально эти данные не хранят, забывают (не имеют переменной в памяти для этого). Как то жутко выходит.
Я осознал что для организации торговли акцями этих фабрик нужно к связи многие-к-многим еще и добавить атрибуты: Запись { количествоАкций и сколько ХочетПродать(Купить) }
По хорошему надо таки ебошить глобальный лист из Записей. (Но как? Два SortedList, один сортирован по Владельцу, другой по Фабрике?). Или пихнуть какой то аддон на базы данных? Но такой лист явно будет медленнее множества Dictionary, и неудобнее, т.е. глобален и не хранит текущего контекста.
Как лучше сделать моргание светодиода? Есть, допустим, маленький прибор, на нём должен моргать светодиод. Свет излучать не нужно, самосвечения достаточно. Как лучше? Дать ему отдельный от прибора материал и переключать анлит скриптом?
Аноны, а существует какой-нибудь гайдлайн для оптимизации игр на android/ios? Конкретно интересует максимальное количество полигонов на сцену, к которому нужно стремиться, дроуколлов, всяких тонкостей (например, что лучше: два отдельных меша с разными материалами или один меш с двумя материалами) и т.д.
Пытаюсь запечь освещение на полтора плейна с текстурками и получаю:
Clustering job failed for system: 0x46b3f62a526cde9d5ae7123725736c21, error: 4 - 'Out of memory loading input data.'. Please close applications to free memory, optimize the scene, increase the size of the pagefile or use a system with more memory. Total memory (physical and paged): 17786MB.
Я чёт, блять, не понял. Эта хуйня 17гб хочет? Пиздец, блять. Вот в пятом упити такой хуйни не было.
>>471440 Пейджфайл - файл подкачки? Хуй с ним, в любом случае. На момент запекания было около 9 гб свободной памяти. Упити жрёт нихуя при запекании. А хули просит тогда?
>>471449 Да какой, к хуям, аут оф мемори, блять. Это не нормально нихуя. На сцене около 20 плейнов с 3 разными материалами, два поинт лайта и три рефлекшн пробы. Хули тут запекать-то? В пятой версии любая хуйня пеклась, главное подождать. А тут, блятб, со старта памяти нет, он даже не пытается.
>>471455 Думал он имел в виду требуемую, пушт в данной ситуации мне нахуй знать не нужно, сколько у меня памяти, что я, сам, блять, не знаю? Было бы логичнее сказать, сколько он хочет.
>>471458 > Думал он имел в виду требуемую Ну а ты научись читать, а не додумывать. Что мешает увеличить своп и проверить в памяти ли дело или ещё в чём-то?
>>471459 > увеличить своп и проверить в памяти ли дело Да не имеет смысла. Он не должен просить столько памяти, нужно ему это, или нет. Ну чё мне, поможет, если я, допустим, узнаю, что вот на 64-то гб всё нормально. Он печёт процессором или видеокартой? У меня последнее время на видеокарту некоторые приложения жалуются, но всё равно работают.
>>471515 > Не определяет соприкосновение Так сделай тот коллайдер, который триггер, чуть побольше и юзай не OnCollisionEnter, а OnTriggerEnter. Только помни, что для этого на одном из объектов должен висеть риджидбади, иначе событие не сработает.
Анонасик, у меня вопрос. Вот я хочу сделать чтобы по клику мыши на объект в сцене у меня появлялась рамка на этом объекте. Я сделал текстурку рамки, слайс мод там все дела. Сделал префаб с этой текстуркой. И всякий раз когда я нажимаю на объект, у меня инстаншиейтится этот префаб и становится дочерним к тому объекту на который я нажал. Всё в общем работает как надо. Вопрос вот в чем: как мне засунуть этот функционал во все объекты которые можно выбрать? Я не очень сильно шарю, но если надо, то попробую. Я думал сначала сделать через интерфейс, но получается мне нужно будет в каждом объекте дописывать заново код для спавна рамки и т.д. Получается единственный вариант это чтобы класс объекта наследовался от какого нибудь класса SelectableBehaviour? А по другому никак нельзя это сделать? Чтобы бля не через жопу только.
Есть класс Parent, который наследуется от MonoBehavior и реализует OnTriggerExit. От него наследуется Child. Как запретить юнити вызывать у Child родительский OnTriggerExit, хотя он private? Только переопределив у Child пустым методом?
На правах бампа if (economy.getValue() == Economy.Interventionism) Rand.Call(() => getAllFactories().PerformAction( x => x.ownership.HowMuchSelling(this).add(x.ownership.HowMuchOwns(this)).isBiggerThan(Procent._50Procent), x => x.ownership.SetToSell(this, Options.PopBuyAssetsAtTime)), 20);
>>471598 Только у меня лямбду watch не хочет видеть, говорит узел не найден или типа того. Надо накатить какой нибудь аддон..
Алсо запилил метод public static bool Call(Action action, int chance) { if (UnityEngine.Random.Range(0, chance) == 0) { action(); return true; } else return false; } Выполняет действие с заданной вероятностью. Очень сладко.
Блять нахуй бомбит. Что я делаю не так? У меня есть спрайт травы, я сделал геймобжект с ним. Поставил в тайл мод, там появляются такие вот весчи как width и height. Я хочу чтобы при старте эти ширина и высота стали такими, какими мне нужно. Я запихнул скрипт на этот объект в котором в старте прописал GetComponent<SpriteRenderer>().size.Set(width, height); Но он сука не работает, просто не реагирует. При том даже если я вместо переменных туда числа запишу, он всё равно не реагирует на эту команду. Что я делаю не так опять же? Просто скейлить объект не получится, потому что растягивается тайл, а не то что мне нужно.
>>471640 Лямбда - транслируется в предикат, не знаю как они у тебя не возвращают что то кроме бул. Func<string> ReturnAnus = () => return "anus"; var result = ReturnAnus();
>>470093 (OP) У меня вопрос. Как сделать pathfinding в Unity 2d? Знаю что в 3d навмешом можно сделать очень простой ИИ. А что делать с 2д? Писать А* алгоритм с нуля и без оптимизации, чтобы 10 врагов без фризов на экране могли бы только быть или как?
>>471765 >Два Не подходит нужно вращать все а у меня уже куча кода написана которая привязана к 2д как оно есть в юнити. Мне бы такое решение чтобы ничего вращать не нужно было. Я ненавижу дорожные знаки и мосты
>>471812 Пока нету нихуя, сижу на бете, они уже третью бету самовключаемый бейкинг теней не могут отключить, проект часто вылетает на запуске, хотя я просто домики из примитивов в эдиторе клепаю и расставляю по террейну, и к скриптам ещё даже не прикладывался даже поудалял всё что есть из стандартных
>>471834 >домики из примитивов в эдиторе клепаю и расставляю по террейну >Нахуя? Прототипы многоэтажных входябельных зданий, интерьеров, масштабы относительно игрока/нех/табуретки, расставить свет, его цвет, цветокор туманом, прикидки по зонам разной текселерации, etc. Скрипты пока не в приоритете, можно и в бетке посидеть. Начнёт сильно бесить - перекачусь версией ниже.
>>471842 >И зачем нужен юнити, если в нем ничего не разрабатывать? Только сейчас начал лениво что-то пилить. Валяется как инструмент с прошлой работы в основном, обновляюсь до бетки надеясь что наконец включат инструмент для ёба-теней в деревьях из последней демки.
>>471822 Где ты прочитал что девы-юнити добавят туда ЕКС? Я ни одной новости от них не нашел, только хулиард проектов от левых чуваков на гитхабе чтобы добавить екс слой в проект.
>>471882 Сейчас логика и данные вперемешку существуют в кастрюле под названием моно бехэвиор. В экс это невозможно, там слой логики получает доступ к обезличенным данным только когда он вызывается, т.е. во время тика, и больше никогда и ни как. Но суть екс не в этом, а в изъебистом объединении разных энтити, на основе общих компонентов и выполнении их в системах, обрабатывающих именно эти компоненты. Мол это для геймдева намного гибче и лаконичней чем стандартный ооп подход. На гамасутре была годная статья на эту тему. Юити ничего с этим общего не имеет. Они просто заимствовали слово компонент, но тут такая же разница как между грамматикой и граммофонном. Компонент в юнити это реализация паттерна композиция, в случае когда монобехэвиор цепляется на существующий геймобжект, и агрегация, когда он используется как отдельный геймобжект.
>>471981 Очевидно что проперти нужно использовать для инкапсуляции, а ГетHuinja может даже и не работать с полем. На самом деле я все в паблик ебашу. КОЗ АЙ КЭН
Пытаюсь заставить стрелять и ездить пикрил. Мне отсоеденять колеса и башню, и соответствено импортировать все это как 6 мешей, а потом уже в юньке на каждое колесо вешать колесоколайдер, башню вращать скриптом и т.д. или норм посоны это все делают c одним мешем как-то через анимации(еще не разбирался с ними, имею только общее представление о том как они работают)?
>>472004 >еще не разбирался с ними, имею только общее представление о том как они работают
В стандартных проектах идущих в комплекте транспорт и наземный и летучий есть как примеры, через fbx можно одним мешем, но поделённым на объекты, но я хз как это в блендере
>>472018 > одним мешем, но поделённым на объекты Ты хотел сказать "одной моделькой, но поделённой на меши"? Если меш "поделить на объекты", то это будет уже несколько мешей, но никак не один. А моделька будет всё ещё одна, да.
>>471981 GetHuynya() вроде работает быстрее на неважную величину, но в остальном разницы между ними никакой нет. Я использую методы вмето проперти только, когда надо передавать какие то параметры.
Хочу игры делать и зарабатывать на этом кучи денег, просветите по следующим вопросам:
1. Читая книги по программированию сильно проседаю, и если со всяким синтаксисом или ооп все в целом более-менее понятно, то когда речь идет про подкапотные штуки, вроде clr, многопоточности или что-то сложнее стека/кучи - сильно проседаю. Чувствую, не хватает базы. Где ее взять?
2. Где брать материал по архитектуре приложений? Инглиша не знаю да, я осознаю его необходимость, уже учу, но пару лет это точно займет. Слышал, сейчас все делают на энтити, поэтому в первую очередь интересует эта парадигма.
3.Как определять, какой контент по каким условиям и лицензиям и с каких сайтов можнл юзать в своем коммерческом проекте? Правильно ли я понимаю, что можно с чистой совестью юзать все бесплатное с юнитистора?
4. Какой самый годный/стандартный/популярный стек программ юнити разработчика? В чем моделить, в чем материалы создавать и всякое такое разное-нужное?
5. Я так понял, для юнити есть куча как платных, так и бесплатных расширений. Какие из них мастхев для разработчика? Или юнити достаточно самодостаточен, и нет расширений, которые юзают прям поголовно все?
6. Где можно посмотреть исходники реальных проектов unity. Я так понимаю, собранные игры можно декомпилить, но что и в каком виде я в итоге декомпиляции получу?
7. А есть ли вообще смысл? Как там в геймдеве с людьми без образования? Смогу ли самостоятельно научиться чему-либо полезному и будут ли за это платить деньги? Пока планирую больше в сторону кодинга развиваться.
8. Как можно устроиться куда-то (не сейчас, когда чуток подучусь) на удаленке забесплатно, где в процессе работы можно было бы научиться делать не говно, а рыночновостребованную работу?
>>472062 1. Опыт. Опыт сын ошибок трудных. Пока сам не столкнешься с какой то фичей не поймёшь. 2. Начни с паттернов проектирования банды четырёх. И ГРАСПа. 3. Там где контент выложен есть описание его лицензии. Да, в сторе по умолчанию бесплатные ассеты можно использовать. Кто то пишет что только для некоммерческого использования. 4. В чем тебе удобнее. Блендер плюс фотошоп например. 5. Мастхев нету. Если какая то фича становится очень нужной - в юнити добавляют изкоробки. Например как рисовалка тайлами недавно появился. 6. В сторе есть готовые проекты для того чтобы посмотреть. На гитхабе поищи. А вообще лучше сам пиши. На одной теории далеко не поедешь. Пиши код, собирай сцены,делай игры. 7. Смысла нет нивчем. Если ты будешь шарить - то будут платить. Если будешь делать ещё и не говно, будут хорошо платить. Но для этого нужен опыт. Знать путь и пройти путь разные вещи. 8. Никто тебя на работе учить не будет. Так работает капитализм. Но можно напиздеть удачно и на ходу учиться. У некоторых людей срабатывает.
И главное - кучи денег будут после 5-10 лет усиленного вьебывания. Как и в любой профессии.
>>472069 >кучи денег будут после 5-10 лет усиленного вьебывания. Тут пидорок спизднул, куч не будет. Будет "заметно лучше чем дворник" но не более. На безбедную старость не рассчитывай.
Если только, конечно, ты не из тех гениев-счастливчиков, что свою Stardew Valley или Subnautica запилит с миллионными продажами.
>>472072 Как же это несправедливо. Кому то достаточно один раз вяло пробежаться по полю и обеспечить себя на всю жизнь, а кто то должен потратить четверть своей жизни просиживая за монитором лучшие годы своей жизни и психологически выгорая, превращаясь в аутиста. Если бы программисты не были такими омеганами, то давно бы запилили какой нибудь профсоюз, который решил этот несправедливый вопрос вознесением их на гору олимпа.
>>472062 > Хочу игры делать и зарабатывать на этом кучи денег Тогда делай мобильную тапалку для одноклеточных дебилов. Создатель Flappy Bird получал по 50к басков в день только за внутриигровую рекламу. Но это один успех на миллион.
У меня есть класс наследующий System.Object, существует в одном экземпляре. Как сделать чтобы его поля были видны в инспекторе? Сделал наследование от ScriptableObject, но он нигде не появился :(
>>472186 Ну и нахуй ты нам суёшь код, в котором не прописан твой метод? Ты же сам видишь, ёбана рот, что у тебя консоль выводит "OnTriggerExit", а в коде этого вывода нет. Следовательно, этот метод вызывается не в этом скрипте. Мать твою за ногу, соберись давай.
>>472149 Зачем тебе вообще настройки хранить в статик полях в ридонли? Ты их из кода что-ли меняешь? Это у тебя такой йоба синглтон? Сделай по человечески, ебани один скрипт на главную камеру и всё. Точно будет один экземпляр и не придётся костыли лепить.
Делаю пошаговую 2D-стратегию с клеточками в Юнити, но что очень печалит - какой-то запредельный размер проекта, большое время для внесения минимальных изменений вместе с немалым порогом вхождения. Конечно, последнее - вещь субъективная, но всё же чем дальше, тем больше гложет мысль, что для простецкой велосипедной игры использовать Юнити со всеми её прибамбасами избыточно. Есть ли резон в моих словах, а соответственно правильно ли будет перекатываться на какой-нибудь Cocos2D, или меняю пики на хуи?
>>472229 >Уже ответил тебе в нюфаготреде. Написал тебе там же. >>472227 Я неверно выразился. Размер меня беспокоит меньше, сколько в принципе сложность в понимании работы компонентов между собой. Нет чёткой картины, что и для чего.
>>472233 Я искренне пытался, но не осилил. Там сразу какое-то тридэ и непонятно :c Есть ли какой-то упрощённый курс? У меня люто бомбит с того, что тут сложнее, чем с фреймворками для веба.
>>472235 Спасибо тебе, милый человек. А что скажешь по поводу применимости Юнити для простых игр? Действительно нет резона переползать на Кокосы, если поднабраться понимания работы с Юнити?
>>472236 > А что скажешь по поводу применимости Юнити для простых игр? Ну а что тут сказать — юнька для простых игр вполне подходит, главное в ней разобраться. Самое первое что я на ней написал — был вообще тетрис, проще которого, наверное, только волк, ловящий яйца. > Действительно нет резона переползать на Кокосы, если поднабраться понимания работы с Юнити? Не юзал кокосы, но если с юнькой разберёшься, то всё пойдёт нормально. Сначала само собой глаза разбегаются, а потом руку набьёшь и будешь как рыба в воде, главное Долину Отчаяния пережить.
>>472237 Очень благодарен, ты меня подбодрил. Постараюсь всё-таки взяться и осилить. Пара моментов, на которые ты, может быть, знаешь ответ: - насколько Юнити подходит для публикации игр под Андроид и айос, один тимлид говорил, что на Андроид выходит неоптимизированное говно, которое очень грузит батарею - можно ли убрать дефолтную заставку Created by Unity при запуске игры на мобилках?
>>472238 По первому вопросу не скажу, под мобилки не писал. А по второму — можно, но только в платной версии. Пока не обращай на неё внимание, потом как проект доделаешь — оформишь подписку за 35 баксов и сбилдишь без этой заставки.
>>472234 Вкачусь немного с советами. Сам я тоже хуй простой и своего пока ничего не сделал, но мне очень понравилась книга "Unity in action" (там тоже начинают с тридэ но все очень просто), туторы от catlike coding (там не делают конкретно "игры" но ты в целом начинаешь немного лучше понимать как все работает) и вот этот туториал на удеми: https://www.udemy.com/unitycourse/ (поищи купоны\подожди распродаж, можно за 10 долларов взять). Когда то тоже были проблемы с вкатыванием, казалось все очень сложным, но теперь все кажется гораздо проще.
>>472238 Юнити позволяет хуярить мультиплатформу, тестируется игра на компе разработчика, дай бог ещё на его xiaomi. Естественно об оптимизации и речи не идёт - юнити не знает под что ты делаешь игру, максимум графику пережмет потом перед билдом . Всё зависит от разработчика.
Как ресайзить rect tool'ом также, как этот brackey ресайзит кнопочку https://youtu.be/zc8ac_qUXQY?t=223 ? Чтобы центр оставался в центре, и изменялись только width и height рект трансформа, а не отдельные границы.
>>472069 >рисовалка тайлами недавно появился лол. они ее с 2014 года делали. тут проблема курицы несущей золотые яйца: зачем добавлять возможности в редактор и убивать курицу - asset store. они там анонсировали визуальный редактор шейдеров, тоже будут его 4 года делать.
>>472418 Нет, я именно про изменение границ rect transform самой кнопочки (ну или любого другого элемента). Допустим он увеличивает левую границу, при этому у него настолько же увеличивается правая граница. Или, допустим, он тянет за нижний правый уголок, увеличивая нижнюю и правую границу - настолько же увеличиваются верхняя и левая граница, а центр находится в том же месте, где и был. Т.е. симметричное редактирование этого прямоугольника относительно центра. Brackey всё довольно хорошо объясняет, но вот этот момент он просто ДЕЛАЕТ, будто и так всё понятно. Я естественно пробовал во время редактирования границ зажимать ctrl, alt, shift, и да, поведение меняется, но в официальных доках даже этого нет. Про rect tool вообще нихуя не написано.
В общем, допили свой первый максимально простенький говно проект в 2D. Столкнулся с такой проблемой: После проигрыша, запускается окно с менюшкой, в которой есть очки набранные за игру, пару кнопок по типу "Restart" и"GoToMainMenu". Так вот в Unity-Scene все происходит нормально, все показывается. После тестового билда на ведроид я не вижу свои очки за раунд. Созданы они в Canvas-Text. Кнопки на местах.
>>472460 > я не вижу свои очки за раунд Значит они у тебя прилеплены условно к верхнему-левому краю со сдвигом в дохя пикселей вправо. вот ты их и не видишь на мобилке, но видишь на компе. Нормальные якоря сделай и будет тебе счастье.
>>472437 > зажимать ctrl, alt, shift, и да, поведение меняется, но в официальных доках даже этого нет Эти кнопки по дефолту используются при ресайзе чего нибудь во многих программах. Видимо так исторически сложилось и стало на столько интуитивно, что они не стали писать про это в доках.
>>472476 Ну это мне понятно, поэтому я и стал пробовать зажимать их, зажимать их комбинации. Но эффект оказался не тот, что нужен. Так и не смог нагуглить никакой инфы по симметричному редактированию rect transform в редакторе.
>>472437 > Допустим он увеличивает левую границу, при этому у него настолько же увеличивается правая граница. Или, допустим, он тянет за нижний правый уголок, увеличивая нижнюю и правую границу - настолько же увеличиваются верхняя и левая граница, а центр находится в том же месте, где и был. > Я естественно пробовал во время редактирования границ зажимать ctrl, alt, shift Херово пробовал.
Эта книга еще актуальна, годная? Так бегло пролистал, все хорошо показалось, но сами методы там рабочие? Хочу бумажное издание заказать. Плохо могу в английский, ищу на русском варианты. Но если сильно годноту посоветуете, можно и на английском. https://drive.google.com/open?id=1V3TwCzTaI1Va8OAejxoPfZCS67M8DuH-
>>472574 Может, но только нахуя ей это? Если движок внезапно станет монополистом то закрутит по самые гланды, вот только это что-то из разряда фантастики. Все последние годы гайки раскручивалисьи и делались послабления.
>>472575 А может они так и планируют, сначала вбрасывают корм для хомячков, хомячки накидываются на корм, а потом, когда все подсели на новый корм, его делают платным.
Т.е. опустят планку дохода, с которого начинаются роялти + подымут процент.
>>472598 пц ты тупой? А если у компании проблемы начнутся финансовые? А если у владельца компании ещё один ребёнок родится и ему нужно будет строить будущее? Тут милилоно фактороый и возможностей, таких случаев уже тонны были. Те же банки, в одностороннем порядке менядщие ставки итд Короче, ты ноль. Живи реальностью. Халява вечной не бывает.
>>472609 >А если у компании проблемы начнутся финансовые? >А если у владельца компании ещё один ребёнок родится и ему нужно будет строить будущее? Что ты несешь, поехавший? Ты там со своей пидорахоглубинкой не попутал, болезный? >Тут милилоно фактороый и возможностей, таких случаев уже тонны были. Давай приводи.
>Короче, ты ноль. Живи реальностью. Халява вечной не бывает. Пописал на тебя, фантазер. Съебывай отсюда, пидоран.
Скоро Crytek наконец обанкротится, ситуация в компании хуже от года в год (месяцами заплату не платят), останется только Юнити, да Анриал. Крутек разрабатывает КрайЭнджин.
Ещё немного спустя, они окончательно делят между собой рынок, а потом им останется только договорится и дружно всех наебать.
Я не утверждаю, что всё произойдёт именно так, но и вы не можете опровергнуть такое развитие событий.
>>472626 Скоро твоя мамаша начнёт давать в сраку всем прохожим за батон хлеба. Я не утверждаю, что всё произойдёт именно так, но и ты не можешь опровергнуть такое развитие событий
>>472641 Если бы с одного движка на другой было бы так просто перескочить, то да. Но это не так просто. Особенно болезненным такой переход может быть для компаний, в которых целый штат прогеров специализируются только на определенном движке.
>>472644 > Особенно болезненным такой переход может быть для компаний Которые уже купили лицензию на использование движка, что проверено штатом юристов и все сроки там прописаны изначально?
>>472645 Ну купили они на столько, на сколько надо. А что делать, когда лицуха закончилась, и юнити вдруг ебанулись и задрали цену или что-то еще? Распускать весь штат прогеров?
>>472648 > А что делать, когда лицуха закончилась Все аспекты согласовываются/прописываются с учётом всех сроков и с учётом издержек и пени, если поставщик ПО не предоставил всё что было условлено. Даже в нашей говноконторе в юридическом отделе сидят люди, которые за это получают деньги. Но ты там свой мирок не ломай, главное что у тебя всё будет #скоро
>>472642 Ну да, поэтому все давно перешли на Линукс и выкинули Винду.
Все игроки ВОВ переползли в фтп мморпг, которых простооо жопой ешь.
Удалили батлу с калом и кс и играют во фри фтп.
Ты просто тупой школьник, вот и всё. Осознай это.
Спрос, предложение, что ты несёшь? У тебя позанния на уровне школы или гопы, всё не так обстоит в реале, ты может ещё в честные выборы веришь, думаешь в США или Германии они честные? Не будь простачком.
>>472568 бамп Алсо, вот в учебном примере про фасолину я глянул скрипты, можно ли на их основе смело делать серьезный большой 2д проект? С точки зрения оптимизации, меня интересует как реализована физика, движение объектов. И еще, где можно посмотреть, как правильно делать переходы между сценами в 2д играх, загрузку ровней? заранее спасибо, с меня няшки
Есть вопрос к оптыным юнитибогам. Я уже достаточно уверенно чувствую себя в юньке, прошел все туториалы catlikekoding, прочел пару книг, сделал несколько своих простых хуиток. Не то чтобы чувствую себя как рыба в воде, но обо всех основных фичах имею представление и умею в гугл за подробностями. Вот сейчас решил реализовать что-нибудь законченое. Планирую сделать клон пикрил, c большинством арсенала, менюшками, сетевой игрой, разве что без кампании и кучи настроек оружия. Поэтому вопрос к анонам по поводу того, какой срок выполнения себе поставить? Потому что если я не ставлю себе каких-либо рамок то начинаю ебланить, страдать хуйней и продвигаться медленее улитки. С другой стороны если ставлю для себя нереальные сроки и обсираюсь с подливой то потом ничего вообще не хочется делать. Сколько вренени вы бы дали на реализацию?
>>472748 unity in action прочел всю, так же как и довольно посредственную unity 5.x shaders and effects cookbook, быстро пробежался по unity 2d game development и навернул пару глав unity cookbook. Особой пользы от книг для себя не вынес, туторы от catlikecoding ультрагоднота по сравнению с ними.
>>472745 >Планирую сделать клон пикрил, c большинством арсенала, менюшками, сетевой игрой У тебя не получится такое никогда. Простите мне мой цинизм, по твоему тону у меня возникло ощущение, что у тебя не было серьёзных проектов не то что в юнити, а вообще. Поэтому конкретно скилл юнити не так важен, сколько умение оценивать сложность задачи, по опыту прикидывать подводные камни. Возиться со сложным проектом в одиночку могут единицы Кириллов. Говорю как неопытный юнитибог и опытный продукт-лид. Это не ЧСВ, это опыт моих собственных в студенчестве недоделанных проектов, и некоторый опыт с крупными коммерческими продуктами. Бери задачу по силам, обязательно дели всё на маленькие релизы. Будь готов, что в один моент ты осознаешь, что делаешь полную хуйню, и будет правильно остановиться с этим. Планирование - наше всё. Сорян за сумбур.
>>472752 Catlikecoding туторы Rendering и Advanced Rendering. Там больше материала. Вообще 99% книг от pack которые мне попадались - полная или частичная параша. У меня сложилось такое впечатление что это издательство заняло нишу самого низкопробного и посредственного материала. Если серьезные книги пишут профессионалы, то в pack каждый второй автор какой-нибудь васян или студент, который изучил на среднем уровне какую-нибудь хуитку и написал об этом книгу. Причем часто даются самые самые основы, но эту хуйню растягивают на многие сотни страниц.
>>472753 >У тебя не получится такое никогда. Хуй знает, для меня это вообще не выглядит чем-то сложным. Специально для набивания опыта взял. Единственные сложные в игре для меня фичи, это то васянство которое планирую добавить от себя. >Простите мне мой цинизм, по твоему тону у меня возникло ощущение, что у тебя не было серьёзных проектов не то что в юнити, а вообще. Работаю кодером, лол. Конкретно в одиночку сложных проектов оф коз не тянул, но как все устроено и работает представляю. Плюс свои скилы кодинга оцениваю как гораздо выше среднего, что касается алгоритмов, кодинга, грамотного структурирования тут я в своей тарелке. Вот оценивать временные рамки это действительно для меня сложно, да.
>>472757 >Вот оценивать временные рамки это действительно для меня сложно, да. Это самое главное, на мой взгляд. Конечно, я не имею представления о хард и софт скилах, о твоём опыте. Просто я в последние годы работы отхожу от кодинга и понимаю, что для решения серьёзной задачи (а это не fizzbuzz или алгоритмы с деревьями) навыки менеджмента куда важнее непосредственно кодинга. Добавим к этому проблему с мотивацией: у тебя же есть работа, и игрой ты занимаешься в свободное время. Игра займёт много времени и не факт, что выйдет хорошей. А за неё тебе заплатят, а в чём интерес? Ну ты понял. Я бы для начала выкинул из плана ИИ с мультиплеером и оставил 2д стрелялку с разрушаемым миром. Если выйдет действительно стоящее, мог бы совершенствовать.
>>472760 Не, по ии я читал несколько хороших generic книг, в отрые от движка и платформы, только никак не могу вспомнить названия и авторов. + куча всяких пейперов по bwapi т.к. угораю по ии в ртс и сам активно васянил свой старкрафтовский интелехт пока не проебал жесткий диск со всеми наработками. поленился создать отдельный гитхаб и не хотел засорять свои битбакеты, теперь жалею
>>472764 Конкрето по юнити я бы посоветовал unity in action и catlike туторы. В остальном мой опыт не особо релевантен т.к. есть знания из кучи других областей, но в геймдеве я хуй простой. Напишу какое чтиво по гейдев тематике мне понравилось, а ты уже решай сам: - Game Engine Architecture Jason Gregory. - Fundamentals of Computer Graphics Peter Shirley, Steve Marschner - Programming Game AI by Example Вроде и все. Остальное из моих электронных библиотек либо не понравилось, либо еще не читал.
Здарова, ананасы. Кто нибудь тестил Gamesparks для своих мультиплеерных поделок? Если да, то опишите общие ощущения. Хотелось бы смочь в мультиплеер на юньке. Запилил для теста "Понг" на два рыла, вроде все сделал с точки зрения "архитектуры" правильно, но такое ощущение, что пинг большой, тому что мой шарик пидорасит при получении данных от серва.
>>472877 А ты уверен, что потянешь их ценник? Бесплатные 100к уников в месяц не так много, зато за следующие 100к тебе придётся заплатить им 2к баксов.
>>472896 У них есть программа для студентов/хоббистов. Да и вообще, я это все затеял, потому что очень много вакансий, где требуется уметь в мультиплеер. Photon тоже планирую упарывать, на геймдеве посоветовали чекнуть геймспаркс, мол, там вообще все просто и можно на клиенте сосредоточиться.
Поцоны, а как вы делаете текстурки для ГУИ? Мне все говорят что у меня плохие текстурки. В ассет сторе посмотрел - там полтора скина и те страшненькие. Допустим, я где то найду или нарисую текстурки (где вы их берете?), мне потом придется писать скрипт по замене дефолтных текстур (спрайтов) на новые? Гуи сделаны в редакторе, руками менять - очень лень.
Алсо, я так понял, тестурки должны примерно совпадать по разрешению с элементами ГУИ, чтобы не растягивалось
>>473030 Я в фш рисую. Сам далеко не художник, руками рисую хуже своей 7ми летней сестры. В юньке достаточно просто даже хуевые текстуры немного облагородить. Можно с альфой играться+наложение цвета есть, достаточно задать форму. Ну а гуи уровня той же цивки/игр от парадокса без дизайнера/художника не сделаешь, но у тебя вообще пиздос, соре.
Совет на будущее: если не уверен в своих текстурах, сразу пиши в Start() их импорт откуда-нибудь. Я обычно синглтон отдельный создаю (4й пик)
>>473030 Ну и еще вдогонку: многие вещи даже в твоем случае можно было бы сделать красивее. Типа Не Status: Invented/Uninvented, а галочка рядом с именем технологии. Или вместо 0% Tax сделать Slider, которым можно выставлять налоги. Я думаю, что основные претензии к твоему гуи даже не потому что там спрайты плохие, а потому что с дизайнерской точки зрения твой гуи не юзерфрендли.
Я бы на втоем месте сделал бы сначала на твоих (или дефолтных) текстурах что то более читабельное, а потом задумался над текстурами. Бзв, совет из предыдущего поста все еще действует, из синглтона удобнее управлять такими вещами.
>>473030 > Алсо, я так понял, тестурки должны примерно совпадать по разрешению с элементами ГУИ Добавлю, что желательно чтоб размер текстурки по ширине и высоте в пикселях был равен степени двойки. Оно, конечно, не обязательно, но БОХНАКАЖЭТ желательно.
>>473189 Можно покрасить простым материалом и затем настроить эмиссию материала. Если нужно что бы части светились, типа нагретого наконечника пули - шейдер
>>473194 Как тупой вариант, можешь сделать пулю составной - сам спрайт пули и подложка из полу-прозрачного спрайта/текстуры и отображать саму пулю/объект на слое поверх всего, что не есть foreground, в данном случае полупрозрачная хня будет накладываться.
>>473214 Да мне в принципе не важно как оно будет светится, четко по краям или где-то в центре лампа будет освещать. Просто с лампой проблема в том, что если на экране много пуль лампы просто не работают и все пули не светятся вообще.
>>473323 > Почему? Потому что твой лайнкаст вернёт true при пересечении вообще с чем угодно, тем более что ты маску слоёв убрал. У тебя нет условия чтобы он возвращал true только при попадании в enemy, ты просто задаёшь направление. Так что делай проверку.
>>473035 >Типа Не Status: Invented/Uninvented, а галочка рядом с именем технологии. Там у меня таблица самописная, лень ее переделывать, но совет хороший
>>473035 >Я думаю, что основные претензии к твоему гуи даже не потому что там спрайты плохие Не, мне именно про текстурки говорили игроки, прям массово
>>473032 >сразу пиши в Start() В каждом окне я это писать конечно не буду. Один раз подменю, вроде должно работать. Тем более у меня почти все окна в сцене.
Алсо, в чем прикол? Качаю типа скин в формате псд, а там картинка уровня пикрил. Они мне предлагают надписи закрашивать что ле?
>>473331 > Я думал оно автоматически определяет ЛЮБОЕ препятствие Чего? Любой рейкаст возвращает true если он попал в какой-нибудь коллайдер при заданных условиях. У тебя в условиях было "стрелять отсюда вон туда", соответственно он попадал либо в стенку либо во врага и всегда возвращал true, ты ж не делал проверку во что именно он попал.
>>473332 >Чего? Любой рейкаст возвращает true если он попал в какой-нибудь коллайдер при заданных условиях. У тебя в условиях было "стрелять отсюда вон туда", соответственно он попадал либо в стенку либо во врага и всегда возвращал true, ты ж не делал проверку во что именно он попал.
Так в рейкасте были координаты врага значит если линия пересекается с чем то другим должно возвращать false, если не с чем не пересекает то true
>>473333 > Возвращает true, если какой-либо коллайдер пересекает линию между началом и концом. У меня не какой либо колайдер, есть определенный колайдер и его загораживает стенка. Рейкаст вообще не реагирует на стену. Я так понял это уже нужно вручную добавлять на что он должен реагировать а на что не должен.
>>473338 > Так в рейкасте были координаты врага > У меня не какой либо колайдер, есть определенный колайдер и его загораживает стенка Это тралинг тупостью? Твои "координаты врага" это просто точка в пространстве, определяющая конечную точку линии. Ты нигде не указываешь, что это именно "враг" и тебя интересует только столкновение с ней, ты просто говоришь куда светить.
>>473338 >Так в рейкасте были координаты врага значит если линия пересекается с чем то другим должно возвращать false, если не с чем не пересекает то true >координаты врага Чего за хрень, это банальное "провести линию от точки А до точки Б и найти, пересекается ли данная линия С ЧЕМ УГОДНО"
>>473338 > Я так понял это уже нужно вручную добавлять на что он должен реагировать а на что не должен А ты думал компилятор это телепат-экстрасенс? Не хочешь забивать вручную — ебись со слоями. Игра сама не догадается что ты от неё хочешь.
>>473329 Откуда ты это качал? Выглядит будто бы демка. Обычно атласы пустые.
Бзв, игроки же не девелоперы, они сами порой не знают, почему им не удобно. К тому же у тебя и спрайты не оч и дизайн. Я просто предлагаю сконцентрироваться на дизайне, потому что юзерфрендли интерфейс с хуевыми спрайтами это для инди ещё более менее, а наоборот хоть триплэй художника нанимай, будут жаловаться.
Можешь хоть на геймдеве найти начинающего диза, который за портфолио тебе поможет. А лучше всего открой игры от тех же парадоксов и посмотри как они сделали.
>>472660 >помимо unity есть и XENKO помимо unity есть и кусок говна, ты хотел сказать? сила unity в редакторе. пока не появится движок с мета редактором как в unity, unity может быть спокойным.
>>473363 Насрать где ты её будешь указывать, в инспекторе или в коде. Суть в том, что можно определять попадание в нужный объект как через прямую проверку, так и через слои.
>>473366 Что за редактор? В юнити половина стандартных фич других движков вынесена на просторы юнити стор. Нету ни визуального создания логики для ии, ни создания шейдеров через граф. Они так и сидели бы на первой версии, если не конкуренция.
>>473373 >>473374 Это НЕ ТО. Это просто отдельные программы для редактирования контента. Фича РЕДАКТОРА юнити в том, что он крутится внутри движка. Blender сделан так-же. Весь интерфейс по сути написан на скриптах с использованием функций движка. И это полностью меняет принцип движка. Во-первых, это делает возможным play mode, во-вторых, ты можешь писать свои скрипты редактора, по сути создавая любые фичи движка какие угодно. Это 2 GAME CHANGING фичи. Ну еще в юнити божественное UX.
>>473378 Для ui и тригеров удобно, чтобы делегировать функции непосредственно к коду и попутно запустить еще какое говно. Вообще оно не для разработчиков сделано, а скорее для ГД или тестеров, чтобы воссоздать какую нибудь ситуацию в игре. Для продакшена такая логика все равно на плюсах пишется. Но я в прошлом посте говорил про behaviour tree и создание матеариала из микса нодов. Для дерева поведений сразу понятно что от чего зависит и что следует, когда если кодом его реализовывать, то это будет длинное полотно, где без хайлайта выделенного слова не разберешься. Еще и дебаг для него писать. А шейдеры это вообще отдельная тема, в которой разбирается еще меньше народу чем в плюсах. Для таких вещей ноды это манна небесная. Хорошо что в юнити хотя бы прикрутили конечные автоматы, потому что если в коде все эти переходы и сбросы состояний делать, дебажить, то на 10 элементе уже начнет нагреваться пятая точка.
>>473379 > по сути создавая любые фичи движка какие угодно Только то, что позволяет закрытое апи. Ты кроме юнити ничего не видел что ли? Любой популярный движок предоставляет апи для этого дерьма.
Сам пвтался рисовать - получается страшное как смерть говно. Скаченые скины - все хайтек и растягиваются. Решил пока перекрасить просто.
Пример на пике
>>473345 >А лучше всего открой игры от тех же парадоксов и посмотри как они сделали. Технически они там очень перемудрили. У них ГУИ отдельной жизнью живет, можно все поменять не перекомпилируя. Но красиво, да. И поддерживать тяжелого, пожалуй, что они там накрутили
>>473397 Хуевато. Как минимум сделай padding слева. Цвета тоже какие-то хуевые, обводка мне твоя не нравиться. Лучше бы хуйнул каких интересных темных градиентов, и небольшое затенение сзади без скругленных углов.
А вообще лучше не изобретать велосипед, а просто набери в инете стратегий и скачай скрины где виден интерфейс, рассматривай их и пытайся осознать все мелкие детали, градиенты, тени, подбор цветов, форма, отступы и т.д., в общем то, что делает интерфейс красивым.
>>473400 Серьёзно, эта простыня текста отталкивает. Я бы сделал окно меньше раза в 2-3, всё лишнее типа "finances of bla-bla-bla kingdom (you)" убрал, оставив только название королевства на каком-нибудь бэкграунде в виде флага. Процентов 80 строк заменил бы на иконки с появляющейся подсказкой при наведении. И кнопки с надписями take/put сделал с картинками. Если на пике заменить все картинки текстом в стиле "hero defence", "number of gold mines" (и убрать стильную текстуру конечно), то получится гуй типа твоего.
>>473488 >Некогда ебаться Что значит, некогда? Ты что, рассчитываешь поделку скорее на рынок выпихнуть и миллионы заработать? Разочарую, но в следующий год у тебя более 200 скачиваний не будет.
>>473496 Уеч, годот, гейм мейкер. Опенсорсные можешь даже компилировать сам, это означает что можно форкнуть и заменить там хоть рендерер, хоть физ.движок, хоть небо с аллахом.
>>473488 Каждый раз желаю пидорам со скругёлнными углами рака. Сначала ты сделаешь скруглённые углы. Потом тебе захочется увеличить отступы между строками текста. Потом ты увеличишь расстояние между другими элементами UI. На выходе получишь рак. А вот если бы твоя игра выстрелила, ты бы сделал шаг в сторону избавления от этого круглого рака.
>>473542 >Уеч, годот, гейм мейкер нет, в этих движках нет ни полноценного плей мода, ни заскриптованного редактора
>можно форкнуть и заменить там хоть рендерер, хоть физ.движок, ну охуеть теперь. а еще можно форкнуть линукс и запилить хоть драйвер, хоть рендер. речь о юзабилити. ты можешь кинуть простой скрипт в папку и создать свой редактор или изменить движок до неузаваемости
>>473623 Я все равно не понимаю о чем ты. Какой то особенный плеймод, редактор у него заскриптованный, ну ахуеть теперь. Те движки что выше приведены позволяют расширять себя так же как и юнити. Покажи уж тогда юнити скрипт который можно кинуть в папку и изменить движок до неузнаваемости, чтобы все поняли.
>>473636 >. Те движки что выше приведены позволяют расширять себя так же как и юнити. не так же
>Покажи уж тогда юнити скрипт который можно кинуть в папку и изменить движок до неузнаваемости, чтобы все поняли. ты не можешь ассет стор нагуглить? shader forge, встроенный редактор скриптов забыл как он там называется, playmaker, даже блюпринты для юнити сделали
>>473550 >Каждый раз желаю пидорам со скругёлнными углами рака. Да ты издеваешься в 2к17 у кого углу не скругленные сразу с порога обоссывают, пороги тоже скрунленные.
>>473550 >Потом тебе захочется увеличить отступы между строками текста. Только вчера сделал, лол
>>473535 >В инете есть триллионы фотографий и разных изображений, ты просто ленивая жопа Это несколь ко дней труда разбираться в чужом УГ, nah. Проект опенсорсный, кому надо - тот пусть делает
>>473494 >рынок выпихнуть и миллионы заработать НУ как профессиональный гемдев я уже состоялся заработал 70 центов в патреоне поэтому продавать это не буду
>>473644 Так лол что тут уникального то? Рендерить прямоугольник с пропертями и текстурой, а потом загонять результат в формат нужного ассета. Это обычные расширения движка, и в годоте подобного навалом и в уеч сторе.
>>473550 > Сначала ты сделаешь скруглённые углы. Потом тебе захочется увеличить отступы между строками текста. Потом ты увеличишь расстояние между другими элементами UI. На выходе получишь рак. Так вот что стало с двачем
>>473542 Чтобы это сделать, нужно в первую очередь знать, что делаешь и зачем. В тебе я вижу полоумного еблана, который не сечет, что в Unity приходят делать игры, а не ебаться с low-level stuff, чтобы получить 1.5 нс выигрыша в производительности.
>>473677 короче ты какой-то ньюфаг. юнити это революция в мире движков. до юнити ничего подобного не было и пока что еще нет, хотя юнити уже довольно старый. не то чтобы я юнитибой, мне и самому многое в юнитм не равится, просто объективно это лучший в плане юзабилити движок
>>473706 вот это манямирок. ты уже и объективную реальность отрицаешь, я смотрю. дружок-пирожок, ты просто видимо не застал время до юнити в силу возраста. да, юнити произвел революцию в игрострое - это исторический факт
>>473775 Это проблема не юнити, а физдвижков вообще. Если тебе действительно нужны очень быстрые объекты, каждый такт делай рейкаст в направлении движения длинной в расстояние которое объект может пройти за такт.
Простоя начал с себя, тяжело работял и пришел к успеху. Вы тоже так можете.
Ну хуй знает, работа вроде интересная, аналогов почти нет (в виктории - экономика ОЧЕ кривая), где то полтыщи уников было после открытия страницы на патреоне а деньги давать никто не хочет, кроме одного аутиста.
То ли им игра не нравится, то ли пиар таки нужен (а я в него не умею, да и хекка).
>>473775 >Почему в юнити объект с достаточно большим импульсом может проходить через другие коллайдеры?
Может там где то дельта тайм можно поменять, как в других движкаХ? Подробнее считать будет.
>>473780 В юнити физикс под капотом, емнип, но дело не конкретно в нём. Положение ригидбоди меняется раз в такт, и если нет никакой экстраполяции положения, то в случае маленьких коллайдеров и большой скорости, объекты могут так и не коснуться друг друга во время такта физического движка. Это фиксится continous collision detection, и оно даже вроде есть в юнити из коробки, но работает как то криво.
>>473781 Я уже понял, что дока официальная у них довольно бесполезна, если хочешь узнать что-то больше чем хеллоу ворлд. >>473783 Спасибо за пояснение.
>>473785 Вот, попробуй эту хуетень поменять. Если не сработает, лепи рейкасты вручную.
>если хочешь узнать что-то больше чем хеллоу ворлд Тем не менее на большую часть вопросов в треде ответы там есть. Если тебя интересует именно физика, то просто берёшь любой физдвижок и без задней мысли читаешь про него. Там нет каких то сумасшедших технологий и секретных знаний: все примерно одинаковы. Могу посоветовать исходники bullet, правда там плюсы.
>>473710 >Тогда скажи по твоему мнению самых ТОП-5 фич которых не было нигде до юнити. ты опять не о том думаешь. неважно какие фичи у юнити в плане возможностей движка, важно то, какой у unyti революционный редактор контента, полностью изменивший парадигму игростроя. это как писать программы в notepad.exe, а потом перейти на visual studio. вот такая разница.
>>473802 почему странный. ты по другому не сделаешь. даже если ты будешь двигать один объект попиксельно, второй все равно сдвинется на больше расстояние и ты промахнешься.
>>473829 и будет непонятное поведение, которое иногда работает, а иногда не работает. и будут толпы школьников ПАЧИМУ НЕ РАБОТАЕТ, которых каждый раз тыкать носом. ну нахуй. так серьезные дела не делаются. к тому же там наверняка с этим связаны какие-нибудь оптимизации.
>>473832 Хуимизации блядь. Напиши свой физ.движок, который просчитывает абсолютно все столкновения, даже те которые происходят между кадрами и делай на нем игру.
>>473403 >>Nerulands kingdom(you are) owns that province Ну так 3е лицо, все правильно, чего ты ссышь на меня? Nerulands kingdom(you) - хуже, (that's you) - долго и странно. А you are вполне употребимое выражение в данном контексте, кмк
Я вот клепал для челов пару раз типо полурекламные демки. По мелочи развлекался всякими системками, но до игр полноценных не доходило. Моделить умею и вот это всё. Сайтики делал там...
Но людям если например нужен на андроид разработчик игр? Хз че делать.
>>473925 Статистика по знакомым: из 4-х знакомых юнити-прогеров 3 были c# программистами и юнити в первый раз увидели непосредственно перед собеседованием. У четвертого - зарплата 20 тысяч рублей.
>>473955 У первых трех - где-то от 2 до 5 лет кодерства. У того, который за 20к работает - опыта не было, но юнити он до этого годами задрачивал и свои проекты пилил.
>>473925 > Кто работает где-то в конторе разрабом на юнити? Не сказать что прям "в конторе", то есть я в ней физически не нахожусь, а сижу дома на жопе ровно, потому что контора в паре тысяч километров от меня, если не больше. > Когда брали - какой был опыт за плечами, какие ДОСТИЖЕНИЯ? Никаких, лол. Сказали что надо будет делать и спросили потяну ли. Сказал что потяну. До этого весь "опыт" заключался в двух официальных туториалах и паре десятков говноуроков с ютубчика.
>>474059 Изначальная они пилили визуальную новеллу с простенькими сайдквестами и инвентарём. Но потом что-то у них перемкнуло и они решили переезжать на изометрию. Мне сказали что-то вроде "сорян, надо подумать чего куда, недельку покури". И всю эту неделю я надрачивал юньку чтоб не обосраться когда дойдёт до дела. И вот спустя неделю мы вкатываемся в изометрию, художник рисует, я прописываю действия/перемещение персонажа, инвентарь, лутание объектов, простенький пиздёж с НПЦ, расставляю по сцене всякое говно, которое художник пилит. И через пару недель у них опять какое-то дрочево, замена художника, несколько дней перекура. Потом новый художник вкатывается, пилим ещё одну локацию. А потом в конце января хуяк - "всё говно, переезжаем в полное 3Д и чтоб камера за плечом, ищем моделлера". Короче, одно УДОВОЛЬСТВИЕ работать с таким руководством. Я когда у них спросил где диздок - у меня переспросили "а это чё?". Так что мой опыт не в счёт, я на пионеров нарвался. Вряд ли мы когда-нибудь это доделаем.
>>474079 Руководитель всё из кошелька оплачивает. У него есть фирма с макаками, которая сайты клепает. А игра это у него так, мечта детства. Вот только он никак с этой мечтой не определится.
Привет, Анон. Как правильно делать UI, чтобы он корректно рисовался под любые соотношения сторон? А то сделал UI, который нормально показывается на 16:10 соотношении, а на остальных элементы куда-то уебывают. Поделись гайдом. С меня как всегда нихуя.
Подумываю переименовать свое поделие в Prosperity simulation вместо Economic Simulation. Как вам?
Алсо, у меня так сложилось что логика игры страны, провинции, попы и пр. сделаны без MonoBehavior. Есть ли смысл перекатывать на MonoBehavior? Что мне это даст, только простоту отладки?
А минусы? Если у меня, допустим, несколько тысяч объектов то MonoBehavior сумарно съест несколько мегабайт? Это довольно существенно тк.к я сейчас под webGL билдю. А тормозов ЦПУ MonoBehavior не даст? Например, за счет вызовов Update и т.п.
>>474105 Так юзаю же, привязал правильно, но такое чувство, что объект на месте не сидит из-за того, что скалируется неправильно. При этом текстовые полосы снизу тоже куда-то драпают при заданных якорях (Bottom/Center, в данном случае). Первая для 16:10, вторая для 16:9, например. При Free Aspect вообще треш случается. С кнопками вообще всё плохо, так как не могу подобрать нужное значение Match в Canvas Scaler, текущее 0.5. И при нём всё равно на том же 16:9 кнопка не хочет правильно скейлиться.
>>474131 Если реально дохуя объектов и у каждого свой апдейт, то как раз наоборот советуют избавляться от монобехавиора https://blogs.unity3d.com/2015/12/23/1k-update-calls/ . И почему тебе вообще приспичило, если и так все работает то лучше вообще ничего не изменять. Алсо новое название говно, нужны более узнаваемые слова
>>474150 >Если реально дохуя объектов и у каждого свой апдейт Забавно что в статье пишут что даже без реализации Update() просто перебор всех скриптов будет съедать немного мощности на десятках тысяч объектов.
>>474150 >И почему тебе вообще приспичило, если и так все работает то лучше вообще ничего не изменять Ну хз, может это плюсы дает какие, помимо простоты отладки. Я же нуб. А еще тут где то писали что при последовательном вызове одинаковых методов типа Update получается выигрыш в производительноти за счет лучшего использования кэша
>>474150 >Алсо новое название говно, нужны более узнаваемые слова Слишком узнаваемые тоже плохо. По Economic Simulation игра не гуглится совсем
>>474365 Поясню, пожалуй. Любой объект, который наследуется от UnityEngine.Object - это не только объект в управляемой среде, но также и в неуправляемой. Поэтому, когда у тебя вся эта хуйня стреляет из неуправляемой среды в управляемую, то это занимает "дохуя" времени. т.е. всякие Awake, Update, Start etc
>>474716 Я не он, но по моему имеется ввиду слой юнити, который на плюсах написан. Где ядром движка компоненты высокопроизводительно управляются, чтобы потом быть вызванными в геймлупе.
Всем привет. Почему при добавлении First Person Controller перестает работать скрипт пикрил. Вернее, не перестает, а работает через раз лол. В чём может быть ошибка? Когда FPS контроллера нет, то скрипт работает идеально. Спасибо.
>>474860 >А куда её применить-то особо ? Чтобы у бота было человеческое поведение, что бы он прятался за укрытиями атаковал из за угла, адаптировался к окружающей обстановке и т.д., а то сейчас в ААА играх боты тупо стоят на месте и стреляют.
>>475319 >лучше деньги потратить на графон и рекламу. Игровая индустрия держится на тупых наивных школьниках которым показали отрендереное видео геймплея, и уже сколько таких случаев было.
Есть кстати готовая библиотека. https://github.com/Unity-Technologies/ml-agents Unity Machine Learning Agents позволяет исследователям и разработчикам создавать игры и моделирование с использованием редактора Unity, которые служат средами, где интеллектуальные агенты могут обучаться с использованием обучения подкрепления, нейроэволюции или других методов машинного обучения с помощью простого в использовании API Python. Для получения дополнительной информации см. Страницу документации.
>>475330 Ну так это индибомжи вольные художники и могут делать душевный продукт, а ААА проекты должны ориентироваться на прибыль, чтобы инвесторы в жопу не выебали.
>>475360 вот только почему-то у инди бомжей получается примитвная шаблонная хуита, а вся душа в играх ааа разработчиков. наверное потому что игру сделать - это не чебурек спечь, и нужно дохуя ресурсов чтобы сделать хорошую душевную игру.
>>475375 Потому что 90% индибомжей хочет по-быстрому срубить бабосиков, запилив очередной "душевный" платформер-клон с пикселями. Нормальные инди-разрабы, заинтересованные в геймдеве, а не в бабле, делают интересные игры. Тот же KSP как пример.
>>475345 Пихать их один хрен некуда, в местных заготовках о трёх полигонах им места нет. И тем кто шарят в нейросетях проще найти гораздо более оплачиваемую работу чем работать в геймдеве. Единственная игра где видел применение сеток - ECHO, где клоны обучаются твоей тактике всю игру, и ближе к концу можно начинать гореть от этого.
>>475380 >Единственная игра где видел применение сеток - ECHO Не было там никаких нейросетей, тупая пидораха, поверил в Пр-хуйню? Там простой алгоритм обучения, который сам написать можешь
>ВНЕЗАПНО выяснил, что булевские переменные в дотнете не потокобезопасны >переделал своё говно, чтобы использовало interlocked >+20 фпс в рантайме, все работает как часы Неисповедимы пути твои, дотнет. Надо будет какую-нибудь книжку по шарпу купить.
>>475388 Ну ты делаешь eatPoo = true в одном потоке, работающем на одном ядре ЦП, а поток, работающий на другом ядре ЦП будет еще какое-то время не в курсе, что это случилось. И будут происходить странности, которых по идее быть не должно.
>>475390 Нахуй тебе нейросети, там? У тебя в игре лимитированный набор действий боты могут использовать (use gun, use roll, walk on water jump, open doors, etc). Ты по ходу игры ведешь статистику как часто игрок использует данный действия и при смене цикла там простая математика - что боты будут использовать в следующий раз.
Теперь сходи на педовикию и почитай применение нейросетей.
Вопрос: НАХУЯ тебе вообще нейросети для такого простого алгоритма?
>>475391 >а поток, работающий на другом ядре ЦП будет еще какое-то время не в курсе, что это случилось. Он и не должен быть в курсе о тех пор пор, пока он не: > if (eatPoo) А вот при проверке он всегда получит последнее состояние eatPoo
>>475393 >простая математика Это детектит в тебе либо разработчика ИИ мирового уровня, в чем лично я сомневаюсь, либо дилетанта, гордо стоящего на пике дурака. >use gun, use roll... Так-то я понятия не имею, о каком игоре вы спорите. Там боты применяли эти действия независимо от внешних условий и собственных координат на карте?
>>475396 >А вот при проверке он всегда получит последнее состояние eatPoo Как выяснилось, нет. Какое-то время он будет использовать кешированное значение.
>Even if operations with boolean are atomic, variable value can be stored in a cache, and so, as in multicore CPU each core has it's own cache, value can be potentially corrupted. (c) Какой-то хуй со стековерфлоу.
>>475393 >Теперь сходи на педовикию и почитай применение нейросетей А ты сходи и почитай определение, дебич. Или если ух бля сложно пиздец, нахуй, то нейросеть, а если просто, то ну бля тут просто статистика выборов и результатов, а ни нийросить!!!
Игра проста как два пальца обоссать. В течение определенного промежутка времени, игра ведет счет, как часто игрок пользуется различными способностями глав. перса и как часто совершает какие-либо действия. Например, если ты разносишь клонов в пух и прах из пистолета, но в следующем цикле, новые клоны будут активно использовать против тебя оружие и т.п. с остальными аспектами геймплея.
Нейросети тут нахуй не всрались. Посмотри пон последние презентации Nvidia на тему driver AI или распознавание лиц с помощью deep learning и сравни масштабы, блять.
>>475393 >У тебя в игре лимитированный набор действий боты могут использовать (use gun, use roll, walk on water jump, open doors, etc). Это действия тупого бота ,ты еще не учитываешь, что бот должен найти оптимальную позицию, не толпится, рассредоточится, умно преследовать игрока, прикрывать один одного, менять позицию, простыми алгоритмическими действиями такого не добиться, это уже тактика живого игрока.
>Теперь сходи на педовикию и почитай применение нейросетей. Как раз в играх их тоже применяют, смотри первое применения нейросети в доте 2.
>>475412 >Это действия тупого бота ,ты еще не учитываешь, что бот должен найти оптимальную позицию, не толпится, рассредоточится, умно преследовать игрока, прикрывать один одного, менять позицию, простыми алгоритмическими действиями такого не добиться, это уже тактика живого игрока. И причем тут neural networks и deep learning, лалка? Эти проблемы Unreal Tournament решал на ура еще в 1998 на пентиуме 2.
>>475413 >И причем тут neural networks и deep learning, лалка? А притом что с помощью neural networks и deep learning можно добиться большей интеллектуальности бота.
>Эти проблемы Unreal Tournament решал на ура еще в 1998 на пентиуме 2. Ну непизди хуйни, ничего он там не решал, в игре в каждой карте был вшитый маршрут по которым бот двигался такую саму тему я видел в картах кс, бот искал противника и когда находил, просто в него стрелял, это был просто тупой алгоритм.
>>475417 >А притом что с помощью neural networks и deep learning можно добиться большей интеллектуальности бота. Только вот в ECHO я этой интеллектуальности не наблюдаю. Такой же тупой бот.
>Ну непизди хуйни, ничего он там не решал, в игре в каждой карте был вшитый маршрут по которым бот двигался такую саму тему я видел в картах кс, бот искал противника и когда находил, просто в него стрелял, это был просто тупой алгоритм. Проблема решена? Решена. Что бы было понятнее - в ECHO уровни не генерятся рендомом, навмеш повесить - не проблема.
>>475412 >бот должен найти оптимальную позицию, не толпится, рассредоточится, умно преследовать игрока, прикрывать один одного, менять позицию, простыми алгоритмическими действиями такого не добиться Это называется utility AI и прочие. Как раз-таки сложнее этого добиться нейросетями.
>>475425 Чому тебе так неприятно от мысли, что кто то может использовать нейросети в своих играх? Если поведение бота выглядит хуево, то это скорее претензия к разработчику, что он подобрал уёбищно коррелирующие между собой входные данные или наоборот переобучил модель что она у него и целиться и ходить и хуй дрочить должна, а не самого подхода применения машинного обучения в играх.
>>475437 Да оставь ты его. У этого болезного одной из характеристик нейросети является масштабность использования и миллионный бюджет. Бесполезно что-либо доказывать, если он ссылку с юнитевской ml бетой открыть не смог.
>>475462 Да и хрен с ними, уже проверенно что чем умнее противник в игоре - тем выше порог вхождения. А тем меньше продажи, потому что большинство игроков тупое быдло не любят когда ИИ ебёт их по тактишу.
>>475511 Потому что это игра, а не испытание. Большинство хотят красиво выигрывать у интересного противника, а не ловить пиздюли ещё и в виртуальном мире.
>>475532 Игроки воспринимает агрессивного противника как интересного, можно сделать элементарный скрипт по заходу противника за спину игроку пока стреляет другой бот, и это уже будет ядерный тактиш для игроков, доказано Fear и Halo в бородатые времена без всякого рокетсаенса
>>475538 В фире было даже проще, чем кажется. У ботов был приоритетный таск перебегания в новый кавер поближе к игроку. Просто иногда случайно эта позиция оказывалась на фланге игрока. АИ фира сделали в большей степени левелдизайнеры, а не погромисты.
Интересный противник не обязательно должен быть агрессивным. Интересный противник тот, который не превращает противостояние в рутину. Поэтому часто делают не особо умных противников, а очень много разных типов противников с разными особенностями. И все довольны.
Парни, драститя Мне нужно из кода создать много ректанглов поэтому и из кода, я их в пуле держу с текстом внутри, причём высота и/или ширина зависят от текста. Наверное, это можно представить как бабл с болтовнёй в комиксе. Допустим, у меня будет ограничение размера по горизонтали. Как мне вычислить размеры текста? При создании в первом фрейме сделать бесконечную высоту, вставить текст, и вытащить из cachedTextGenerator-чего-то там в следующем фрейме? За один фрейм можно?
>>475555 То что они хотят сделать можно сделать и без нейросетей. Вообще любой АИ можно размотать в фсм, даже тот, который ты обучишь нейросетью. Разница в простоте заполнения. Но любой АИ - лишь инструмент, он сам по себе не даст интересного геймплея, как мощный рендер и два титана не дадут крутой картинки.
>>475532 >Потому что это игра, а не испытание. Для тупорылого ленивого быдла это так и есть, а для меня это испытание в этом и есть интерес игры чтобы превозмогать, но игроделы заискиваются перед быдлом чтобы срубить бабла, в этом минус капитализма что все делается не ради принесения пользы людям а для того чтобы стянуть как можно больше денег любыми лживыми способами.
>>475579 >Для тупорылого ленивого быдла Заёбывающегося где то ещё, чтобы в свободное время поиграть самому или с друзьями, пока илитарии ставят мировые рекорды в игорях.
>>475611 По сути если анализировать геймплей, то игра просто просит игрока выполнить какое-то действие за короткие промежутки времени и наказывает его или награждает. То есть это обычное запоминание. Игра в память.
>>475628 Не, там больше интуиция работает, по крайней мере, в первый раз и не на начальных уровнях. Начинаешь аккуратно за углы заглядывать, чтобы не нарваться на ловушку или засаду, осматриваешься вокруг врагов и всё такое. В большинстве игр к концу рофлстомпишь, а тут от самого начала и до самого конца напряжение. И самое забавное, что даже ИИ не нужен. Левелдизайн всё за программиста делает.
>>475610 Я вообще-то против нейросетей в геймдеве, избыточно >>475611 Ну извините, это единственная категория современных игор которая хоть как-то наказывает игрока за невнимательность и необдуманные действия. За что и имеет статус "сложной" у игроков.
>>475630 Так абожжи, я думал что дурка это пойти и навалять тому пидору, и ещё тем трём, которые выбежали сзади, а ты и не знал. Как у тебя всё хуёво то. Тебе бы "найди пару" игори делать самое то.
>>475649 >я думал что дурка это пойти и навалять тому пидору, и ещё тем трём, которые выбежали сзади Это просто нарратив. А геймплей это "найди пару" с ограничением по времени
>>475657 Не люблю примитивистов вроде тебя. Вас послушать, так и общества на самом деле нет, а есть только индивиды. Дурка - это отрицать преображение количества в качество.
>>475636 Не понял смысла васянства рокет саенца с создаваемыми ректанглами и текстом, если это всё через гуй создаётся и автоматом под текст растягивается
>>475665 Во-первых, создаю из кода, во-вторых, размер ректангла зависит от текста, а не наоборот. Ещё есть момент с разбитием текста на тексты поменьше чтобы создать разноцветный кликабельный текст, но это я сам могу
>>475666 >Во-первых, создаю из кода Гуишные элементы ты тоже можешь создавать из кода и позиционировать на экране >размер ректангла зависит от текста, а не наоборот Всё что можно натаскать мышой в гуй спокойно собирается кодом https://youtu.be/W4tUQr9Tv3g
>>475676 Выглядит как то, что нужно, спасибо. В другом месте использовал методом тыка контент фиттеры и форс экспанды, а оно эвона как работает. Этот ваш юзер интерфейс какой-то жуткий и монструозный. Вроде бы всё есть, но в то же время ничего нет. Знаете, как отличить пошаговую тактику/стратегию на юнити от нормальной стратегии? Тем, что при наведении мышкой на интерфейс клетки под мышкой продолжают подсвечиваться сквозь интерфейс.
>>475657 Да, только казули забывают посмотреть за угол и им сложно, потому что секундомер не запустился, будильник не сработал, метеорит драконов уничтожил, а кто-то просто получает удовольствие от геймплея. Нравится видеть квадрат вместо круга и представлять, что это треугольник - пожалуйста, на здоровье.
>>475629 >тут от самого начала и до самого конца напряжение Как человек прошедший все части не согласен. Игра своей механикой, атмосферой и сюжетом держит. Она учит осторожности и терпению и всего-то.
>>475684 Так делай игру под казуалов, в чем проблема-то. Вообще не понимаю, зачем подстраиваться под конкретную ЦА в 2к178, когда вокруг всяких Dwarf Fortress собираются нормальных размеров коммюнити, жрут ASCII и еще просят.
>>475755 >жрать говно Такое себе отношение к людям, которые потенциально могут купить твой продукт. Люди разные, и играют в игры по разным причинам. Кто-то ради челленджа, кто-то ради аутизма, а кто-то ради эмоций.
Сап, гайз. Нужен кто-то кто шарит в особенностях разработки под ведроид. Суть проблемы такова: есть 2 плагина, каждый из них требует в манифесте указать его как <application android:name="XXX"></application>. Что делать?
>>475755 Где-то сейчас обсуждают сраный батон, который ты покупаешь просто потому что надо на что-то колбасу положить, и говорят: "Вот говноеды, покупают эту пародию на выпечку".
Какая разница, кто там говноед и казуал. В первый Deus Ex все еще играют, потому что DOOSHA. Лучше Postal 2 лично для меня еще ничего не сделали (в этом жанре), с удовольствием отсыпал разработчикам 300 шекелей пару лет назад.
На твое поделие покупатель найдется. Осталось только сделать!
>>476134 >кто-нибудь юзает вуфорию Без задач, если только мотыгу сделать с анимациями на столе. AR-очки стоят как чугунный мост, а смартом тыкать не очень
>>475680 Всё-таки сам не смог Собрался делать химеру: спавнить весь текст, чтобы сгенерировать vertices, затем разбивать текст на составные части с разными стилями и расставить их как нужно по найденным уголкам. Выглядит тупо, ведь я много раз собираюсь генерировать один и тот же текст, но без этого походу никак, ведь мне заранее надо знать, где будет проходить разделение строк в тексте. Каким образом текстгенератор отрисовывает буквы на экране? Я что-то в самом тг ничего не нашёл такого. Или он только высчитывает эти самые vertices? И если да, то, видать, можно сразу же скипать первоначальный текст и без посредников юзать тг? Есть тут подводные камни вроде, например, появления текста в ебенях за пределами экрана?
>>476188 Схемы не нужны. Я использую текст, чтобы найти положение слов, затем текст убираю и спавню вместо него текста поменьше по положениям слов. Таким образом отдельные слова можно в любой цвет красить, находить, по каким из них мышка кликнула, етц. Текстгенератор тут должен дать координаты.
>>476189 Я понял, ты хочешь гиперссылки и хорошую вёрстку. Тебе надо TextMesh Pro навернуть, я думаю большинство твоих проблем оно решит будет в составе дефолтной юньки в этом году
>>476198 Ты всё понял, но всё равно не говоришь, что делать с текстгенератором. Всю эту ерунду и пятиклассник осилит, но я боюсь что-либо трогать, а не то вдруг всё развалится. >>476199 Обожаю этот совет новичкам, писать диздоки. Какой же он охуительный - заставляет очередного простофилю помечтать и потом, не мучая жопы, забыть.
>>476205 >что делать с текстгенератором Я всё ещё не пойму каким образом оно у тебя генерирует текст и как потом поверх накладывает текста меньше, есть какие-то опорные слова ? >Таким образом отдельные слова можно в любой цвет красить Отдельные слова и так можно красить через Rich text <color=#00ffffff>Слово</color> >находить, по каким из них мышка кликнула Гипперссылки, опять же тегами, но только через аддон https://answers.unity.com/questions/1361870/text-mesh-pro.html
У меня уже ощущение что я какой-то фильтр к бд выдумываю
>>476228 Насколько я понял, текстгенератор не показывает сам текст на экране, он только рассчитывает, сколько места займёт текст, какая позиция будет у какой буквы при заданных условиях. Представь, что мне нужно вставить в обычный текст эти ваши гиперссылки с крашеным текстом, причём отдельные выделяемые фразы могут переходить с одной строки в другую - т.е. мне обязательно нужно знать позиции слов в тексте, чтобы потом его в нужных местах обрубить и вставить. >через аддон Я уже перешёл Рубикон велосипедирования этой проблемы. Опять же, спрашиваю я про особенности механики текстгенератора, а не про способ воплощения моей задумки. У меня очень горит от баготестирования, поэтому я и спрашиваю про то, на что можно наткнуться по незнанию.
>>476231 Нет, вот всё что ты хочешь без внешнего костылепроизводства не получится, собственно я и в других движках никогда не наблюдал детального апи для манипуляций с текстом. Это наверное разве что в каких-нибудь движках параходоигр есть где много текста.
изучаю значит навигацию. Можно ли присобачить этот куб к панели, чтобы персонаж и по кубу мог ходить? bake не видит куб. Нижняя панель и наклонная приклеились, а вот куб не коннектится
>>476244 я пытался аккуратно их соединить, чтоб прям совсем рядышком края соприкоснулись, но видимо я что то не то делаю. Как вообще в юньке соединяются объекты для pathfinding area? Или нужно, чтобы проходимая область была цельной?
>>475383 Играл я в это ECHO. Никакого САМООБУЧЕНИЯ там нет. Есть игровые циклы. Есть строго ограниченный набор действий у игрока, и почти такой же у ботов. Допустим мы только начали уровень. Если игрок спринтанёт, перепрыгнет через препятствие и шмальнёт из пушки, то на следующем цикле боты будут спринтавать, будут перепрыгивать и будут шмалять. Если мы на этом цикле не будем делать нихуя, только прятаться и скрытно убивать ботов, то на следующем цикле боты будут девственно чистыми тупыми зомбарями потому, что в прошлом цикле мы не делали ни одного действия, которое включает у ботов их функции (прятаться и скрытно убивать они не умеют). Никакими нейронками тут и не пахло. Никакой сложной математикой тут и не пахло.
>>476404 >Таким и ракету в космос запустить изи, запалил топливо, бдыщ и там чот улетело. Нет, не изи. Впрочем, как хочешь. Можешь и дальше считать, что написание примитивной игровой логики - это нечто невероятно сложное.
Я например, ИИ вообще почти не делал потому что некогда и не умею, только рандом и восставшее население заставляет правительства делать реформы. И ничего, работает. Можно даже проиграть такому противнику если не знать как все механики работают.
Чем отличаются данные объявления? public static float? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, float?> selector); public static float Average<TSource>(this IEnumerable<TSource> source, Func<TSource, float> selector);
Если конкретнее - ну хз, я тут намедни пытался тестурки для окон-кнопок рисовать безуспешно, так как не умею. Хотя, с другой стороны, скины можно где то и найти готовые, хотя и тут я не преуспел. Иконки вроде как не нужны пока, мне проще словами написать, а переделывать текст под картинки - куча работы.
Парни, объясните неграмотному татарину в чём косяк. Unity 2017.3. Есть две кнопки: Plus и Minus, одна прибавляет к переменной "suka" 1.7f, другая отнимает 1.7f. Если пару раз нажать на Plus и пару раз на Minus, suka = 0. Но если нажать более двух раз, например три раза на Plus и три раза на Minus, переменная suka становится равной какой-то хрени 2.384186E-07, что за тупость то?
>>476659 Округляй свою суку и будет тебе счастье. > suka = (float)System.Math.Round (suka, 2); Вместо двойки можешь влепить другое число, но желательно не больше пятёрки, а то опять вместо нуля говно будет.
>>476721 Я правильно понимаю, что точность в таком случае будет обеспечиваться большими числами? Вместо float 1,35 будет int 135, которое при необходимости можно будет поделить на 100 для подстановки в функцию с float-аргументом?
>>476726 > Вместо float 1,35 будет int 135, которое при необходимости можно будет поделить на 100 для подстановки в функцию с float-аргументом? Чего-чего? Decimal вполне себе работает с плавающей запятой, главное на дробные числа пиздрячь суффикс m (как f в случае с float) и компилятор это схавает. Например > decimal yoba = 10; > yoba += 1.63m; > print (yoba);
>>476729 > decimal это значит тоже float, но поменьше? Эммм... Ну, можно и так сказать, но это утверждение неверно. Это просто другой тип данных. У decimal меньший диапазон, в отличие от того же float, но выше точность.
>>476737 > Не проблема сделать любую желаемую точность даже на int Даже в этой >>476706 статье написано > If you have no decimal datatype available, an alternative is to work with integers, e.g. do money calculations entirely in cents. But this is more work and has some drawbacks Так что заниматься таким извратом следует только если decimal по каким-либо причинам не доступен.
>>476773 Любая и не нужна. В большинстве случаев достаточно инженерной точности (три знака после точки). Три знака это 999, это 4 раза по 250, это 8+3=11 разрядов. И ещё у нас останется 32-11=21 разряд для целой части. А если ещё взять int64...
>>476231 >>476239 Докуриваю свой велосипед с текстом. Глянул я на это дело очень подробно, и понял, что мои ухищрения с текстом должны работать, НО будет лучше перепрыгнуть заданную планку и сразу перейти к последовательной генерации текста с учётом размеров, шрифтов и т.п. Сейчас я беру базовый стиль текста, вырезаю из него куски, чтобы сделать из них кнопки, и это всё меняю. Но ведь будет лучше, если сразу генерировать весь текст соответственно стилям кусков! Вот только одна беда - как сделать перенос по строкам, если текст начинается не с самой левой позиции? Например, пикрелейтед. Текстгенератор генерирует текст одного стиля и этот текст находится в заданных рамках, а тут эвона как. Можно тут схитрить и, например, перед первым знаком нового стиля вставить пробел размером в нужное количество пикселей, чтобы текст генератор генерировал с нужным отступом от начала? Если да, то как такое задать?
Хочу сделать физичную анимацию 3д человечка, посоветуйте, направьте плес. Пытался через жоинты, но они не вариант, крутил всевозможные настройки как тварь, результат меня не устраивает. Есть два стула: убрать парентинг со всех частей, и написать свою физику, потому что парентинг сильно мешается и он не такой гибкий как хотелось бы, например когда мне надо чтоб конечность наследовала только перемещение а не поворот и тд.
оставить парентинг, расставить по умному ик всевозможные, грамотно организовать анимацию
>>476925 пока человек сам двигается, все ок, спокойно анимирую обычным способом. Но если надо чтоб чел, например, процедурно пошатывался если в него прилетит ящик или если закрывается руками, то в случае удара в них пошатывались они. Вот и думаю как повесить ик на руки и в случае удара двигать ик точки, так же со сем остальным. Ну или расчитывать положение всех частей в зависимости от того куда действует сила.
>>476844 Так, оказывается, rich text в юньке-то работает. То гугл говорит, что не работает, то что работает, лол, а я велосипеды горожу, когда можно текстгенератору скормить текст с разметкой и порезать результирующие vertices нужным образом. Энивей, хочется знать, можно ли сделать отступ нужной длины в флоатах, пикселях, етц от начала строки. Для общего развития.
>>476977 Нет, у меня фобия дебаггинга. Как представлю себе чувство разочарования от того, что придётся в коде выискивать баги, так паническая атака начинается. >>476979 Пишут, что нужно в Text компоненте разметку делать, чтобы заработало. Мне на этот момент похуй, я делаю меш из сгенерированного текста, в материал фонт заношу и через канвасрендер ебошу "напрямую".
>>476981 SendMessage это существующая только в юнити херня для местной только юнитовской системы ивентов. Я не пробовал этой чуши, но вроде бы к ивентам "прислушиваешься" через listener'ы, а ещё говорят, что это очень медленная хуйня. Через точку показывается ссылка (или как там), т.е. если в классе есть какая-то функция/переменная, то через класс.переменная можно до неё добраться если уровень защиты позволяет. У тебя и там, и там какой-то метод. У методов есть return value, если void, то не возвращается ничего, если что-то другое, то обязательно должно возвращаться значение такого типа.
>>476981 > это называется передачей сообщения, так? Это называется вызов метода. Передача сообщения - это когда ты шлёшь команду и если у слушателя она есть - слушатель её выполняет.
>>476983 Но ведь вызов метода подпадает под твое определение шлёшь команду и если у слушателя она есть - слушатель её выполняет Невозможно выполнить метод если его нет у исполнителя
Вот меня эта теоретическая часть интересует, не в терминах C# или юинти.
Получается что GetSomeValue() это тоже передача сообщения (команды). Собщение, говорящее что надо прислать обратно какую то информацию.
>>476985 Нет. Я ж говорю, SendMessage - это юнитовская херня в базовом классе для юньковских объектов, чтобы можно было по передаваемой в поток стринге (с названием метода или класса или чего там) определить, нужно ли вызывать какой-либо метод через listener. Можно такую же хуйню на коленке закодить. Ты путаешь специфическую юнитовскую особенность с программированием в целом, ясно?
>>476985 > шлёшь команду и если у слушателя она есть - слушатель её выполняет Нет, ты не понял. Если ты попробуешь вызвать метод, которого нет, то тебя компилятор нахуй пошлёт. Это раз. Два - у нескольких объектов может быть метод с одинаковым именем и рассылка сообщений запустит каждый из них. Три - сообщения рассылаются объектам, а не компонентам.
>>476996 OnCollisionEnter2D(Collision2D col) { if (col.GetComponent<Player>() != null) { Destroy(this); } >>476997 Вся суть мамкиных гейм-дизайнеров. Сидел бы в своем загоне, нет, надо до соседей доебаться.
Я не пойму на кой черт нужна реализация EventManager? Если смотреть на скрины видно что уменьшая здоровье я посылаю уведомление обетом в EventManager а в EventManager вызывается OnHealthChange, нахуя весь этот гемерой если я могу например напрямую вызывать этот метод без это ебанистики?
>>477139 Ну, хп можно и напрямую понижать. Это же просто пример. Суть ивентов в том, что объекту, который запускает событие, не нужно знать ничего про объекты, которые ивент слушают. Допустим, ты пилишь пошаговую боевку, где UI выводит сообщения: "Орк Ашот атакует Эльф Джонни". Орку нахуй не нужно знать про то, что есть какой-то там UI, он просто событие OnAction() с собой, целью и значением урона/дебаффа/хуйни. UI это слушает, отображает на экране. Ну или игрок сдох. Класс игрока просто отправляет OnDeath(). UI выводит красивый гамовер на экран, мобы потешаются над трупом, ну или как минимум не стреляют в него.
>>477139 При ударе по хп может произойти гораздо больше событий, чем просто снижение здоровья. Не будешь же ты каждый раз перечислять с ифами и эльзами все возможные варианты, верно? Лучше подписывать и отписывать от ивента методы.
Посоны, поясните, пожалуйста. Можно ли в Unity делать базовые объекты, как это сделано в том же Godot'е, к примеру (т.е. я создаю новую сцену, в качестве корневой ноды выбирают Node2D и пошло поехало..., сохраняю сцену и потом из ассетов могу перетянуть ее на сцену, как новый объект)
есть класс Game { ... static public readonly Market market = new Market(); } В другом классе есть обращение
static Product() { Game.market.SetDefaultPrice(item, item.defaultPrice.get()); } И тут выпадает эксепшен что маркет == null. Разве не должно это поле инициализироваться при первом обращении? Как сделать правильно?
>>477312 Я понил. У меня внутри неявной инициализации рынка происходила неявная инициализация продукта котороя обращалась к недоинициализированному рынку и крашилась.
Таки как нормальные погроммисты управляют порядком инициализации? Пихать все в статические конструкторы ОЧЕ не хочется.
>>477314 Сделай так, чтобы продукт не обращался к рынку. Вообще хорошим тоном считается, когда рынок вызывает методы продукта, а продукт просто хранит и обрабатывает своё внутреннее состояние, ничего не зная о том, что происходит вокруг.
>>477821 Они все как минимум не низкоуровневые, этот пробилдер мне так много раз свет ронял что пришлось выковыривать его геометрию и вставлять уже мешем, но если его адекватно перепишут - норм
>>477653 Это хуево. Зачем-то встраивают функционал обычного 3D-редактора в движок. Вангую, что для нубья запилили такую фичу. Готовьтесь к волне наплыва Лоу-поли игр с уродливой графикой в стор. Нахуя на это время и ресурсы тратить не понятно.
>>477861 >Вангую, что для нубья Наоборот, это для прототипов, крупные компании не хуярят сразу всё 3D-редакторе, им всю геометрию уровней под геймплей переделывать по триста раз
>>477861 Нубье как раз делает наоборот - сотни тысяч полигонов на каком нибудь простом унитазе. Тут недавно один дегенерат тред создавал, где у него сцена тормозит с 70 танками, по 100 тысяч полигонов в каждом. Юнити еще больше окунется в русло "неоптимизированного", "тормозящего" движка.
>>477861 ты не понимаешь сути. это отличные иструменты для левел дизайна, чтобы не лезть каждый раз в 3д редактор изменить камушек. можно делать охуенные вещи. там собственно особенно интересн polybrush
Сап б, есть одна модель в блендере, которая при импорте в юнити почему то не отбрасывает никаких теней, хотя раньше отбрасывала да и если откатится на 5 часов работы над ней назад, то опять начинает отбрасывать. Асло у модели, которая не отбрасывает тени, почему то нет превьюхи, вместо нее серый квадрат. Гугол не помог. Методом тыка выяснил, что при импорте модели в сцену какого то хуя ломается Directional Light, и тени пропадают на всех моделях в той сцене, куда загружена сломанная. Как уже пытался фиксить: Заимпортил модель в новый проект блендера, и экспортил из него. Заменил все материалы из работающей модели в неработающую. Ничего не помогло. На первом пике то как должно быть, а на втором - то как есть. Вопрос конечно скорее по блендеру, чем по юнити, но блендер треда тут нет.
>>477991 Но никаких новых графических фич я не добавлял. Я часто мисскликаю и мог тригернуть какой то шорткат, который что то добавил, но вот только что именно? Настройки материалов и текстур в работающей и неработающей модели идентичны.
>>477992 Ты все настройки включил в unity которые связаны с тенями? Добавил для этого нужный компоненты? Попробуй удалить все компоненты unity из модели и снова добавить.
>>477996 В юнити ставил нормалы в калкулейт, тангетс в легаси, ничего не помогло. Дело точно не в юнити, а в самой модели, поскольку если в сцену к работающей моделями с тенями добавить эту, то у ВСЕХ моделей пропадают тени. Убираю - тени возвращаются. В блендере я не особо разбираюсь как и в юнити, поэтому все что мог - просто скопировать все настройки из работающей модели в сломанную, ну и в чистый проект модель залить и из него экспортить, ничего не помогло.
>>478023 Проблема в этих шести фейсах, которые на скрине удалены щас. Без них модель работает нормально, если восстановить любой из них - херится. Это что, битые фейсы? Такие бывают?
Пофиксил тем, что заимпортил лицо работающей модели и заменил им сломанное. В принципе, мог сразу это сделать, но хотелось понять какого хуя так происходит и где накосячил, что бы потом не ошибка не повторилась. Но я так нихуя и не понял.
ГДач, есть сайт где можно найти сурцы проектов? Типа для новичков, потыкать в код там, посмотреть как работает. думаю, в ассет сторе есть, но там платно :(
Собственно, сабж. Нужно собирать несколько разных версий игры с разными моделями/текстурами, но создавать дубликаты сцен вручную не хочу. Как это автоматизировать?
>>478114 Эмм... я мимокрок, но например, ты не мог бы делать префабы со скриптом, который позволяет выбирать папку с моделями при инициализации префаба? Такое в юнити возможно?
Есть сто объектов, созданных по Instantiate(prefab). Задача: каждый из этих объектов должен уметь запускать функцию из скрипта другого одного единственного объекта, которые всегда есть на сцене.
Для этого я к префабу добавил скрипт, в котором в Start() происходит следующее: anotherScript = GameObject.Find("Another").getComponent<Another>() Теперь каждый из объектов может делать такое, что мне и надо anotherScript.ThisFunction();
Но, я правильно понял, что этот данный поиск выполниться столько раз, сколько всего я создам объектов (в моем случае 100 раз)? Сотню раз находить один и тот же объект как то тупо
>>478182 Значит сделай префаб из того объекта, который у тебя всегда на сцене и из которого вызывается скрипт. И потом сериализуй его уже в том префабе, который ты 100 раз вызываешь. Префаб в другой префаб можно сериализовать.
>>478179 или ты имеешь ввиду, когда я делаю Instantiate, то созданным объектам сразу же записываю в свойство нужный скрипт? Типа obj = Instaniate(...); obj.script = AnotherScript ??
>>478185 > obj.script = AnotherScript Можно просто передавать в скрипт свой контроллер, из которого ты потом скрипт вызываешь. Типа > obj.GameController = this.gameObject; А можешь и сам срипт сразу передать. Сложно гадать как сделать лучше, не зная что именно там у тебя происходит.
>>478186 >что именно там у тебя происходит Ну кароч, я создаю кучу шариков из префаба, и когда какой-то шарик попадает в определенное место на сцене (когда у него срабатывает triggerEnter), надо сообщить об этом главному скрипту, что один шарик готов.
Главный скрипт присоединен к пустому gameObject, в нем у меня идет слежение за игровым процессом
>>478192 > когда какой-то шарик попадает в определенное место на сцене (когда у него срабатывает triggerEnter) Так нахера тебе в шарике это всё проворачивать? Прикрути скрипт к тому объекту, на котором висит твой триггер-коллайдер. Пусть скрипт на старте находит твой геймконтроллер, а потом при triggerEnter проверяет, если столкнулся с шариком, то в контроллере вызывается метод.
>>478186 Нашел еще вариант, добавить статичное свойство gameObject Another, и при Start() проверять, если он не установлен, то уставливаем. Получается, что он только один раз установится
>>478239 Я изучаю архитектуру делая игру. Да и иигра у меня сложная, можно и обосраться с излишним доступом
>>478255 >>478235 наследие не поможет - отношение один к многим вложение - кривая архитектура будет т.к. оба класса достаточно обширны
На самом деле можно - через события. Только медленно. Т.е. один класс рейзит событие, второй класс обрабатывает событие. Т.е. первый класс вызвал метод второго даже не зная о его существовании. Только ЦПУ много съестца.
Речь идет о событие Эпередача провинцииЭ в Стране. Если каждая провинция подпишется на это сообщение, то при его возникновении каждой провинции (100-500 штук) а про нее ли вообще речь. Ассуминг событие статическое. Я так вижу, поправьте если что.
>>478233 >>478278 Сделай в методе проверку по ключу. Если вызывающий класс имеет ключ, метод возвращает результат, если нет ключа, метод возвращает ПУСТОТУ.
>>478278 >Эпередача провинцииЭ в Стране Если ты тот чел что делает ту економическую стратегию в опенсорс, то АСТАНОВИСЬ, выведи хоть свою графику на поверхность для дезигнеров ты всё в код пихаешь, у тебя скоро будет нередактируемый Dwarf Fortess
Ананасы, нужна ваша помощь, скорее всего я просто дэбич. Проблема:
Я кидаю нож в дерево, нож при попадании в дерево становится его ребенком. Нож имеет тэг "Knife", дерево имеет тэг "Log".
Фишка в том, что по смыслу геймплея игроку нельзя попадать ножом в нож, но если я попадаю ножом в нож, то рейкаст выдает тэг родителя - Log.
То есть если коллайдер является ребенком другого коллайдера, то его тэг автоматически становится таким же, как и у родителя.
Внимание вопрос: где я натупил, потому что это как то совсем нелогично. И если я все же не натупил, каким образом мне узнать тэг ребенка тупым рейкастом в этого ребенка?
>>478334 Нашел ответ почти сразу после того, как отписал сюда. Сори за то, что воду мутной делаю, иногда описать свою проблему так, будто бы просишь кого-то помочь с ней, намного больше помогает, чем раздумья в голове.
Если кто-то вдруг когда-нибудь столкнется с данной проблемой: Коллайдер ребенка рассматривается как часть (или дополнение) коллайдера родителя, однако трансформ коллайдера нет. Одним словом, проверять нужно не тэг коллайдера, а тэг его трансформа. hit.collider.transform.tag вернет нужный тэг а hit.collider.tag или hit.transform.tag вернет тэг родителя. Со вторым примером как-то мутно, но я проверил, возвращает лажу.
>>478339 >насколько я дэбич. По всей видимости, не зря. Ты дебич потому что ты так думаешь а не потому что не можешь реализовать какую то фичу, даже Билл Гейтс не сразу стал профи программирования, его родители отдали в элитную школу где был компьютер и где он днями и ночами учился кодить а потом уже начал на этом зарабатывать, профи не рождаются профи стают через тяжелый усердный труд.
>>478331 >В контексте Unity (C#) это делегаты. Либо я тебя неправильно понял, тогда объясни другими словами Да, точнее - events (которые и есть делегаты)
>>478332 >у тебя скоро будет нередактируемый Dwarf Fortess Но чему же, я трачу до половины времени на рефакторинг
>>478332 >Если ты тот чел что делает ту економическую стратегию в опенсорс, то АСТАНОВИСЬ, выведи хоть свою графику на поверхность для дезигнеров Чего там выводить то? Текстурки, я вижу ты нарисовал. Там есть у меня класс GUIChanger он перебирает все элементы ГУИ меняя цвет дефолтный цвет на цвет мочи. Пару строк добавить и он будет автоматом менять шрифты и спрайты кнопок и пр. элементов.
Ты не форкнул репо на гитхабе? Было бы интересно посмотреть в игре твои спрайты. На скрине пока не супер-пупер, но интересно.
Как проще всего рисовать стрелки типа пикрил, (для начала - прямые)? Прихуячить квад и обмазать текстурой стрелки? Причем, одновременно может быть много стрелок (визуализация миграции).
>>478646 Разве что под правую кнопку мыши сделать. А то у парадоксов неудобный скролл.
>>478904 Проще всего через linerenderer, но на пике скорее всего квад > одновременно может быть много стрелок У одного юнита? Это что за механика такая, вроде у парадоксов такого не было
>>478907 Одновременно может быть много стрелок, если выделяешь ячейку, в которой много армий и они идут в разные провы. На пике вообще клаужевиц энджин, если что мимо другой анон
Сап, братья. Есть ли среди вас профи, которые смогут накатать 1-20 строк кода на определенные задачи, чтобы разобраться с кое чем раз и навсегда? Я новичек, и только разбираюсь в unity. Сейчас меня интересует устройство физики на примере 2d платформера. Поизучав всякие статьи, документации и прочее, я усвоил следующие правила для хорошей оптимизации: 1. Динамичечские коллайдеры (объекты с Rigidbody) должны перемещаться только с помощью средств физического движка, по приоритету оптимизации в следующем порядке: -применение силы - методы AddForce и AddTorque; -изменение скорости - свойства velocity и angularVelocity; -координаты объекта - MovePosition и MoveRotation; 2. Статические коллайдеры (без Rigidbody) двигать нельзя. 3. Нельзя применять к объектам с присоединенным коллайдером метод transform. Это все касательно того, как всё-таки правильно двигать ГГ, пули, врагов и платформы. Теперь мои задачи: 1. Реализовать перемещение ГГ по оси x. 2. Научить его прыгать, высота прыжка должна зависеть от продолжительности нажатия клавиши, и должна быть фиксированная минимальная и максимальная высоты. 3. Перемещать платформы. 4. Реализовать способность отталкиваться от стены в прыжке. Насмотревшись мануалов с ютуба, я все это реализовал, но через transform, только потом узнал, что с точки зрения оптимизации это не верно. Теперь у меня проблема, какой из трех способов воздействия на объект выбрать для каждой моей задачи. Если применять тот же addForce, гг начинает скользить по земле даже после того, как я перестаю жать клавишу. Пытался добавить трение земле, но получается все равно не то. Тогда что, использовать скорости velocity? Вообщем мне бы коротенькие примеры кода, где условный кубик бегает по земле, прыгает в зависимости от продолжительности нажатия клавиши, перемещается на движущейся платформе, атакует другой кубик, который отскакиваети т.д. весь минимальный набор обычного платформера. Что важно, всё это должно быть выполнено с правилами оптимизации и экономии ресурсов, и выглядеть реалистично. Вообще в идеале повторить бы физику из того же Hollow Knight. Я не могу найти хорошие и понятные туториалы, может добрый анон с большим опытом накатал бы за пару вечеров такой пример? Кто если не мы будем поднимать отечественный геймдев с колен.
>>479563 >Насмотревшись мануалов с ютуба, я все это реализовал, но через transform, только потом узнал, что с точки зрения оптимизации это не верно. Нет ничего неверного. Мухи - отдельно, котлеты - отдельно. Хочешь, что бы движок за тебя физику обрабатывал? Играй по его правилам. Можешь сам свою 2D-физику написать? Тогда чо хочешь твори, хоть трансфорт хоть нетрансформю
>>479573 Ну пишут в книжках и в документации, что если передвигать объекты с rigidbody с помощью transform.position, то при каждом перемещении каждый раз будет происходить пересчёт физики, что сильно влияет на производительность, в несколько раз. Просто таким образом устроен физический движок и всё тут. На пикче тест, слева движение 20 бокс коллайдеров с помощью rigidbody2d.MovePosition, справа — движение через transform.position
>>479611 >что если передвигать объекты с rigidbody с помощью transform.position, то при каждом перемещении каждый раз будет происходить пересчёт физики ЧТО где пишут кто пишет Что за чушь. Это static objects с коллайдерами но без RB кэшируются, RB же обрабатываются как динамичные, чем бы ты их там не двигал.
>>479628 Так тебе кроме if-else ничего и не нужно.
Логика самого инвентаря состоит из List<Item>, AddItem(Item item) и RemoveItem(Item item). Проверяешь только, чтобы несуществующие вещи не удалялись.
В MonoBehaviour для UI просто складываешь в пул пачку префабов, обновляешь их при активации окна, отображаешь те, которые не null. Я сделал эти префабы кнопками, которые в разделе сбоку отображают статы (но это у меня юниты, у которых надо смотреть на характеристики, перки и прочую поебень). Можешь сюда же прикрутить сортировку, сравнение с экипированной шмоткой.
Начни разбираться, гугли конкретные вещи, через какое-то время постигнешь локальный дзен в том или ином вопросе а потом забудешь нахуй все, потому что ты ленивый мудак и не открываешь юнити по два-три месяца.
>>479730 >а потом забудешь нахуй все, потому что ты ленивый мудак и не открываешь юнити по два-три месяца. ПРОЕКТИРОВАЛ ПРОЕКТИРОВАЛ ДА И СПРОЕКТИРОВАЛ
>>479739 Под размером я имею ввиду расстояние от одной грани куба до другой, выраженное в единицах измерегия, используемых при обозначении координат объектов. Надеюсь ты понял
Слушайте, вот допустим я нажал клавишу и объект у меня начал движение через rigidbody.AddForce, как сделать что бы при отпускании клавиши (Input.GetButtonUp) мой объект останавливался в своей текущей позиции. Потому что сейчас он при отпускании клавиши продолжает лететь с импульсом пока не остановится, а мне нужно чтобы ровно останавливался в текущей позиции. Думаю как вариант при отпускании клавиши воздействовать на него AddForce в противоположном направлении, чтобы этот импульс его остановил. Но может есть способы попроще?
Подскажите, как сделать такой инвентарь, чтобы предметы можно было брать в инвентарь, в меню инвентаря можно было экипировать их, с прорисовкой на персонаже. Я так полагаю, мне для каждого интерактивного объекта нужно будет завезти два меша: один для выкинутого состояния, лежащий в мире, и один для надетого состояния, на персонаже. Каждый из мешей должен быть выключаем. Таким образом, чтобы, когда предмет поднят в инвентарь, но не надет, у него выключены оба меша.
>>479730 >В MonoBehaviour для UI просто складываешь в пул пачку префабов, обновляешь их при активации окна, отображаешь те, которые не null. Что за хуйня? Я лично заебошил себе кнопки определённого размера, засунул в пул, а разные меню отображаю через подсчёты позиций и выдаче их кнопкам из пула. Когда надо что убрать, просто возвращаю в пул а там прописано сбросить все приобретённые параметры. Префабы - это круто, да, но ебошить через код надёжнее и как-то правильнее что ли, не знаю. Да и если захочешь настройки графона прикрутить всё равно придётся ебаться с позициями всего и вся лично, а не через юнитовские шорткаты. >>479617 Инвентарь есть список предметов, так? Делай базовый класс для предметов, делай List<Item> Inventory и храни где-нибудь. Делай где-нибудь окно инвентаря - для просто текстового инвентаря просто текст в мире ебошь, настраивай, чтобы он сам растягивался как тебе надо либо же делай ректангл с вертикал/горизонтал лейаут груп и оперативно дополнительные элементы добавляй, затем при открытии инвентаря (по кнопочке или чему-то ещё) врубаешь скрипт, который обходит каждый элемент листа, добывает оттуда необходимую информацию о предмете и вставляй в текст (например, в каждом Item'е будет лежать стринга name с названием предмета, и ты в каждой итерации цикла добавляешь к стринге ret += Item.name + '\0' (символ новой строки, или как его там надо), а затем меняешь text.text = ret). Когда надо скрыть инвентарь, то просто gameObject.SetActive(false), при открытии делаешь gameObject.SetActive(true). НО: на текст нельзя кликать при сборке "из коробки", тут нужно самому придумывать систему распознавания кликнутого текста. Самая простая ёбля - везде юзать юнитовские кнопки (у которых есть встроенный текст и имадж, к слову) и ебошить их через лейаут группы и PoolManager'ы пулы очень важная вещь, погугли на досуге.
>>479802 Меня триггернула постановка предложения. Тут каждое второе слово объяснять отдельно надо, что это, как, зачем и нахуя. А потом я забыл написать, как надо бы писать
>>479563 > только потом узнал, что с точки зрения оптимизации это не верно Потому что если через трансформ двигаешь объект с риджидбали, то ставь галочку IsKinematic ёптубля.
>>479805 > Тут каждое второе слово объяснять отдельно надо, что это, как, зачем и нахуя. Я с упором на это и писал, раз человеку не хочется штудировать туторы или непонятно, в какую сторону гуглить. Кодить умеет хоть как-то, значит, мозга уже немного правильно поставлена. Приятное с полезным, так сказать.
>>479807 Да типа вообще нельзя, трансформ перекидывает по координатам объект, а физическая система охуевает от такого поворота и начинает пересчитывать физику с каждым перемещением. Вместо этого трансформа придумали MovePosition для rigidbody, я так понимаю. >>479840 Да в этих примерах убогая физика если честно. Короче я своровал вот этот движок короче, там физика шикарная практически: https://assetstore.unity.com/packages/templates/systems/corgi-engine-2d-2-5d-platformer-26617 Буду разбираться что там к чему, ну там правда сложно все наворотили. На рутрекере только версия 4.2 лежит, может кто знает где достать 4.4?
А и ещё такой вопрос, может есть у кого опыт приобретения ассетов. Если я например куплю этот Corgi Engine сейчас, то с выходом новой версии мне предложат какой-нибудь апгрейд за меньшую сумму, или всё по новой покупать?
>>479849 > Да типа вообще нельзя, трансформ перекидывает по координатам объект, а физическая система охуевает от такого поворота и начинает пересчитывать физику с каждым перемещением Ёбаный насос, нет никакой физики если стоит кинематика. Она для того и нужна.
>>479850 Ну отпишись автору и спроси. 5 минут делов-то.
>>479849 >Короче я своровал вот этот движок короче, там физика шикарная практически: К слову - декомпильнуть ассембли Unity - как два пальца. Поэтому, если твоя говноподелка внезапно вторым Hollow Knight, по какой-то немыслимой случайности, станет - все сворованное быстро откопают.
>>479855 >после продажи Нет, после продажи уже тебя на хую по факту вертеть будут, ибо нарушена лицензия. Им выгоднее с твоих доходов пару сотен тыщь езеленых срубить, нежели принять 20 баксов за лицензию, лол. Дубина.
>>479854 Да я вообще не на его основе собирался пилить, а посмотреть как там физика и всё остальное устроено, и попробовать самому так сделать. А если бы я и начал пилить большой проект на этой балалайке, мне 60 баксов совсем не жалко
>>479857 Kinematic будет взаимодействовать с другими тщт-kinematic rigidbody с коллайдерами, но наухй забьет на статик-объекты или будет пролетать насквозь через большие rigidbody-объекты.
>>479862 Я хочу определить самый оптимизированный способ, каким образом всё-таки двигать гг и врагов в платформере, чтобы это даже на старых мобилках не тормозило.
>>479889 >учитель сказал, что не надо рано оптимизировать, значит, лоб разобью, но не буду, и других буду отговаривать! Фанатик анти-оптимизации, ещё один.
>>479891 Оптимизация - это последний этап разработки. Что лучше, оптимизированные пол метра кубиков, или готовая, но неоптимизировання игра, которую осталось только обработать напильником, поглядывая в профайлер?
>>479928 Оптимизированные полметра кубиков. В нормальных конторах из кусков в полметра кубиков игру и сшивают, а не ебошат игру как можно быстрее. Но это не про нас говноделов-одиночек, нам лучше неоптимизированное говно потому что а) деньги б) глаза разбегаются от всего многообразия областей программирования, которые нужно освоить в короткий срок чтобы сделать игру в одно рыло
>>479928 Да схуяли последний, если в том же платформере изначально настроенная физика персонажа является решающей в дальнейшей разработке игры, левел дизайна и прочего. Это то, что нужно настроить в самом начале и в дальнейшем уже не менять, т.к. у тебя всё по пизде пойдет в противном случае.
>>479939 >В нормальных конторах >нас говноделов-одиночек У меня возник закономерный вопрос. Ты-то откуда знаешь, как в нормальных конторах разрабатывают ПО?
А тот анон все правильно написал, лучше иметь сырой продукт, чем идеально вылизанное нихуя.
>>479891 Я всеми руками и хуем за оптимизацию, только вот ты не забывай про то, что человек не понимает, как ему, блядь, объекты в 2D двигать. Ему не оптимизацией надо заниматься, ему надо туторы смотреть и гуглить. Он еще прототип не сделал, он еще не понимает, что у него там в итоге получится, но уже берется за оптимизацию. Если на таком этапе человеку НАДО оптимизировать, то человек где-то наебался.
>>479975 Да я уже все способы перепробовал, какими можно двигать, я знаю как это делается. В большинстве туторов всё сделанно через трансформ, ну и нахуй мне их смотреть? В остальных туторах физика делается другими способами, но на тяп ляп. Да вы педики тоже нихуя объяснить не можете, как двигать в 2д эти злосчастные объекты по всем правилам, только вилами по воде водите. Не выебывайся короче. Я сделал полный прототип, но потом вычитал, что это не оптимизированно, теперь переделываю в другой, какие вопросы
>>479975 >Он еще прототип не сделал, он еще не понимает, что у него там в итоге получится, но уже берется за оптимизацию. Человек не знает, что делает, поэтому спрашивает, как делать правильно, т.е. он пытается разобраться в проблеме. Что лучше: писать и не понимать, что пишешь, лишь бы прототип был, делая тыщу ошибок, которые потом всё равно исправлять, либо же сесть, понять, что к чему, и написать более-менее сносно и более-менее в правильном направлении?
>>479983 Дело в update-lateupdate-каком-то ещё апдейте? Можешь попробовать оверрайднуть какой-нибудь класс/метод в дебрях юнити, чтобы пересчётов меньше было.
>>479986 А, ну или двигать в fixed update вместо обычного, где-то в официальных документах было написано, что fixed для физики и нужен, но там нужно отдельно ебаться с порядком выполнения методов.
>>479986 У тебя есть опыт работы над большими или коммерческими проектами? Если да, там использую на прямую трансформ для передвежения ГГ и прочего? Я просто боюсь, что когда мой проект разрастётся, всё пойдет по пизде >>479988 Оно и так в fixed, это я вкурсе
>>479990 Нет, я мимокрокодил. Что делает ригидбоди вообще? Он пересчитывается я так понимаю потому, что он косвенно привязан к трансформу, и потому его нужно пересчитать чтобы он в "своей системе координат" с другими ригидбодями работал. Так вот: он тебе нужен? Коллайдерами обойтись нельзя?
>>479967 Ты сравниваешь "я подкручу значения гравитации и ускорения персонажа, чтобы можно было так-то и так-то контролировать персонажа" с "я буду двигать юнитов конкретным инструментом, чтобы сохранить 1 кадр на первом пне".
>>479980 >>479994 > В большинстве туторов всё сделанно через трансформ Вот это пиздец странно, потому что объекты будут класть хуй на коллайдеры и клипаться. > Да вы педики тоже нихуя объяснить не можете, как двигать в 2д эти злосчастные объекты по всем правилам Блядь, ну ебать. Делаешь все через кинематику, проверяешь на потенциальный коллижн через Overlap. Можно даже всякие ящики как-то двигать, я нихуя не помню, потому что пишу текстовые симы с графеном. Поищи среди официальных туторов по физону и платформерам урок, там как раз вот это есть. > Это вообще законно? К rigidbody прикручено много потенциально ненужной хуйни. Ты можешь схему выше реализовать чисто на коллайдерах, просто тебе нужно будет ручками прописывать, что делать с transform при падениях, столкновениях с другими коллайдерами и т.п. Опять же просто смотришь через OverlapSphere или рейкасты проверять, что там под ногами и двигать персонажа вниз, когда надо, останавливать перед стеной.
>>479981 Это не оптимизация, это банальное избегание велосипедов.
>>479996 Я об этом как-то не задумывался. Лол, блять. Ну впринципе, после того как я обнаружил, что прыжок через AddForce не сделать, когда нужно запилить зависимость высоты прыжка от длительности нажатия клавиши, стало понятно, что в принципе уже начинается создание собственной физики, там вектор противодействия гравитации мутить, формулу кинетической, потенциальной энергии имплементировать... я всё это говно замутил, но так и не додумался, что rigidbody то уже впринципе то и не нужен...лол, так что, мне открывать старый проект и просто удалять rigidbody
>>479999 Разница в том, что если у тебя будут еще двигающиеся объекты помимо игрока (враги платформы), на на них всех надо вещать кастомную физику, рейкасты и прочая. Тут тебе решать - будет ли твоя поделка быстрее с N объектами или же Unity default
>>479998 Насчёт первой твоей реплики, ты просто не пробовал разными методами двигать ГГ и тестить, там совсем по другому ведёт себя персонаж, само ощущение, прыжки, в каких-то случаях инерция остается, в каких-то нет. На самом деле 2д физика не так-то просто, сравни как двигается например super meat boy, чувак из limbo и какой-нибудь fez, они все разные, я об этом и толкую, что именно это "ощущение" (механику персонажа) нужно настроить раз и навсегда в самом начале разработки.
>>480001 А вообще по тем же правилам оптимизации, говорят что двигать статические коллайдеры (без rigidbody) запрещено, иначе будет нехилое падение производительности
>>480007 The physics engine assumes that static colliders never move or change and can make useful optimizations based on this assumption. Consequently, static colliders should not be disabled/enabled, moved or scaled during gameplay. If you do change a static collider then this will result in extra internal recomputation by the physics engine which causes a major drop in performance. Worse still, the changes can sometimes leave the collider in an undefined state that produces erroneous physics calculations.
>>480002 Тогда разбери на составляющие движение в пространстве и уже от этого отталкивайся. Если тебе нужно движение как в SMB (где, по-моему, персонаж плавно тормозит после ускорения), то, вероятно, стоит через rigidbody ковырять ускорения. Если тебе нужно движение как в Shovel Knight, можно и через схему в предыдущем посте запилить.
>>480014 >через схему в предыдущем посте запилить Какую схему? Тут никто ничего так и не предложил. Да мне и не нужно впринципе, пойду разбирать, как в Corgi Engine устроено, сделаю по аналогии, там вроде норм всё работает
In Unity 5, we’ll use the same data structure to handle the movement of both dynamic and static colliders. Unfortunately, we’ll lose the benefit of Static Colliders consuming less memory than dynamic ones. However, right now, the cost associated with moving Static Colliders is one of the top 3 causes of performance issues in Unity games. We wanted to change that.
Говорят, что с 5.0 уже можно двигать статичные коллайдеры. Ох уж эта юнька и её аут оф дейт ВСЁ
>>480017 >>479998 > Делаешь все через кинематику, проверяешь на потенциальный коллижн через Overlap. Можно даже всякие ящики как-то двигать, я нихуя не помню, потому что пишу текстовые симы с графеном. Поищи среди официальных туторов по физону и платформерам урок, там как раз вот это есть.
>>480018 Roll-a-Ball и Arkanoid learn статьи и видео - одни из самых популярных и они вещают об expenses of AARB tree rebullding при перемещении статичных коллайдеров. Отсюда и смущения, поди.
Ладно, кину вам холопам с барского плеча код движения из супер волшебных путешественников. Суть в том, что мы используем обычный rigidbody2d, но контролируем компоненту x velocity, просто добавляя ускорение каждое обновление. Вот и все. Тут можно посмотреть как это работает https://oraoraora.itch.io/super-magical-travelers
>>480055 Тогда возникает проблема импульса, когда я отпускаю клавишу, мне надо чтобы гг резко тормозил, если обнулять велосити, то в прыжке он на середине прыжка останавливается и падает вниз
>>480061 >когда я отпускаю клавишу, мне надо чтобы гг резко тормозил >если обнулять велосити, то в прыжке он на середине прыжка останавливается и падает вниз Ну и что не так, блять? Сам понимаешь что тебе нужно?
>>480061 Vector2 movement; FixedUpdate() { movement = 0; if (Input.GetKey(moveRight)) { movement += new Vector2(1,0); } rb.velocity += movement; } Либо здесь все правильно и передвижение не будет мешать остальным силам, либо я наебался и объект ускорится нахуй в бесконечность. Скорее всего второе, но наверняка это фиксится одним условием.
>>480133 Так говоришь, будто тут свой ручной Havok прикручивают. У rigidbody есть гравитация, трение, поворот по Z, инерция и еще до кучи вещей, которые в типичной метроидвании вообще не нужны. Легче просто коллайдеры навесить, чтобы триггеры использовать, и "лишних" рейкастов дописать, получая конкретно то, что тебе нужно. А обрабатывать это будет все равно ядро на крестах.
Короче, >>479563 - кун на связи. Полазил я в движке Corgi Engine, ссылка на который была здесь >>479849 Вообщем там в коде вообще нет обращения к Rigidbody, все делается самопальной физикой через transform, ну там вообще хитрая матрешка, но смысл такой, что все передвигается через transform.position, transform.up, transform.right, видал на платформах методы MoveTowards и Lerp. Обращения там в основном только к Vectro2 и Vectro3. Были рейкасты, были методы OnTriggerEnter(Stay, Exit). При этом все движущиеся объекты имеют Rigidbody переведённое в kinematic. А в одной сцене (Super Hipster Bros) враги вообще без rigidbody бегали, лол. Ну и при этом нормальный там fps, для платфомера много и не надо походу. Что странно, не нашёл там метода FixedUpdate, странно, наверное плохо искал, не могут же они физику через Update мутить... Хз, я код плохо читаю пока, но вроде суть там уловил, буду опираться потихоньку на их методы. Короче, вот что я решил, пошли они все нахуй со своей оптимизацией и прочим говном, пойду я лучше делать платформер своей мечтыСделаю первый, и посмотрим что выйдет
>>480287 Скинь сорцы что спиздил? Алсо, они не использовали FixedUpdate потому что transform в нем не юзают, это когда rigidbody правильно двигаешь есть смысл через FU
>>480336 На рутрекере качни. >когда rigidbody правильно двигаешь есть смысл через FU Да я вот тут не совсем пойму, как работает трансформ, он не ко времени привязан? Потому что если ко времени, тогда нужно в fixed делать
Посоны, есть перс (капсула). Когда он стоит вплотную к стене - прыгнуть не может. Если и персу и стене добавить материал без трения - прыгает, но на наклонных поверхностях начинается срань. Да и добавлять материал к каждому объекту на сцене так себе решение. Какой кошерный способ есть, чтобы это разрешить?
Сап. Сделал свою первую game. аналог flappy bird Закинул себе на samsung . И что вы думаете? Дичайшие тормоза и фризы. Что делать? Как исправлять? Дико прошу о помощи, не знаю даже, куда и глядеть. Нашел статью об оптимизации в целом. Быть может мне приложить скриншоты скриптов?
>>480428 А на меня ещё пиздят, что рано об оптимизации задумываюсь. Я вот эти книги читаю, вроде нормальная тема: Дикинсон К. - Оптимизация игр в Unity 5 Алан Торн - Искусство создания сценариев в Unity
>>480439 > А на меня ещё пиздят, что рано об оптимизации задумываюсь Ну так этот >>480428 как раз вовремя и задумался. Есть что оптимизировать - можно и оптимизировать.
>>480428 Алсо, отключил вертикальную синхронизацию и тени(хотя их и не было). Чуть-чуть стало получше. Если я так же уменьшу настройки графики, поможет ли?
>>480440 Да всё актуально вроде, я с документацией unity сравнивал, особо то ничего не изменилось, кроме твоего foreach, да и про него пишут, что он только в mono память отжирал.
Продолжаю делать кликабельный текст. Вроде бы текст должен быть правильный и всё такое, но его не видно. Я создаю меш с помощью текстгенератора и несложной конвертации в треугольники заливаю в CanvasRenderer.SetMesh. Есть два предположения, почему не работает: либо нужно сетмешить в апдейте, либо я в какие-то ебеня меш оффсетаю по ошибке (оффсетать позицию текста нужно для того, что из сгенерированного по позициям большого окна текста мелкие куски-строки в маленькие кликабельные окошки засунуть). Либо ещё какая-то хуйня. Кто-нибудь делал меш для УИ и отображал его в ректангле? Как это делается по-нормальному? И ещё. Текстгенератор умеет теги богатого текста распознавать. Вертексы, которые он выдаёт, учитывают или нет эти теги? То есть если я скармливаю ему текст в 10 символов, 5 из которых теги, то он выдаст 5х4 или 10х4 вертексов?
Охуительбный вопрос, но чем отличается: transform.position = Vector3.MoveTowards(transform.position, target.position, step) от transform.Translate(Vector3.up * Time.deltaTime, Space.World); И то, и это двигает объект, суть одна и та же, просто отличие в данных которые принимают методы?
>>480715 Понял, спасибо. А еще такой вопрос, правильно ли я понимаю, если я буду что-то двигать в Update(), тогда мне нужно добавлять deltaTime, а если через FixedUpdate(), то нет смысла использовать deltaTime, т.к. там и так все фиксировано по времени? А разве тогда не лучше делать сразу всё в FixedUpdate? Тогда вопрос, зачем нужен обычный Update, что обычно в нем реализовывают, UI типа, или что еще?
>>480722 deltaTime, когда используется в контексте FU превращается в fixedDeltaTime. Update() обновляется со скоростью FPS, FU - 50fps по-умолчанию (стандартное разрешение физики). Они служат разным целям, читай доки
>>480724 Ну я знаю их смысл, читал что работу с физическим движком делать нужно в FixedUpdate. А так в целом не ясно, что вообще делать еще в них можно, в одном и в другом
>>480773 Подписался на его свитор, выглядит интересно. Хотя у него больше стратегия/тайкун, похоже. >>480775 Конкуренция на рынке, где присутствуют 3.5 игры, ну такое. И вообще у меня будут фичи, чтобы отличаться от конкурентов, типа конструирования ракетных движков из говна и палок гнутых мешей, мелких деталей и трубок. Я уже даже серую квадратную комнату зделол и повесил в ней куб.
Юнитаны, какой там положняк по сабстенс дизайнеру в 2к18? Прохожу тутор https://www.allegorithmic.com/blog/substance-unity-5-tutorials, и sbsar параша при редактировании параметров в редакторе вешает его нахуй на 30 секунд для перегенерации. Так и должно быть? Алсо какое-то сообщение, что дескать сабстанс deprecated и в следующей версии надо будет соснуть хуйца скачать какой-то ебучий плагин для поддержки.
По факту мне нахуй не сдалось рандомизировать материал прям в юнити, но в дизайнере я не смог найти как экспортнуть пакованные в формате стандартного шейдера юнити текстуры. Мне ручками альфу в альфу пихать или как? Или сабстанс пейнтер осваивать?
>>480848 >Алсо какое-то сообщение, что дескать сабстанс deprecated и в следующей версии надо будет соснуть хуйца скачать какой-то ебучий плагин для поддержки. Ты спиратил сабстанц?
>>480855 > Ты спиратил сабстанц? Да, меня нахуй пошлют с 2018.1 юнити? Нихуя не понял по ссылке. Я готов купить подписку в принципе если эта параша не будет так тормозить, лол
>>481935 >Из видео нихуя не пони. Я поворачиваю камеру но вектор движения не меняется.
>Делай движение относительно локальной ротации камеры. Это как? Я пробовал делать ротателокал, или нужно какой то родительский объект двигать и передавать ему поворот камеры
>>482007 >Что за дрочево на видео? Тебе надо чтобы камера наезжала на кубик, по не просто ездила по плоскости XZ? Мне нужно при повороте камеры менять направление движения, сейчас камера двигается строго по глобальном XZ при повороте камеры.
>>482009 Нихуя не понял. Скопипасти текст скрипта, попробую сам погонять, а то нихуя не понятно что тебе не так. На видео камера вполне себе катается по плоскости.
>>482011 Я несколько секунд нажимал в лево в право при повороте камеры, а вектор движения не менялся он был зафиксирован, а мне нужно если я поверну на 30 градусов камеру значит вектор движения тоже должен менятся.
>>482013 Использовал, но тогда при нажатии прямо или назад при условии что камера не 0 и не 120 градусов она смещается верх или в низ, меняется весь вектор движения. Я думаю это можно решить тем что бы камеру сделать дочерней к объекту который будет двигаться и просто передавать смещение тому объекту.
>>482038 >>482039 Лол, чёто я усложнил. Клэмп нахуй не нужен, достаточно > transform.position = new Vector3 (transform.position.x, origY, transform.position.z);
>>482057 Что ж ты там за 2д-игру пилишь, что тебе юскрипт понадобился? Или ты просто кодить нихуя не умеешь и решил что скачаешь ассет, хуяк-хуяк и он сам за тебя всё сделает?
>>482292 А почему Zoom не через FOV? Вообще не вижу отличия текущей имплементации зума от банального движения камеры по локальной X с сохранением ротации.
Годное книги/туториалы подкиньте, ребят. Учить буду Юнити с нуля. Есть опыт с JMonkeyEngine; писал простенький рейкастер на Java.
Интересует ручное редактирование мешей (планирую писать воксельное чудо с физикой и транспортом), прикручивание физики (Bullet? например), написание шейдеров.
Есть объект "Image". Как заставить его показывать пикчу не из ресурсов (которые запакованы и это дофига неудобно), а из файла (png или jpg), лежащего в определённой папке?
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;
public class LoadWeb : MonoBehaviour {
IEnumerator Start() { WWW www = new WWW("file://" + Application.dataPath + "/sample.jpg"); while (!www.isDone) yield return null; Debug.Log(www.texture.name); GameObject rawImage = GameObject.Find("RawImage"); rawImage.GetComponent<RawImage>().texture = www.texture; } } вроде работает, но изображение при этом растягивается на всю площадь объекта. Как запилить авторесайз с сохранением пропорций?
Есть playerController с переменными item и onItem, есть объект Item с onTriggerEnter, который переключает в playerController onItem на true. Естественно по клику на Е я проверяю onItem и поднимаю Item. Как это белые люди реализуют вообще?
>>470093 (OP) Сап двоч, ньюфаг с уже шарпом в кармане на связи. Хочу сделать для начала не сложную настолку. Возможно проиграете, но все что мне нужно это буквально взять готовые пикчу карты/поля (возможно потом будет сорт оф 3д)(если я не обосрусь), и пикчи карточек (или модельку) налепить просто с двух сторон на насколько я понял мэш (ну еще такое же сделать для разных квадратов, круга и еще как-то человечка вырезать)(в пеинте). И еще буквально анимацию передвижения вот этой вот всей ахинеи и еще приближение/отдаление. А основную геймплейную логику я думаю как-то уже осилю сам. Если сделаю, то еще допилю локалку.
1) Вообщем мне дохуя чего не нужно, есть какие-то короткие гайды / каналы на ютубе как это все сделать? Думаю пока что идти сюда >https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started 2) Не доебуться ли ко мне правообладатели настолки? А если я весь проджект выложу на гит и скажу что это я для петпроджекта делаю (так и есть вообще-то)(я еблан?).
Требуется в сжатые сроки без лишней теории создать персонажа для VR Chat. js, основы 3d графики есть. Нужно элементарное создание персонажа и простейшая физика. Годный туториал не подскажете?
Прошлый тред:
Официальный сайт: https://unity3d.com/ru
Документация: https://docs.unity3d.com/ru/current/Manual/index.html
Уроки: https://unity3d.com/ru/learn/tutorials
Форум: https://forum.unity3d.com/
Магазин ассетов: https://unity3d.com/ru/asset-store
UnityWiki: http://wiki.unity3d.com/index.php/Main_Page
На Unity сделано много замечательных игр - Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.
FAQ
- Какие у Unity сильные стороны?
- Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.
- Какие у Unity слабые стороны?
- Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
- На каких языках я могу писать скрипты для Unity?
- На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.
- Для каких жанров подходит Unity?
- Для абсолютно любых! Жанр ограничивается лишь фантазией разработчика (и его умением писать скрипты, разумеется). Можно создавать и РПГ, и стратегии, и слэшеры. Можно делать VR-проекты или Minecraft-подобные песочницы.
- На каких платформах работают созданные с помощью Unity игры?
- Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.
- Часто вижу скриншоты с красивой природой на Unity. Как такое создать?
- Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.
- Что такое стартер киты?
- Starter Kit - это набор скриптов и префабов, а зачастую и графических элементов для игры. Они призваны облегчить разработку игры определённого жанра и как правило разбиты по жанрам (Action-RPG Starter Kit, RTS Starter Kit, 3D Shooter Starter Kit, Space Game Starter Kit, VR Starter Kit и так далее). Также бывают стартер киты различных игровых элементов, не связанных с геймплеем (Nature Starter Kit с дополнительными природными объектами, Medieval Starter Kit со средневековыми объектами и так далее). По сути, стартер киты выполняют в разработке игры ту же роль, что и фреймворки в программировании. Однако стоит отметить, что использование геймплейного стартер кита принуждает разработчика изучать большое количество чужого кода и чужой структуры для внесения своих изменений и полноценного использования. В связи с этим большинство разработчиков предпочитает писать почти всё с нуля, получая полное понимание работы своей игры. Новичкам крайне не рекомендуется начинать знакомство с Unity со стартер китов.
- Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки?
- Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).
- Бесплатен ли Unity?
- Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно! Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.
Обучение
- Язык
Итак, с чего же начать изучение этого замечательного движка? Прежде всего, с изучения языка. Самые основы C# можно узнать на интерактивных курсах здесь:
https://dotnetcademy.net/CSharp/Beginner
или в текстовом туториале здесь:
https://www.tutorialspoint.com/csharp/csharp_quick_guide.htm
Для изучения основ UnityScript выучи вначале основы JavaScript:
https://learn.javascript.ru/
Помни, что далеко не все элементы JS есть в US. Чтобы понять, в чём разница между этими двумя языками, прочти эту статью:
http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScript
Помни, что тебе достаточно одного языка из двух и учить их оба одновременно не нужно.
- Движок
Если ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендется купить/скачать книгу Unity in action (Unity в действии). В ней подробно описываются множество возможностей движка.
http://www.ozon.ru/context/detail/id/34792570/
Также посмотри на видеотуториалы с официального сайта:
https://unity3d.com/learn/tutorials
Если же ты не любишь видеотуториалы (или не понимаешь разговорный английский) и предпочитаешь текст, то посмотри здесь:
http://catlikecoding.com/unity/tutorials/
Тут крайне подробно описан процесс разработки и приведены примеры кода. Эти туториалы универсальны и описывают множество различных частей игры, от работы с текстурами до генерации карты мира. А вот в этом туториале описыватся разработка двухмерной игры с видом сверху:
https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started
Это будет полезно, даже если ты планируешь разрабатывать трёхмерную игру. Ни в коем случае нельзя обойти вниманием этот сборник туториалов:
https://noobtuts.com/unity
В нём подробно описывается процесс пошагового создания разных игр - двухмерных и трёхмерных.
Разумеется, все эти туториалы охватывают лишь часть возможностей Unity. Самый надёжный способ выучить Unity - это начать делать игру и по мере разработки гуглить непонятные моменты.
Шапка: http://www.writeurl.com/publish/zukmrogwv45ptyuseyol