Star Conflict - Construction Yard или новый взгляд на конструктор кораблей

В общем как я себе это представлял и как это реализовано. Увы я плохо разбираюсь в сетевых приложениях т.к. имею опыт локального софта и то на VB.6 и Delphi частично.
Кто прочтет много букавок, тот молодец :fedcrazy:

По цвету.
на сколько мне не изменяет память, то в "Мount and Вlade " как таковые использовались не просто запеченные текстуры, а именно материалы (как в зд редакторе) отсюда и я плясал (я так через ноды и реализовал.
У меня 2 материала в котоых есть комплексный шейдер с набором проиндексированных текстур и вариативным интерфейсом цвета: “тон-насыщенность-яркость” ).
По факту применяется на модели два материала.
Материал 1:
Каналы: Цвет, Диффузия, Глянец,
Материал 2:
Каналы: Нормали
Материал 3:
Каналы: Цвет, Глянец, Прозрачность
Материал 4:
Каналы: Накал, Цвет

Что бы было понятно, на рисунке в дальнейшем будет показано как это выглядит…если дочитаете до него  :fedp:  .

Эти два универсальных материала применяется на все детали без исключения (Мат.1 и Мат.2). Однако нужно понимать. что под Мат.1 подразумевается серия аналогичных материалов (клонов Мат.1.) Достаточно иметь 3 идентичных мат.1. и зон для покраски на одной детали, дабы иметь широкие возможности покраски.
Материал 1 на детали не имеющие прозрачности, Материал 2 на детали не имеющие прозрачности (рельеф), Материал 3 на имеющие прозрачность (стекло), Материал 4 (свечение) Таким образом мы получаем гибкую настройку цвета для каждой детали, которая обуславливается лишь “зонами” рисунка. Имеется ввиду, что например для “детали №1” применяется один “материал №1” и “материал №2” (рельеф), а для “детали №2” - три идентичных друг-другу “Материал №1” + три “Материал №2” и каждый из них на “своей зоне” образуя рисунок для данной детали благодаря разделяющим материалам  только с альфа-каналом.

Так же имеется нюанс при масштабировании деталей. Я не знаю имеется ли в данном игровом движке наложение материалов. Но Это необходимо для того, что бы при масштабировании детали по любой из осей материал соответственно подвергался масштабированию т.е. если деталь например уменьшили в 2 раза, то текстура “материал №1” соответственно растянулась в 2 раза т.е. стала такой какой и была, а текстура “материал №2” (рельеф) соответственно деформировалась с деталью.
Почему “материал №1” остается стабильным, а “материал №2” отвечающий за рельеф масштабируется по UV соответственно с деталью?

Рельеф (нормали) имитируют как мы видим на моделях мелкие детали. Для несведущих в ЗД объясняю. Имитация применяется взамен настоящей конструкции мелких деталей т.к. модель состоит из полигонов (для примера возьмем майнкрафт и его кубики - 1 полигон пусть будет кубиком :fedcrazy: ) . Чем больше “кубиков” (полигонов) тем “тяжелее модель” и ее сложнее компьютеру просчитывать т.к. для формирования мелких деталей нам нужно мнооого маленьких “кубиков” для создания рельефа.
Имитация рельефа основана на затенении/отражении в определенной области “текстуры” по отношению к “зрителю” так, что создается впечатление, что там “выпуклость” или “углубление”. У нас именно “материал №2” выполняет функцию рельефа и было бы странно если бы “рельеф” детали оставался постоянным и при масштабировании детали, какой нибудь люк “уехал” сверху в бок.

А вот “материал №1” у нас"банальная краска" и она должна быть постоянной. Ну представьте себе: вы раскрашиваете в камуфляж звездулет и корпус у вас с “большими пятнами”, а маленькая деталь - с “маленькими пятнами” камуфляжа, как результат получим разнобой в масштабе окраски :fedlol: . Поэтому краска везде должна быть одного размера, а для этого, она должна пропорционально стремится сохранять свои 100% размера (что у меня и наблюдается на модели)
Обратите внимание. Для того, что бы не морочить голову с непропорциональными изменениями детали и UV, детали масштабируются по трем осям т.е. пропорции сохраняются. Деталь просто делается больше-меньше, ее нельзя вытянуть. Это позволит сохранить округлости на текстуре-рельефе (“материал №2”) т.е. люки и прочий псевдо-декор всегда будет круглым, квадратным и изогнутым как надо ![:santa:](<fileStore.core_Emoticons>/emoticons/santa.gif) . Просто и изящно.
И так что мы имеем в результате.
Как я уже говорил, каждая деталь в зависимости от копий материала на ней (как определили дизайнеры кол-во зон разрисовки. Сколько зон, столько и материала на ней) имеет регуляторы настройки цвета “материал №1”:
-Переключатель текстура/цвет в канале “Цвет”
-переключатель рисунка в канале “Цвет”, если пользователь (игрок) решит, что деталь будет с рисунком камуфляжа например, а не однотонного цвета (те самые проиндексированные текстуры в канале цвет “материал №1”. У меня в модели три типа камуфляжа, увы на видео не заметно т.к. ускорено само видео :fedp: )

  • Яркость Глянца, в канале “Глянец” для усиления, ослабления эффекта “металличности” материала т.е. как же объяснить по простому-то…как на машине в жизни - матовая краска и глянцевая :fedcrazy:
    -Переключатель проиндексированных текстур “Рельефа”… в канале “Нормали” (не бамп, а именно нормали применяются) для выбора рисунка. На видео вы видели, как кораблик стал “пупырчатым”. К сожалению я ступил и у меня в анимации все детали меняются с одинаковой скоростью, поэтому кажется, что они все залиты одним и тем же. На самом деле это не так

Сабж описанного выше:
108780820.jpg
 
Под идентичными настройками подразумеваются не одинаковые значения, а одинаковые параметры (свойства)

И так с механизмом краски вроде понятно.

По факту у нас все текстуры в материалах имеют индексы , поэтому структуру окраса в итоге для каждой детали можно представить примерно так с точки зрения программирования…Например Деталь с двумя зонами расцветки…

Деталь ID = 1************************************************************"материал №1" Зона расположения (Альфа-1)= 1:Цвет: Цвет/текстура = 1, Текстура_Col ID=2Диффузия: Текстура_DIF ID = 2Глянец: Яркость глянца = 100% "материал №2":Нормали: Текстура_NORM ID = 1************************************************************"материал №1" Зона расположения (Альфа-2)= 2:Цвет: Цвет/текстура = 1, Текстура_Col ID=3Диффузия: Текстура_DIF ID = 3Глянец: Яркость глянца = 50%"материал №2":Нормали: Текстура_NORM ID = 2 ************************************************************

По шаблонам.
как правильно написал Lendys
 

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

Координаты деталей и настройки цвета хранятся в текстовом файлике XML или со своей структурой (как хотите) на клиентской машине. Поэтому сервер от нагрузки избавлен. Как только игрок открывает редактор в его список подгружаются шаблоны игрока с его кампутера ![:santa:](<fileStore.core_Emoticons>/emoticons/santa.gif)
Далее игроки могут обмениваться по желанию шаблонами по внутригровой почте т.е. текст с этми ID дублируется по факту у второго игрока получившего “чертеж” и файлик с этими магическими записями создается у второго игрока на компе.

Как только игрок морально готов и доволен плодом своего творчества и у него есть 1250 ГС, он жмякает кнопочку “создать” и…вот тут я не знаю…ибо про работу сетевых, а не локальных приложений мне мало, что знакомо (точнее я не создавал сетевых приложений…в теории предполагаю два варианта , но писать не буду ибо в этом направлении профан). 4*32 т.е. представим себе сферическую ситуацию ПВП полный бой 16*16 и увсех по 4 крафтовых пепелаца т.е. 128 коров…как это подгрузить? …оптимизировать как-то…сеть + процедурка …наверно…“истина где-то рядом” © Да и в  RoboCraft по факту сбор мячты реализован (спасибо за наводку 

Dezrow, потестил - очень годно, хотя кубизмом от майнкрафта уже пресытился)   :fedp:

01.jpg

Вот так вот вкратце, а система цвета как видите не выдумана и вполне реализуема ![:angry:](<fileStore.core_Emoticons>/emoticons/angry.png)

Хочу! хочу-хочу-хочу!

Хочу! хочу-хочу-хочу!

Если очень сильно захотеть, то может мы увидим хоть какую-то отписку в данной теме от администрации СК…46 голосов  + 3 оппозиции все же “не шубку в панталонэ заправлять”  ![:santa:](<fileStore.core_Emoticons>/emoticons/santa.gif)

Координаты деталей и настройки цвета хранятся в текстовом файлике XML или со своей структурой (как хотите) на клиентской машине. Поэтому сервер от нагрузки избавлен. Как только игрок открывает редактор в его список подгружаются шаблоны игрока с его кампутера 

Далее игроки могут обмениваться по желанию шаблонами по внутригровой почте т.е. текст с этми ID дублируется по факту у второго игрока получившего “чертеж” и файлик с этими магическими записями создается у второго игрока на компе.

Как только игрок морально готов и доволен плодом своего творчества и у него есть 1250 ГС, он жмякает кнопочку “создать” и…вот тут я не знаю…ибо про работу сетевых, а не локальных приложений мне мало, что знакомо

 

в общем-то, xml (или иной вариант структурного хранения пакета данных) с конфигурацией кораблика может даже не на локальной машине лежать, а так же, как и настройки - есть галка “хранить на сервере”.

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

 

Координаты деталей и настройки цвета хранятся в текстовом файлике XML или со своей структурой (как хотите) на клиентской машине. Поэтому сервер от нагрузки избавлен. Как только игрок открывает редактор в его список подгружаются шаблоны игрока с его кампутера 

Далее игроки могут обмениваться по желанию шаблонами по внутригровой почте т.е. текст с этми ID дублируется по факту у второго игрока получившего “чертеж” и файлик с этими магическими записями создается у второго игрока на компе.

Как только игрок морально готов и доволен плодом своего творчества и у него есть 1250 ГС, он жмякает кнопочку “создать” и…вот тут я не знаю…ибо про работу сетевых, а не локальных приложений мне мало, что знакомо

 

в общем-то, xml (или иной вариант структурного хранения пакета данных) с конфигурацией кораблика может даже не на локальной машине лежать, а так же, как и настройки - есть галка “хранить на сервере”.

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

 

Можно и так  ![:santa:](<fileStore.core_Emoticons>/emoticons/santa.gif) .

Я просто подумал, что шаблончики проще на клиенте хранить, дабы серв не грузить …чай не пару строк настроек  :fed): . Да и с хранением шаблонов на клиенте проще в том плане, что юзверь over9000 шаблонов настругать может, а толковых будет 10 например или мячту свою 2-3 дня потихоньку собирать… Зачем остальной временный хлам на серве хранить?  :fedlol:

…дабы серв не грузить …чай не пару строк настроек…

ну, можно даже еще проще. компоновка модели уложится в несколько байт - каждый с номером детальки (256 вариантов каждого элемента), потом еще несколько блоков байт с координатами точек крепления(в условных долях от максимально возможного хитбокса плоскости) - по 3 байта на точку. можно посчитать калькулятором, какую часть килобайта будет занимать одна модель. это ни-о-чем ![:)](<fileStore.core_Emoticons>/emoticons/001.png) копейки. даже если этих моделей овер9к (а можно ведь разрешить только по 1 модели на каждый стандартный кор).

 

…дабы серв не грузить …чай не пару строк настроек…

ну, можно даже еще проще. компоновка модели уложится в несколько байт - каждый с номером детальки (256 вариантов каждого элемента), потом еще несколько блоков байт с координатами точек крепления(в условных долях от максимально возможного хитбокса плоскости) - по 3 байта на точку. можно посчитать калькулятором, какую часть килобайта будет занимать одна модель. это ни-о-чем ![:)](<fileStore.core_Emoticons>/emoticons/001.png) копейки. даже если этих моделей овер9к (а можно ведь разрешить только по 1 модели на каждый стандартный кор).

 

Ну зачем так ограничивать игрока. Он вкачал полную синьку на кораблике и ему 1 раз его параметры брать можно будет? А вдруг он хочет потом иметь в ангаре 10 разных пепелацов с параметрами от одного кора (ну фанат он какой-то серии кораблика и нравится он ему безумно и все в нем устраивает) и готов на “распечатку” влить 20 к голды  :fed):

Вы не забывайте, что не только номер детальки есть, еще индексы текстур, код цвета в каналах (они ведь у нас настраиваемые)…

Так что я бы так не горячился с серверным сохранением шаблонов, которые являются “черновиком” в будущем покупного шипа. Тем более, что игроки могут сделать 20-30 моделей ради теста конструктора просто…зачем это на серв отправлять? 

Все же я воздержусь от полного согласия хранить “Ччерновики-шаблоны” на игровом сервере. Да и не жалко мне на своем HDD 1 кб  ![:santa:](<fileStore.core_Emoticons>/emoticons/santa.gif)

хм. если рассматривать идею конструктора, как возможность “расксерить” ттх какого-то одного кора на все 4 слота ангара… даже не знаю. я-то почему-то решил, что каждому стандартному кору дать возможность сменить внешний вид и все…

ну, в таком варианте, да - “черновики” хранить нет смысла. на сервере могут лежать только 4 схемы, запакованые в слоты ангара. меняешь кор в слоте - с локальной машины берется конфиг и отправляется на сервер. норм. может, так даже проще - меньше схем хранить.

 

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

хм. если рассматривать идею конструктора, как возможность “расксерить” ттх какого-то одного кора на все 4 слота ангара… даже не знаю. я-то почему-то решил, что каждому стандартному кору дать возможность сменить внешний вид и все…

ну, в таком варианте, да - “черновики” хранить нет смысла. на сервере могут лежать только 4 схемы, запакованые в слоты ангара. меняешь кор в слоте - с локальной машины берется конфиг и отправляется на сервер. норм. может, так даже проще - меньше схем хранить.

 

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

Вы правильно поняли. Я предлагаю именно “расксеривание” ТТХ кораблей с полной синергией. Конструктор кораблей как фишка будет приятен возможностью лепить свой дизайн, но при этом он будет провоцировать игроков на полную прокачку кора т.к. без полной прокачки ТТХ пепелаца-родителя, в списке образцов он будет отсутствовать.  

А слепить свой внешний кор мячты с ттх любимчика весьма приятно.

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

Мой-визуалка

Существующий-свое приятное ТТХ

Вместе-создание своего дизайна со своим ТТХ.

Есть куда расти. Но я бы не хотел, что бы крафт был внедрен как часть визуального (моего конструктора), слишком жирный донат понадобится. Скорее я вижу такую связку как возможность отдельно свой дизайн создать и как доп возможность -использование скрафченного кора для ттх  в дизайн-конструкторе    ![:angry:](<fileStore.core_Emoticons>/emoticons/angry.png)

Великолепная идея! 

Если не ошибаюсь, недавно был опрос, для чего игроки играют в стар конфликт, и большинство ответов,что играют ради получения удовольствия от игрового процесса. 

Возможность создавать внешний вид корабля самому создаст ощущение творчества, что очень захватывает ![:)](<fileStore.core_Emoticons>/emoticons/001.png)

К отличной игре это будет огромный плюс, который обеспечит солидный приток капитала в игру…

Причем по доступной цене эта идея будет испробована подавляющим большинством игроков…

К примеру не сильно много людей могут подбирать свой особенный фит для корабля применяя фиолетово оранжевые модули, и получая ощущение творчества, так как это упирается во много проблем, но создать свой внешний вид кораблика, который будет нравиться тебе самому, да за это люди отдадут гораздо больше денег чем за прем или наборы…Причем полетав на одной модели захочется создать еще и еще…Причем даже тем у кого есть все или почти все корабли и нет желания донатить…

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

Великолепная идея! 

Если не ошибаюсь, недавно был опрос, для чего игроки играют в стар конфликт, и большинство ответов,что играют ради получения удовольствия от игрового процесса. 

Возможность создавать внешний вид корабля самому создаст ощущение творчества, что очень захватывает ![:)](<fileStore.core_Emoticons>/emoticons/001.png)

К отличной игре это будет огромный плюс, который обеспечит солидный приток капитала в игру…

Причем по доступной цене эта идея будет испробована подавляющим большинством игроков…

К примеру не сильно много людей могут подбирать свой особенный фит для корабля применяя фиолетово оранжевые модули, и получая ощущение творчества, так как это упирается во много проблем, но создать свой внешний вид кораблика, который будет нравиться тебе самому, да за это люди отдадут гораздо больше денег чем за прем или наборы…Причем полетав на одной модели захочется создать еще и еще…Причем даже тем у кого есть все или почти все корабли и нет желания донатить…

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

Согласен. Почва весьма благодатная и плодородная ![:santa:](<fileStore.core_Emoticons>/emoticons/santa.gif)  ![:angry:](<fileStore.core_Emoticons>/emoticons/angry.png)  

У меня в подписи есть дзен пистона, можете перевести ![:)](<fileStore.core_Emoticons>/emoticons/001.png)

У меня в подписи есть дзен пистона, можете перевести ![:)](<fileStore.core_Emoticons>/emoticons/001.png)

Весьма относительный дзен. “Если реализацию трудно объяснить, значит это плохая идея, если легко-отличная”

 

Например если пытаться объяснить шестнадцатеричную систему счисления первокласснику результат будет = False  :fedcrazy: . 

А  чё корабли за гс создавать нужно, и  вобще их можно создавать, если да то как? :jerblush:

А  чё корабли за гс создавать нужно, и  вобще их можно создавать, если да то как? :jerblush:

На текущий момент в StarConflict присутствует “Конструктор кораблей”  в таком виде http://forum.star-conflict.ru/index.php?/topic/42390-kak-pravilno-sobrat-svoiu-prelest/?p=869117  ![:angry:](<fileStore.core_Emoticons>/emoticons/angry.png)

Не правильный перевод :slight_smile: СДЕЛАТЬ - это ключевое слово.

Не правильный перевод :slight_smile: СДЕЛАТЬ - это ключевое слово.

Быгы…я в девизе не вижу слова “Make” :fed): …да это и не важно…в отношении прогеров это верное изречение  :fed): .

И да я бы не сказал, что мне было сложно объяснить по простому “околопальцев” ту часть, которая отвечает за цвет, я ее даже сделал  теми средствами, что имелись   :fedcrazy: (я не просто текстурки пихал, мне действительно была интересна возможность такого подхода).

А про сеть…ну это не мой профиль- все равно что у офтальмолога спрашивать как удалять аппендикс  ![:santa:](<fileStore.core_Emoticons>/emoticons/santa.gif) .  По поводу механизма кучи деталей в онлайне (из современных примеров) это к  RoboCraft спасибо за пример Dezrow  ![:angry:](<fileStore.core_Emoticons>/emoticons/angry.png)

Оно конечно интересно.Но вот за такой конструктор как влупят по 100500 ГС за сборку,что призадумаешься,а на кой оно такое надо будет?  ![:santa:](<fileStore.core_Emoticons>/emoticons/santa.gif)

Чувак, вот тебе надо было заниматься дизайном т5 кораблей, вышло бы куда красивее, разрабы, берите его на работу, наконец корабли в ск будут нормально смотреться.

Идея интересная, хотя и возможны проблемы с балансом, но:

  1. Я не согласен с формулировкой в голосовании - я против доната в том виде в каком он есть в ск (эксклюзивные нагибалки за донат + либо донать, либо гриндь очень-долго-и-уныло)

  2. Сейчас по-моему уже надо нереально долго гриндить ресурсы на имеющиеся кастомные корабли(при чём их ещё надо гриндить в мерзком PvE или не менее мерзком OS, а не в PvP, где ещё можно изредка полетать) - если ни чего не изменится я против всех кастомных кораблей вообще.