Дорогие, однофанатики. Приглашаю вас принять участие в разработке игры по мотивам Цивилизации. Похожая тема уже существует http://www.civfanatics.ru/forum/index.php?...mp;#entry288066. Почему нужно было отделиться от этой темы? Потому что у этой идеии есть противники. Здесь планируется обсуждение всех предложений касательно новой игры, разработка оптимальных алгоритмов и т.д и т.п. Кто хочет принять участие --- радости просим. Кто считает, что это бесполезный труд, то эта тема не для вас. Для тех, кто хочет этим заниматься: !!!
еще раз настоятельно рекомендую, проводить основную часть общения и обсуждений в чате, а на форуме только фиксировать достигнутые соглашения
ОНЛАЙН КОНФЕРЕНЦИЯ!
в джаббере
alterciv[на]conference.jabber.org
буду старатся открывать и присутствовать в ней каждый день
всех заинтерисованных -- жду там
так же... возможна альтернатива -- проведение конференции в Скайпе, если достаточному количеству народа это будет удобнее
Так, скажу сразу: серьёзно заниматься проектом смогу только когда защищусь. Ну а пока небольшой штрих (уж сильно люблю я себя почувствовать демиургом, или хотя бы Пондером Стиббонсом из Незримого Университета )
Итак, рассмотрим модель роста населения через рождаемость и смертность.
Возьмём крестьянскую деревню. Население живёт за счёт выращенной пищи. Для функционирования модели нам нужны данные:
men[0..99] –количество мужчин возрастов от 0 до 100 лет
women[0..99] –количество женщин от 0 до 100 лет
survive_prob_men[0..99] – вероятность того, что n летнему мужчине исполнится (n+1) лет
survive_prob_women[0..99] – вероятность того, что n летней женщине исполнится (n+1) лет
born_prob[0..99] – вероятность того, что n-летняя женщина родит ребёнка
food_cons_men[0..99] – объём потребляемой пищи n-летним мужчиной
food_cons_women[0..99] – объём потребляемой пищи n-летней женщиной
food_prod_men[0..99] – количество пищи, которую производит n-летний мужчина
food_prod_women[0..99] – количество пищи, которую производит n-летняя женщина
Все они находятся в файле stats.txt
Итак, в деревне есть поле, на котором можно вырастить не более 5000 единиц еды за год и амбар, в котором можно запасти не более 2000 еды на следующий год.
Каждый год выполняются следующие подсчёты:
Количество произведённой еды: как сумма произведений men[i]* food_prod_men[i] и women[i]* food_prod_women[i].
Количество съеденной еды: как сумма произведений men[i]* food_cons_men[i] и women[i]* food_cons_women[i]
Вычисляется коэффициент голода (StarvCoef):
Если произведённой еды плюс запасённой в амбаре хватает, чтобы прокормить население, то он равен 1, иначе он равен отношению наличной еды к требуемой.
Если есть излишки еды, то они сохраняются в амбаре (но не более, чем объём амбара)
Вычисляется выживание населения
men[i]:=men[i-1]*survive_prob_men[0..99]*f1(StarvCoef) // я взял f1(StarvCoef):=(0.1+StarvCoef*0.9), чтобы даже в полный голод был шанс выжить
Аналогично для женщин.
Вычисляется количество новорожденных как сумма произведений women[i]*born_prob[i]*f2(StarvCoef)//Я взял f2(StarvCoef):= StarvCoef^2
Затем новорожденные по случайному закону распределяются между men[0] и women[0].
Двойной щёлчок на пустом месте формы откроет график роста населения. Другой двойной щелчок спрячет его и снова покажет возрастную пирамиду.
Ещё что можно сказать: система очень чувствительна к настройкам, собственно, основное время заняло не программирование, а подбор хороших коэффициентов. Если начать со 100 мужчин и 100 женщин, то, как правило, население выходит на 3500 жителей, но может и вымереть.
http://general.civfanatics.ru/soft/P...population.zip
Если прога будет ругаться, замените точки в файле stats.txt на запятые
Вот пример графика роста населения и итоговой пирамиды населения. Чтобы добраться с 200 до 3500 человек деревне потребовалось 14000 лет.
<div class='quotetop'>Цитата(ALEXCHAMP * 20.5.2009, 3:15) [snapback]288350[/snapback]</div>Но так сначала надо изобрести этот самый презерватив, так что в начальной стадии вполне можно обходиться едой, потом население должно будет зависить от еды+жилье, потом от еда+жилье+ благосостояние, а уж потом еда+жилье+благосостояние-презирватив+искуственное осеменение(или уровень здравоохранения.) хотя здравоохранение можно ввести раньше ведь еще в древности были знахари.Если вы уж так сильно хотите реальности, почему рост населения зависит от еды?
Введите тогда понятие сексуальности населения, как часто любят заниматься сексом и с использованием презервативов или без - вот это и есть настоящий показатель рождаемости.
[/b]
То есть я хочу сказать, что надо проводить исторические изыскания по поводу того от чего зависел рост населения в разные эпохи.К тому-же надо будет учесть фактор эпидемий, которые в древности зачастую просто вычищали города от энтого самого населения
<div class='quotetop'>Цитата(Санек21 * 20.5.2009, 5:15) [snapback]288357[/snapback]</div>Чорт! ЧОРТ! ЧООООООООООРТ!!!Но так сначала надо изобрести этот самый презерватив, так что в начальной стадии вполне можно обходиться едой
[/b]
Если действительно начинать разработку игры в такой ситуации с распределенными и встречающимися только онлайне разработчиками.
НАИПЕРВЕЙШАЯ необходимость -- это сетевой репозитарий исходного кода.
На данный момент таких есть даже два (я застолбил).
http://sourceforge.net/projects/alterciv/ на СоурсФордже
и
http://code.google.com/p/alterciv/ в репозитариях Гугла
Может у кого есть какие-то еще предложения?
На счет РЕАЛИСТИЧНОСТИ.
Это, надеюсь, всем понятно, что любая модель действительной реальности ВСЕГДА является неполной.
Если мы когда-то научимся делать модель описывающаую 100% реальности -- то это будут означать просто создание еще одного мира как наш.
А пока. Весь вопрос в том, какой уровень детализации мы можем себе позволить.
И для разговора ну эту тему нужно приводить сразу готовые алгоритмы (как сделал Генерал... +1 ему).
А рассуждения гуманитарные, о том как там презервативы влияли -- в сторону. Для подобных обсуждений есть куча других тем.
ЗДЕСЬ ЖЕ, для указания такого фактора, нужно указать в какой формуле, каким коефициентом этот фактор будет определятся.
Уважаемый Аку, если мне не изменяет зрение то тут написано:
<div class='quotetop'>Цитата</div>Собственно мы и обсуждаем и предлогаем.Раз уж вы хотите создать реалистичную игру, то общественность просто обязана помогать вам в этом и контролировать насколько вы придерживаетесь энтой самой реалистичности.Здесь планируется обсуждение всех предложений
[/b]
Для флуда и флудеров есть отдельная тема -- http://www.civfanatics.ru/forum/index.php?...ic=8431&hl=
Почему вы там не развиваете свои обсуждения и преложения?
Очевидно почему -- не так интересно флудить в специально отведенной флудильне... )
<div class='quotetop'>Цитата</div>Именно!Это, надеюсь, всем понятно, что любая модель действительной реальности ВСЕГДА является неполной.
Если мы когда-то научимся делать модель описывающаую 100% реальности -- то это будут означать просто создание еще одного мира как наш. [/b]
Иначе получится как у Лема в Кибериаде: для того, чтобы создать электронного поэта, Трурль смоделировал всё развитие Вселенной, чтобы отразить влияние истории мира на мозг этого поэта
ALEXCHAMP, как я сказал, и как заметил Санёк, я модели рассмтаривается первобытное крестьянское общество. Да и в ней пища влияет на рождаемость лишь в поправочном коэффициенте, который уменьшает рождаемость при нехватке пищи (логично?), но не увеличивает её при избытке.
В формулу рождаемых детей добавил ещё коэффициент men_ratio=min(1,k*(количество мужчин возраста от 15 до 50 лет)/(количество мужчин возраста от 15 до 45 лет)), где k - коэффициент, отражающий, при каком отношении мужчин и женщин детородного возраста рождаемость не меняется, пока принято k=2.
women[i]*born_prob[i]*f2(StarvCoef)
Этот коэффициент будет актуальным, к примеру, если забрать большую часть мужчин из деревни на войну.
Тогда количество рождённых детей= сумма от i=15 до 45 (women[i]*born_prob[i]*f2(StarvCoef)*men_ratio)
А дальнейшее технологическое развитие будет менять коэффициенты выживаемости и рождаемости.
Думаю, если сочетать возрастную пирамиду с социальным расслоением, то для каждой социальной группы - ввдить свой набор коэффициентов (к примеру, у хозяев коэффицент выживаемости больше, чем у рабов, а у рабов больше коэффициент производства)
Да, тема секса в циве не раскрыта. Я уже предлагал вставить порноролики, но идея не нашла поддержки у масс.
Я не настолько молод, чтобы знать все. Оскар Уайлд
Гуманитарии всех стран, соединяйтесь!
<div class='quotetop'>Цитата(BuDDaH * 20.5.2009, 13:02) [snapback]288399[/snapback]</div>Как её в игре не раскрывай, все равно как в жизни не раскроешь...Да, тема секса в циве не раскрыта. Я уже предлагал вставить порноролики, но идея не нашла поддержки у масс.
[/b]
<div class='quotetop'>Цитата(kostya1a * 20.5.2009, 14:06) [snapback]288428[/snapback]</div>Слишком расплывчатая формулировка, да и критерии надо определить.Да и тиран и добрый из разных категорий.У меня появилась ещё одна идея!Нужно сделать шкалу в каторой написанно как игрок компьютерный или человек управлял государством то есть:диктатор,тиран или наоборот слишком добрый правитель!
[/b]
ЗЫ странно второй раз сообщение "проглатываються".
<div class='quotetop'>Цитата(General * 20.5.2009, 1:46) [snapback]288347[/snapback]</div>О ужос, камрад Генерал!Так, скажу сразу: серьёзно заниматься проектом смогу только когда защищусь. Ну а пока небольшой штрих (уж сильно люблю я себя почувствовать демиургом, или хотя бы Пондером Стиббонсом из Незримого Университета )
Итак, рассмотрим модель роста населения через рождаемость и смертность.
<...>
[/b]
Нельзя же так сурьёзно. И вообще Цива не совсем Тхе Сеттлерс
Максимум детализации - это распределение ВСЕГО населения (без порнороликов, значить, условно бесполое) по возрастам и с вероятностью родить и умереть для каждого из возрастов - кстати! придётся ход=год. Иначе КАК? Динамику возрастов учитывать?
ЗЫ
С порнороликами , оно, конечно лучше - можно даже ради них пожертвовать долей реалистичности
ЗЗЫ
<div class='quotetop'>Цитата</div>Это шовинизьм и сексизьм!born_prob[0..99] – вероятность того, что n-летняя женщина родит ребёнка[/b]
А где вероятность того, что n-летний мужчина родит ребёнка?!!!
<div class='quotetop'>Цитата</div>Да-дакстати! придётся ход=год.[/b]
<div class='quotetop'>Цитата</div>На мужчин и женщин стоит делить, к примеру, для моделирования эффекта мобилизации населения в армиюМаксимум детализации - это распределение ВСЕГО населения (без порнороликов, значить, условно бесполое) по возрастам и с вероятностью родить и умереть для каждого из возрастов [/b]
<div class='quotetop'>Цитата</div>Это на самом деле не проблема.кстати! придётся ход=год.
Да-да[/b]
Если не повторять дословно приколы Цивы, с её жесткой привязкой летоисчисления.
Для сетевой игры вообще лучше быть вообще без аривязки.
Как оно было в древние времена. 55 год правления династии такой-то, и вся недолга.
А всякие "от рождества христова" и прочие календарные премудрости, можно навесить на отдельную теху. Как одну из частей культурной победы.
ОНЛАЙН КОНФЕРЕНЦИЯ!
в джаббере
alterciv[на]conference.jabber.org
буду старатся открывать и присутствовать в ней каждый день
всех заинтерисованных говорить о конкретных вещах -- жду там
а то форум опять на флуд скотился