Документация C# PDF
Game DevelopmentScrollable Menu in Unity with button or key controllerSelecting battle targets in a grid-based gameEquipment 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.
Тешу себя надеждой сделать что то путное и прикрутить к форуму ( если это возможно). Хоть тупой платформер, но наш личный... можно с приколом на нагвализм, карлос по кактусам шараебится и грибочки жрет и галюны ловит... типа марио такое
Одним словом думаю юнити проживет дольше флеша. Игры не быстро делаются. И если бы библиотека и старые методы разительно менялись при обновлении - мы не увидели бы многих игр. А за адаптацию готовой сборки в устройства пользователя - отвечает сама программа ( и ее разработчики).
О редакторе - когда то у юнити был свой редактор, довольно удобный, но ныне они вкрутили visual studio, или скорее к визуал студио прикрутили геймдев на юнити. После того, как визуал студио адаптировали под мак. Родной редактор забросили и ныне им никто пользуется.
Про языки самостоятельные - с ++, свифт - с одной стороны - из " цемента" теперь мало кто что то строит. С другой - а нафиг снова изобретать велосипед?
И вместо создания с нуля - переходим к строительству из кубиков.
Это тот же метод, каким мы сами думаем. Никто не задумывается что такое мяч. Все знают что некий объект 3 мерный в форме шара у которого есть какие то там свои параметры. Типа материал, цвет, упругость, шероховатость и т.д.
Поэтому говоря слово мяч мы примерно его уже себе как то представляем. Ну некоторые подклассы этого типа ( футбольный мяч, детский, надувной).
Нам не надо начинать с нуля - типа некий объект шарообразной формы, покрытый тем то и такого то цвета, прыгучий, накачан воздухом и т.д.).
Так мы сокращаем время или путь к объекту - предмету разговора или объекту в скрипте. Пользуемся уже готовым шаблоном, что мне и показывали в сновидениях. Мы не просто так говорим. Мы так мыслим. Таким образом. И так учим ИИ. Потому что ничего иного сами не можем представить.
То что языки программирования созданные по подобию нашего разговорного языка в итоге превратятся из цемента в такие вот кубики - стоило ожидать. Ну и дальнейшее развитие можно предвидеть ( сленги, жаргоны, вырождение понятий, подмена смысла изначально вкладываемого..
Кстати да,
про сны - занимаясь по урокам вспомнила некоторые сны, виденные в самом начале знакомства с С #. То есть я тогда видела то, что делаю сейчас . А вспомнила я - когда занимаясь по видео, заметила, что дедок ошибся. Он исправил ошибку позже. Но я ее заметила ее сразу. И вспомнила что уже видела все это, хотя проснувшись годы назад совершенно не понимала, что я там во сне делала.
То есть сидя с уроками сейчас, я повторяю то, что делала в сновидениях когда-то. С разницей - тогда, давно - сознание бодрствования совершенно не понимало, чем оно занималось во сне. И сны отбрасывались. Так как понять что то из них- не представлялось возможным. Не хватало у сознания бодрствования необходимой базы.
Про курсы - многие курсы - говно в том смысле, что они все начинают с того, что на мой взгляд должно быть в конце. Начинают с деталей самой сцены, с персонажа, его движений, врагов и прочей привлекательной визуально хрени. Тогда как начинать надо с позвоночника - то есть гейм менеджера, к которому они в конце концов все и прикрутят. Хотя им придется членить уже написанные портянки и переименовывать классы и иначе извращаться ( проделывать лишнюю работу).
То же и с системрй инвентаря. Занималась я по разным курсам. И практически все они начинались с херни - картинки, ячейки для шмоток, скрипт к ячейкам, который чем дальше - тем более навинчивался на некий остяк. А большинство инструкторов так к этому остову и не приходят вообще. И весь их проект - это куча отдельных блоков, ( заготовок, prefabs) которых непонятно куда в игре прикручивать. Дед же тем и притянул мое внимание, что сделав самое простенькое окошко с рангами шмота - перешел к остову, который будет нам такие окна лепить. Ну и отличия мы уже допишем интерфейсам самих окон, и классам которые к ним привинчены.
С ним я впервые увидела как создаются генератор. И несколько скриптов как один разделенный класс...
Вообще то
все началось с того, что заготовку под инвентарь я скачала. С официального сайта юнити ( с магазина). Это бесплатный эдитор, приложение к программе
Item & Inventory System от Devion Games.
Это именно то, что много лет назад создал тот дедок. Почти один в один, ну может быть выложенное ныне дополнение ( addon) - это более расширенная версия. Но это скачанное дополнение, при всей своей магической офигенности - никак не подошел к 2д игре. Все предметы что он генерировал были 3д качества. И даже сменив 3д мэш на 2д спрайт - в игре не было толку от тех предметов. Персонаж с ними не взаимодействовал, по простой причине - автоматически предметам цеплялась физика столкновений 3д предмета. Даже если это просто картинка.
Так работал этот скачанный редактор. Я знала, что надо поменять всего пару строчек.. Но заглянув в скрипты редактора - я обалдела - так как не увидела ничего знакомого. Там была куча кусков с отсылками от одного к другому и я просто не нашла строк которые надо изменить.
Это меня расстроило, а потом просто взбесило. И видео дедка - словно ответ на мою злость. Решила сделать сама, вместе с ним, но конкретно под 2д. И кнопки и описания видимые строки - по русски. Из вредности. А заодно и понять, где ж искать те заветные строки в скачанной сборке. Одним словом вместо игры увлеклась изучением кубиков и вариантов их членения и слиянии и вообще самим конструктором.
Если бы на уровне владела письменным английским то возможно пообщалась бы напрямую с теми у кого учусь. Или на форуме Юнити.
Но пишу я хреново, а на гугл не могу полагаться. А русскоязычная часть форума Юнити - это просто отврат. Вместо ответа отсылают учить не нужные на самом деле курсы по самостоятельному си шарпу. Ну и делают это конечно же в унизительной для новичка манере.
Поэтому буду делать записи по теме тут.