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

Что мы можем позаимствовать от других игр?

Добавлено: 28 сен 2012, 14:51
krupennikov
Предлагаю здесь обсудить те вещи, которые можно позаимствовать (а потом улучшить позаимствованное) из других игр.

Добавлено через 3 минуты 50 секунд

Предлагаю к рассмотрению пошаговую космическую стратегию Endless Space. Обзор этой игры можно посмотреть на ютубе.
http://www.youtube.com/watch?v=BiSoTEGm3Ms

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

Что мы можем позаимствовать от других игр?

Добавлено: 28 сен 2012, 16:55
Vasaka
Давай пробежимся по тому что определено и меняться не будет. Ну, а остальное, соответственно, вопрос открытый в той или иной степени.

1. Галактика.
Двухмерная. Способы передвижения Прямые (от звезды к звезде и медленно) и ЗЛ создаваемые игроком (от звезды к звезде и быстро). Остальные способы побочные (Чёрные Дыры, Квази-пространство и туманности препятствующие или способствующие передвижениям).

2. Система.
Двухмерная. Реальные размеры физически и упрощённое представление визуально. Передвижения с использованием досветовых двигателей Прямые (от планеты к планете).

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

3. Планеты.
Двухмерные. Только точки на поверхности позволят создать поселение. Точки: Месторождения минералов Оффтоп, Био (жизнь) и Артефакты и аномалии всякие.

4. Система укрупнения регионов. Поселения объединяются в планеты, планеты в солнечные системы, системы в созвездия и так далее.

5. Бои пошаговые, как в героях. Разница в том, что они протекают во времени. То есть сражение длится какое-то количество раундов, потом замораживается до следующего хода. Могут кипеть довольно долго. Могут подоспеть друзья, враги, свои...

Что мы можем позаимствовать от других игр?

Добавлено: 30 сен 2012, 08:15
Vasaka
Вообще, конечно, нужно создавать живой мир.
Чтобы ИИ был не заскриптован на действия игрока, а действовал исходя из условий вокруг него, даже если игрока и поблизости нет.

Это и есть залог интересности. Постоянно будут возникать уникальные ситуации (комбинации взаимодействий) и игрок постоянно будет сталкиваться с чем-то новым и не будет знать чего ждать от игры в следующий момент.
Как только игрок начинает понимать алгоритмы по которым живёт мир игры и что ничего нового от неё ждать не стоит, сразу угасает интерес к игре.

Чем быстрее гейм индустрия поймёт, что нужно создавать по настоящему ЖИВЫЕ миры, тем быстрее мы выйдем на новую ступень развития той самой гейм индустрии и получим качественно совсем другой уровень геймплея.

Что мы можем позаимствовать от других игр?

Добавлено: 30 сен 2012, 12:31
krupennikov
Гейм индустрия давно поняла, что нужен "Живой" мир. Но осуществить пока это особо не удается, а если удается, то ИИ начинает долго думать, что соответственно приводит к большой длительности ходов

Что мы можем позаимствовать от других игр?

Добавлено: 02 окт 2012, 18:44
Vasaka
Всё это, конечно, Оффтоп

Что мы можем позаимствовать от других игр?

Добавлено: 03 окт 2012, 01:09
krupennikov
"Живой мир" очень хорошо реализован в космической реалтайм стратегии/симуляторе "X3 Земной конфликт" с одним из модов.
АИ там торгует, воюет, расы между собой сталкиваются в глобальных битвах.
Причем игрок может просто наблюдать со стороны как АИ разных рас уничтожают друг друга с прекрасной реалистичной графикой, при этом просмотр более похож на просмотр высокобюджетного фильма (если железо тянет). АИ даже завоевывают территории друг у друга. И однажды влетев в сектор, который еще вчера был наполнен жизнью одной расы, сегодня состоит из груды металла разрушенных станций и совершенно безжизнен, а завтра он снова может быть наполнен жизнью, но уже другой расы, и хорошо если ты для них не враг.
А можно и вмешаться игроку, тем самым повлияв на исход битвы. Например, подождать пока кто нибудь будет унитожен, а потом послать туда свой флот и/или самому добить победителя и присвоить себе сектор, если потом тебя как победителя не разнесет другая раса. Игрок может с кем то дружить, а может стать всем врагом, все зависит только от игрока. Даже предусмотренные в игре "враги для всех" типа пиратов или как во многих играх - варвары, могут стать друзьями. В начале, конечно, игрок не может развиваться без других рас, его просто не пустят на какую нибудь станцию для покупки кораблей, вооружения или просто торговли. Но в последствии, когда у игрока будут свои фабрики и заводы, когда будет свой, немысленно огромный, флот, можно разнести всех и завоевать всю вселенную, только на это уйдут годы реального времени из за огромных размеров игровой вселенной. Поэтому игра можно сказать бесконечная.
Даже цены на все меняются в зависимости от спроса и предложения. Если разнесли один сектор, уничтожили одну фабрику, то последствия отражаются на всю вселенную. Так как производимого товара стало меньше. Если товар является сырьем, то на остальные товары цена тоже вырастет.
Даже при таких, не всех описанных, плюсах "Живого" мира, АИ все равно остался АИ. При долгой игре все возможные его действия становятся очевидными. Соответственно, не остается никаких неожиданных действий АИ, наперед знаешь что сделать дальше. Поэтому создать искусственный интеллект в полной мере не скоро удастся. Ну не придумали еще как это сделать.
Но даже сделать ТАКОЙ ЖИВОЙ МИР я не знаю как. Вернее я знаю как сделать в пошаговой, а в реалтайм, где столько объектов (их тысячи, если не миллионы). Каким образом она работает без зависаний от перегрузки ЦП... Ведь цены на товары меняются ни рэндом (при каждом новом входе в сектор), а реально. Любой корабль при выходе из сектора не исчезает, а летит именно туда куда ему надо и покупает/продает то что ему надо и цена на фабрике изменится именно на тот товар, который был продан/приобретен. Новые фабрики не появляются сами по себе, а их реально привозят на "Мамонтах". И все это происходит при обработке мощной 3Д графики, так как игрок является одним из миллионов объектов вселенной, находясь в кабине космического корабля, и управляет им.

Что мы можем позаимствовать от других игр?

Добавлено: 03 окт 2012, 22:29
Snake_B
Vasaka писал(а): 02 окт 2012, 18:44Достаточно живой мир реализован в Космических Рейнджерах. АИ летают по своим делам. Торгуют, воюют, подбирают лут, устанавливают его себе и т.д. Даже если игрок ничего не будет делать, большую часть галактики со временем всё равно отвоюют без него. Однако его активные действия сильно способствуют отвоёвыванию.


ммм.... а надо ли изобретать лисапед... та же цива... комп вполне может сыграть партию без игрока... даже мод такой есть AI Auto play, можно включить партию, и выйти из неё, а компы сами играть будут... на наш фанатиках Filon целые турниры устраивает с этим модом...

krupennikov писал(а): 03 окт 2012, 01:09Даже при таких, не всех описанных, плюсах "Живого" мира, АИ все равно остался АИ. При долгой игре все возможные его действия становятся очевидными. Соответственно, не остается никаких неожиданных действий АИ, наперед знаешь что сделать дальше. Поэтому создать искусственный интеллект в полной мере не скоро удастся. Ну не придумали еще как это сделать.


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

krupennikov писал(а): 03 окт 2012, 01:09Но даже сделать ТАКОЙ ЖИВОЙ МИР я не знаю как. Вернее я знаю как сделать в пошаговой, а в реалтайм, где столько объектов (их тысячи, если не миллионы). Каким образом она работает без зависаний от перегрузки ЦП...


ну.... тут всё не так страшно... ты представь, что там ни какой не риал-тайм, а пошаговая игра.. просто начало хода (при котором и рассчитывается цена на ресурсы) тебе ни как не показывается...

если попробовать с примером... есть цикл (какой -нибудь Do Loop) и он гоняется по кругу... в зависимости от сложности расчетов можно рассчитывать каждый тик, но лучше считать например раз в 5 тиков... или вообще использовать объектную модель... есть глобальная переменная (bool), если происходит действие (построили фабрику, уничтожили, прилетел корабль с грузом) делаем её true... ну и срабатывает расчет (или прямой вызов расчета, смотря на чём делается собственно)...

Что мы можем позаимствовать от других игр?

Добавлено: 04 окт 2012, 10:18
Vasaka
Концепция живого мира (как это я себе на данный момент представляю):

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


Я планирую со временем поставить ряд экспериментов по реализации живого мира.
Создать какой-нибудь простенький мир, запустить ботов и поработать над их ИИ, чтобы они взаимодействовали с окружающим миром.
Ну и понаблюдать за этим всем.
Это можно даже в текстовом режиме, в консоли сделать.

Что мы можем позаимствовать от других игр?

Добавлено: 05 окт 2012, 22:45
krupennikov
Мое мнение сделать самый "живой мир" - это научить ИИ обучаться от игрока. То есть скрипт следит за действиями игрока, и если его действия приводят к победе, то ИИ принимает это на вооружение. Даже при начале игроком Новой игры. В следствии чего, игроку всегда будет играть тяжелее и соответственно интересней. Вот только осталась самая малость, воплотить это программно.

Что мы можем позаимствовать от других игр?

Добавлено: 06 окт 2012, 00:25
Snake_B
krupennikov писал(а): 05 окт 2012, 22:45Мое мнение сделать самый "живой мир" - это научить ИИ обучаться от игрока. То есть скрипт следит за действиями игрока, и если его действия приводят к победе, то ИИ принимает это на вооружение. Даже при начале игроком Новой игры. В следствии чего, игроку всегда будет играть тяжелее и соответственно интересней. Вот только осталась самая малость, воплотить это программно.


по моему ты путаешь "живой мир" и "игроку всегда будет играть тяжелее"...
живой он должен быть, чтобы при отсутствии игрока всё работало...
а обучающийся ИИ этому ни как не способствует...

сама задача по само обучающему ИИ... ну уж точно не по адресу задача то... проще сделать логику ИИ в dll и после выхода игры переодически обновлять эту dll по опыту сильных игроков...

Я планирую со временем поставить ряд экспериментов по реализации живого мира.
Создать какой-нибудь простенький мир, запустить ботов и поработать над их ИИ, чтобы они взаимодействовали с окружающим миром.
Ну и понаблюдать за этим всем.
Это можно даже в текстовом режиме, в консоли сделать.


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

и в общем на счет экспериментов... не думай уже как игрок то... ты ещё по хорошему при разработке vas-mod'а должен был поменять психологию... ну ладно, ты там dll не менял, но счас то ты вроде собрался учиться программировать... не чего там ставить (эксперименты) и не на что смотреть... компьютер (ИИ) будет делать то, что ты ему напишешь... ты им командуешь.
эти эксперементы ты можешь в голове у себя прокручивать... начало игры, появляется раса в звездной системе... ммм... проще на примере цивы...
поселенец и разведчик...
и дальше варианты, что он может сделать... может поискать лучше место для города... а может и не искать.... может разведчика в разведку отправить. далеко и навсегда... может разведывать рядом с городом, чтобы прикрыть если что от варваров...
и заметь для выбора варианта действий наличия игрока роли не играет.... может комп вообще один на карте...
да и в играх класса цивы ИИ даже не нужно различать кто из соперников живой человек, а кто ИИ...

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

п.с. где то так году в 2003... были у меня тогда уже наработки в 3D....
типа такого:
Изображение
всё летало, ездило (танк был))... даже стреляло иногда... правда противников не было...
а потом я как то сделал что-то вроде теста по ИИ... простые кружочки в 2D... вокруг них окружности (дальность видимости)... один кружочек - игрок... управление клавишами клавиатуры...
остальные враги... часть кружочков стояла на месте, другие ходили из одной точки в другую (патрулировали)... если видели игрока (и первые и вторые) начинали его догонять... но скорость у них была меньше... и когда игрок уходил из зоны видимости они останавливались (часть возвращалась туда где стояла, другая часть оставалась на новом месте, те кто патрулировал, уходили патрулировать дальше)...
и как то я принес этот тестовый вариант друзьям.... и они так увлеченно стали убегать от этих "врагов"... при том что демки в 3D у них такого восторга и близко не вызывали))