Пятница, 29 Марта 2024, 04:16

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Ваши проекты » Идеи для реализации » [Gamiron #12] Carnage metal (unity3d TBS)
[Gamiron #12] Carnage metal
xMoonGuarDxДата: Вторник, 21 Июня 2016, 06:15 | Сообщение # 1
участник
Сейчас нет на сайте
Название: Carnage metal
Разработчик: xMoonGuarDx
Жанр: TBS (turn-based strategy)
Среда разработки: Unity3D
Платформа: PC
Описание: (временное)
Далекое будущие, уже не первое столетие идет колонизация человечества.
Дик - капитан небольшой передвижной базы на одной из колонизированных планет. Промышляет перевозом грузов между городами.
Времена нынче неспокойные, идут постоянные распри за ресурсы между организациями. Вот и сейчас Дик взялся за горячий заказ с доставкой важного груза - местной “принцессы”.




Так как графен не завезли, скорее всего игра будет геометрического формата, т.е. из кубов, треугольников и шаров xD Хотя глянул ассеты, есть весьма вкусные с небольшой стоимостью, может их закину. В общем искать надо, но т.к. преимущественно я программист, то и стремлюсь больше в эту сторону :)
Вообще давно хотел написать что-то в жанре TBS. Посмотрим сколько для конкурса успею.


Сообщение отредактировал xMoonGuarDx - Вторник, 21 Июня 2016, 08:12
OrdanДата: Вторник, 21 Июня 2016, 06:17 | Сообщение # 2
Главный зомби
Сейчас нет на сайте
Супер, TBS мой самый любимый жанр)

Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)

Мои проекты ТЫК
Мои видяхи на ютубэ ТЫК

Если ты споришь с идиотом, вероятно тоже самое делает и он.
xMoonGuarDxДата: Вторник, 21 Июня 2016, 06:21 | Сообщение # 3
участник
Сейчас нет на сайте

Суть плагина в том, что бы я из юнити мог описать все элементы текстовые, по ним составляется xml, которую потом кушает игра и может переключаться между языками. Т.е. просто стало лень руками составлять такую штуку, вот и прикрутил плагин. В дальнейшем хочу, так же как у l2 сделать подключение к гугл-таблицам и синхронизацию. Но это все после конкурса. Так же, если будет кому интересно, оформлю небольшую документацию, приведу в порядок и выложу в открытый доступ плагин, но опять же, после конкурса.
OrdanДата: Вторник, 21 Июня 2016, 06:44 | Сообщение # 4
Главный зомби
Сейчас нет на сайте
Я бы посмотрел на реализацию) В моем движке что то похожее сделано.

Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)

Мои проекты ТЫК
Мои видяхи на ютубэ ТЫК

Если ты споришь с идиотом, вероятно тоже самое делает и он.
xMoonGuarDxДата: Вторник, 21 Июня 2016, 07:32 | Сообщение # 5
участник
Сейчас нет на сайте
Цитата Ordan ()
Я бы посмотрел на реализацию) В моем движке что то похожее сделано.

Если говорить о технических аспектах, то это не выглядит столь интересно. Поскольку для отрисовки GUI я использую API unity3d. Сама xml-ка составляется с помощью сериализации в .net. Единственный наворот, что пришлось сделать обертку текста в [CData] что бы любые символы отображать. Но это так, что бы говорить "он может в любой текст", по факту врятли это будет использоваться smile Из минусов, что я вижу, это конечно неудобство, когда будет много текстовых элементов (нужен поиск и категории), а так же если будет большой текст (надо дать возможность заполнять в больших текстовых полях значения)



Сообщение отредактировал xMoonGuarDx - Вторник, 21 Июня 2016, 07:33
EvilTДата: Вторник, 21 Июня 2016, 11:47 | Сообщение # 6
Кочующий Художник
Сейчас нет на сайте
Ат черт, а я хотел тебя прогером звать

AlfeДата: Среда, 22 Июня 2016, 13:36 | Сообщение # 7
старожил
Сейчас нет на сайте
xMoonGuarDx, добавил проект в общую

Группа нашей команды. Там есть интересная рубрика... иногда игры выходят

Моя первая игpa - Crazy Penguin
ShortKedrДата: Среда, 22 Июня 2016, 14:02 | Сообщение # 8
Renword Studio
Сейчас нет на сайте
Цитата xMoonGuarDx ()
Поскольку для отрисовки GUI я использую API unity3d

А чем API Unity не нравится?) По факту все расширения на ней рисуются
Вот например написанные мной системы вещей и квестов, точнее их редакторы:


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


Сообщение отредактировал ShortKedr - Среда, 22 Июня 2016, 14:15
xMoonGuarDxДата: Среда, 22 Июня 2016, 14:26 | Сообщение # 9
участник
Сейчас нет на сайте
Цитата ShortKedr ()
А чем API Unity не нравится?)

Все нравится, наоборот крутая штука smile Речь шла о том, что как раз графический вид для юньки, занял у меня львиную долю реализации (просто начинающий, первый раз смотрел что там можно вообще сделать), а не сама сериализация или логика.
Цитата ShortKedr ()
В будущем было бы полезно добавить языки, а именно их список и возможность добавлять дополнительные языки

Да, это тоже отмечал. По факту это уже есть, логика под это написана. Просто GUI для добавления самого кол-ва языков пока не добавил. А так все поля языковые формируются автоматом, от заданного количества языков.
п.с. редакторы классные. В description у квестов даже вижу вроде что-то скриптовое, любопытно.
п.п.с. а ты что именно из предметов сериализуешь? Все? Просто вижу, что там подгружаются сами префабы, они сериализуются как-то? художник кстати тоже через юньку работает? Т.е. check library проверяет изменения в xml/json/etc на гите?


Сообщение отредактировал xMoonGuarDx - Среда, 22 Июня 2016, 14:35
ShortKedrДата: Среда, 22 Июня 2016, 15:36 | Сообщение # 10
Renword Studio
Сейчас нет на сайте
xMoonGuarDx, спасибо)
У квестов специальная связь со списком переменных. Во время игры такой текст можно распарсить через специальную функцию и получить строку со вставками переменных.

Сериализация, нет, не про json, я про unity сериализацию. В префабах можно довольно удобно хранить данные, но для этого нужно всё правильно связать с системой сериализации unity. Как известно, юнька не умеет сериализовать многие типы, например Dictionary<TKey, TValue>, следовательно данные не сохранятся. Проверить это можно в реализации инспектора для MonoBehaviour классов. Если интересно, есть интерфейс ISerializationCallbackReceiver для реализации нестандартной сериализации, в том числе можно Dictionary научить сериализоваться в unity.
В целом же хранить данные в префабах используя сериализацию unity довольно удобно, можно спокойно хранить ссылки юньки на другие внутри-проектные префабы, текстуры, объекты и прочее...


Check library проверяет правильность составленной библиотеки, т.е. повторы id, имён вызова и прочее. В общем-то нужно для работы системы во время игры)

Художник, да, он же не только художник :D
Дизайном редактора он не занимался, это чисто моё конструктивное извращение biggrin

P.S. Ну, кстати, когда пишешь такой редактор, понимаешь, что Layout можно выбросить и просто рисовать, аналогично интерфейсу GUI


Сообщение отредактировал ShortKedr - Среда, 22 Июня 2016, 15:57
MysticPurpleДата: Среда, 22 Июня 2016, 15:49 | Сообщение # 11
почетный гость
Сейчас нет на сайте
Люблю TBS, особенно с тактическим боем smile
Удачи с проектом!

Цитата ShortKedr ()
Вот например написанные мной системы вещей и квестов, точнее их редакторы:

Ух ты красота какая smile
А мне все лень было учиться делать расширения редактора, а с вашей картинкой понял истинную мощь кастомных редакторов
xMoonGuarDxДата: Среда, 22 Июня 2016, 16:00 | Сообщение # 12
участник
Сейчас нет на сайте
Цитата MysticPurple ()
Удачи с проектом!

спасибо :)

Цитата ShortKedr ()
Как известно, юнька не умеет сериализовать многие типы, например Dictionary<TKey, TValue>, следовательно данные не сохранятся.

Тут не совсем в юньке дело, а в самой версии .net, которая заложена в неё. Да, именно из-за этого пришлось создавать собственный класс, просто это оказалось быстрее и проще, чем реализовывать интерфейс. Просто у класса и свойств задал парочку атрибутов [XmlRoot(string name)] и [XmlElement(string name)], так получилось быстрее для корректной xml. Хотя изначально вообще через XmlDocument создавал xml, но когда дошел до сохранения, стало влом описывать вариант сохранения и решил, что сериализация мощнее и быстрее)
п.с. надо будет попробовать что-то подобное, как у тебя написать, после конкурса... smile


Сообщение отредактировал xMoonGuarDx - Среда, 22 Июня 2016, 16:01
ShortKedrДата: Среда, 22 Июня 2016, 16:10 | Сообщение # 13
Renword Studio
Сейчас нет на сайте
xMoonGuarDx, тем не менее сериализовывать Dictionary можно, поэтому всё же UnityTechnologies не сделали сериализацию. Кстати это их интерфейс и предназначен он как раз для их сериализации)



Удачи в конкурсе!)


Сообщение отредактировал ShortKedr - Среда, 22 Июня 2016, 16:17
xMoonGuarDxДата: Суббота, 25 Июня 2016, 17:24 | Сообщение # 14
участник
Сейчас нет на сайте
ShortKedr, спасибо :)

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



Сообщение отредактировал xMoonGuarDx - Суббота, 25 Июня 2016, 17:31
ShortKedrДата: Суббота, 25 Июня 2016, 20:51 | Сообщение # 15
Renword Studio
Сейчас нет на сайте
xMoonGuarDx, здорово, я атрибуты тоже активно юзаю.

Цитата xMoonGuarDx ()
не знаю, что-то вставило меня это действо

У самого также biggrin

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


Вложенные, это в смысле обработка внутренних объектных вложений? По идее её тоже нужно сделать. Сделай рекурсию, одной функцией сразу все вложение заполнишь.
xMoonGuarDxДата: Воскресенье, 26 Июня 2016, 08:01 | Сообщение # 16
участник
Сейчас нет на сайте
Цитата ShortKedr ()
Вложенные, это в смысле обработка внутренних объектных вложений? По идее её тоже нужно сделать. Сделай рекурсию, одной функцией сразу все вложение заполнишь.

Тут проблема в решении конфликтов. Например, на разных уровнях у пользователя будет один и тот же скрип. Что приведет к тому, что код не сможет определить, какой терм к чему относится. Как вариант, конечно, записывать не просто имя, указанное в атрибуте, но ещё и название объекта, на который повешен скрипт с атрибутом. Т.е надо тщательно проработать такой use case, думаю, что проблема скорее всего решаема.


Сообщение отредактировал xMoonGuarDx - Воскресенье, 26 Июня 2016, 08:02
ShortKedrДата: Воскресенье, 26 Июня 2016, 11:29 | Сообщение # 17
Renword Studio
Сейчас нет на сайте

Добавлено (26 июня 2016, 11:16)
---------------------------------------------
Цитата xMoonGuarDx ()
Говорят, что юнька в скором времени перейдет на .net 4.6 и c# 6

Это отличная новость :D

Добавлено (26 июня 2016, 11:29)
---------------------------------------------
Я понял, что вы имели ввиду, так вот. Сделайте второй конструктор для LocalizationRequired, без параметров, добавьте какой нибудь bool флаг, который будет ставится на true только с первым конструктором. У полей классов с LocalizationRequired без параметров вызывайте FillTerms, но указывая уже этот класс. fieldInfo.GetValue знаете как пользоваться) Вот и решение проблеммы, нужно только сделать проверку, чем является поле
Код
if (fieldInfo.FieldType == typeof(string)) {
    //если string
} else if (fieldInfo.FieldType.IsClass) {
    //если класс
}


Сообщение отредактировал ShortKedr - Воскресенье, 26 Июня 2016, 11:39
Форум игроделов » Ваши проекты » Идеи для реализации » [Gamiron #12] Carnage metal (unity3d TBS)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг