Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   В чем прикол изометрии? (http://www.flasher.ru/forum/showthread.php?t=156491)

goodguy 22.05.2011 23:04

В чем прикол изометрии?
 
Часто вижу игры, созданные с применением изометрической проекции.
Но так и не монял, в чем смысл делать все эти пересчеты, когда точно такого же эффекта можно добиться и не изменяя систему координат

Кто делал такие игры, почему выбирали изометрию?

Лично я пробовал делать изометрическую игру. После чего сделал то же самое, но с простой системой координат. Разницы для игрока никакой

i.o. 23.05.2011 00:09

потому что проц не грузило смертельно в отличии от 3д.

Bgg 23.05.2011 00:14

Почему разницы никакой для игрока? На этот вопрос может ответить либо статистика, либо опытный гейм-дизайнер/арт-директор.

GBee 23.05.2011 00:29

Просто игры какие-то плоскоуровневые, были бы горы да небоскребы, арки и т.п. Кто помнит червяков на Денди, которые вверх стремились. Такую игру видом сверху не реализуешь :о)

goodguy 23.05.2011 07:17

Цитата:

Сообщение от i.o. (Сообщение 997906)
потому что проц не грузило смертельно в отличии от 3д.

Я о 3д и не говорил.
Цитата:

Почему разницы никакой для игрока? На этот вопрос может ответить либо статистика, либо опытный гейм-дизайнер/арт-директор.
Ни то ни другое не является показателем.
Цитата:

Просто игры какие-то плоскоуровневые, были бы горы да небоскребы, арки и т.п. Кто помнит червяков на Денди, которые вверх стремились. Такую игру видом сверху не реализуешь :о)
Не внимательно вы, товарищи, прочитали тему ;)
Я могу сделать здания, дороги, деревья и т.д. под таким же углом как в изометрии, но при этом использовать обычную систему координат, без всяких заморочек с пересчетом. Так зачем выбирать подход усложнения кода, когда можно сделать все проще?

Psycho Tiger 23.05.2011 08:02

Артефакты вылезут потом :)

GBee 23.05.2011 09:56

Цитата:

Не внимательно вы, товарищи, прочитали тему
Я могу сделать здания, дороги, деревья и т.д. под таким же углом как в изометрии, но при этом использовать обычную систему координат, без всяких заморочек с пересчетом. Так зачем выбирать подход усложнения кода, когда можно сделать все проще?
Отнюдь, с плоскими играми, каких большинство во ВКонтакте, то есть нет вторых этажей у зданий, на гору не подняться, нет арочных сооружений, через которые можно пройти, может вы и справитесь. Но все равно думаю, что "Артефакты вылезут потом" (с) Ну, а когда начнете с ними бороться и побеждать, у вас получится свой изометрический движок ;о))

Ну и http://xitri.com/2008/10/17/two-step-isometric.html

goodguy 23.05.2011 11:05

Цитата:

Сообщение от Psycho Tiger (Сообщение 997962)
Артефакты вылезут потом :)

Нет. Уже давно использую, не вылезает никаких артефактов.
Вот так выглядит игра, которую я сейчас делаю:
[IMG]http://s008.***********/i306/1105/86/d8105196f7b6.jpg[/IMG]
Движок не изометрический. Но игрок этого не поймет. Здания, деревья, траву, какие-то дефекты земной поверхности можно располагать где угодно и практически под любым углом.
Никаких артефактов не всплывает, мосты, арки, многоэтажные здания можно организовать запросто.
Похоже этот движок и правда будет уникальным :D

Ну а если серьезно, по-моему изометрия - это как стадный инстинкт. Все делают, значит и мне надо так же. Читал кучу разных ресурсов и книжек по изометрии, и так и не нашел никаких преимуществ

Zebestov 23.05.2011 11:22

Прикольный скрин!

Tips and tricks:
Цитата:

Объекты наподобие бункера лучше рисовать с перспективой, пускай и небольшой. Иначе (как видно) происходит эффект обратной перспективы.

Котяра 23.05.2011 11:26

Если это не изометрия - каким образом вы считаете глубину?

alatar 23.05.2011 11:28

Цитата:

Но так и не монял, в чем смысл делать все эти пересчеты, когда точно такого же эффекта можно добиться и не изменяя систему координат
Что значит "не изменяя систему координат"?

Zebestov 23.05.2011 11:32

Котяра, очевидно же — по Y

Добавлено через 6 минут
Цитата:

Сообщение от alatar (Сообщение 997981)
Что значит "не изменяя систему координат"?

Похоже, что речь идет о том, что система XY при отображении не претерпевает особенных пересчетов — один лишь коэффициент на ось Y. Ну и сортировка теперь зависит лишь от Y, как я писал выше.

alatar 23.05.2011 11:40

Цитата:

очевидно же — по Y
Как при таком подходе разруливается ситуация, когда два объекта находятся на разной высоте и визуально попадают в одни координаты или дальний объект получается выше по y, но перекрывается ближним объектом?

Zebestov 23.05.2011 11:45

Если я стою перед Эйфелевой башней, я все равно буду нарисован последним — у меня Y больше! :D

goodguy 23.05.2011 11:45

Цитата:

Если это не изометрия - каким образом вы считаете глубину?
Этим занимается прога для редактирования карт. Расставляю в ней объекты, сразу на нужную глубину. Механизм для этого предусмотрен. Когда карта генерируется, все объекты уже стоят в нужном порядке,а игра на основе XML расставляет их в том же порядке.
Деревья находятся на слое выше. После кучи экспериментов, пришел к выводу, что это самый оптимальный подход в плане производительности.

Цитата:

Прикольный скрин!
Спасибо :)
Графику делаю самостоятельно. Кроме персонажей.

Цитата:

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

Цитата:

Что значит "не изменяя систему координат"?
Как бы это объяснить... В общем не используюя "поворот" всех координат добавляемых объектов на 45 градусов.

Цитата:

Как при таком подходе разруливается ситуация, когда два объекта находятся на разной высоте и визуально попадают в одни координаты или дальний объект получается выше по y, но перекрывается ближним объектом?
Такого движок не допускает. Описание дал выше

GBee 23.05.2011 11:48

Это не совсем та проекция, но скрин все равно супер. Когда релиз?

alatar 23.05.2011 11:51

Цитата:

Такого движок не допускает.
Вот и ответ, почему используют :)
Цитата:

В общем не используюя "поворот" всех координат добавляемых объектов на 45 градусов.
Какой поворот? В нормальной изометрии используются 3D координаты и никаких поворотов нет, просто проецируются на 2D плоскость (дешево).
Код AS3:

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, но при такой перспективе упрямый мозг рисует "трапецию"... может, как вариант, избегать очевидно параллельных линий? На примере бункера: покоцать бока площадки — война же! :)

etc 23.05.2011 11:59

goodguy, декартовы на самом деле почти у всех «изометрических» игрушек. Действительно изометрическую ещё поискать нужно, я участвовал в разработке трёх (или четырёх, не помню) подобных игрушек и у всех декартовы.

goodguy 23.05.2011 12:06

Цитата:

goodguy, декартовы на самом деле почти у всех «изометрических» игрушек.
Ну, я встречал реально изометрические. Там было примерно так, как написал alatar
Цитата:

googguy, но при такой перспективе упрямый мозг рисует "трапецию"... может, как вариант, избегать очевидно параллельных линий? На примере бункера: покоцать бока площадки — война же!
Да это еще не финальный вариант. Просто нужно с чем-то работать, поэтому сделал пока на скорую руку.
Цитата:

Это не совсем та проекция, но скрин все равно супер. Когда релиз?
Тут даже не берусь прогнозировать :D
Надеюсь месяца через 2 - 3 запущу альфу. Она будет полностью онлайновая, в реальном времени. Так что работы выше крыши

dark256 23.05.2011 12:37

Не понял суть трэда.
Есть вид сверху, и вид в профиль. Все прочее, что не чистое 3Д можно назвать "изометрией"....
Коэффициенты, координаты, глубина - на вкус и цвет...
Глубина - по У, если это ордината... Как развернуть домики относительно положения координатной сетки - дело вкуса. У вас домик , кстати, выглядит некрасиво.

http://cs9538.vkontakte.ru/u43915359...z_ee5f9115.jpg

Гексагональное поле, изометрией назвать нельзя, но это именно она :)

mooncar 23.05.2011 12:48

Цитата:

Сообщение от dark256 (Сообщение 998003)
http://cs9538.vkontakte.ru/u43915359...z_ee5f9115.jpg
Гексагональное поле, изометрией назвать нельзя, но это именно она :)

Почему нельзя-то? Чистая изометрия в контексте игр.

goodguy 23.05.2011 12:52

Цитата:

Не понял суть трэда.
Суть в том, что я не понимаю, зачем делать подобные расчеты при создании игр с таким видом
Код AS3:

x1 = x – z;
y1 = y * 1.2247 + (x + z) * 0.5;
z2 = (x + z)*0.866 – y * 0.707;

Когда можно использовать обычную декартову систему. В нескольких книжках видел примеры создания изометрических игр, и везде были такие расчеты. Но смысла не понимаю

alatar 23.05.2011 13:02

Смысл обойти вот это:
Цитата:

Такого движок не допускает.
Плюс, проще расчитывать физику и траектории, проще реализация AI. Проще представить уровень в голове (как трехмерный), даже без редактора уровней. Можно брать готовую анимацию из 3D программ. По-сути, вся работа ведется с обычными тремя измерениями. Движок, только рендерит это на экран.

goodguy 23.05.2011 13:11

Цитата:

проще реализация AI.
Из-за плиток?
И меня вообще своя система определения объекта на карте, не хуже плиточной. По ней так же можно организовать А*.

Цитата:

Можно брать готовую анимацию из 3D программ
Так в моей игре тоже берется анимация из 3д программ.

Цитата:

Смысл обойти вот это:
Цитата:

Такого движок не допускает
.
х.м. Я обошел без изометрии. И не прибегал к каким-то супер ухищрениям

Цитата:

Плюс, проще расчитывать физику и траектории
Ну вот это наверное можно назвать первым плюсом, который я вижу в такой схеме

alatar 23.05.2011 13:33

Цитата:

Из-за плиток?
Да нет там, по-сути, плиток. Объект может находиться между плитками, "висеть в воздухе", все что угодно. Я имел ввиду, что проще (более реалистично) сделать проверку "враг тебя видит / не видит", расчитать попал / не попал, физически достоверную траекторию пули / снаряда. Т.е. логика строится, как будто у нас честное 3D.
Цитата:

Так в моей игре тоже берется анимация из 3д программ.
Не анимированные картинки, а именно анимацию (тупо координаты объекта во времени).
Цитата:

х.м. Я обошел без изометрии. И не прибегал к каким-то супер ухищрениям
Почему тогда пишешь, что невозможно отсортировать два объекта с одним y, но разных по близости к наблюдателю?

dark256 23.05.2011 13:34

Цитата:

Почему нельзя-то? Чистая изометрия в контексте игр.
Система рассчета координат хитровыделанная :)

Цитата:

х.м. Я обошел без изометрии. И не прибегал к каким-то супер ухищрениям
А как тогда ваш вид называется? Фронтальная диметрия? :)

goodguy 23.05.2011 13:53

Цитата:

Почему тогда пишешь, что невозможно отсортировать два объекта с одним y, но разных по близости к наблюдателю?
Где я это писал? С сортировкой там все нормально. Недавно думал как сделать, но в итоге остался с тем, что было раньше (конструкция сэндвич из 2 битмапок), только малость доработал

Цитата:

Да нет там, по-сути, плиток. Объект может находиться между плитками, "висеть в воздухе", все что угодно. Я имел ввиду, что проще (более реалистично) сделать проверку "враг тебя видит / не видит", расчитать попал / не попал, физически достоверную траекторию пули / снаряда. Т.е. логика строится, как будто у нас честное 3D.
Теперь понял =)

Цитата:

А как тогда ваш вид называется? Фронтальная диметрия?
Понятия не имею :D

alatar 23.05.2011 13:59

Цитата:

Где я это писал?
Вот тут:
Цитата:

Сообщение от alatar (Сообщение 997985)
Как при таком подходе разруливается ситуация, когда два объекта находятся на разной высоте и визуально попадают в одни координаты или дальний объект получается выше по y, но перекрывается ближним объектом?

Цитата:

Сообщение от goodguy (Сообщение 997988)
Такого движок не допускает. Описание дал выше


expl 23.05.2011 14:23

Цитата:

Сообщение от goodguy (Сообщение 998006)
Суть в том, что я не понимаю, зачем делать подобные расчеты при создании игр с таким видом
Код AS3:

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 солдатов выделять гораздо неудобнее из-за такой перспективы.
Впринципе, если все строения круглые или их можно немного повернуть без ущерба сортировки, нет элементов рельефа, неважно смотрящихся без поворота, ИМХО и прямая проекция сгодится

А то что там разные высоты движок не допускает - навряд ли это к нему сложнее прикрутить, чем к изометрическому (в Дюне же летающие транспортировщики были)

goodguy 23.05.2011 14:27

Цитата:

Сообщение от alatar (Сообщение 998017)
Вот тут:

Аа. Я тут вопроса не заметил в конце предложения =) Думал это утверждение :D

Цитата:

Тот же бункер красивше бы смотрелся, если его повернуть на 45%
Не не, тут все поворачивается. Это лишь один вид бункера. Есть и повернутые. И не только на 45, а так же на 30, 60, 90 и на те же углы, только отрицательные. С этим все в порядке.

GBee 23.05.2011 14:46

Цитата:

Деревья находятся на слое выше.
То есть герой за лесом и перед лесом всегда будет над деревьями или под ними? Или он хитро между слоями прыгает?

Вот кстати, лично я изометрией считаю только такой вариант, как на картинке в блоге.
http://www.flasher.ru/forum/blog.php?b=392

goodguy 23.05.2011 14:47

Цитата:

То есть герой за лесом и перед лесом всегда будет над деревьями или под ними?
Он находится на слое под ними. Но получиться так, что деревья растут у него из головы не может, так как там еще есть система расчета того, где он может ходить, а где нет
В редакторе карт можно задать места, где перемещаться нельзя
[IMG]http://s55.***********/i147/1105/d7/bd928f29102b.jpg[/IMG]
Если я нарисую это, солдат не сможет зайти на красную зону.
Но в игре это не визуализируется, естественно, в место этого есть массив объектов, типа такого:
[ { a: 1 }, { a: 0 } ]
Солдат проверяет на какой плитке он находится. Алгоритм там простой. Потом в берет номер этой плитки и проверяет соответствующий ему элемент этого массива. Например, если он стоит на клетке номер 0, то проверив этот массив, и значение нулевого индекса "а" он получит резултат 1, то он не пойдет на эту плитку

GBee 23.05.2011 14:57

То есть головой всегда упирается в нижнюю часть красной плитки и перед лесом впритык к пальме фактически стоять не может?

goodguy 23.05.2011 15:00

Пока да. Но это я исправлю. Просто еще руки не дошли :D

alatar 23.05.2011 15:07

Цитата:

Вот кстати, лично я изометрией считаю только такой вариант, как на картинке в блоге.
Изометрия (Изометрическая проекция), бывает разная. :)

HardCoder 23.05.2011 15:09

Если не секрет, редактор карт собственный? И только для конкретной игры или используется и для других разработок?

Добавлено через 27 минут
Цитата:

Сообщение от GBee (Сообщение 998027)
Вот кстати, лично я изометрией считаю только такой вариант, как на картинке в блоге.
http://www.flasher.ru/forum/blog.php?b=392

А какая есть другая изометрия? Если не уточнять: прямоугольная или косоугольная изометрия, то всегда поразумевают прямоугольную. А то что зачастую используют в играх - никак не имеет 120 градусов между осями (с целью удобного создания изображений плиток и сглаживания краев). По крайней мере я других проекций не встречал и всегда использую соотношение: высота ромба = ширина/2.

goodguy 23.05.2011 15:46

Цитата:

Если не секрет, редактор карт собственный?
Собственный. Только для этой игры.
Других игр я в данный момент не разрабатываю, и на эту времени уходит гора :D

GBee 23.05.2011 17:21

Цитата:

Сообщение от alatar (Сообщение 998039)
Изометрия (Изометрическая проекция), бывает разная. :)

Да у меня эта ссылка уже открыта была :о) Но, как уже говорил, змейки у меня эталон http://media.giantbomb.com/uploads/0..._005_super.png

terbooter 09.06.2011 10:55

goodguy, у тебя не изометрия, а аксонометрия.
Смотреть скрин http://cad.kurganobl.ru/assets/image...m/clip0001.gif
Вспомнилось с уроков черчения =)
В аксонометрии, понятно, z сортировка = сортировке по y.

Игру делаешь в свободное время? Графику рисуешь сам?


Часовой пояс GMT +4, время: 12:00.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.