Предложения по доводке TrT и выше

OpenTTD - современная игра, клон Transport Tycoon Deluxe с открытым исходным кодом, написанный на C и С++. Содержит ряд ключевых улучшений и возможность игры по сети. На данный момент это главное направление развития игры.

Модераторы: eraserkry, Mihamster, Smoky555, Группа модераторов

Сообщение Quark » Пт дек 29, 2006 15:54

Pk писал(а):
Quark писал(а):
Pk писал(а):ああ、そうですか。オペン・ソースですね。
だって、あなたはこれを読みまして下さい。 :lol:
гы, а что ты хотел сказать, смешав иероглифы из разных алфавитов? :)


Сползай на http://infoseek.co.jp . C японского на английский.
гугл лучше первёл — «Well, so is? With [open] source shank. Even, you please read this.» и далее «Ну, так? В [открыть] источник хвостовиком. Еще, пожалуйста, прочтите это.», а промт — «Хорошо, так? С [открытым] исходным стержнем. Даже, Вы пожалуйста прочитайте это.»
мне показалось, что там два иероглифа неправильные :)

а вообще это не имеет отношения к теме
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Quark » Пт дек 29, 2006 16:04

«при тесте карты он воспринимает свои дороги как мениципальные и думает, что ему выгодней - использовать их или строить новые» — для одноколейных ж/д дорог это не подойдёт, ему придётся заменить общий участок на что-то, способное вместить дополнительные поезда
а почему он не может воспринимать свои дороги как свои? :)
а одноколейные ж/д можно и раздельными сделать или поставить просто пару светофоров на перекрёстке
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Quark » Пт дек 29, 2006 16:25

вобщем надо брать и реализовывать алгоритм :) но один я это на чистом энтузиазме врядли осилю :) да и на С это делать что-то нехочется :)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Pk » Пт дек 29, 2006 17:34

Всем читающим
Если не можете ничего предложить - то хотя бы проверяйте дыры в логике и где их можно довести!

Quark писал(а):вобщем надо брать и реализовывать алгоритм :) но один я это на чистом энтузиазме врядли осилю :) да и на С это делать что-то нехочется :)

+1
Васюк форева? Или уходим на фортран/ассемблер?

В Японском используются не только буквы каны, но и "китайские буквы" - иероглифы канджи.
Имелось в виду, что опен-опеном, но не все это прочтут.
Всё правильно, это трансляторы глючит. Исходная фраза: "А-а Опен-соурс, не? [A-a open soosu, des ne?]
Ты прочти это пожалуйста [anata wa kore wo yomimasite, kudasai] =)

Хм.. тогда нужно следующее:
1) Гуишный инструмент для сборки библиотеки.
2) Выходной пункт в TTD - загрузка/запись в библиотеку.

Что сие за хрюнотень:
1) Универсальный инструмент, в котором можно задавать (в аналоговом виде) различные комбинации. (как бы объяснить по-русски...)
1а) Разделён на части:
1а-1) строительство - указания как можно строить
1а-2) рассчёт - что где и как можно и нужно
1а-3) макросы - список очередей выполнения приведённых блоков.
1б) Внешний вид
1б-1) При реальзации на движке от TTD отображается карта, где отображена только та часть карты, которая имеет значение при постройке, те самые "ключи". Остальное - серые пробелы или же обозначены как "имеются конкретные варианты". В 1-м случае она будет строить как получится из всего, во втором - только из указанных вариантов.
1б-1а) рядом находится окошко, в котором можно увидеть вариации компа на тему предложенного штампа/макроса. (та самая "черновая")
1б-2) поле рассчётов - игрок задаёт ограничения... (так это надо посидеть разобраться как именно, обучение всё-таки!)
1б-3) Поле макросов - чем-то напоминает список остановок, за тем исключением, что переход к след. остановке происходит при определённых условиях.

Доводка к твоему методу постройки путей "штампами":
А если ввести "зоны поворота" - особые места на карте, где из-за случайности/злой воли оказались пустые территории. Особенность этой зоны в том, что не важно, откуда придёт в неё путь (ЖД/дорога..)
При выборе маршрута ИИ выбирает подобные точки и строит путь уже из одной такой до другой. Соответственно, если уже есть подобные соединённые - это выгодней, чем тянуть новую ветку.
В итоге, при использовании штампов длинных путей мы получим компьютерные транссибы.
Если к этому добавить рассчёт соединения разных веток в одну, то мы получаем ситуацию, когда у компьютера появляется железнодорожная сеть.

"Штампы длинных путей" - штампы, позволяющие создавать длинные прямые пути с минимумом поворотов и излишних ошибок. Запущу ТрТ- попробую набросать примеры.
Анализируй то, как ты делаешь сам. Потом объясни это компьютеру.
Кладу асфальт, гружу Лейланды.
новый вариант мышления ИИ
Pk
Директор
Директор
 
Сообщения: 320
Зарегистрирован: Пт сен 30, 2005 06:50
Откуда: Москва

Сообщение Quark » Пт дек 29, 2006 18:02

«anata wa kore wo yomimasite, kudasai» — я конечно отаку, но японского к сожалению не знаю :)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Quark » Пт дек 29, 2006 18:09

«Васюк форева? Или уходим на фортран/ассемблер?» — к сожалению первое не интегрируется с С, а на последнем так это вообще самоубийство :)

У меня были мысли попробовать D, но не знаю соберётся ли этот винегред

Подключить динамическую библиотеку в принципе возможно, при этом её можно написать на любом языке, но работать это будет только в Windows

Еще можно либо использовать сетевой протокол OTTD, либо добавить специализированный для ИИ :) но это слишком сложный вариант, зато в первом случае получится бот для игры в OTTD — можно соревноваться, у кого он умнее получится :)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Quark » Пт дек 29, 2006 18:19

Pk писал(а):1) Гуишный инструмент для сборки библиотеки.
2) Выходной пункт в TTD - загрузка/запись в библиотеку.

для создания библиотеки шаблонов можно использовать сам OTTD — в MiniIN есть их поддержка, нужно только добавить обозначения входных/выходных путей, хотя можно и обычные светофоры по краям использовать

Визуализацию работы алгоритма в отдельной программе будет сложно сделать, но можно ввести в OTTD специальные спрайты и разукрашивать ими клетки, можно попросту центрировать экран на месте, где комп собрался что-то строить, для визуализации перебора вариантов можно в принципе использовать штатные средства, но вот однако, скорее всего у ИИ будет одновременно сотня вариантов развития строительства пути (сомневаюсь, что удастся наметить ключевые точки, а потом уже по ним строить — полный перебор вариантов имхо предпочтительнее)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Quark » Пт дек 29, 2006 18:21

«В Японском используются не только буквы каны, но и "китайские буквы" - иероглифы канджи.» — в общем, я понял что ты хотел сказать :) для тебя язык С как для меня японский :)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Pk » Пт дек 29, 2006 18:59

Бугага! Мне вспомнилось название фильма "Анализируй это" и я решил сделать эти "зоны поворота". Может, картинка вышла не очень (особенно по объёму), но кое-что из неё видно.
Подразумевается, что если несколько препятствий стоят вместе, то важнее всего те точки, которая находится напротив угла поворота/направления движения.
Зелёные линии - это ЖД (основная) и дороги из города-в город.
Голубые - это дороги из городов до индустрий
Линии я проводил так, как прокладывал бы дороги (ищите слабые места моей стратегии =) )

Почему я не срезал там вверху? Я думал там построить небольшой разъезд. Там не до магистрали.
Вложения
Round RR+AR.JPG
Моя стратегия ЖД - алгоритм =)
И стратегия дорог - меньше меняешь, и как можно ровнее.
Round RR+AR.JPG (234.51 Кб) Просмотров: 15457
Анализируй то, как ты делаешь сам. Потом объясни это компьютеру.
Кладу асфальт, гружу Лейланды.
новый вариант мышления ИИ
Pk
Директор
Директор
 
Сообщения: 320
Зарегистрирован: Пт сен 30, 2005 06:50
Откуда: Москва

Сообщение Quark » Пт дек 29, 2006 19:33

могу только сказать, что по синим и зелёным линиям ИИ не сможет строить, точнее я не имею понятия как это запрограммировать, а что означают жёлтые линии?

P.S. скриншоты надо сохранять в 8-bit PNG, желательно дожать их еще с помощью PNGout (есть плагин для IrfanView, двух проходов с прочими стандартными опциями обычно достаточно)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Pk » Пт дек 29, 2006 20:16

Так по ЖД я ж тебе уже всё дал! =) И пояснил в добавок! =)
Хотя верхний треугольник спорен.
Жёлтые линии соединяют крайние (основные) точки непересекаемых объектов. Собственно эти образованные треугольники и есть те самые "зоны поворота". Вот.
Строительство дороги - как можно меньше модификаций поверхности и если есть возможность - как можно меньше поворотов (в идеале - не более одного)

Патч: если по X,Y координатам у соединяемых путей разница составляет 2 перескакиваем строительство секции №2 (оператор IF перед инструкцией)

Соединение дорог на дальних дистанциях - соединение между собой городов или же мест, где логично было бы предположить его наличие (Всё те же треугольники).
В случае постройки межгородского маршрута логика такова:
REM введу понятия: "разъезд" - "зона поворота" и "соединение"
REM под разъездом понимается как любой город, так и любой центр "треугольника"
Первыми точками разъезда являются сама остановка и ближайший разъезд.
Затем из имеющихся треугольников выбираются те, которые лежат на прямой и выбираются наилучшие.
После этого таким же методом выбираются все треугольники до стыковки.
Затем начинается построение:
1) выбор логичных точек (не обяз.) - если на маршруте есть какие-то места просто идеальные они забиваются заранее подходящими штампами.
2) построение пути штампами до следующего центра разъезда. В случае, если до центра разъезда дальше, чем до ближайшей точки искомого пути (по верт/гор/диаг) (по прямой, без препятсвий)* то нафиг забиваем на разъезд и строим по прямой до ближайшей точки.
После как только путь будет достроен он сразу проверяется на проходимость (в воображении) и запускается транспорт.

* - такое бывает при перебрасывании мостов.

Эстетика при строительстве со стороны компа - зависит от того, что для него будет "непроходимым препятствием" или же препятствием с высокой ценой прохождения. Хм.. а ведь можно реализовать напрямую через экономику. Вот вам и рассчёт средств.
Анализируй то, как ты делаешь сам. Потом объясни это компьютеру.
Кладу асфальт, гружу Лейланды.
новый вариант мышления ИИ
Pk
Директор
Директор
 
Сообщения: 320
Зарегистрирован: Пт сен 30, 2005 06:50
Откуда: Москва

Сообщение Pk » Пт дек 29, 2006 20:33

Жёлтые линии нужны для рассчёта.

Середина треугольника - это не его центр, а тупое среднее арифметическое разниц по высоте и ширине между точками.
Кстати, на канжи это всёравно 中, внутри.

Станции внутри города строятся по другому алгоритму и подсоединяются так же иначе. Хотя при строительстве возможно использовать этот метод.
А лучше всего гейм-тест. Чем и займусь.
Анализируй то, как ты делаешь сам. Потом объясни это компьютеру.
Кладу асфальт, гружу Лейланды.
новый вариант мышления ИИ
Pk
Директор
Директор
 
Сообщения: 320
Зарегистрирован: Пт сен 30, 2005 06:50
Откуда: Москва

Сообщение Quark » Сб дек 30, 2006 00:16

может я не прав, но разве проезд по гипотинузе не быстрее чем по двум катетам треугольника? это я к тому, что только человек может спланировать будующую сеть целиком, а компьютер должен строить дорогу по мере надобности, ему в любом случае не известно, что произойдёт потом — например промышленность может оказаться занята игроком или другим компьютером

почему надо делать «как можно меньше поворотов» а не стараться построить наиболее скоростную трассу?

так и не понял в чём смысл треугольников
представим, что есть гора в виде большой буквы «Х», слева и справа от неё есть заводы, которые надо соединить ж/д траспортом — каким образом это будет сделано? сносить гору или прозжать по ней или под ней нельзя
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Iorik » Сб дек 30, 2006 17:06

Как понял я, поворотов надо меньше потому, что на них поезда скорость сбарсывают (особенно важно для длинных поездов). Вот и получится более скоростная трасса. А треугольники наверно, чтобы рассчитать где будет поворот проходить -- через середину этих треугольников. Вот.
Старое железо не умирает!
Iorik
Шпалоукладчик
Шпалоукладчик
 
Сообщения: 12
Зарегистрирован: Сб дек 30, 2006 16:52

Сообщение Iorik » Сб дек 30, 2006 17:20

И еще. Серьезные препятствия -- это только города индустрии и вода. Все остальное таковым не считается.
Старое железо не умирает!
Iorik
Шпалоукладчик
Шпалоукладчик
 
Сообщения: 12
Зарегистрирован: Сб дек 30, 2006 16:52

Пред.След.

Вернуться в Общие вопросы по OpenTTD

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

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