Но я не могу понять зачем делать такой редактор? Кому он нужен? Карту же можно в фотошопе нарисовать. Тем более, что максимум, что можно создать из такого редактора, так это prefab. В игры выше я не играл и плохо представляю, что это за карты. Я не понимаю, как должен выглядеть редактор карт и не могу приступить к выполнению задания.
Сообщение отредактировал 8Observer8 - Вторник, 21 Июля 2015, 20:35
Ну тут нужно, что конкретно нужно делать. Что редактор должен уметь делать то? По поводу редактора карт WarCraft это реально мощная вещь, я сам начинал свой путь с создание модов к WarCraft, что бы нечто подобное создать уйдет очень много времени. Разве в компании не дали четкое ТЗ?
Делается это для того, чтобы прямо в Юнити можно было создавать карты не перерисовывая каждый раз карты, ведь добиться отличного баланса можно лишь путем проб и ошибок. 1. Название карты 2. количество карт стихий, необходимых для того, чтобы переложить эту карту из руки на стол, т.е. активировать ее, где они будут сражаться с картами, которые выложит соперник: в атаке ли, в защите ли. стихии бывают: синяя, красная, черная, зеленая и т.д. в зависимости от игры. Если стоит цифра, например 1, значит для вызова может быть использована любая карта стихий, т.е. в нашем случае: 1, огонь, огонь, свет. Для того чтобы выложить карту на стол понадобится уже выложенных карт стихий в руке: 1 любая, две - огня (красная) и одна солнца (белая). 3. Тип существа 4. Первая цифра - атака, вторая - защита 5. Описание карты 6. картинка карты
Т.е. запрошенный у вас редактор должен позволять выбирать картинку для карты, выставлять параметры карты, описание и т.д., причем вы должны сделать выбор типа карты - обычная, с доп возможностями, используемая сразу из колоды и т.д.
Добавлено (21 июля 2015, 22:55) --------------------------------------------- ну и не только для баланса, конечно, необходимы такие редакторы. Удобней, понимашь... http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Не обижайтесь, но для выявления подобного и нужны тестовые задания )) Ищите другую контору
Да хотелось бы в этой удержаться и развиваться. Тут вся команда англоязычная. Раз в неделю сборы в скайпе. Можно послушать живую английскую речь по предметной области, а в перспективе - поучаствовать. Это стимулирует изучать английский. По контракту, как минимум нужно уделять 10 часов в неделю на работу. В качестве подработки и обучения английскому было бы неплохо. Тут каждый борется за процент от продаж на стиме. Правда, меня смущает то, что по контракту абсолютно всё принадлежит одному человеку. Я понимаю, что с моим разговорным английским и тем, что в Unity новичок - мало шансов удержаться, но задание, хотя бы для опыта, нужно сделать.
MANMANA, огромное спасибо! Теперь я понимаю. Мне тимлидер по скайпу показывал примерно такие. Как я понял процесс работы с редактором - это создать объект, у которого будут производные объекты - Plane и тексты. Человек вводит тексты, выбирает картинку, получает объект, переименовывает его и бросает в папку Prefab.
beril, мне в той конторе тимлидер подарил Text Mesh Pro. Я могу выложить исходники проекта, в котором используется этот пакет?
Сообщение отредактировал 8Observer8 - Среда, 22 Июля 2015, 06:54
beril, мне в той конторе тимлидер подарил Text Mesh Pro
В cocos2d все это по умолчанию есть:Р
Цитатаseaman ()
Тексты не главное. Главное - характеристики. Атака, защита, дополнительные перки.
А вот тут да, если нужно просто сделать, что бы тексты можно было вводить, это просто, такой редактор за денек неторопливой работы делается, а вот если еще и характеристики "интерактивными" должны быть, то тут уже на недельку Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы. Как правильно задавать вопросы в технических форумах
мне в той конторе тимлидер подарил Text Mesh Pro. Я могу выложить исходники проекта, в котором используется этот пакет?
Исходники проекта без проприетарного кода подаренного компонента - да. Исходники платного компонента - нет. Если вы купите исходники ms exchange, вы тоже можете их выложить? Еще бы проверить, позволяет ли лицензия подаренного вам компонента совершать акты дарения, как это сделал ваш лид :-) http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Во всех ККИ разработчику нужно подготовить сохраненную базу данных по имеющимся картам. Каким образом сформировать комплексную запись о игровых параметрах карты? Вариантов на самом деле не много: - сделать хмл/json описание каждой карты и сохранить это в отдельном файле. потом придется парсить это в ИГРОВОМ режиме и использовать. что неудобно на стадии разработки. - создать объект сцены, холдер с сериализованными классами карты. удобно во всех смыслах - и на стадии разработки, и на стадии игры. требует возможности редактирования параметров карты во время разработки. - вот второй вариант и заказали. - сервер с базой данных всех карт, доступ по ID, на стадии разработки требуется только прикрепить ид к префабу карты, все остальное делает обработчик игрового процесса - загружает параметры и тп. один из самых трудоемких (из за стадии разработки и тестирования), но гибких в дальнейшем вариантов.
решение (вариант 2) состоит из нескольких частей: 1. нужен класс карты со всеми ее параметрами и разделением на заложенное значение и текущее состояние (ослаблена действием другой карты или заклинанием или местом сражения и тп). 2. сам холдер - скрипт со списком карт в колоде, списком карт в игре и тп 3. для удобного ручного формирования и параметров карты (заполнение полей класса) и холдера колоды/карт на поле - нужен костомный эдитор через который ты просто забиваешь неоднородные поля класса карты и холдера. В нем могут быть и поля картинки, и поля с ограничениями, и поля с форматированным описанием и тп и тд. Все это получить штатным редактором ты не сможешь никак! И нет возможности формировать заполнение класса как то иначе - нужно либо сменить концепцию подхода к работе движка кки, либо никак. Поэтому такой заказ сразу и делают при разработке ККИ - кастомный эдитор. Просто видишь, там не дали намеков что даже для тестовой сцены с таким эдитором - должны быть и класс карты, и класс холдера, и детальное описание всех нюансов параметров карты (визуальные, технические). Вот у тебя и возникла сложность.
На самом деле, я бы не дал такое стажеру! Задача для нехилого такого уровня скила в модинге Юнити (если карты сложные). Я делал сам такую вещь и мне приходилось и концепции карт менять и концепции боя - чтобы добиться балансов и гладкой динамики. Конечно в результате эдитор спокойно потянул на отдельный аддон кит для разработки ККИ Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Имхо - самое хреновое - перки. Потому как они весьма плохо формализуются. Ну вот примеры: "излечите 3 повреждения с целевой карты" "Все ваши карты получают +1" "Атака выбранной карты становится равна 0" "сбрасывает случайную карту из руки" "Когда данная карта входит в игру, вы можете взять дополнительную карту" "Когда вы берете карту, противник получает 1 повреждение" "Противник сбрасывает 2 карты." И таких перков может быть сотни. Почти не повторяются. Что с ними делать, кроме как тупо вручную программировать для каждой карты - я так и не понял.
Мне пришлось формализировать тип воздействия - это был класс, в котором сохранялся список действий перка в виде энумерованных наборных парметров, которые просто переводились в воздействие на реальные показатели одним конвейером во время игры. Самое сложное было собрать универсальную модель описания - в виде конструктора опирающегося на полный список всех возможных целей атаки по картам, игроку, процессу. А потом - очень простой наборный пазл в каждом "перке". Но система так и не достигла абсолютной универсальности, имхо. Хотя мы решили все задачи и придумали по ходу еще несколько перков на этом конструкторе. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Не, ну конечно можно хоть как-то формализовать: 1. Цель действия - игрок/карта/колода/рука/"могильник" 2. Сторона воздействия свой/чужой 3. Количество карт на которое действует - число (0 - на все) 4. Параметр воздействия сила атаки/сила защиты/жизнь/... 5. Сила действия Так где-то 90% перков можно охватить. Остальные - вручную...
Абсолютно правильно!! Я в 1 пункт просто добавил "особое" и туда закатал все оставшиеся эксклюзивы. Во время боя интерпретатор просто имел индивидуально прописанные ветки под особое. И его оказалось что то около 3 элементов всего из 40-50! Поэтому система себя оправдала. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Есть общий документ для программистов команды, куда каждую неделю, напротив своего имени, нужно вписать, что сделал и текущий процесс. Я видел, что редактор карт уже делался до меня и продолжает развиваться. Скорее всего, от меня ждут редактор: насколько я его вижу и насколько смогу реализовать. Потом посвятят в основную разработку, в случае если увидят, что он меня есть какая-то отдача. Может я какие-то идеи предложу. Либо они хотят увидеть, что от меня никакого толка и просто со временем сам отвалюсь. Там система оплаты интересная. Сначала у меня 0%, а если сделаю задание, то будет 0.15% от ежемесячной прибыли от продаж, но в по контракту его могут расторгнуть в любой момент без объяснения причин. Лично мне опыт создания редактора будет не лишним. Наверняка мне это пригодится в будущем. Сделаю, отошлю, а если не ответят, то буду искать другую компанию в своём городе, удалённо или перееду в другой город. Мне очень нравится движок. Хочу изучать его с разных сторон.
Надеюсь, на подсказки, что я так или не так делаю.
Пока что я сделал окно, которое открывается из меню Window/Card Editor:
В консоль выдаётся предупреждение. Может кто-нибудь сталкивался. Я пробовал искать, но пока не понял, что это: Unable to find style 'ThirdFieldBox' in skin 'LightSkin' Repaint UnityEngine.GUIStyle:op_Implicit(String) CardEditor:OnGUI() (at Assets/Scriptes/CardEditor.cs:43) UnityEditor.DockArea:OnGUI()
Скрипт:
Код
using UnityEngine; using UnityEditor; using TMPro;
public class CardEditor : EditorWindow { public GameObject cardPrefab; private GameObject card;
// Add menu named "Card Editor" to the Window menu [MenuItem("Window/Card Editor")] static void Init() { // Get existing open window or if none, make a new one: CardEditor window = (CardEditor)EditorWindow.GetWindow(typeof(CardEditor)); window.Show(); }
void OnGUI() { GUILayout.BeginHorizontal("NameBox"); GUILayout.Label("Name:"); name = GUILayout.TextField(name, maxLenth); GUILayout.EndHorizontal();
if (GUILayout.Button("Add Card")) { card = Instantiate(cardPrefab); Component[] allChildren = card.GetComponentsInChildren(typeof(TextMeshPro)); if (allChildren.Length != 4) { Debug.LogError("Amount of components doesn't equal 4"); return; } else { (allChildren[0] as TextMeshPro).text = name; (allChildren[1] as TextMeshPro).text = firstField; (allChildren[2] as TextMeshPro).text = secondField; (allChildren[3] as TextMeshPro).text = thirdField; } } } }
Я так понял, что могу использовать только старый GUI.
Критикуйте, если что не так. Правда, пока особо нечего критиковать. Ну, а вдруг? Это просто черновик. Я пока не знаю, как сделать, чтобы поля ввода были одинаковой ширины и как добавить выбор текстуры. Поля ввода почему-то растягиваются влево при вводе текста.
Как мне cохранять объекты в папку Prefab по нажатию кнопки? Можно было бы, наверное, добавить галочку "Сразу в Prefab"...