Население - Страница 2 - Общение по разработке новой онлайн-игры - Strategium.ru Перейти к содержимому

Население

Минимальная единица населения  

12 голосов

  1. 1. Минимальная единица населения

    • Отдельный житель
      7
    • Страты
      3
    • Этносы
      1
    • Безликая масса
      0


Рекомендованные сообщения

alexandrovis

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

Что оно будет из себя представлять, кто минимальная единица населения:

- житель

- страты

- этносы

- безликая масса

Этнос - население, обладающее определенными бонсами. Каждый этнос имеет определенную долю в населении поселений/пров/стран. От безликой массы не сильно отличается, только культурными особенностями.

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

Изменено пользователем alexandrovis
Ссылка на комментарий

Закреплённые сообщения
alexandrovis
У игрока с прямыми руками вряд ли развалится. Еще и все племена присоединит, до кого дотянется. Ну или штрафы на империи придется накладывать такие, что все игру будут бросать.

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

Ссылка на комментарий

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

В играх чем ты крупнее, тем безопаснее и проще контролировать. Единственный случай с штрафом припоминаю, когда я за Японию в Виктории 2 захватил половину Китая, и случился жесточайший кризис перепроизводства сырья. Я тогда бросил игру, хотя в бюджете денег было полно. Просто не понравилось, что в стране много безработного населения, и что они не начали покупать нужные им товары даже спустя месяц после снижения налогов до нуля и при крупных субсидиях из бюджета.

Или вспомнил, как играл за Китай в Европе 2, он большой, но у него были постоянно ивенты с восстаниями. Ну не развалился же, все племена по 50 человек колонизировал, Европу по техам обогнал. Даже игру за Западную Римскую Империю во Вторжении варваров можно вытянуть. Это ж игра, а не реальность. А сделать по настоящему большие штрафы, чтоб страна и впрямь развалилась так, что не соберешь, игрок ливнет.

Изменено пользователем KnyaZzZz
Ссылка на комментарий

alexandrovis
В играх чем ты крупнее, тем безопаснее и проще контролировать.

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

Или вспомнил, как играл за Китай в Европе 2, он большой, но у него были постоянно ивенты с восстаниями. Ну не развалился же, все племена по 50 человек колонизировал, Европу по техам обогнал. Даже игру за Западную Римскую Империю во Вторжении варваров можно вытянуть. Это ж игра, а не реальность. А сделать по настоящему большие штрафы, чтоб страна и впрямь развалилась так, что не соберешь, игрок ливнет.

Зачем впадать в крайности? Никто ж не собирается специально создавать штрафы, что бы большие империи разваливались. Я лишь предлагаю "конвертировать программный код нашей вселенной в программный код виртуальной вселенной", иными словами перенести законы и закономерности реального мира в игру. В реальном мире ведь не стоит специальный скрипт типа "штраф для больших империй -50% к производству, -50% к управлению" и тд. Есть определенная последовательность действий (бездействие - тоже действие), которая приводит к развалу империи. Но ведь если игрок достаточно умный, что бы удержать страну от развала, то он вполне может это сделать.

Я уж не говорю о возможности собрать осколки. Вспомним тот же Китай.

Ссылка на комментарий

KnyaZzZz

Но если игрок удержит Китай от развала, соседний Рюкю будет поглощен, как бы другой игрок за Рюкю не извращался с развитием. И осколки собрать намного проще - провинции вокруг национальные, строй армию, приходи и забирай назад. Значит, племя из 50 человек, которым играет игрок, никогда не нагонит империю, если за империю не орангутан играет. Я это к тому, что без жесточайших штрафов (которые не нужны) для империй игроков лучше ставить в примерно равные стартовые условия. Тем более, что игра онлайновая и без сингла.

Изменено пользователем KnyaZzZz
Ссылка на комментарий

alexandrovis

Ну естественно в краткосрочной перспективе слабый проигрывает сильному. Тут суть в том, что судьба любой страны не предопределена.

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

Ссылка на комментарий

alexandrovis

Что-то опрос застопорился.. Ёрик, ты за какой вариант?

Ссылка на комментарий

alexandrovis

Раз никто больше не желает голосовать, остонавливаемся на первом варианте, т е моделирования каждого отдельного жителя.

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

Ссылка на комментарий

alexandrovis
Вы с техническими специалистами консультировались по этому вопросу? Каждый житель мира с уникальными характеристиками - сервер не замучается все это обрабатывать каждый ход? Браузер выдержит подобные расчеты?

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

Как подобное решение отразится на скорости обсчета каждого хода игры?

Ссылка на комментарий

Platon
Как подобное решение отразится на скорости обсчета каждого хода игры?

Плохо отразится, и так понятно. А зачем вам к каждому! жителю и юниту уникальные характеристики? Что это даст кроме бешеной нагрузки на сервер?

Ссылка на комментарий

alexandrovis
Плохо отразится, и так понятно. А зачем вам к каждому! жителю и юниту уникальные характеристики? Что это даст кроме бешеной нагрузки на сервер?

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

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

Ссылка на комментарий

Detech
Ок. Тогда хотелось бы узнать, есть ли тут технические специалисты? Или хотя бы люди, знающие вопрос (а не думающие, что знают)?

Как подобное решение отразится на скорости обсчета каждого хода игры?

А как на этот вопрос можно ответить если не знать ни примерные рамки объемов, ни размеры списка параметров, ни механизмы обсчета?

Понятно что для того чтобы обсчитать 100 параметров, надо меньше времени чем для того чтобы обсчитать 200. Это как бы почти аксиома.

Но детализация напрямую не связана с количеством данных для обсчета, хотя чаще всего зависимость есть. Опять же - если нам нужно обсчитать 3.000.000.000 жителей, и в первом случае у нас будет 3 юнита типа "страта" по 1.000.000.000 жителей в каждом, а во втором случае у нас будет 3.000.000.000 юнитов типа "человек" - то понятно что нагрузка обсчета второго варианта будет ЗНАЧИТЕЛЬНО больше. Но никто не заставляет вас вводить 3.000.000.000 человек, система с 1000 юнитов страт будет обсчитываться дольше чем с 30 человек. Количество обсчитываемых юнитов в системе не имеет четко определенной зависимости от детализации.

Поэтому вопрос должен звучать примерно так: мы собираемся детализировать мир вот примерно такого размера. Для этой задачи нам потребуется обсчитывать примерно X юнитов. Насколько это более процессорно-затратно чем обсчет Y страт. Количество параметров считаем идентичным.

Отвечая на этот вопрос - обсчет характеристик юнитов и его поведения - линеен. То есть 2 раза больше юнитов требуют в 2 раза больше времени. Обсчет взаимоотношений, типа "Найти для каждого юнита среди всех юнитов тот куда он будет мигрировать" - чаще всего имеет квадратную зависимость, то есть удвоение числа приведет к учетверению времени (хотя не всегда)

Плохо отразится, и так понятно. А зачем вам к каждому! жителю и юниту уникальные характеристики? Что это даст кроме бешеной нагрузки на сервер?

Это не вопрос нагрузки. Это вопрос подхода.

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

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

Это выбор по концепции, и повышение детализации не всегда приводит к повышению нагрузки.

Вот возмем циву. Там населения городов колеблется от 1 до 30 жителей, при этом население всей планеты около 500 жителей. Обсчет - минимальный. И как бы никому это не мешает. Понятно что в статистике для придачи более реалистичных цифр игра умножает число жителей на 10.000 - но это лишь надпись на экране.

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

Например - вместо примитивного цивного "набрал 50 еды - +1 житель" можно реализовать какие то более реалистичные методы воспроизведения населения, при этом это не будет повышать нагрузку (хотя и будет несколько сложнее в реализации).

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

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

Изменено пользователем Detech
Ссылка на комментарий

alexandrovis
А как на этот вопрос можно ответить если не знать ни примерные рамки объемов, ни размеры списка параметров, ни механизмы обсчета?

Понятно что для того чтобы обсчитать 100 параметров, надо меньше времени чем для того чтобы обсчитать 200. Это как бы почти аксиома.

Но детализация напрямую не связана с количеством данных для обсчета, хотя чаще всего зависимость есть. Опять же - если нам нужно обсчитать 3.000.000.000 жителей, и в первом случае у нас будет 3 юнита типа "страта" по 1.000.000.000 жителей в каждом, а во втором случае у нас будет 3.000.000.000 юнитов типа "человек" - то понятно что нагрузка обсчета второго варианта будет ЗНАЧИТЕЛЬНО больше. Но никто не заставляет вас вводить 3.000.000.000 человек, система с 1000 юнитов страт будет обсчитываться дольше чем с 30 человек. Количество обсчитываемых юнитов в системе не имеет четко определенной зависимости от детализации.

Поэтому вопрос должен звучать примерно так: мы собираемся детализировать мир вот примерно такого размера. Для этой задачи нам потребуется обсчитывать примерно X юнитов. Насколько это более процессорно-затратно чем обсчет Y страт. Количество параметров считаем идентичным.

Отвечая на этот вопрос - обсчет характеристик юнитов и его поведения - линеен. То есть 2 раза больше юнитов требуют в 2 раза больше времени. Обсчет взаимоотношений, типа "Найти для каждого юнита среди всех юнитов тот куда он будет мигрировать" - чаще всего имеет квадратную зависимость, то есть удвоение числа приведет к учетверению времени (хотя не всегда)

При детализации населения на уровне 1 человека у нас получается от 100 тыс до 5 (10) млрд населения. Число характеристик, для начала, около 20. Итого количество данных для обсчета колеблется от 2 млн до 100-200 млрд.

Если же выбираем страты, то количество страт при 1000-6000 культур, 20-30 стратах и 20 характеристик получаем от 400 тыс до 3,5 млн характеристик при простой системе и при 1000-3 млн локальных культур (конвиксий), 60-100 стратах и 20 характеристик получаем от 1,2 млн до 6 млрд данных.

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

P.S. да, все цифры подбирал на глаз.

Ссылка на комментарий

Freezze

На мой взгляд, такая детализация не нужна, она не будет востребована игроком в полном объеме.

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

Ссылка на комментарий

alexandrovis
На мой взгляд, такая детализация не нужна, она не будет востребована игроком в полном объеме.

В полном объеме может быть востребована лишь игра с таким функционалом: Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Ссылка на комментарий

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

Например - вместо примитивного цивного "набрал 50 еды - +1 житель" можно реализовать какие то более реалистичные методы воспроизведения населения, при этом это не будет повышать нагрузку (хотя и будет несколько сложнее в реализации).

И снова я про e-civ (благо, восстановили Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. ):

Уровень потребления продуктов питания и здоровье горожан.

Здоровье горожан зависит от потребляемого на одного человека количества продуктов питания.

Здоровье горожан представляется в процентах, вычисляется по формуле:

Здоровье текущего хода = Здоровье прошлого хода + d Health(Eat).

dHealth(Eat) отражает зависимость изменения здоровья горожан от потребляемого ими количества продуктов питания и описывается следующим графикoм:

Image2.gif

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

Естественный прирост городского населения вычисляется по формуле:

Прирост населения = 0.22 * Население на прошлом ходу * (Здоровье на прошлом ходу - 45%).

Читаю Дэтэча дальше:

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

И опять я про e-civ:

Юниты.

Юнит является компонентом игровой модели, описывающим населённые сухопутные отряды. Он имеет собственные характеристики. Юниты используются только в составе армий - объединений юнитов.

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

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

Юниты имеют следующие характеристики:

People - численность

Speed - скорость

Attack - атака (если есть)

Weapon_Range - радиус стрельбы (если есть)

Ammo - количество боеприпасов (если есть)

Defence - защита

Experience - опытность

Productivity - производительность во время строительных работ.

Weight - вес юнита, включая снаряжение.

Support_City - город, который снабжает юнит едой и деньгами

Support_Money - деньги, требуемые на поддержание юнита (если есть)

Скорость юнита зависит от веса снаряжения и оборудования, которое он имеет.

В зависимости от наличия или отсутствия у юнитов вооружения, юниты подразделяются на военные и гражданские. Возможно создание колонистов - юнитов специального типа. Колонистами называются обычные, не вооруженные юниты, оснащенные запасом продовольствия и денег. Каждый колонист имеет по 6 единиц продуктов питания и по 2 монеты денег.

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

Все юниты могут модернизироваться путем соответствующей замены своего снаряжения и (или) численности юнита. Модернизация может проводиться в любом городе государства. При модернизации уменьшение населения юнита до нуля ведет к расформированию юнита. Опытность модернизируемого юнита при увеличении его размера пропорционально уменьшается.

Создание юнита и модернизация юнита с увеличением его численности ведет к падению морали города, в котором создается или модернизируется этот юнит.

Любые юниты могут быть распущены. При роспуске юнита его снаряжение и население теряется. Юниты могут распускаться в любом месте.

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

За один ход город может создать юниты общей численностью не более 1/4 своего населения. Oбщее количество населения во всех юнитах и в экипажах кораблей не может быть более половины общего населения государства!

В конце каждого хода повышается опытность у всех военных юнитов на 1 единицу. В случае участия юнита в сражениях, он дополнительно получает еще 4 единицы опыта. По experience подразделяются :

Recruit - опыт от 0 до 3, все вновь формируемые юниты и ополчение.

Average - опыт от 4 до 7, в сражении имеют бонус +1 Attack, +1 Defence.

Regular - опыт от 8 до 15, в сражении имеют бонус +2 Attack, +2 Defence.

Veteran - опыт от 16 до 31, в сражении имеют бонус +3 Attack, +3 Defence.

Elite - опыт от 32 до 63, в сражении имеют бонус +4 Аttack, +4 Defence.

Super Elite - experience 64, в сражении имеют бонус +5 Аttack, +5 Defence.

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

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

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

Изменено пользователем Yorick
Ссылка на комментарий

alexandrovis
И опять я про e-civ:

Так ты за какой вариант? За моделирование на уровне страт или отдельного жителя?

Ссылка на комментарий

Detech
При детализации населения на уровне 1 человека у нас получается от 100 тыс до 5 (10) млрд населения. Число характеристик, для начала, около 20. Итого количество данных для обсчета колеблется от 2 млн до 100-200 млрд.

Серьезно? 5-10 млрд населения с детализацией "человек"?

Тогда согласен с теми кто возмущается - "сервер умрет". Детализация "человек" не для симуляции реального мира в реальную численность...

200 млрд характеристик - это одних только данных от 1 гига до нескольки. Что гарантированно переносит расположение наших данных из оперативы в БД, а это еще дополнительное снижение.

Только что тестанул - выборка из Оракла на Xeon X5650 с 16 гигами оперативы - 1.000.000 записей смешанных данных (текст, числа, даты - 7 мегабайт - запись) идет примерно 24 минуты. Запись - почти в 2 раза дольше. Плюс обработка.

Это только в случае линейной обработки. Если встанет задача требующей N2 (а она вполне может встать), обработка 200 млрд записей превращается в обработку 4*10^22, что однозначно смерть для любой задачи.

То есть такой объем подъемен ТОЛЬКО в формате - 1 ход за день, час на обработку хода, и при этом мы соглашаемся на ограничение того что алгоритмы тяжелее сложности N - для нас однозначно неподьемны.

Совершенно нереалистичный объем...

Читаю Дэтэча дальше:

И опять я про e-civ:

Вот это стиль у Рашида Измайлова! Все лаконично - четко, коротко и понятно.

Я не понял к чему это? Ты берешь мое сообщение на форуме и сравниваешь его по тщательности проработки с диздоком?

:blink:

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

Изменено пользователем Detech
Ссылка на комментарий

alexandrovis

Ок. Значит останавливаемся на варианте со стратами. А на моделирование каждого жителя перейдем, когда купим суперкомпьютер :D

Ссылка на комментарий

Серьезно? 5-10 млрд населения с детализацией "человек"?

Тогда согласен с теми кто возмущается - "сервер умрет". Детализация "человек" не для симуляции реального мира в реальную численность...

...

Совершенно нереалистичный объем...

Очень убедительные расчеты.

Я не понял к чему это? Ты берешь мое сообщение на форуме и сравниваешь его по тщательности проработки с диздоком?

:blink:

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

Ни в коем случае не сравнивал - сорри, если так прозвучало :) Диздоков я читал крайне немного, и все больше любительские, так что судить не берусь. Но я приводил примеры не из ДИЗДОКА, а из ОПИСАЛОВА реально работающей игры, и восхищался - без всякой связи с твоим постом - что в мануале нет привычной беллетристики типа "Вы становитесь могучим вождем великого племени, и своими героическими поступками призваны перевернуть мир вверх тормашками!"

А привел я в пример как раз что он ТОЖЕ в моделировании учитывает каждого человека, и не страдает, что человеков этих немного - ну действительно, можно как в Циве считать, что 1 чел в игре = 10 000 челам в реале. И что эти люди из воздуха не берутся и никуда не исчезают (за исключением роспуска юнита, с чем я не согласен).

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

Практическое применение той же национальности: набрал ты наемников напр. из Швейцарии - и если в Швейцарии траблы, они могут туда рвануть или сражаться уже не с той отдачей; а при войне против их родины вообще могут перейти к врагу.

Изменено пользователем Yorick
Ссылка на комментарий

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

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

Ссылка на комментарий

Гость
Эта тема закрыта для публикации сообщений.
  • Ответы 41
  • Создано
  • Последний ответ
  • Просмотры 11279

Лучшие авторы в этой теме

  • alexandrovis

    22

  • Freezze

    6

  • Yorick

    5

  • KnyaZzZz

    5

  • Detech

    2

  • Platon

    1

  • Антипа

    1

Лучшие авторы в этой теме

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу


Copyright © 2008-2024 Strategium.ru Powered by Invision Community

×
×
  • Создать...