On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение





Пост N: 1
Зарегистрирован: 16.12.07
Рейтинг: 0
ссылка на сообщение  Отправлено: 16.12.07 19:03. Заголовок: Ахиллесова пята космоса


Тема, о которой пойдет речь, имеет фундаментальное значение для всех космических игр (за исключением чисто пошаговых стратегий). Речь пойдет о механизме перемещения объектов (типа корабль) в глобальной карте (имеется в виду звездная карта, она же карта галактики) и реализации этого механизма. Итак, например, имеем звездные системы А и Б, и корабль в одной из них; теперь для начала поставим задачу нахождения нового (я бы сказал неординарного) механизма перемещения корабля из одной системы в другую, механизма, которого не было до этого ни в одной космической игре. Следующей задачей будет синтез этих новонайденных механизмов с получением механизма, который был бы уникальным в среде космических игр, а его реализация привела бы в восторг любого геймера.
Чтобы мне развивать эту тему дальше, изложу накопленный опыт (все что мне известно) на эту тему в среде космических игр. Изложение будет в виде перечисления механизмов перемещения в существующих космических играх, в свою очередь каждый механизм будет содержать следующие пункты: реализация, пример применения в конкретной игре (играх), преимущества, недостатки, существующие методы устранения недостатков (на примере конкретной игры). Изложение приемуществ и недостатков будет опираться на первый из перечисленных мной механизмов.
1. Механизм двух точек. Самый распространенный на сегодня механизм. Основан на том, что в системе А есть своя стационарная (по крайней мере, в смысле орбиты) точка входа/выхода для системы Б (и только для Б), а в системе Б есть аналогичная точка входа/выхода для системы А (и только для А). Тоесть прямое перемещение между этими системами осуществляется посредством набора из двух стационарных точек входа/выхода, и это перемещение осуществляется как правило между соседними звездными системами.
· Реализуется посредством прыжковых ворот или посредством аномалий (лично у меня меньше претензий ко второму варианту; ворота это по сути рукотворный предмет, который можно разрушить (теоретически) или еще как-нибудь повлиять на него, а аномалия это физическое явление, ее не сдвинешь и не уберешь).
· Примеров применения великое множество (я сейчас все и не вспомню) взять хотя бы хит последнего времени EVE или не менее популярный для своего времени Freelancer.
· Главное преимущество этого механизма состоит в его простоте и простоте модели реальной вселенной. Тоесть неважно что между системами А и Б в реальной вселенной огромное расстояние и количество звездных систем стремится к бесконечности (только в нашей галактике их миллиарды), у нас есть пара прыжковых ворот для этих двух систем и выбор конечного набора систем для нашей звездной карты. Второе главное преимущество заключается в простоте перемещения: влетел в одни ворота, вылетел из других и больше ничего не надо. Еще одно преимущество заключается в фиксированном значении реального времени на любой прыжок, т. е. неважно что расстояние между системами А и Б в сто раз больше чем между В и Г, реальное время на перемещение будет одинаковым для обоих случаев.
· У этого механизма есть три главных недостатка. Подумайте каких? Первый из них это конечно же единственность набора из двух точек входа/выхода (его численная ограниченность), например чтобы устроить засаду на нужный корабль нужно знать конечный пункт его маршрута по звездной карте и только. Второй недостаток это стационарность точек входа/выхода, т. е. чтобы совершить прыжок надо сначала долететь до точки входа/выхода. Третий это так называемая "упорядоченность" перемещения по звездной карте, т. е. если рассматривать перемещение между системами А и Б в общем случае, то весь маршрут будет пролегать через несколько звездных систем, где конечными пунктами будут системы А и Б. Еще один недостаток это отсутствие реализации процесса игры во время межзвездного перемещения (тут вы скажете что я слишком придирчив, но в последнем описанным мною механизме этого недостатка нет).
· В X2 (X3 пока не играл) третий главный недостаток устранен полностью, первый и второй только частично.
2. Механизм направлений. Основан на так называемом "принципе прыжковой орбиты". Тоесть чтобы совершить прыжок в какую-нибудь звездную систему нужно достичь определенного участка этой орбиты, точка выхода из прыжка в системе назначения будет расположена также на определенном участке прыжковой орбиты. Во всех звездных системах прыжковые орбиты являются самыми внешними, т. е. фактически они наиболее приближены (все орбиты объектов типа "планета" находятся внутри прыжковой орбиты) к границам игровых полей этих систем (например, в трехмерном игровом поле в виде куба, прыжковая орбита наиболее приближена к центрам граней этого куба). Теперь об этих самых участках прыжковых орбит, на которых расположены точки входа/выхода. Прежде надо заметить, что системы координат каждой звездной системы жестко привязаны к системе координат звездной карты по направлениям координатных осей (говоря чисто математическим языком это означает что базисные векторы звездной системы N In, jn, kn коллинеарны базисным векторам звездной карты Iз. к., jз. к., kз. к.; кстати это правило может существовать и в механизме двух точек). Так вот, если через начала систем координат звездных систем А и Б провести прямую, то при перемещении из системы А в систему Б (или наоборот) центры участков прыжковых орбит в обоих системах будут лежать на этой прямой. Сами эти участки реализуются в механизме направлений как правило, в виде полусферы (в случае трехмерной реализации игровых полей) или в виде полукруга (в случае двумерной реализации игровых полей). Обобщая вышесказанное в упрощенном виде получается, что если корабль находясь в системе А движется по направлению к системе Б, то направление движения (отсюда и название механизма) фактически совпадает с прямой на которой находятся центры участков прыжковых орбит для этих систем.
· Реализуется посредством прыжковых орбит.
· Яркий пример применения: Космические рейнджеры.
· Преимущества этого механизма те же что и у механизма двух точек, только с учетом того что в этом механизме модель реальной вселенной все же точнее.
· Из недостатков механизма двух точек, у этого механизма, первый и второй недостатки устранены лишь частично, третий недостаток устранен полностью. Также частично устранено отсутствие реализации процесса игры во время межзвездного перемещения (здесь расход топлива за прыжок из одной звездной системы в другую будет зависеть от расстояния между ними; в свою очередь расстояние будет зависеть от модели двигателя).
· Примеров игр с устраненными недостатками этого механизма пока не встречал.
3. Механизм гиперпространства с точкой входа/выхода. Об этом механизме я узнал, играя в Babylon 5: i've Found Her. Я этот механизм таким, какой он в Babylon 5: i've Found Her описывать не стану, затрону лишь важные для нашей темы моменты. Перемещение объектов (типа корабль) по карте галактики осуществляется посредством гиперпространства. В каждой звездной системе средством входа/выхода в это гиперпространство может быть либо сам корабль (точнее его спецоборудование), либо точка входа/выхода (допускаю, что в звездной системе может быть более одной точки входа/выхода, расположенных по игровому полю, для улучшения транспортных сообщений). Здесь гиперпространство это по сути дела игровое поле карты галактики, точнее в виде ее образа. Причем гиперпространство подобно по своей реализации игровому полю в звездных системах. Тоесть в гиперпространстве объекты (типа корабль) могут так же как и в звездных системах летать, стрелять, состыковываться... Уточню один момент. В Babylon 5: i've Found Her вход/выход в/из гиперпространства с помощью спецоборудования корабля осуществляется лишь косвенно (по сюжету). Эта игра является симулятором космического истребителя, который может осуществить гиперпространственный переход, сев на корабль-носитель. Тоесть практически этого способа входа/выхода в/из гиперпространства в этой игре нет.
· Реализуется посредством гиперпространства и ворот входа/выхода в/из гиперпространства (либо спецоборудованием самого корабля).
· Пример применения: Babylon 5: i've Found Her.
· Главное преимущество этого механизма состоит в его уникальности и высокой точности модели реальной вселенной.
· Главный же недостаток этого механизма заключается в сложности его реализации, особенно если в него включить способ входа/выхода в/из гиперпространства с помощью спецоборудования корабля (лично я считаю, что если в данный механизм включить этот способ, то возможность реализации этого механизма представится маловероятной). Если из этого механизма исключить способ входа/выхода в/из гиперпространства с помощью спецоборудования корабля, то отсюда получаем все ту же стационарность точек входа/выхода в виде дополнительного недостатка.
· Примеров игр с устраненными недостатками этого механизма пока не встречал.
Итак, я изложил три известных мне механизма перемещения объектов (типа корабль) в глобальной карте. Теперь давайте сравним эти три механизма между собой. И что же получаем? А получаем вот что: первый механизм самый примитивный и самый ущербный по сравнению с остальными, второй и третий оцениваются одинаково "удовлетворительно", хотя я считаю, что второй механизм все-таки чуть лучше третьего (я оптималист, поэтому из имеющихся двух механизмов лучше выберу второй с его оптимальным соотношением приемущества-недостатки, чем третий с его сложностями и нереализуемыми идеями). Рассматривая сектор космических игр в мировой индустрии игр видишь в основном игры со все тем же приевшимся механизмом "прыжковых ворот". Отсюда вытекает заключение. Вездесущий механизм двух точек и пресловутая "стационарность" это ахиллесова пята космических игр. Но решения вышеизложенных задач есть! Представить хотя бы что такой уникальный механизм перемещения найден. Его применение в "средненьком" таком космосимуляторе даст существенное увеличение рейтинга этой игры. А если такой механизм применить в MMORPG? Я думаю тут и слов не надо, EVE уйдет в прошлое.
Ну вот пожалуй и все по данной теме. Хотя кое-какие идеи по этой теме у меня имеются. Но я не буду освещать их в ближайшее время. Мне бы хотелось сначала увидеть ваши мнения, а иначе для чего тогда существует форум? Поэтому пишите на эту тему свои замечания, комментарии, идеи,..., всегда буду рад.

Спасибо: 1 
ПрофильЦитата Ответить
Ответов - 13 , стр: 1 2 All [только новые]







Пост N: 6
Зарегистрирован: 16.12.07
Рейтинг: 0
ссылка на сообщение  Отправлено: 16.05.08 21:22. Заголовок: TiberiyLTim пишет: ..


TiberiyLTim пишет:

 цитата:
С одной стороны ты прав, но:

Я же сказал для каждой игры нужно отдельно додумывать и продумывать систему.

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


Поди уже забыли обо мне? (sorry, недавно установил новый модем). Скажу прямо. Сам твой механизм, точнее "эскиз" этого механизма, прост и достаточно хорош. Но, как доходит дело до его реализации тут же появляются подводные камни. На протяжении всей темы, как видешь, я и пытался услышать от тебя конкретные способы реализации твоего механизма. Это равносильно что ваять статую Венеры отбойным молотком … И вот я решил немного поработать над нашей Венерой, совсем чуть-чуть …
Для начала поставим задачу: как заставить игрока проходить линейно, но при этом его перемещение по звездной карте будет напрямую влиять на ход игры. Т. е. говоря техническим языком, при перемещении по звездной карте будет работать ИИ игры (т. е. на любое действие связанное с перемещением по ЗК у программы игры будет своя реакция, интерпретированная в виде незначительного сюжетного отклонения от конкретного квеста). Сразу добавлю, решение этой задачи должно быть уникальным и универсальным (для большинства жанров космических игр). Ну я думаю, плюсы такого подхода не надо объяснять.
Вот мое решение этой задачи. Изложу в виде небольшой концепции.
1. Физическая теория межзвездного прыжка (далее МЗП).
Основывается на предложенном тобой механизме, с рядом изменений. Первое. Реальное время прыжка (т. е. время, затрачиваемое кораблем (как игрока, так и программы) на перемещение из ЗС «А» в ЗС «Б») не равно нулю. Поясняю, при перемещении игрока, в однопользовательской игре происходит процесс сжатия времени, тогда как при перемещении корабля программы время течет как обычно. Второе. Точка входа корабля реализована в виде стартового следа, точка выхода – в виде финишной сферы. Тут без разъяснений не обойтись. Стартовый след – это след, оставленный кораблем в точке входа, который появляется сразу после прыжка, и остается некоторое время. Основное свойство стартового следа заключается в том что он характеризует время, пройденное от его возникновения (от начала прыжка) до момента его обнаружения. Финишная сфера – это сфера с центром в точке выхода, созданная оборудованием корабля в ЗС «Б» в момент провала в ЗС «А» (т. е. созданная в момент начала прыжка). Основное свойство финишной сферы заключается в том что она характеризует время, пройденное от момента провала в ЗС «А» до момента выхода в ЗС «Б». Обобщая это, вытекает что, финишная сфера возникает в момент провала корабля в ЗС «А», существует то время когда корабль перемещается, и исчезает в момент материализации корабля в точке выхода в ЗС «Б». Третье. Необходимо введение константы максимального расстояния прыжка ( далее КМРП), т. е. необходимо в игре ввести предел максимального расстояния прыжка, не зависящего от оборудования корабля (ниже я обосную эту необходимость). То есть необходимо исключить возможность прыжка из одного края карты галактики в другой. Можно например взять КМРП равной 1/10 линейного размера галактической карты.
2. Техническая реализация теории МЗП с точки зрения игры.
Конечно же будет существовать устройство именуемое генератором прыжка (ГП), осуществляющее провал корабля в ЗС «А» и создающее финишную сферу в ЗС «Б». Так же будут существовать устройства именуемые радаром стартовых искажений (РСИ) и радаром финишных искажений (РФИ). На РСИ и РФИ остановлюсь поподробнее. Прежде всего РСИ и РФИ характеризуются, конечно же, дистанцией обнаружения. РСИ 1-го уровня регистрирует только время прошедшее с момента прыжка. У РСИ 2-го уровня добавляется функция определения массы корабля (соответственно можно определить и его класс), совершившего прыжок. У РСИ 3-го ур. добавляется функция определения направления в котором был совершен прыжок. Наконец РСИ 4-го ур. дополняется функцией определения расстояния прыжка. РФИ 1-го ур. регистрирует только время существования финишной сферы (т. е. время перемещения корабля). У РФИ 2-го ур. добавляется функция определения массы корабля, начавшего прыжок. У РФИ 3-го ур. добавляется функция определения направления в котором находится ЗС с точкой входа. Наконец РФИ 4-го ур. дополняется функцией определения расстояния прыжка. Кроме того, если каждую отдельно взятую функцию охарактеризовать степенью точности, то будут модели по степени эффективности (дистанция обнаружения и степень точности) для каждого уровня РСИ и РФИ. Вот я вкратце изложил самое необходимое для дальнейшего понимания из технической реализации …
3. Дополнения к вышеизложенному.
Представим себе ситуацию: корабль собирается совершить прыжок из необитаемой и нейтральной ЗС «А» в обитаемую и принадлежащую отдельно взятому государству ЗС «Б». Что ждет этот корабль по прибытии в ЗС «Б»? Я думаю как минимум денежный штраф. Так вот чтобы исключить подобные ситуации нужно ввести механизм кода доступа для звездных систем. Поясняю. Если на этом примере перемещение санкционировано, т. е. у корабля имеется код доступа в ЗС «Б», то он беспрепятственно добирается до намеченной цели в этой ЗС. Если у него нет кода доступа в эту ЗС, то по прибытии, его первым делом будут задерживать, а дальше по ситуации … Сама процедура осуществления доступа в ЗС будет выглядеть следующим образом. Сначала корабль (капитан корабля) просит разрешение на прыжок в ЗС «Б», затем из ЗС «Б» вероятно последует запрос кода доступа, далее корабль посылает код доступа, и если он верен то корабль совершает прыжок.
TiberiyLTim пишет:

 цитата:
Допустим ты путешествуешь на корабле. И у тебя есть доступ к бортовому компьютеру этого звездолёта. Значит заходишь в этот комп (в этом фича) и в компе есть некая база с 3D-картами (типа космическая GPS-система) всех галактик (по крайней мере то, что открыто - туда можно применить такую навигацию) и ты можешь поставить флажок (используя все 3 координаты 3D) и теперь стаёт активна кнопка "ПЕРЕМЕЩЕНИЕ". Нажимаешь её - и полетели. Корабль делает световой рывок (летит туда типа) и игрок попадает в указанную локацию. Тогда и точки телепортирования не нужны…


Итак получается предложенный тобой механизм с моими доработками. Теперь предлагаю всем попытаться опровергнуть утверждение: что этот механизм в ЭТОМ ВИДЕ подойдет для любого жанра космической игры и что он в какой то мере уникален.
Вот в общем и все. Самое главное для понимания этой концепции я изложил. На изложение выводов у меня сейчас не хватает терпения. Думаю кто вникнет в эту идею выводы сделает сам. От вас жду поправок, предложений и критики.

Спасибо: 0 
ПрофильЦитата Ответить
Админ и стратор!!
www.GFAQ.ru





Пост N: 3194
Зарегистрирован: 02.05.06
Откуда: РФ, Калининград
Рейтинг: 2
ссылка на сообщение  Отправлено: 17.05.08 01:26. Заголовок: Чёт ты очень всё усл..


Чёт ты очень всё усложнил... позже ещё раз попробую разобраться в твоей теории.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 7
Зарегистрирован: 16.12.07
Рейтинг: 0
ссылка на сообщение  Отправлено: 17.05.08 06:26. Заголовок: TiberiyLTim пишет: ..


TiberiyLTim пишет:

 цитата:
Чёт ты очень всё усложнил... позже ещё раз попробую разобраться в твоей теории.


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

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 13 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 16
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет