Страница 1 из 2

Расположение рельсов в клетке (коренная переработка кода)

СообщениеДобавлено: Пн мар 17, 2008 16:24
Q
Наверное не мне одному не нравятся угловатые рельсы в игре. Да и вообще не нравится, то что горизонтальный и вертикальный путь проходят по уголкам клеток. Интересно, почему при разработке Опена не сделали расположение рельсов такое же, как в RT2? Видимо все-таки разработка велась не чисто с нуля, а многое было слизано с ТТ, хотя некоторые вещи там были реализованы не лучшим образом.
В связи с чем есть такая мысль:
Хочется сделать расположение горизонтальных и вертикальных рельсов по центру клетки (как в RT2). Это позволит сделать более "гладкие" повороты, пропадет некоторое неудобство связанное с тем, что может быть два параллельных пути в одной клетке. Можно будет сделать постройку горизонтальных и вертикальных станций, депо, мостов и туннелей. Более того, такое расположение путей следует распространить и на автодороги.
Эти изменения довольно значительны, навскидку придется перелопатить больше половины кода, не говоря уже об отрисовке кучи новой графики.
Интересно, что вы думаете о таких наполеоновских планах.
Возможно, такая тема уже проскакивала на буржуйских форумах, но я не нашел (да и честно говоря, не очень понятно что искать). Может быть уже есть ветка разработки, где прокачивается эта идея?
Сейчас хочется оценить, насколько востребована эта идея обществом шпалоукладчиков, ну и понять, во что выльется ее реализация (в плане затраченного времени, бессонных ночей, количестве участников). Возможно, я возьмусь за этот проект в недалеком будущем (летом).

СообщениеДобавлено: Пн мар 17, 2008 17:03
Fornet
верткикальные пути будут занимать дофига места? А еще графика должна вылетать за пределы клетки? Зачем? Ну, допустим, без диагональных станций мы уж как-нибудь, а вот диагональные дороги действительно не помешали бы.

СообщениеДобавлено: Пн мар 17, 2008 18:29
Simozzz
На счет дороги. Наверное должно выглядеть так, если по углам
:wink: Изображение

СообщениеДобавлено: Пн мар 17, 2008 18:50
Simozzz
Или так, если по середине :wink:
Изображение

СообщениеДобавлено: Пн мар 17, 2008 19:07
Fornet
Неплохо, но по углам имхо лучше.

СообщениеДобавлено: Вт мар 18, 2008 12:28
Гувл
поддерживаюFornet, прорисовка угловых дорог, будет гораздо проще и удобнее, тем более что уже есть исходники для рельс... на базе них можно и развить тему с дорогами

СообщениеДобавлено: Вт мар 18, 2008 14:55
Q
Вертикальные пути не будут занимать больше места, хотя графике придется вылезать за клетку. вероятно, некоторые здания и постройки будут выглядеть по-уродски с наложенным куском рельсов, но так или иначе эту проблему можно решить (например, увеличить (ненамного) клетку, или уменьшить здания, или запретить строительство в таких клетках неугодных объектов и соответсовенно рельсов вблизи таких строений).
Диагональные станции ИМХО можно сделать и сейчас, правда это сопряжено с известной долей геморроя. Возможно, даже туннели и мосты можно, но тут геморра будет существенно больше, и я вообще не представляю как это сделать.
Что касается углового расположения, то я вижу как минимум два минуса с точки зрения красивости картинки и два с точки зрения удобства написания и поддежки кода.
1. Дороги будут выглядеть угловато (как сейчас рельсы).
2. Из-за некоторых особенностей вертикальные и горизонтальные дороги будут уже примерно в 1,5 раза (точнее в корень_из_двух раза).
3. Нельзя будет строить такие дороги на неровном рельефе.
4. Ну и о диагональных станциях и туннелях с мостами можно тоже забыть.
5. Еще до кучи: два параллелльных пути в клетке создают некоторый гемор для разработки, да и делать пересечения таких дорог с рельсами вообще замучаешься.
Короче я понял так, что рельсы переделывать никому не интересно, значит я на это пока забиваю. А что касается дорог, то эта тема оказалась более востребованной, значит с нее и надо начать. Причем предлагаю все же делать по "новой технологии", т.е. по центру клетки, ибо это сулит больше разных фич, типа диагональных мостов и остановок, да и выглядеть красивше будет.

СообщениеДобавлено: Вт мар 18, 2008 15:44
Гувл
2Q
Извините дерзость, но все же...
Вертикальные пути не будут занимать больше места, хотя графике придется вылезать за клетку. вероятно, некоторые здания и постройки будут выглядеть по-уродски с наложенным куском рельсов, но так или иначе эту проблему можно решить (например, увеличить (ненамного) клетку, или уменьшить здания, или запретить строительство в таких клетках неугодных объектов и соответсовенно рельсов вблизи таких строений).

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

см.выше

СообщениеДобавлено: Вт мар 18, 2008 16:42
Q
Сам понимаешь сколько тут придется перелопатить :!:

Да не так уж и много. В крайнем случае можно вообще графику не трогать, будет чистая функциональность без всяких красивостей.
Другое дело, что в случае рельсов эта функциональность будет заменять уже имеющуюся, поэтому ее делать довольно геморройно - надо менять сразу кучу кода.
В случае дорог же, такой функциональности нет вообще, поэтому добавлять ее можно постепенно. Вообще говоря, с точки зрения написания и поддержки именно кода для дорог, включая pathfinding и движение машинок по ним, но без существенных изменений в графике и принципе расстановки зданий (ну будут местами автобусы ездить сквозь углы небоскребов) проще именно вариант по центру клетки. Еще у меня есть аргумент, что расположенные по углам дороги будут слишком узкие, особенно горизонтальные, я например не уверен, что две пары трамвайных рельсов там можно будет нормально отрисовать.

СообщениеДобавлено: Ср мар 19, 2008 03:57
Neko
В игре есть две, а, отчасти, и три основополагающих структуры:
1) Tracks
2) Trackdirs
3) V->direction
Эти структуры я показал на рисунках.
Тебе надо свои новые рельсы (в игре они называются tracks) вписать в эти структуры, назначить соответствующие биты, найти, где в структуре Tile их хранить и как их обрабатывать.
Если у тебя получится "красиво в шоколаде", то только в этом случае можно двигаться дальше.
Работа, которую ты собираешься затеять, весьма интересная.
Держи нас в курсе своих разработок.
Удачи.

СообщениеДобавлено: Ср мар 19, 2008 11:15
Гувл
Ч.т.д. :) если делать дорогу, то на углах :)

СообщениеДобавлено: Ср мар 19, 2008 14:05
Q
Neko, насчет этого я как раз в курсе. На рельсы пока решено забить, а делать дороги, а в случае дорог используются немного другие структуры (НЯП основная в этом случае - DiagDirecrion). Собственно в моей задумке она будет заменена на просто Direction. Но сначала хотелось бы все же закончить уже начатое (т.е. сигналы).

Кстати, подо что зарезервирован третий тип дорог?

СообщениеДобавлено: Ср мар 19, 2008 15:51
Kunguroth
Тему диагональных автодорог уже не первый раз встречаю на этом форуме. Помню мне ещё понравились коллажи Pk с такими доргами. Был бы счастлив видеть их в игре. Диагональные станции тоже, как добавку. Хотя сам я не играю на таком уровне чтобы видеть в них серьёзную потребность.

СообщениеДобавлено: Чт мар 20, 2008 20:26
Гувл
Вот примерные наброски диагональных дорог (при угловом построении и при центральном)
как видно на рисунках, при угловом придется делать 4 дополнительных спрайта, но это не такая уж и большая проблема, если взлянуть на то что придется делать при центральном построении дороги, а именно переработку поиска пути, т.к. клетки стоят не в притык, а по углам.

ЗЫ: если надо, есть спрайты для угловых и для центральных клеток.
ЗЫЫ: как прикрепить изображение в текст, а не внизу сообщения?

СообщениеДобавлено: Чт мар 20, 2008 21:29
Q
Что значит 4 спрайта? графики придется дофига рисовать в любом случае. А поиск пути так и так переделывать придется. Но зато потом его можно будет унифицировать с ЖД :)