Постнагуализм
22 ноября 2024, 22:47:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

      Логин             Пароль
 
   Начало   Помощь Правила Поиск Войти Регистрация Чат  
Страниц: [1] 2 3  Все
  Печать  
Автор Тема: Юнитология - Unity и C#  (Прочитано 9358 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Соня (Bruja)
Сказочник Пня
Старожил
*****
Offline Offline

Пол: Женский
Сообщений: 9271


Соня и чумазый Лис


WWW
« : 25 марта 2021, 11:27:30 »

Документация  C# PDF

Game Development

Scrollable Menu in Unity with button or key controller

Selecting battle targets in a grid-based game

Equipment system for an RPG Unity game

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

А возможно это особенность api игрового движка - unity ( я пробовала другие движки, там и с++, и джава скрипт - но не пошло. А к С# (Си шарп) таки тянет... хотя пробелы мои в нем велики... но многому учусь воплощая задуманное.
Кто то из известных сишарпистов ( из разрабов движка)- сказал, что скрипты учить ( для этого конкретного движка) - лучше просто начав какой то проект. Так как это не самостоятельный  С#, а надстройка, для этой конкретной программы. Си шарп изначально для unity и создавался (mono script). А потом его стали использовать как самостоятельный язык для иных надстроек (framework) ... но родился он именно в этой программе. И это чувствуется. В unreal engin ( тоже движок игровой, программа для игроделания) - язык C++. Но он несколько громоздко встроен...это ощущаю... чуйкой ( как сказал friz 6   ;) ).

Не знаю что получится с игрой, но нашла обалденного дедка, который разработал систему инвентаря, генератор статов и вещей и т.д., как самостоятельное дополнение к программе. То есть там не просто шаблончик, а генератор, который собирает несколько ( необходимых нам)  редакторов в отдельных окнах.. эдакая встройка в проект AddOn. Ее можно хранить как  unity.package и загружать в любой новый проект..  
Дедок (BurgZerg Arcade) - американец из Индианы, у него ужасный говор. Приходится слушать в замедленном режиме, чтоб слова разобрать. Но я ему очень благодарна.
Он так запросто играючи обращается со скриптом, что отпадают все страхи и неуверенность в себе на эту тему...

Видео у него много, кроме этой штуки (Inventory System), есть огромное количество серий о том как он рпг делает (RPG Creation in Unity -почти 400 серий в 2- плейлистах). Правда 3d, тогда как я не имея моделек трехмерных - не замахиваюсь на объемную игру. Ну и там тоже очень много программирования...

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

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

Образно говоря, современные языки программирования сильно пополнились разнообразными готовыми "кубиками ЛЕГО" из-за чего программирование превращается в сборку того, что тебе надо, из этих кубиков. И мышление при этом совершенно иное - не процедурное (это когда мыслишь на языке программирования), а архитектурное (это когда подбираешь подходящие блоки/кубики из которых можно построить нужный тебе функционал). И если плохо представляешь себе ассортимент строительных деталей в своем конструкторе, то пользоваться этим набором будет крайне затруднительно. Тогда собственно языковые конструкции - что то вроде жидкого цемента, который обычно используют для связки готовых строительных блоков/конструкций, но из одного лишь цемента не строят почти ничего.

В этом смысле C# по языку мало отличатся от обычного C++ или Javascript, но имеет совершенно огромный набор кубиков. Поэтому программы написанные на C# на любом компьютере не заработают, пока не проинсталлируешь на него FramеWork. Он-то и содержит в себе набор готовых кубиков, порой очень высокой сложности. А потому этот FramеWork по объему сравним с операционной системой :). А хуже всего то, что FramеWork'и тоже устаревают и вместо них выпускаются новые, причем программа, написанная под старый FramеWork на новом не заработает :), а старый FramеWork может не подойти к новой версии Windows (с переходом на 10-ку FramеWork снова переписали). Поэтому лично я C# обхожу стороной - уж больно велика мера привязки программы к начинке компьютера.

Что касается "дедка", то скорее всего он уже создал для себя некую библиотеку своих кубиков, к которыми и пользуется сам. Аналогично тому и "игровые движки" обычно представляют собой не новый язык, а снова набор функций-кубиков, того как поддержка языка программирования в них встроена только затем, чтобы можно было эти кубики собирать друг с другом.

К сожалению, число кубиков растет гораздо быстрее, чем пишутся для них описания :). Точнее говоря, описание есть, но оно обычно односложное - в одну-две фразы, из которых бывает сложно понять, что конкретно он делает и как этим кубиком пользоваться. Чаще всего в таких случаях приходится обращаться за помощь к Google, чтобы тот нашел в интернете примеры применения заинтересовавшего тебя кубика.

В любой момент времени можно начать раскапывать эту кучу в каком-то одном месте, и довольно скоро стать гуру по применению тех или иных кубиков. А всех их не знает никто :).

Ты о библиотеках  :)
О да, тот разработчик говоря об изучении с шарп в юнити говорил именно о них. Что знать все методы и весь "словарь" в юнити-  практически не возможно. И изучать с шарп с нуля, как отдельный язык - тоже не нужно - пустая трата времени. Я как то начинала, прошла базовый курс.. и мне так тоскливо стало,
Потому что  налепленные калькуляторы и другие хрени - никак не приближали к тому, что мне нужно было.. то есть совершенно не понятно как это использовать, если создаешь игру.

 У юнити свой личный огроменный словарь ( библиотека), прикрученный к функционалу.
Могу сказать что внутренняя библиотека не сильно изменилась, хотя и значительно расширилась ( дедок писал лет 7 назад , я делаю по его видео скрипты в последней версии программы. Лишь иногда выскакивает ошибка, но предлагается вариант исправления  или " приписка" , system.obsolet типа устаревшее выражение.
Теперь некоторые пути - можно сделать короче. Некоторые выражения , типа геттеров и сеттеров - пишутся чуточку иначе, где вместо скобок фигурных рисуют стрелочки.. вот по сути и все, с чем пока столкнулась.
Тот ужас со сменой " кубиков" и их названий, когда то заставил меня бросить flash, в бытность свою macromedia.там AC script менялся очень быстро, не успеешь отучиться делать что то пользуясь 1 версией, как вышла вторая. И многое перестало работать. Только засел за изучение создания сайта на 2 версии скрипта, как вышел 3... и пипец - никуя не работает, переучивай снова., ну я и бросила, ошалев от такой гонки.. так и знала, что программа в таком ритме не продержиться долго. Ну и итог - флеш сдох. Типа небезопасно в веб браузерах такие приложения ( по сути самостоятельные программы).. хотя думаю, что причина не только в безопасности.

Сама программа  юнити по умолчанию  в настройках проекта - содержит настройку на конфигурацию устройства игрока. По умолчанию - окончания скрипта scripting backend - mono  ( на стационарном маке точно запустится сборка. Думаю и на винде, так как выбирала опцию стационарные компы мак и винда.
Но можно выбрать IL2CPP   - но я не понимаю вообще что это такое. Ну пока нет ничего готового особо не заморачиваюсь.
Далее - есть API compatibility level и по умолчанию стоит .NET Standart 2.0
Как опция - моожно сменить на NET 4.x
Но опять же не особо понимаю, зачем это нужно. И не меняю. Для гаджетов я все равно ничего разрабатывать не собираюсь.
Я установила  как параметры для сборки - вин стационар и мак.. и еще  web GL html5.
Тешу себя надеждой сделать что то путное и прикрутить к форуму ( если это возможно). Хоть тупой платформер, но наш личный... можно с приколом на нагвализм, карлос по кактусам шараебится и грибочки жрет и галюны ловит... типа марио такое  ;D

Одним словом думаю юнити проживет дольше флеша. Игры не быстро делаются. И если бы библиотека и старые методы разительно менялись при обновлении - мы не увидели бы многих игр. А за адаптацию готовой сборки в устройства пользователя - отвечает сама программа ( и ее разработчики).

О редакторе - когда то у юнити был свой редактор, довольно удобный, но ныне они вкрутили visual studio,  или скорее к визуал студио прикрутили геймдев на юнити.   После того, как визуал студио адаптировали под мак. Родной редактор забросили и ныне им никто пользуется.

Про языки  самостоятельные - с ++, свифт  -  с одной стороны - из " цемента" теперь мало кто что то строит. С другой - а нафиг снова изобретать велосипед?
И вместо создания с нуля - переходим к строительству из кубиков.
Это тот же метод, каким мы сами думаем. Никто не задумывается что такое мяч. Все знают что некий объект 3 мерный в форме шара у которого есть какие то там свои параметры. Типа материал, цвет, упругость, шероховатость и т.д.
Поэтому говоря слово мяч мы примерно его уже себе как то представляем. Ну некоторые подклассы этого типа ( футбольный мяч, детский, надувной).
Нам не надо начинать с нуля - типа некий объект шарообразной формы, покрытый тем то и такого то цвета, прыгучий, накачан воздухом и т.д.).

Так мы сокращаем  время или путь к объекту - предмету разговора или объекту в скрипте. Пользуемся уже готовым шаблоном, что мне и показывали в сновидениях. Мы не просто так говорим. Мы так мыслим. Таким образом. И так учим ИИ. Потому что ничего иного сами не можем представить.

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

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

Про курсы -  многие курсы - говно в том смысле, что они все начинают с того, что на мой взгляд должно быть в конце. Начинают с деталей самой сцены, с персонажа, его движений, врагов и прочей  привлекательной визуально хрени. Тогда как начинать надо с позвоночника - то есть гейм менеджера, к которому они в конце концов все и прикрутят. Хотя им придется членить уже написанные портянки и переименовывать классы и иначе извращаться ( проделывать лишнюю работу).

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

Вообще то все началось с того, что заготовку под инвентарь я скачала. С официального сайта юнити ( с магазина). Это бесплатный эдитор, приложение к программе Item & Inventory System от Devion Games.
 Это именно то, что много лет назад создал тот дедок. Почти один в один, ну может быть выложенное ныне дополнение ( addon)  - это более расширенная версия. Но это скачанное дополнение, при всей своей магической офигенности -  никак не подошел к 2д игре. Все предметы что он генерировал были 3д качества. И даже сменив 3д мэш на 2д спрайт -  в игре не было толку от тех предметов. Персонаж с ними не взаимодействовал, по простой причине - автоматически предметам цеплялась физика столкновений 3д предмета. Даже если это просто картинка.
Так работал этот скачанный редактор. Я знала, что надо поменять всего пару строчек.. Но заглянув в скрипты редактора - я обалдела - так как не увидела ничего знакомого. Там была куча кусков с отсылками от одного к другому и я просто не нашла строк которые надо изменить.
Это меня расстроило, а потом просто взбесило. И видео дедка - словно ответ на мою злость. Решила сделать сама, вместе с ним, но конкретно под 2д. И кнопки и описания видимые строки - по русски. Из вредности. А заодно и понять, где ж искать те заветные строки в скачанной сборке.  Одним словом вместо игры увлеклась изучением кубиков и вариантов их членения и слиянии и вообще самим конструктором.

Если бы на уровне владела письменным английским то возможно пообщалась бы напрямую с теми у кого учусь. Или на форуме Юнити.
Но пишу я хреново, а на гугл не могу полагаться. А русскоязычная часть форума Юнити  - это просто отврат. Вместо ответа отсылают учить не нужные на самом деле курсы по самостоятельному си шарпу. Ну и делают это конечно же в унизительной для новичка манере.
Поэтому буду делать записи по теме тут.
« Последнее редактирование: 20 апреля 2021, 07:07:40 от Соня (Bruja) » Записан

Соня (Bruja)
Сказочник Пня
Старожил
*****
Offline Offline

Пол: Женский
Сообщений: 9271


Соня и чумазый Лис


WWW
« Ответ #1 : 08 апреля 2021, 18:11:42 »

Как первую тестовую ступень -  можно  взять платформер. Туда ведь тоже можно диалоги всунуть там где они нужны...
Каркас готов ( платформы всякие разные, и обычные и с добавлением физики типа качающихся или двигающихся самостоятельно. Или двигающихся когда на них стоит персонаж. Летающие, статичные  и ползающие враги , стреляющие ( скрипты к ним ).  Лестницы или цепи, по которым можно лезть вверх вниз. Кнопки , или рычаги, рушашие преграды в тайные места. Тяжелые предметы, которые можно двигать или скидывать на другие - которые будут ломаться или если это рычаг - то он будет открываться.
Двери и ключи, тоже для перехода либо из сцены в сцену из места в место, либо для того, что бы в скрытые комнаты попадать, с наградой  или квестовым объектом...  чекпоинты во время игры, на уровне, что бы померев не начинать с самого начала...

Вязкие и скользкие поверхности,.батуты - поверхности для прыжков. Двойной прыжок персонажа...

Да много всего уже сделано на примерах и в скриптах.
Осталось проработать несколько мелочей - и начать делать арты.
Проблема еще и в разработке уровней... не знаю каким именно будет геймплей..

А пока, что бы не забыть
Стрелять ( иногда у игрока будет возможность стрелять. Ну подберет он " магию" или нечто подобное. Но думаю это не будет постоянным умением).

<a href="https://youtube.com/v/wkKsl1Mfp5M" target="_blank">https://youtube.com/v/wkKsl1Mfp5M</a>
Записан

Соня (Bruja)
Сказочник Пня
Старожил
*****
Offline Offline

Пол: Женский
Сообщений: 9271


Соня и чумазый Лис


WWW
« Ответ #2 : 08 апреля 2021, 23:21:01 »

Так, с пульками ( или любыми другими " стрелялками" ) разобралась. Скрипт работает.

Теперь адаптивный скрипт для простого ИИ - поведения  " Врага".
Основан на невидимом луче ( типа взгляд врага, называется Raycast)  -  который проверяет, есть ли под врагом  впереди платформа (" земля") или  вертикальное препятствие ( " стена"). И если есть - то Враг поворачивается обратно ( а не валится в пропость или не тычется лбом в стену).

<a href="https://youtube.com/v/dHkbDn-KQ9E" target="_blank">https://youtube.com/v/dHkbDn-KQ9E</a>

Враг пока сам игрока не преследует ( пока не видит. Делается это по той же системе, с невидимым лучом, который представляет взгляд Врага. Видит ли он Игрока или нет. То есть тот же Raycast).

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

Еще один интересный вариант... короче код, но так же эффективный.
<a href="https://youtube.com/v/MPnN9i1SD6g" target="_blank">https://youtube.com/v/MPnN9i1SD6g</a>
« Последнее редактирование: 09 апреля 2021, 03:18:24 от Соня (Bruja) » Записан

Соня (Bruja)
Сказочник Пня
Старожил
*****
Offline Offline

Пол: Женский
Сообщений: 9271


Соня и чумазый Лис


WWW
« Ответ #3 : 09 апреля 2021, 17:13:56 »

Первый вариант оказался 100% рабочим.  Хотя есть пустые переменные ( скрипт в идеале стоит оптимизировать).
Второй не подошел... так и не смогла заставить его работать.


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

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

Сделала так, что бы пульки не убивали с одного выстрела врага, но отнимали жизнь по немногу.
То есть врагу добавился скрипт здоровья, а пульке - дамаг ( какое кол во жизни она отнимет).
Скрипт для пульки - может быть прицеплен и к иным видам оружия или магии, и соответственно урон ( damage)  может варьироваться. От супермощного удара отнимающих 100 пунктов ( или даже 100%), так и мелочь типа 5 % или 5 пунктов  у такого оружия как например сюррикен или метательный нож... то есть нужно нанести достаточное количество ударов, что бы слабеньким оружием повергнуть врага. При этом герой должен скакать и прыгать вокруг - выживая, так как сам враг может быть мощным ( в случае если это босс например).

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

Записан

Соня (Bruja)
Сказочник Пня
Старожил
*****
Offline Offline

Пол: Женский
Сообщений: 9271


Соня и чумазый Лис


WWW
« Ответ #4 : 10 апреля 2021, 09:51:11 »

https://www.bfxr.net/
Прикольная маленькая программуля для игровых АУДИО спец эффектов!
Звуки в стиле старых консольных игр, типа Соника и Марио. Очень прикольно!!

Игралась со вставкой звуков спец эффектов в платформере. Блямканье денюшек, причем разные по достоинству  денюшки при сборе их игроком издают разные звуки.
Звук при вылетающем сюррикене ( звездочка, хотя это может быть и фаербол), звук для столкновением с полом- стенами. Звук звездочки при ударе по врагу.
И так же звук при ударе по игроку - когда наносят урон его здоровью. Ну и звук при появлении ( респавне ) или смерти.
Многие звуки, например звук монеток - цепляются к игроку. Потому что на уровне может быть множество собираемых предметов ( у меня их пока 68), а игрок, который с ними взаимодействует - один.
Для оптимизации одним словом.
Монетка, когда соприкасается с игроком ( собирается - исчезает из сцены и ее наминал добавляется в счетчик) - в момент сбора - вызывает аудио ( блямкающие звуки)- из тех аудио, что прицеплены к игроку.
Хотя если предметов не много, то аудио можно цеплять прямо к ним.
Например звуки смерти - прицеплены к генератору частиц ( к фонтану крови), который появляется в том месте, где умирает ( исчезает) герой или враг.
Есть и другие способы вызывать аудио, обращаясь к нему из любого скрипта. Главное, что бы аудио было прицеплено к какому нибудь предмету на сцене. Или чтоб этот предмет появлялся в нужный  для звучания момент. Например музончик на фоне чаще всего цепляют к камере. Так как камера постоянно на сцене находится, без камеры - вместо игры будет черный экран.
К тому же - звуки имеют определенную " длину звучания". При удалении от источника звука - она будет тише звучать. Удаление - Игрока , а вместе с ним и постоянно направленной на него камеры.
Фактически основная камера и игрок - накрепко связаны друг с другом.
Поэтому для фоновой музыки ( ее физического размещения на сцене )- лучшего места чем камера - не придумать.

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

« Последнее редактирование: 10 апреля 2021, 18:04:40 от Соня (Bruja) » Записан

Pipa
Техник
Старожил
*
Offline Offline

Пол: Женский
Сообщений: 13017



WWW Email
« Ответ #5 : 10 апреля 2021, 18:06:48 »

Так же добавила возможность убивать некоторых врагов ( мясных и мягких ) - напрыгивая им на голову ( или спину). Ну например пилы и шипы - таким образом не убить. А вот злобную лягуху - запросто.

А у "злобной лягухи" какие есть средства нападения/защиты? В чем конкретно ее злобность проявляется? Или просто рожей не вышла?
Записан
Соня (Bruja)
Сказочник Пня
Старожил
*****
Offline Offline

Пол: Женский
Сообщений: 9271


Соня и чумазый Лис


WWW
« Ответ #6 : 10 апреля 2021, 18:30:23 »

А у "злобной лягухи" какие есть средства нападения/защиты? В чем конкретно ее злобность проявляется? Или просто рожей не вышла?

Она напрыгивает и отнимает здоровье игрока. И делает это на его Пути к Цели ( финалу уровня).
Злобно мешается на пути.

Добавила к ее ударам по персонажу - способность отталкивать его. Иначе она просто упиралась в персонажа и долбила его жизни. ( засасывала? - надо будет сделать такого монстра- пылесоса!! )
Зажимала к стеночке или спихивала в пропасть. Теперь же персонаж подлетает от ее ударов.
Это очень забавно  ;D
Пока еще примитивненький враг, это не босс, и не кто то метящий конкретно в игрока.  
Но со временем проработаю и усовершенствую.
Можно просто создать другой вариант лягухи, окрасив ее программно в красноватый цвет, и усовершенствовать ее скрипт.
Добавить рейкаст ( линию " взгляда") или некий тригер, что бы когда игрок появится в ее " поле зрения " ( луч рейкаста наткнется на игрока или игрок войдет в зону триггера)-  тогда она, " завидев" игрока начнет доебываться  нападать конкретно на него. Например плюясь мухами ( осами), которые наносят урон персонажу, до того, как он вообще к ней приблизится...

Над усовершенствованием поработаю позже.
Пока иду по плану, данному в уроке.

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

Поэтому занимаюсь поочередно с разными вариантами уроков по созданию игры (  RPG или платформера).
У каждого  учителя - свой стиль и подход в написании кода.
Это забавно ( лично для меня), что нет строгого правила для создания определенного эффекта. Можно написать код по разномую обращаясь к разным компонентам объектов сцены, для получения похожего результата.
Например ту же пульку ушедшую " в молоко", не столкнувшуюся ни с чем и не исчезнувшую, можно заставить исчезнуть разными способами.
Или обратившись конкретно к Времени ее жизни на сцене. Или к вектору ее полета ( на таком то моменте движения по вектору, пройдя 5 условных единиц - удалить объект).

То же и с другими функциями. Про вызов аудио я написала.
Но так же даже в базовых вещах, например управление персонажем.
Некоторые учителя конкретно задают кнопки - вправо D, вниз Sвлево A и т.д.
Другие же обращаются к глобальным функциям встроенным в программу. И код получается короче...
Вместо обращения к кнопке  клавиатуры или джойстика - обращаются к глобальному " перемещению по Горизонтали, или к глобальной Стрельбе Fire1, Fire2, где уже предопределены и кнопки на клавиатуре и кнопки на джойстике..

Добавила к ее ударам по персонажу - способность отталкивать его.
Даже этот эффект можно вызвать по разному. Либо добавив " Способность"  врагу ( конкретному какому-то, или всем врагам вообще), либо же - прописать в скрипте самого игрока, определив это как Его Реакцию на удар от врага.

Для меня все это небольшие открытия... хотя тот кто хорошо знаком с программированием - только ухмыльнется  ;)

Иногда занимаюсь по старым урокам( 7-8  летней давности) , специально - старые варианты некоторых кодов ( и обращения к компонентам)- не работают в новой версии . И приходится самой соображать, как  изменить строки что бы они заработали. Сама то логика верна, а вот написание устарело..

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

Такое чувство, что нужно уловить некий " трюк", некую логику, и тогда мне станет доступно некое нутро написания скрипта.. можно будет творить самостоятельно. Пока же - опираюсь на учителей.
Может это и глупо, но я получаю удовольствие от процесса.

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

То есть чтоб усовершенствовать Злобную Лягуху придется самой рыться в инете.
Сделать вариант плюющийся мухами в игрока и еще вариант - пылесоса ;D

« Последнее редактирование: 10 апреля 2021, 19:09:32 от Соня (Bruja) » Записан

Pipa
Техник
Старожил
*
Offline Offline

Пол: Женский
Сообщений: 13017



WWW Email
« Ответ #7 : 10 апреля 2021, 20:38:27 »

То есть чтоб усовершенствовать Злобную Лягуху придется самой рыться в инете.

     Может быть лучше сделать вместо лягухи ... неорганика :), который при столкновении будет отнимать не здоровье, а осознанность? А когда запасы последней у персонажа заканчиваются, он тоже превращается в неоргана/летуна и более игроком не управляется. Т.е. переименовать здоровье в осознанность, а вместо лягухи выбрать какое-нибудь страшилище (лучше чертикоподобное с крылышками).
Записан
Соня (Bruja)
Сказочник Пня
Старожил
*****
Offline Offline

Пол: Женский
Сообщений: 9271


Соня и чумазый Лис


WWW
« Ответ #8 : 10 апреля 2021, 22:23:11 »

Может быть лучше сделать вместо лягухи ... неорганика , который при столкновении будет отнимать не здоровье, а осознанность? А когда запасы последней у персонажа заканчиваются, он тоже превращается в неоргана/летуна и более игроком не управляется. Т.е. переименовать здоровье в осознанность, а вместо лягухи выбрать какое-нибудь страшилище (лучше чертикоподобное с крылышками).


Лягуха - это просто картинка их пакета бесплатных " врагов" ( пакет 2д спрайтов для обучения). Там есть мухи, осы, улитки... из неоргаников - только зеленый квадратик с рожицей...

То есть, пока я учусь, и чтоб не тратить время на рисование, пользуюсь тем что есть в пакете.
Что бы отработать разные модели поведения, разработать логику игры, взаимодействия меж объектами сцен( уровней)  и много чего другого. Как вставить звуки, как сделать меню и настроить кнопки. Как сделать переходы с уровня на уровень, как вызвать новую счену, когда персонаж открыл дверь например...
Как потом все это собрать, чтоб получился один файл app или ехе или html5
.... поэтому мне придется какое то время поработать с бесплатными пакетами.
Иначе займусь рисованием, а потом  окажется что картинки нужно перерисовывать. Например та же лягуха - в пакете нет картинки лягухи плюющей мухами. Или раздувшейся как шар, когда она проглотит игрока. Такое рисовальщику пакета в голову не приходило.
И мне бы не пришло, по крайней мере до тех пор, пока не занялась улучшением скрипта врага.
Нужно примерно знать какими будут враги и их поведение, что бы уже рисовать и анимировать то поведение, которое нужно...

Конечно в моей игре будут именно неорганики и киборги - результаты неудачных экспериментов с трансформацией. Ну может быть еще и одержимые люди и животные. Одержимые неорганами или ии...

Про осознанность - это отличная идея!

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

;)


Как вызывать объекты сцены, как к ним ( их скриптам) обращаться из других скриптов ( классов)- я уже  понимаю. И if,  else if, else  - мне тоже понятно как работают условия.
Хотелось бы разобраться с карутинами  ( IEnumerator )  замкнутыми циклами и массивами... они нужны для самых прикольных эффектов ( помимо встроенной физики 2д  и эффекторов - это просто магия! И писать порывы ветра с нуля не надо. Ну или отталкивающую силу воды или ее течение....  или батут  или пружину к которой можно прицепить объект - эти классы уже есть готовые, только подставляй значения...
Записан

Pipa
Техник
Старожил
*
Offline Offline

Пол: Женский
Сообщений: 13017



WWW Email
« Ответ #9 : 11 апреля 2021, 03:12:59 »

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

Тогда может быть можно убить персонажа, труп убрать, а на его месте создать нового неорганика/летуна?
Записан
Соня (Bruja)
Сказочник Пня
Старожил
*****
Offline Offline

Пол: Женский
Сообщений: 9271


Соня и чумазый Лис


WWW
« Ответ #10 : 11 апреля 2021, 04:22:43 »

Тогда может быть можно убить персонажа, труп убрать, а на его месте создать нового неорганика/летуна?

Конечно можно. Очень запросто ( так же как ныне вызывался фонтан красных пикселов. Просто вместо системы частиц " смерти" - вызвать заготовку врага ( ну уже с его анимацией, чтоб крыльями махал, зыркал глазенками и щелкал зубами).


. Просто нет игрока - то есть некем/ нечем управлять пользователю,  то игру нужно остановить. Иначе сочтут за программный баг.

Возможно я вас сначала не правильно поняла .
Вы предлагаете, как проигрыш в игре - назначить - полную потерю осознанности и пополнение команды неорганов/ летунов?
Я подумаю над этим.
И еще подумаю над тем - что и6рок может продолжить играть неорганом, пока вновь не накопит осознанности, достаточной, что бы снова стать самим собой...
Записан

Соня (Bruja)
Сказочник Пня
Старожил
*****
Offline Offline

Пол: Женский
Сообщений: 9271


Соня и чумазый Лис


WWW
« Ответ #11 : 11 апреля 2021, 04:40:55 »

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

Сброс памяти PRAM и NVRAM: Выключите свой ПК. Включите компьютер и одновременно нажмите и удерживайте комбинацию Command+Option+P+R (это нужно сделать прежде, чем появится серый экран). Спустя несколько секунд ваш Mac вновь перезагрузится, и после звука загрузки вам можно отпустить нажатые клавиши.

Читать полностью: Mac странно ведет себя при выходе из сна или как сделать «Жесткий сброс»
https://technotree.ru/mac-stranno-vedet-sebya-pri-vyxode-iz-sna-ili-kak-sdelat-zhestkij-sbros

Нормально мак потерял систему! Не может загрузиться с основного диска. При включении сразу переходит в режим восстановления системы.
Пришлось стереть диск с системой OS. Поставила восстанавливаться с диска с сохраннной в феврале полной копией ( TIME MASHIN). последующие восстановления ( более поздние) можно будет установить потом, поверх.
Посмотрим как пройдет восстановление... уже написал комп, что это это часов на 5- 6!!!  ( с 3 ночи... значит к 9 утра... и дернул же меня черт за руку... ;D )

Придется снова все начинать...
Не помню стояла ли у меня в сохраненной копии для восстановления Unity  с настроенным на нее VisualStudio ....
Заново все это ставить и настраивать, что бы работали автоподсказки в редакторе кода - это такая морока....на маке!
На винде - запросто. Есть у меня страховочный диск с вин ХР ( на BOOTCAMP) , в том же маке.. правда не на быстром ssd а на обычном дополнительном диске...
Как ни странно на нем все программы работают, не смотря на то, что это старая система и на нее нет больше обновлений.
Правда обычный диск ощутимо медленней flash ssd

// 21% и осталось еще 3 часа... надо же... ( 3.43  ночи).
Записан

Соня (Bruja)
Сказочник Пня
Старожил
*****
Offline Offline

Пол: Женский
Сообщений: 9271


Соня и чумазый Лис


WWW
« Ответ #12 : 11 апреля 2021, 05:07:18 »

Как все это ( конкретно эта тема на форуме в разделе dreamland)
 связано со сновидениями???¿¿¿  

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

Ну или нечто подобное. Обычно работаю над какими то приемами, которые в реале только собираюсь сделать. Или над моментами которые мне в коде не совсем понятны.

Но сегодня ( причем это не впервые уже) - я с радостью показывала как управляюсь с лилипутами на моем диване - своей Тени  или Проводника ( ну тот высокий, черный чел. Правда сейчас  часто принимает образ мужа . Или просто человека, но такого обобщенного что ли. Там нет черного, он бледно голубого оттенка .. ну как при свете луны. ощущается в сновидениях очень родным...). Он часто дает советы или лезет показывать наглядно, в чем я ошибаюсь - прямо что то изменяя на сцене " кукольного городка".
Бывают сны и иного рода, где персонажи, атрибуты программы для разработки , эдиторы - становятся человекообразными. Со своими характерами и наклонностями. Со своим поведением. А я как бы и в их кругу вращаюсь, пытаюсь понять, как ими управлять покорректнее. Но в то же время - я не совсем там. Не совсем на том плане " бытия" что и они. Но могу взаимодействовать. А могу оставаться невидимой для них.

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

То есть моего соратника сновиденного нет. Но на его месте кто то ( что то) есть. Совершенно невидимое. Но ощутимое. И ощущение это вовсе не такое, как от моего друга сновиденного...

Не знаю, почему, но осознание, что общалась я с кем то - чем то иным ( принимая за знакомого неоргана)-  заставило сильно колотиться сердце об грудную клетку. Я пыталась успокоить сердце и унять сердцебиение - уговаривая его, что ничего страшного нет. И этот незнакомец невидимый -  не собирается причинять вреда. Иначе у него было много времени до этого момента, пока я принимала его за родного такого с самого детства  Проводника. Причем именно Он помогает в обучении, пока я его принимаю за старого друга ( не пугаюсь ).

Но хотя сидящее рядом чужеродное и полностью прозрачное существо меня не касалось - электрические мурашки стали покрывать мое тело, поднимаясь от самых пяток...

Причем я и раньше с этим существом ( или объектом) сталкивалась, как занялась и ушла с головой в Unity и его скрипт. Но не понимала, от чего посреди сна начинается тахикардия, и я просыпаюсь... хотя сам сон был довольно миленький..

Посмотрим, что это за новый нерган появился..( или это старый и привычный так трансформировался????) . когда полностью осознаюсь - он прекращает общаться со мной. И вообще никак не проявляет себя, кроме этого чужеродного поля рядом со мной. Справа от меня и немного впереди он появляется ( если кому интересно).

// восстановление системы - остался 1 час 45 мин... 4.25 ночи
Записан

Pipa
Техник
Старожил
*
Offline Offline

Пол: Женский
Сообщений: 13017



WWW Email
« Ответ #13 : 11 апреля 2021, 16:33:49 »

Вы предлагаете, как проигрыш в игре - назначить - полную потерю осознанности и пополнение команды неорганов/летунов?

     Я полагала, что за лягух играет компьютер. В этом случае после переименования лягух в неорганов/летунов они так же останутся ботами. А если лягуха в игре не единственная, и компьютер управляет целой армией лягух, то ему всё равно сколько их у него в подчинении. По этой причине замена аватара поигравшего игрока на аватара противника имеет смысл, если в игре участвует несколько игроков (команда) или у игрок имеет несколько аватаров, которыми управляет. В противном случае игра закончится, и превращение не будет иметь смысла.
     Само же превращение аватара, потерявшего всю свою осознанность, в летуна, имеет не столько игровой смысл, сколько чисто "идеологический", т.к. летуна обычно положено представлять в виде беса, вселившегося в человека. Ну, типа зомби. В последнем случае человеческий образ в значительной мере сохраняется, только это уже не человек. Однако в играх зараженный образ положено менять, чтобы дать возможность отличать игроков от их противников. Поэтому превращение аватара игрока, потерявшего весь запас своей осознанности, в зомби, полностью находящегося в подчинении летуна, - вполне логичное решение. Тем паче, что можно сказать, что летуны людей зомбируют :).
Записан
Соня (Bruja)
Сказочник Пня
Старожил
*****
Offline Offline

Пол: Женский
Сообщений: 9271


Соня и чумазый Лис


WWW
« Ответ #14 : 11 апреля 2021, 20:44:15 »

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

Ну да, если мультиплей- то было бы интересно. Что то типа MMORG в которых юзеры играют по сети, подключаясь каждый из своего домашнего компа...
Сама же игра лежит на серверах, обычно на нескольких. А пользователи скачивают приложение - клиент.клиент подключается к одному из серверов.... сама когда то увлекалась такого рода играми (Lineage2).  Мы даже созванивались по скайпу - мультиконференции устраивали, когда отправлялись к боссам. Там всегда отличный лут выпадал, который просто так не добыть. А в одиночку на босса идти было чистое самоубийство. Да и не пускали в одиночку. Портал не перемещал. Требовал определенное количество игроков. Приходилось либо на месте в чат кричать, чтоб позвать желающих, либо через скайп...
Удивительно, что на сервере играли люди из кучи стран. Кто с рф, кто со штатов, кто с кавказа...
Я же играла из Италии. И конечно русскоговорящие там быстренько объединялись.
Эх... ностальгия...

Но мне разработкотка игры такого масштаба не по зубам ( да и если честно -  комп не потянет).
Записан

Страниц: [1] 2 3  Все
  Печать  
 
Перейти в:        Главная

Postnagualism © 2010. Все права защищены и охраняются законом.
Материалы, размещенные на сайте, принадлежат их владельцам.
При использовании любого материала с данного сайта в печатных или интернет изданиях, ссылка на оригинал обязательна.
Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC