Просмотр полной версии : В чем прикол изометрии?
Часто вижу игры, созданные с применением изометрической проекции.
Но так и не монял, в чем смысл делать все эти пересчеты, когда точно такого же эффекта можно добиться и не изменяя систему координат
Кто делал такие игры, почему выбирали изометрию?
Лично я пробовал делать изометрическую игру. После чего сделал то же самое, но с простой системой координат. Разницы для игрока никакой
потому что проц не грузило смертельно в отличии от 3д.
Почему разницы никакой для игрока? На этот вопрос может ответить либо статистика, либо опытный гейм-дизайнер/арт-директор.
Просто игры какие-то плоскоуровневые, были бы горы да небоскребы, арки и т.п. Кто помнит червяков на Денди, которые вверх стремились. Такую игру видом сверху не реализуешь :о)
потому что проц не грузило смертельно в отличии от 3д.
Я о 3д и не говорил.
Почему разницы никакой для игрока? На этот вопрос может ответить либо статистика, либо опытный гейм-дизайнер/арт-директор.
Ни то ни другое не является показателем.
Просто игры какие-то плоскоуровневые, были бы горы да небоскребы, арки и т.п. Кто помнит червяков на Денди, которые вверх стремились. Такую игру видом сверху не реализуешь :о)
Не внимательно вы, товарищи, прочитали тему ;)
Я могу сделать здания, дороги, деревья и т.д. под таким же углом как в изометрии, но при этом использовать обычную систему координат, без всяких заморочек с пересчетом. Так зачем выбирать подход усложнения кода, когда можно сделать все проще?
Psycho Tiger
23.05.2011, 08:02
Артефакты вылезут потом :)
Не внимательно вы, товарищи, прочитали тему
Я могу сделать здания, дороги, деревья и т.д. под таким же углом как в изометрии, но при этом использовать обычную систему координат, без всяких заморочек с пересчетом. Так зачем выбирать подход усложнения кода, когда можно сделать все проще?
Отнюдь, с плоскими играми, каких большинство во ВКонтакте, то есть нет вторых этажей у зданий, на гору не подняться, нет арочных сооружений, через которые можно пройти, может вы и справитесь. Но все равно думаю, что "Артефакты вылезут потом" (с) Ну, а когда начнете с ними бороться и побеждать, у вас получится свой изометрический движок ;о))
Ну и http://xitri.com/2008/10/17/two-step-isometric.html
Артефакты вылезут потом :)
Нет. Уже давно использую, не вылезает никаких артефактов.
Вот так выглядит игра, которую я сейчас делаю:
http://s008.***********/i306/1105/86/d8105196f7b6.jpg
Движок не изометрический. Но игрок этого не поймет. Здания, деревья, траву, какие-то дефекты земной поверхности можно располагать где угодно и практически под любым углом.
Никаких артефактов не всплывает, мосты, арки, многоэтажные здания можно организовать запросто.
Похоже этот движок и правда будет уникальным :D
Ну а если серьезно, по-моему изометрия - это как стадный инстинкт. Все делают, значит и мне надо так же. Читал кучу разных ресурсов и книжек по изометрии, и так и не нашел никаких преимуществ
Zebestov
23.05.2011, 11:22
Прикольный скрин!
Tips and tricks:
Объекты наподобие бункера лучше рисовать с перспективой, пускай и небольшой. Иначе (как видно) происходит эффект обратной перспективы.
Если это не изометрия - каким образом вы считаете глубину?
Но так и не монял, в чем смысл делать все эти пересчеты, когда точно такого же эффекта можно добиться и не изменяя систему координат
Что значит "не изменяя систему координат"?
Zebestov
23.05.2011, 11:32
Котяра, очевидно же — по Y
Добавлено через 6 минут
Что значит "не изменяя систему координат"?
Похоже, что речь идет о том, что система XY при отображении не претерпевает особенных пересчетов — один лишь коэффициент на ось Y. Ну и сортировка теперь зависит лишь от Y, как я писал выше.
очевидно же — по Y
Как при таком подходе разруливается ситуация, когда два объекта находятся на разной высоте и визуально попадают в одни координаты или дальний объект получается выше по y, но перекрывается ближним объектом?
Zebestov
23.05.2011, 11:45
Если я стою перед Эйфелевой башней, я все равно буду нарисован последним — у меня Y больше! :D
Если это не изометрия - каким образом вы считаете глубину?
Этим занимается прога для редактирования карт. Расставляю в ней объекты, сразу на нужную глубину. Механизм для этого предусмотрен. Когда карта генерируется, все объекты уже стоят в нужном порядке,а игра на основе XML расставляет их в том же порядке.
Деревья находятся на слое выше. После кучи экспериментов, пришел к выводу, что это самый оптимальный подход в плане производительности.
Прикольный скрин!
Спасибо :)
Графику делаю самостоятельно. Кроме персонажей.
Объекты наподобие бункера лучше рисовать с перспективой, пускай и небольшой. Иначе (как видно) происходит эффект обратной перспективы.
Опять же, после многочисленных экспериментов решил, что все таки лучше параллельная проекция. Иначе сложно сделать правильную игру света и тени, чтобы не казалось, что объект расположен не под таки углом, как деревья и другие объекты
Что значит "не изменяя систему координат"?
Как бы это объяснить... В общем не используюя "поворот" всех координат добавляемых объектов на 45 градусов.
Как при таком подходе разруливается ситуация, когда два объекта находятся на разной высоте и визуально попадают в одни координаты или дальний объект получается выше по y, но перекрывается ближним объектом?
Такого движок не допускает. Описание дал выше
Это не совсем та проекция, но скрин все равно супер. Когда релиз?
Такого движок не допускает.
Вот и ответ, почему используют :)
В общем не используюя "поворот" всех координат добавляемых объектов на 45 градусов.
Какой поворот? В нормальной изометрии используются 3D координаты и никаких поворотов нет, просто проецируются на 2D плоскость (дешево).
x1 = x – z;
y1 = y * 1.2247 + (x + z) * 0.5;
z2 = (x + z)*0.866 – y * 0.707;
z2 для сортировки.
Zebestov
23.05.2011, 11:52
googguy, но при такой перспективе упрямый мозг рисует "трапецию"... может, как вариант, избегать очевидно параллельных линий? На примере бункера: покоцать бока площадки — война же! :)
goodguy, декартовы на самом деле почти у всех «изометрических» игрушек. Действительно изометрическую ещё поискать нужно, я участвовал в разработке трёх (или четырёх, не помню) подобных игрушек и у всех декартовы.
goodguy, декартовы на самом деле почти у всех «изометрических» игрушек.
Ну, я встречал реально изометрические. Там было примерно так, как написал alatar
googguy, но при такой перспективе упрямый мозг рисует "трапецию"... может, как вариант, избегать очевидно параллельных линий? На примере бункера: покоцать бока площадки — война же!
Да это еще не финальный вариант. Просто нужно с чем-то работать, поэтому сделал пока на скорую руку.
Это не совсем та проекция, но скрин все равно супер. Когда релиз?
Тут даже не берусь прогнозировать :D
Надеюсь месяца через 2 - 3 запущу альфу. Она будет полностью онлайновая, в реальном времени. Так что работы выше крыши
Не понял суть трэда.
Есть вид сверху, и вид в профиль. Все прочее, что не чистое 3Д можно назвать "изометрией"....
Коэффициенты, координаты, глубина - на вкус и цвет...
Глубина - по У, если это ордината... Как развернуть домики относительно положения координатной сетки - дело вкуса. У вас домик , кстати, выглядит некрасиво.
http://cs9538.vkontakte.ru/u43915359/123376192/z_ee5f9115.jpg
Гексагональное поле, изометрией назвать нельзя, но это именно она :)
http://cs9538.vkontakte.ru/u43915359/123376192/z_ee5f9115.jpg
Гексагональное поле, изометрией назвать нельзя, но это именно она :)
Почему нельзя-то? Чистая изометрия в контексте игр.
Не понял суть трэда.
Суть в том, что я не понимаю, зачем делать подобные расчеты при создании игр с таким видом
x1 = x – z;
y1 = y * 1.2247 + (x + z) * 0.5;
z2 = (x + z)*0.866 – y * 0.707;
Когда можно использовать обычную декартову систему. В нескольких книжках видел примеры создания изометрических игр, и везде были такие расчеты. Но смысла не понимаю
Смысл обойти вот это:
Такого движок не допускает.
Плюс, проще расчитывать физику и траектории, проще реализация AI. Проще представить уровень в голове (как трехмерный), даже без редактора уровней. Можно брать готовую анимацию из 3D программ. По-сути, вся работа ведется с обычными тремя измерениями. Движок, только рендерит это на экран.
проще реализация AI.
Из-за плиток?
И меня вообще своя система определения объекта на карте, не хуже плиточной. По ней так же можно организовать А*.
Можно брать готовую анимацию из 3D программ
Так в моей игре тоже берется анимация из 3д программ.
Смысл обойти вот это:
Такого движок не допускает.
х.м. Я обошел без изометрии. И не прибегал к каким-то супер ухищрениям
Плюс, проще расчитывать физику и траектории
Ну вот это наверное можно назвать первым плюсом, который я вижу в такой схеме
Из-за плиток?
Да нет там, по-сути, плиток. Объект может находиться между плитками, "висеть в воздухе", все что угодно. Я имел ввиду, что проще (более реалистично) сделать проверку "враг тебя видит / не видит", расчитать попал / не попал, физически достоверную траекторию пули / снаряда. Т.е. логика строится, как будто у нас честное 3D.
Так в моей игре тоже берется анимация из 3д программ.
Не анимированные картинки, а именно анимацию (тупо координаты объекта во времени).
х.м. Я обошел без изометрии. И не прибегал к каким-то супер ухищрениям
Почему тогда пишешь, что невозможно отсортировать два объекта с одним y, но разных по близости к наблюдателю?
Почему нельзя-то? Чистая изометрия в контексте игр.
Система рассчета координат хитровыделанная :)
х.м. Я обошел без изометрии. И не прибегал к каким-то супер ухищрениям
А как тогда ваш вид называется? Фронтальная диметрия? :)
Почему тогда пишешь, что невозможно отсортировать два объекта с одним y, но разных по близости к наблюдателю?
Где я это писал? С сортировкой там все нормально. Недавно думал как сделать, но в итоге остался с тем, что было раньше (конструкция сэндвич из 2 битмапок), только малость доработал
Да нет там, по-сути, плиток. Объект может находиться между плитками, "висеть в воздухе", все что угодно. Я имел ввиду, что проще (более реалистично) сделать проверку "враг тебя видит / не видит", расчитать попал / не попал, физически достоверную траекторию пули / снаряда. Т.е. логика строится, как будто у нас честное 3D.
Теперь понял =)
А как тогда ваш вид называется? Фронтальная диметрия?
Понятия не имею :D
Где я это писал?
Вот тут:
Как при таком подходе разруливается ситуация, когда два объекта находятся на разной высоте и визуально попадают в одни координаты или дальний объект получается выше по y, но перекрывается ближним объектом?
Такого движок не допускает. Описание дал выше
Суть в том, что я не понимаю, зачем делать подобные расчеты при создании игр с таким видом
x1 = x – z;
y1 = y * 1.2247 + (x + z) * 0.5;
z2 = (x + z)*0.866 – y * 0.707;
Когда можно использовать обычную декартову систему. В нескольких книжках видел примеры создания изометрических игр, и везде были такие расчеты. Но смысла не понимаю
Я знаю только одну причину - эстетическую.
Тот же бункер красивше бы смотрелся, если его повернуть на 45%
Скалы в Tiberium Sun(изометрия) и строения смотрятся гораздо красивее, чем в Dune II (проекция без поворота на 45%)
Хоть в том же Tiberium Sun солдатов выделять гораздо неудобнее из-за такой перспективы.
Впринципе, если все строения круглые или их можно немного повернуть без ущерба сортировки, нет элементов рельефа, неважно смотрящихся без поворота, ИМХО и прямая проекция сгодится
А то что там разные высоты движок не допускает - навряд ли это к нему сложнее прикрутить, чем к изометрическому (в Дюне же летающие транспортировщики были)
Вот тут:
Аа. Я тут вопроса не заметил в конце предложения =) Думал это утверждение :D
Тот же бункер красивше бы смотрелся, если его повернуть на 45%
Не не, тут все поворачивается. Это лишь один вид бункера. Есть и повернутые. И не только на 45, а так же на 30, 60, 90 и на те же углы, только отрицательные. С этим все в порядке.
Деревья находятся на слое выше.
То есть герой за лесом и перед лесом всегда будет над деревьями или под ними? Или он хитро между слоями прыгает?
Вот кстати, лично я изометрией считаю только такой вариант, как на картинке в блоге.
http://www.flasher.ru/forum/blog.php?b=392
То есть герой за лесом и перед лесом всегда будет над деревьями или под ними?
Он находится на слое под ними. Но получиться так, что деревья растут у него из головы не может, так как там еще есть система расчета того, где он может ходить, а где нет
В редакторе карт можно задать места, где перемещаться нельзя
http://s55.***********/i147/1105/d7/bd928f29102b.jpg
Если я нарисую это, солдат не сможет зайти на красную зону.
Но в игре это не визуализируется, естественно, в место этого есть массив объектов, типа такого:
[ { a: 1 }, { a: 0 } ]
Солдат проверяет на какой плитке он находится. Алгоритм там простой. Потом в берет номер этой плитки и проверяет соответствующий ему элемент этого массива. Например, если он стоит на клетке номер 0, то проверив этот массив, и значение нулевого индекса "а" он получит резултат 1, то он не пойдет на эту плитку
То есть головой всегда упирается в нижнюю часть красной плитки и перед лесом впритык к пальме фактически стоять не может?
Пока да. Но это я исправлю. Просто еще руки не дошли :D
Вот кстати, лично я изометрией считаю только такой вариант, как на картинке в блоге.
Изометрия (http://ru.wikipedia.org/wiki/%D0%98%D0%B7%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%86%D0%B8%D1%8F) (Изометрическая проекция), бывает разная. :)
HardCoder
23.05.2011, 15:09
Если не секрет, редактор карт собственный? И только для конкретной игры или используется и для других разработок?
Добавлено через 27 минут
Вот кстати, лично я изометрией считаю только такой вариант, как на картинке в блоге.
http://www.flasher.ru/forum/blog.php?b=392А какая есть другая изометрия? Если не уточнять: прямоугольная или косоугольная изометрия, то всегда поразумевают прямоугольную. А то что зачастую используют в играх - никак не имеет 120 градусов между осями (с целью удобного создания изображений плиток и сглаживания краев). По крайней мере я других проекций не встречал и всегда использую соотношение: высота ромба = ширина/2.
Если не секрет, редактор карт собственный?
Собственный. Только для этой игры.
Других игр я в данный момент не разрабатываю, и на эту времени уходит гора :D
Изометрия (http://ru.wikipedia.org/wiki/%D0%98%D0%B7%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%86%D0%B8%D1%8F) (Изометрическая проекция), бывает разная. :)
Да у меня эта ссылка уже открыта была :о) Но, как уже говорил, змейки у меня эталон http://media.giantbomb.com/uploads/0/3009/275367-snake_rattle__n_roll_nes_005_super.png
terbooter
09.06.2011, 10:55
goodguy, у тебя не изометрия, а аксонометрия.
Смотреть скрин http://cad.kurganobl.ru/assets/images/rucad/doc/axonom/clip0001.gif
Вспомнилось с уроков черчения =)
В аксонометрии, понятно, z сортировка = сортировке по y.
Игру делаешь в свободное время? Графику рисуешь сам?
terbooter, изометрическая проекция это разновидность аксонометрической проекции. И сортировать все проекции можно разными способами.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.