Страница 1 из 2
Расположение рельсов в клетке (коренная переработка кода)
Добавлено:
Пн мар 17, 2008 16:24
Q
Наверное не мне одному не нравятся угловатые рельсы в игре. Да и вообще не нравится, то что горизонтальный и вертикальный путь проходят по уголкам клеток. Интересно, почему при разработке Опена не сделали расположение рельсов такое же, как в RT2? Видимо все-таки разработка велась не чисто с нуля, а многое было слизано с ТТ, хотя некоторые вещи там были реализованы не лучшим образом.
В связи с чем есть такая мысль:
Хочется сделать расположение горизонтальных и вертикальных рельсов по центру клетки (как в RT2). Это позволит сделать более "гладкие" повороты, пропадет некоторое неудобство связанное с тем, что может быть два параллельных пути в одной клетке. Можно будет сделать постройку горизонтальных и вертикальных станций, депо, мостов и туннелей. Более того, такое расположение путей следует распространить и на автодороги.
Эти изменения довольно значительны, навскидку придется перелопатить больше половины кода, не говоря уже об отрисовке кучи новой графики.
Интересно, что вы думаете о таких наполеоновских планах.
Возможно, такая тема уже проскакивала на буржуйских форумах, но я не нашел (да и честно говоря, не очень понятно что искать). Может быть уже есть ветка разработки, где прокачивается эта идея?
Сейчас хочется оценить, насколько востребована эта идея обществом шпалоукладчиков, ну и понять, во что выльется ее реализация (в плане затраченного времени, бессонных ночей, количестве участников). Возможно, я возьмусь за этот проект в недалеком будущем (летом).
Добавлено:
Пн мар 17, 2008 17:03
Fornet
верткикальные пути будут занимать дофига места? А еще графика должна вылетать за пределы клетки? Зачем? Ну, допустим, без диагональных станций мы уж как-нибудь, а вот диагональные дороги действительно не помешали бы.
Добавлено:
Пн мар 17, 2008 18:29
Simozzz
На счет дороги. Наверное должно выглядеть так, если по углам
Добавлено:
Пн мар 17, 2008 18:50
Simozzz
Или так, если по середине
Добавлено:
Пн мар 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 спрайта? графики придется дофига рисовать в любом случае. А поиск пути так и так переделывать придется. Но зато потом его можно будет унифицировать с ЖД