Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Механизм "живой" вселенной | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 1
 
Поиск в этой теме:
Канал Игры Мечты: «Механизм "живой" вселенной»
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Привет всем!

Вот о чем я хочу поговорить:
Хочу создат алгоритм динамической вселенной, создать иллюзию жизни в ней. Для применения в играх.

Есть карта вселенной, будь то сектора или звездные системы или любые другие единицы (тер-рии для наземного сеттинга). Пусть такой сектор называется RUnit.

RUnit - узел графа вселенной. Между узлами есть взвешенные ребра, как транспортные связи.

Каждый RUnit имеет свойства типа ценность и сколько людей(или каких-то еще тварей) там могут проживать. Ценность, скорее всего состоит из массива конкретных ресурсов - как товары в Х. Так мы можем создать что-то вроде торговли.


Окей, теперь перейдем к политике.

На этом графе могут образовываться страны (CUnit`ы). У них могут быть разные свойства: форма правления, уровень технологий (определяется не RUnit` ами), стратегия развития (мирная, воинственная) и т. п. Каждая страна стремиться к улучшению своего состояния.

Это можно делать через колонизацию незанятых RUnit`ов, захват чужих и торговля. Все зависит от Дипломатии - соотношения свой-чужой между странами.

Система дипломатии зависит от страны - её стратегии развития. Мирная страна будет воевать только когда не будет ресурсов и торговать невозможно.

Большие страны со временем распадаются в результате революций, гражданских войн.
Могут быть объявлены альянсы, союзы и т.п.


Я надеюсь общая идея ясна.

Предлагаю развить идею. Сразу оговорюсь - прошу только теорию, которая может быть реализована, витание в облаках не приветствуется. Нужно сделать не максимально точную симуляцию, а максимально правдоподобную.
_________________
MOV topka, C++

Последний раз редактировалось: Jurec (16:44 07-09-2011), всего редактировалось 2 раз(а)
    Добавлено: 16:42 07-09-2011   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
Jurec :
Мирная страна будет воевать только когда не будет ресурсов и торговать невозможно.

В этом случае она будет немедленно уничтожена. Воевать без ресурсов - самоубийство. Неудачный алгоритм.

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

Если можно позволить себе небыстро - вводить систему весов для каждого узла (вес по ресурсам (целесообазность колонизации), по агрессии (целесообразность отбивать у противника), по союзу (целесообразность заключать союз), по экономике (целесообразность торговли)) плюс шум с переменной амплитудой плюс условие максимизации вместе с внутренними параметрами каждой страны - и кидать на нейросеть каждой страны. Нехай выбирает и учится максимизировать. Может получиться муравейник.
Шум нужен, чтобы в результате не образовалась стагнация, а то ведь найдёт идеальное решение и/или зациклится...
_________________
Трещит земля как пустой орех
Как щепка трещит броня
    Добавлено: 17:08 07-09-2011   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Guest :
Воевать без ресурсов - самоубийство. Неудачный алгоритм.

Согласен.

Guest :
Если можно позволить себе небыстро

Можно, симуляция одного шага может происходить за некоторое время.

Guest :
Шум нужен, чтобы в результате не образовалась стагнация

Или шум можно реализовать случайным событием - например техногенной катастрофой, которая уничтожит RUnit.
_________________
MOV topka, C++
    Добавлено: 17:21 07-09-2011   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
Jurec :
Или шум можно реализовать случайным событием - например техногенной катастрофой, которая уничтожит RUnit.

Резкие скачки весов при уничтожении узла ИМХО вызовут треш и угар в системе (сильный расколбас устоявшихся решений при изменении графов - мы же аж целую точку со всеми её связями сносим!), плюс большой шанс ликвидации CUnit'a, владевшего узлом.

Можно делать более "мягкий" вариант - каким-то рандом-событием менять один или несколько из весов узла. Неурожайный год - пополамит экономику. Падение метеорита - удваивает ресурс, но четвертит экономику. Смена правительства/принадлежности на несколько шагов удваивает как союз, так и агрессию (затем она плавно снижается). Техногенная катастрофа пополамит всё, но это уже жесть.

Зануление или резкий спад веса узла может спровоцировать появление "пустошей" - если вес стоимости занятия узла (или вес покидания узла! Ужас какой.) будет больше веса самого узла (ну или веса удержания узла. Для простоты считаем, что вес CUnit'a равен сумме весов входящих в него RUnit'ов).

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

Вообще, разбросать правила, поле входных данных с переходами и несколько стартовых точек - и вот вам уже подобие старой игрушки Life...

добавлено спустя 20 секунд:
А уж как это визуально будет выглядеть...
_________________
Трещит земля как пустой орех
Как щепка трещит броня

Последний раз редактировалось: Guest (17:40 07-09-2011), всего редактировалось 2 раз(а)
    Добавлено: 17:37 07-09-2011   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Вариантов что будет происходить случайно - может быть много. + даже может быть контролироваться через инет, где разработчики могут добавлять и менять уже имеющиеся.

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

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

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

А значит нужно ввести мародерство, миссии.
_________________
MOV topka, C++
    Добавлено: 17:47 07-09-2011   
Minx
 979 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10528
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Яркий пример в тему вспоминается пока что только 1: Sid Meier's Pirates! (1987) http://en.wikipedia.org/wiki/Sid_Meier's_Pirates!

В игровом пространстве 3-4 страны, под флагом которых могут быть города (неск десятков).

Каждый город характеризуется запасом золота, некоторым запасом товаров (неск. видов), и гарнизоном/фортом (уровень защиты города), количеством жителей.

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

В то же время происходят рандомно события (7 - messages). Это грабеж пиратов города или атака от инков (тжс что и игрок), нахождение new gold mine (увеличение $ города), malaria strikes - уменьшение населения, смена губернатора, захват города другой страной, ..

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

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

Здесь для результативной игры за событиями нужно следить. Хотя например в других так не чувствуется. X-COM Apocalypse организации города взаимодействуют между собой, но игрока это не особо волнует. Чуть лучше, но ~ такая же ситуация в Civ.
_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 18:14 07-09-2011   
Jerry Rezet
 581 EGP


Рейтинг канала: 5(113)
Репутация: 86
Сообщения: 3365
Откуда: Санкт-Петербург.
Зарегистрирован: 01.04.2005
Jurec :
Предлагаю развить идею. Сразу оговорюсь - прошу только теорию, которая может быть реализована, витание в облаках не приветствуется. Нужно сделать не максимально точную симуляцию, а максимально правдоподобную.
Это для сингла или он-лайн? Если сингл - то можно кое в чём упростить даже. Например в тех секторах, которые игрок давно не посещал, можно о них забыть и не просчитывать - когда игрок там появится сгенерить всё заново. "Коэффициент давности" придётся подбирать исходя из конкретных параметров "потоков" между юнитами, или для каждого юнита будет +1 параметр, для КД, зависящий от того, насколько там игрок "наследил": если мало - то всё устаканится быстро, если игрок своими действиями что-то сильно сместил в чью-то сторону - держим и считаем всё максимально долго, добавляя рандомный коэффициент по чуток, пока воздействие игрока не сползёт к нулю, и мы снова можем "забыть" об этих юнитах - когда юзер снова появится в этом районе - сгенерим всё по новой.

Естественно - для мультиплеера это не подойдёт.
_________________
- Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c]
    Добавлено: 15:04 09-09-2011   
Minx
 979 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10528
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Jerry Rezet :
Естественно - для мультиплеера это не подойдёт.

С чего это? Может есть области без игроков или какие-то из них засыпают например на ночное время (когда игроки спят).

Но вообще идея больше похожа на преждевременную оптимизацию.
_________________
μηδείς αγεωμέτρητος εισίτω

Последний раз редактировалось: Minx (15:29 09-09-2011), всего редактировалось 1 раз
    Добавлено: 15:29 09-09-2011   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Первоначально у меня была идея синглплеера с возможностью коннекта на сервер за новой логикой. Типа DLC.

Но тут особо оптимизировать ничего не надо- расчеты не сложные
_________________
MOV topka, C++
    Добавлено: 17:21 09-09-2011   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Теперь вот какой вопрос - как должна проходить симуляция?

Если на RUnit`е нет другой жизни и есть благоприятные условия - там может появится жизнь за N_life ходов.

За Nspace ходов могут (если есть ресурсы) появится технологии для космических полетов.

Далее идет колонизация..

Что дальше? Как колонии должны развиваться? Как вообще должна идти симуляция развития? Пусть пока без других рас.
_________________
MOV topka, C++
    Добавлено: 17:19 11-09-2011   
mc_
 408 EGP


Рейтинг канала: 1(8)
Репутация: 41
Сообщения: 2841

Зарегистрирован: 09.04.2010
Основной ресурс - жратва (точнее, жизнеобеспечение). Чать населения производит жратву (колхозники, ага) с заданной эффективностью. Допустим, 1.5, то есть каждые двое колхозников обеспечивают жратвой еще одного человека, занятого в другой области.
Эти свободные от колхозов люди и двигают прогресс. В том числе растет эффективность производства жратвы (например, было 1,5, стало 2,7), что позволяет больше народу высвободить на науку.
    Добавлено: 18:51 11-09-2011   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Окей. Что такое наука? Что в неё может входить?
_________________
MOV topka, C++
    Добавлено: 22:43 11-09-2011   
Jerry Rezet
 581 EGP


Рейтинг канала: 5(113)
Репутация: 86
Сообщения: 3365
Откуда: Санкт-Петербург.
Зарегистрирован: 01.04.2005
Jurec :
Окей. Что такое наука? Что в неё может входить?
Всё Гы-гы . Шютко..

добавлено спустя 12 минут:
По порядку на что влияет:
1) Т.к. идёт рассчёт грузо/пассажиропотоков между юнитами - то наука может влиять на их эффективность - количество грузов (грузоподъёмность/пассажировместимость), скорость оборота финансов между R и C юнитами.

2) Пушки/оружие: их эффективность определяет обороноспособность юнитов, - количество, качество и интенсивность боевых действий между С-юнитами.

3) На организационные вопросы наука тоже влияет - чем выше организация, тем меньше коррупция, выше эффективность добычи ископаемых, пищи, эффективность использования энергии и прочее в том же духе - короче повышается экспорт из юнита, причём высокотехнологичный экспорт - у которого высокая стоимость, но низкая грузоёмкость. В менее развитых юнитах обратно - высокая грузоёмкость, но низкая стоимость (руда, ископаемые, писча), следовательно и низкая доходность при увеличенном грузопотоке.
Соотетственно - чем выше организационная составляющая юнита, тем меньше в нём коррупции -> меньше бандитизма и преступности -> т.к. "честным трудом", типа, больше заработать можно, т.к. хайтек более прибылен при высокой организованности юнита, а лоутек (даже отбор хайтека пиратами) заведомо менее прибылен: хайтек требует только ресурсов и зарплаты при несопоставимо более высокой ценности, а захват влечёт издержки на ремонты и вооружение, которое тоже в целом, является хайтеком.

4) Грузопотоки, опять же - наука влияет и на транспорт: быстрее, выше (или дальше), сильнее (грузоподъёмней, то бишь) - то есть чем лучше развит транспорт, тем с более дальними юнитами он может торговать/взаимодействовать, скорость транспорта выше - быстрее оборот грузов и финансов соответственно, и тем больший объём грузов юнит сможет экспортировать/импортировать. А следовательно - быстрее развиваться, т.к. легче может получить доступ к ресурсам других юнитов (купить, обменять, добыть в арендуемой ресурсоёмкой местности - хайтекам легче добывать ресы даже у других юнитов - у них издержки меньше, -> лоутеки больше прибыли могут получить за ренту с хайтеков за пользование месторождениями, чем если бы они сами их добывали, например).
Как-то так..

добавлено спустя 6 минут:
mc_ :
Основной ресурс - жратва (точнее, жизнеобеспечение). Чать населения производит жратву (колхозники, ага) с заданной эффективностью. Допустим, 1.5, то есть каждые двое колхозников обеспечивают жратвой еще одного человека, занятого в другой области.
Даже при нынешнем уровне технологий, для обеспечения жратвой в условном колхозе может работать всего лишь 5% населения, которые обеспечивают едой все остальные 95%. Хайтек технологии (если у нас игра про будущее), в принципе, могут позволить и меньше людей на добычу жратвы кидать. Таким образом эффективность 1.5 (150% обеспечения) на человека - это если уже совсем со средневекового лоутека стартовать. Гы-гы
_________________
- Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c]

Последний раз редактировалось: Jerry Rezet (03:52 12-09-2011), всего редактировалось 4 раз(а)
    Добавлено: 02:22 12-09-2011   
Канал Игры Мечты: «Механизм "живой" вселенной»
 
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Ув. Ф. общается только в дни его озарения, а если его озарило, а вас нет, так это не его проблема... (Demon Ru)

  » Механизм "живой" вселенной | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18