Информация: Уважаемые посетители! В течение нескольких месяцев на форуме существовала проблема с регистрацией новых пользователей, о которой администрации стало известно недавно. Если вы ранее пытались зарегистрироваться на форуме, но не получили на ваш e-mail письмо с ссылкой для подтверждения регистрации, просим вас зарегистрироваться повторно. Приносим извинения за доставленные неудобства. Если вы все еще испытываете проблемы с регистрацией на форуме, обратитесь за помощью на e-mail: mr.angelo@railroadsim.net

openbve + исходники C#

Обсуждение других железнодорожных симуляторов

Re: openbve + исходники C#

Сообщение agmike » 01.08.2009, 23:45

Имя папки уже давно не привязано к куиду и вообще сама папка изменилась со времен 2004)
Даже если так - пожалуйста, прямое обращение к конфигу объекта - Content/id/config
Собственно, почему же куиды плохая идея?

Что скажет РС если ему не хватает некоторых дополнений? Как будут искать их пользователи? "Дайте ссылку на пак деревьев автора N"? Пока разработчиков в РС мало это может и осуществимо. Но вот спросите в разделе ТРС допы автора Trunda, и вам врядли скажут кто это и что он сделал. А меж тем его флора есть в каждом первом маршруте.
Как РС обработает ситуацию если 2 допа от 2 разных независимых разработчиков одинаково называются?
И заметьте, что на зарубежных форумах нет раздела поиска куидов.
К тому же БД ускоряет и упрощает процесс управления допами. Есть ли возможность узнать в РС какие допы используются в этом маршруте или в каких сценариях используется данный локомотив?

Так почему же надо замыкаться на немного развитой концепции МСТС - разложения по папкам?

Если
> Kuid-ы, в том виде как они есть в ТРС - попытка рационализации, но неудачная
имеется ввиду платный (хотя что платный - только законным пользователям) доступ к ДЛС - да. Такой сервис должен быть открытым по определению.
The Cake is a Lie.
agmike
 
Сообщения: 1025
Зарегистрирован: 26.08.2006, 12:43
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Играю в: Пульт ДНЦ

Re: openbve + исходники C#

Сообщение TRam_ » 01.08.2009, 23:53

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

Обращение идет напрямую к главному конфигу объекта - который в свою очередь подтягивает модель, другие конфиги, скрипты
именно так и происходит в ТРС . Kuid - всего навсего индивидуальный идентификатор (можно "серийный номер", "регистрационный номер"), позволяющий отыскать этот конфиг среди остальных

А имена папок в 2009 вообще образуют хеш-таблицу. Которая, насколько я помню с первого курса, довольно значительно ускоряет поиск, даже по сравнению с "всё что относится - в директорию ниже"

Обращение идет напрямую к главному конфигу объекта - который в свою очередь подтягивает модель, другие конфиги
а как же RS ищет эти самые "другие конфиги" ? По имени чтоль?

Если это действительно так, то что мешает назвать "kuid в trainz" "именем в rs" ?
в z7 всё можно, а что нельзя - можно в sU
Аватара пользователя
TRam_
 
Сообщения: 1925
Зарегистрирован: 30.11.2007, 20:14
Благодарил (а): 2 раз.
Поблагодарили: 66 раз.
Играю в: Auran Trainz
Роль: Разработчик
Имя: Владимир

Re: openbve + исходники C#

Сообщение Crypton » 02.08.2009, 01:14

К теме про использование kuid'ов. А как насчет GUID?
К тому же БД ускоряет и упрощает процесс управления допами. Есть ли возможность узнать в РС какие допы используются в этом маршруте или в каких сценариях используется данный локомотив?

Согласен, но не забудьте об перестройки базы данных и её очистки. При использовании единого идентификатора, и исключения отдельных дополнений в свои папки во многие разы уменьшает размер раздаваемых дополнений. Вспомните как в каждом маршруте MSTS использовались одни и теже дополнения тупо скопированные в папку маршрута, а хотя это можно предостеречь.

Насчет поиска. Помните амбициозно развивался мой проект по DLS (ну или не развивался :))? Так вот, можно создать центральную открытую базу дополнений к которой может подключаться игра и качать отдельные дополнения. И народ доволен, и авторы. И не надо искать дополнения 5и летней давности которых нигде нельзя достать.

http://xg.gsf-portal.ru/forum/8
предлагаю дальнешее оьсуждение вести на моем форуме

Нет. И про твою зарисовку, ты лучше разберись с игрой, а дизайн пока не трогай.

------------------------------------

Связался с автором сима на этой неделе. Все, что получил в ответ — «Удачи». :)
Аватара пользователя
Crypton
 
Сообщения: 421
Зарегистрирован: 14.08.2006, 09:52
Откуда: Санкт Петербург
Благодарил (а): 0 раз.
Поблагодарили: 5 раз.
Роль: Разработчик

Re: openbve + исходники C#

Сообщение Mr. Angelo » 02.08.2009, 08:44

В РС есть инструменты, которые показывают каких объектов нехватает маршруту.
А первым уровнем в дереве дополнений, является как раз имя разработчика. Т.е. домик будет в \Assets\Developer_Name\Package_Name\Scenery\Buildings\Village_house

Где Package_Name - может быть просто Addon, а напирмер если делать КС с кучей обхектов как в ТРС, то ее можно выделить в отдельный пакет. И этот пакет можно в редакторе убрать из списков выбора просто сняв галочку. Если строите не электрофицированный маршрут - зачем вам 300 объектов КС в списках?

Если 2 одинаковых дополнения лежать по одному пути и имеют одинаковое название файлов - то естественно старое будет перезаписано новым. Но по одному пути могут лежать несколько объектов. В \Assets\Developer_Name\Package_Name\Scenery\Buildings\Village_house могут лежать много объектов.

Так что от МСТСа, в плане хранения дополнений, в Rail Sim-е не осталось ровным счетом ничего.

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

Неудобно чем? Элемент лежит себе по своему пути отдельно. К нему обращаются другие дополнения. Например конфиг дыма для тепловоза. Лежит отдельно. Несколько тепловозов обращаются к этому конфигу по его пути.
Скрипты сигналки лежат отдельно. А старые и новые светофоры, имея тем не менее одну логику, обращаются к скриптам, лежащим в отдельной от моделей папке.
Только вот когда обращение идет напрямую по пути - сразу видно, к чему обращаешься. А когда по kuid-у, то запутаться очень легко.
Если даже делать конструктор конфигов, где можно выбрать компонент, и его kuid будет автоматически добавлен в конфиг, то чуть что, и Вам придется залезть в конфиг руками, и... потеряться среди kuid-ов.

а как же RS ищет эти самые "другие конфиги" ? По имени чтоль?

Да ни как он их не ищет. В конфиге лока, скажем, есть пути к файлам других конфигов, скриптов и т.п., корнем является папкак Game\Assets. Вот пути пишутся относительно нее.
Аватара пользователя
Mr. Angelo
 
Сообщения: 3227
Зарегистрирован: 03.01.2004, 22:22
Откуда: Тюмень
Благодарил (а): 359 раз.
Поблагодарили: 526 раз.
Блог: Просмотр блога (9)
Играю в: Train Simulator Classic
Роль: Сотрудник РЖД
Имя: Андрей

Re: openbve + исходники C#

Сообщение TRam_ » 02.08.2009, 12:26

Где Package_Name - может быть просто Addon, а напирмер если делать КС с кучей обхектов как в ТРС, то ее можно выделить в отдельный пакет. И этот пакет можно в редакторе убрать из списков выбора просто сняв галочку
в ТРС есть не менее умное изобретение - "фильтр" в СМР . А поскольку все разработчики КС начинают имя каждого объекта с названия "пакета" (например, у DarkWolf'а имена объектов начинаются с "preCN3". Например "preCN3 DC stolb"). Абсолютно ничто не мешает найти все объекты с таким началом имени, выделить их, и нажать Edit->Disable. Но мы в редакторе просто не замечаем, что у нас есть КС, и даже несколько типов КС. Просто вводим в фильтре редактора название нужного нам пака (или просто название "Village house") и смотрим какие деревья пака (или какие домики) у нас есть. И тут как раз "Developer_Name" совершенно не используется - нам здесь не надо знать, кто сделал домик, чтобы его найти.


В конфиге лока, скажем, есть пути к файлам других конфигов, скриптов и т.п.
находить эти пути долго и нудно. А куид прописывается одним словом.

Если даже делать конструктор конфигов
такой называется Content Creator Plus (CCP)
Вам придется залезть в конфиг руками, и... потеряться среди kuid-ов.
я два года не мог открыть CCP и редактировал конфиги исключительно руками. Использовал блокнот, и правка-> заменить -> заменить всё(указывая какой куид на какой изменить). Есть люди которы ССР вообще не признают, и до сих пор именно так и пишут. Для поиска используется тот самый фильтр СМР. И если бы ССР не было вообще (в котором есть собственнный фильтр по имени и категории), то никто бы не додумался писать его аналогию, как Вы сейчас делаете с "писалкой конфигов" - она просто не не нужна, даже для станций, где число точек привязок для людей исчисляется сотнями... Нужна только для того чтобы не рыться в мануалах в поисках новых тегов, а искать их прямо в меню

Только вот когда обращение идет напрямую по пути
то длинна такого идентификатора сильно увеличивается. Учитывая, что и Developer_Name, и Package_Name, и две директории "типа объекта", и его "имя" фактически входят в "иднетификатор". В ТРС имя вообще содержит 3 числа - Id разработчика, Id допа и текущую версию (чтоб при обнаружении более старой заменять, а при обнаружении более новой - не заменять, хотя в самом конфиге можно конкретно указать, какие допы заменить, а каие нет). И если разработчик в конфиге вдруг забудет указать имя либо оно сотрётся в результате неправильного оформления конфига то ничего страшного не будет (у меня в самом начале было несколько допов с именем "Unnamed"), в отличии от КРС.

Ну а что производительнее - открытие директории папок в процессе загрузки допа или просто открытие одной папки по имени (именно это я и называю "поиском") - решать вам...
в z7 всё можно, а что нельзя - можно в sU
Аватара пользователя
TRam_
 
Сообщения: 1925
Зарегистрирован: 30.11.2007, 20:14
Благодарил (а): 2 раз.
Поблагодарили: 66 раз.
Играю в: Auran Trainz
Роль: Разработчик
Имя: Владимир

Re: openbve + исходники C#

Сообщение Mr. Angelo » 02.08.2009, 14:51

Сколько букв блин... Речь о новом симе, и, заметьте, я еще ни чего не пытался тут доказывать и аргументировать, а только предложил не делать kuid-ы как таковые. А Вы, TRam_, уже начинаете нервничать, будто я потребовал отменить kuid-ы в Trainz.

Нервным, просьба не читать дальше:
Что же касается парсинга всех путей к конфигам, в RS, то эту задачу облегчает кэш. Кэш создается/обновляется при каждом запуске игры. Кэш состоит из одного файла на структуру \Assets\Developer_Name\Package_Name\ - на этом уровне везде разложен кэш. Кэш это один файл, в который скопированные по очереди все конфиги из этой ветки дерева. Так что все грузится без тормозов.
Аватара пользователя
Mr. Angelo
 
Сообщения: 3227
Зарегистрирован: 03.01.2004, 22:22
Откуда: Тюмень
Благодарил (а): 359 раз.
Поблагодарили: 526 раз.
Блог: Просмотр блога (9)
Играю в: Train Simulator Classic
Роль: Сотрудник РЖД
Имя: Андрей

Re: openbve + исходники C#

Сообщение kemal » 02.08.2009, 16:56

IMHO тут уже пошёл спор на уровне ткстовик/бинарник. Лично я люблю бинарники и считаю, что лучше делать kuid'ы.
Естественно, при этом должна быть полностью открытая "DLS".
<kuid:216981:******>
куид.ру не нужен
Аватара пользователя
kemal
 
Сообщения: 375
Зарегистрирован: 10.02.2006, 18:21
Откуда: Казань
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Блог: Просмотр блога (4)
Играю в: Auran Trainz
Роль: Разработчик
Имя: Камиль

Re: openbve + исходники C#

Сообщение TRam_ » 02.08.2009, 21:58

А Вы, TRam_, уже начинаете нервничать, будто я потребовал отменить kuid-ы в Trainz
я абсолютно ничего не требовал. Я лишь показал, что структура "дерево папок" не даёт каких-то "абсолютных" преимуществ перед структурой "индексированная база данных"

Отмечу (вдруг это потребуется) - сортировать Id в виде чисел намного проще, чем в виде строк. Сделав таблицу "адрес места на диске" от нескольких чисел (напимер, тех же Id user + Id addon) и отсортировать, то можно дважды сделать тот же бинарный поиск (а если три числа - то трижды) этого адреса, вместо прочитывния всех адресов четырёх папок .

Кстати мой Id = 400260 . Так что даже если только 1% зарегенных на ауране делали допы, то число строк папки "авторы" было бы около 4000 - без индексации тут будет сложновато...

Кэш это один файл, в который скопированные по очереди все конфиги из этой ветки дерева
очень неплохая идея. Пригодится
в z7 всё можно, а что нельзя - можно в sU
Аватара пользователя
TRam_
 
Сообщения: 1925
Зарегистрирован: 30.11.2007, 20:14
Благодарил (а): 2 раз.
Поблагодарили: 66 раз.
Играю в: Auran Trainz
Роль: Разработчик
Имя: Владимир

Re: openbve + исходники C#

Сообщение Crypton » 03.08.2009, 07:13

Господа, решайте свои религиозные войны над тем, какой формат хранение дополнений лучше в другой теме. Кэш запросто можно сделать. А можно вообще юзать SQLite в качестве базы данных из одного файла. Её кстати можно и спокойно в память загрузить. Как я уже и говорил, стоит вопрос в раздаче уникального идентификатора автора. Я предлагаю например открытую систему в DLS. Регистрируешься и получаешь идентификатор, без которого ты не можешь создавать дополнения. Метаданные просто-напросто синхронизируются с сервером.
Аватара пользователя
Crypton
 
Сообщения: 421
Зарегистрирован: 14.08.2006, 09:52
Откуда: Санкт Петербург
Благодарил (а): 0 раз.
Поблагодарили: 5 раз.
Роль: Разработчик

Re: openbve + исходники C#

Сообщение Mr. Angelo » 03.08.2009, 11:34

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

Гоблины все смогут. И будет та же история что с kuid-ами. Будут делать говно-перекраски не меняя при этом идентификаторы. А если идентификатор текстовый был - то гордость не позволила бы не сменить =) а цифры - "бл* я хз. чо тут песать"))

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

Насчет формата конфигов. в RS исходным форматом является XML-структура, конструируемая в спец. редакторе. ИМХО крайне удобно и полезно. При экспорте в игру, все конфиги перегоняются в бинарный формат. Да, кэш бинарный соотвественно.
Аватара пользователя
Mr. Angelo
 
Сообщения: 3227
Зарегистрирован: 03.01.2004, 22:22
Откуда: Тюмень
Благодарил (а): 359 раз.
Поблагодарили: 526 раз.
Блог: Просмотр блога (9)
Играю в: Train Simulator Classic
Роль: Сотрудник РЖД
Имя: Андрей

Re: openbve + исходники C#

Сообщение kemal » 04.08.2009, 12:31

Mr. Angelo писал(а):Гоблины все смогут. И будет та же история что с kuid-ами. Будут делать говно-перекраски не меняя при этом идентификаторы. А если идентификатор текстовый был - то гордость не позволила бы не сменить =) а цифры - "бл* я хз. чо тут песать"))

Вот для этого и нужна синхронизация с сервером. Если дополнение не прошло проверку, то оно просто не работает.
<kuid:216981:******>
куид.ру не нужен
Аватара пользователя
kemal
 
Сообщения: 375
Зарегистрирован: 10.02.2006, 18:21
Откуда: Казань
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Блог: Просмотр блога (4)
Играю в: Auran Trainz
Роль: Разработчик
Имя: Камиль

Re: openbve + исходники C#

Сообщение DarkWolf » 04.08.2009, 15:40

Ну и полемику вы тут устроили...
Моя идея: можно авторам раздавать цифровые подписи(копию - автору, оригинал - в базу сервера допов), и подписывать ассеты(каким-то образом сложить хэшкод ассета с цифровой подписью автора). И при установке ассета с уже существующим идентификатором проделывать эту же операцию и сравнивать результат: если ключи сойдутся - модификация автора, если нет - гоблинский ассет, и отказ в установке.
Более глубоко поясняю:
I. Регистрация
1. Регистрация автора в БД допов и выдача ему уникальной последовательности символов - подписи.
II. Формирование ассета
1. Снятие хэш кодов с файлов
2. Сложение полученных хэш-кодов с подписью автора
3. Внедрение в манифест дополнения подписи, полученной в п.2
III. Установка
1. Запрос с сервера подписи автора
2. II.1 - II.2
3. Сравнение п.2 с внедренной подписью
4. Если п.3. успешно - установка, иначе - эпик фэйл

Я знаю, конечно что идея туповата и не из простых... но, что было в голове - то и высказал
Аватара пользователя
DarkWolf
 
Сообщения: 199
Зарегистрирован: 09.07.2006, 10:38
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: openbve + исходники C#

Сообщение Mr. Angelo » 04.08.2009, 15:47

Идея конечно крутая... но далеко не везде где люди играют в симуляторы есть интернет. Так что принципиальная необходимость инет-подключения для установки допов - это не совсем приемлимо.
Аватара пользователя
Mr. Angelo
 
Сообщения: 3227
Зарегистрирован: 03.01.2004, 22:22
Откуда: Тюмень
Благодарил (а): 359 раз.
Поблагодарили: 526 раз.
Блог: Просмотр блога (9)
Играю в: Train Simulator Classic
Роль: Сотрудник РЖД
Имя: Андрей

Re: openbve + исходники C#

Сообщение DarkWolf » 04.08.2009, 16:21

Значит, нужно как-то придумать как подписи авторов оффлайново доставать можно.

Добавлено:
А, касаясь систематизации, предлагаю некое подобие куидов: [AuthorID:AssetID:AssetVersionID], где
AuthorID - идентификатор автора(по которому вытаскивается подпись из БД и идентифицируется сам автор)
AssetID - иднентификатор ассета. Тут уже посложнее: можно ввести N категоий и M подкатегорий в каждую из них и это вложить в идентификатор фиксированной длины(как 8-значные коды на ЖД). Т.е., например <0:MajorCategory:2><1:MinorCategory:2><2:RegionCode:2><3:Number:5>, тогда получаем:
100 общих категорий(0),
100 подкатегорий для каждой из них(1),
100 регионов(2),
100000 дополнений на автора, не считая версий(3).
И такой код будет выглядеть примерно так: 01.24.07.13468, добавив версию и идентификатор автора, имеем: [10248:01.24.07.13468:1]
Тут уже можно обходиться без всяких category-class'ов и пр -- из идентификатора все читаемо. Если идентификаторы сделать 16-ричными, то диапазон расширяется:
256 общих категорий(0),
256 подкатегорий для каждой из них(1),
256 регионов(2),
>1000000 дополнений на автора, не считая версий(3). Тогда получим что-то вроде: [24CFA:0A.7D.D8.076D1:1].

Можно все слить в одну строку:
24CFA.0A.7D.D8.076D1.1
то есть, ИД автора, дополнения и версии выстраиваются в одну строку с одними разделителями. В идентификаторе объекта можно убрать разделители, тогда получим:
24CFA.0A7DD8076D1.1.

Опять же - это только мои мысли, никого я ни к чему не обязываю: все равно слушать никто не станет и изобретут свое - будет лучше, не сомневаюсь.
Последний раз редактировалось DarkWolf 04.08.2009, 16:41, всего редактировалось 1 раз.
Аватара пользователя
DarkWolf
 
Сообщения: 199
Зарегистрирован: 09.07.2006, 10:38
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: openbve + исходники C#

Сообщение Crypton » 04.08.2009, 16:56

Гоблины все смогут. И будет та же история что с kuid-ами. Будут делать говно-перекраски не меняя при этом идентификаторы. А если идентификатор текстовый был - то гордость не позволила бы не сменить =) а цифры - "бл* я хз. чо тут песать"))


Сама игра не позволит, ибо GUID совсем уникальное число, и в базе может содержаться только один экземпляр. Проверку подписи можно осуществить с сертификатом. Имеем корневой сертификат который нельзя подделать и держим его на сервере. А под дополнения уже выписываются конечные сертификаты унаследованные от корневого. Но вот прикол какой: без корневого сертификата, дополнение не установится (а-ля гоблины нах*й пошли). Проверки подлинности дополнения в Интернете при этом ненужно.
Аватара пользователя
Crypton
 
Сообщения: 421
Зарегистрирован: 14.08.2006, 09:52
Откуда: Санкт Петербург
Благодарил (а): 0 раз.
Поблагодарили: 5 раз.
Роль: Разработчик

Пред.След.

Вернуться в Другие ЖД симуляторы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4