Обсуждение игры

"Солдаты Империй II" ("Солдаты Империй 2") - высокодетализированный пошаговый варгейм (turn-based wargame) по Второй Мировой войне.

Re: Обсуждение игры

Postby Atlas2 » February 4th, 2016, 4:35 pm

Fishenzon wrote:
Кстати, на что влияет уровень в производстве? Думал сначала, что это дает больше выпускаемой техники за ход. Но нет, к примеру Т-50, 4 уровень, а за ход дает 1 танк и ОТ-34, 1 уровень, а заход 2 танка выпустили.


Точный алгоритм наращивания производства - загадка для всех. Похоже, даже для Игоря Кулакова :D
Из личных наблюдений.
1. Чем больше "стоимость" (в очках производства) конкретной модели, тем меньше рост производства. Арта, миномёты и т.д., которые "стоят" 1 прроизводственное очко "наращиваются" быстрее, чем крупнокалиберная арта, авиа и т.д. Но зависимость не прямая.
2. А это уже ОЧЕНЬ личное впечатление. Создалось у меня мнение, что рост производства модели больше, если эту модель в каждый конкретный день выгребать со склада до нуля.
Atlas2
Sergeant
Sergeant
 
Posts: 42
Joined: December 22nd, 2015, 7:22 am

Re: Обсуждение игры

Postby Igor Kulakov » February 4th, 2016, 5:19 pm

Думайте, что говорите ;) Как говорит одна моя знакомая - "пизд%ть - не мешки ворочать" :lol:

Весь алгоритм я несколько раз разжевывал здесь. Единственное с чем согласен, надо свести все как-нибудь в кучу и поместить на soe2.com, до которого руки не доходят.

Вкратце (но именно так и никак иначе) - каждый ДЕНЬ (не ход, а ДЕНЬ) число произведенных (указанных в уровне за день) уходит в медленный склад, туда же попадают отремонтированные и трофеи. С медленного склада определенный % - каждый ход на быстрый склад, с котрого можно пополнять юниты.

вот вам исходник алгоритма. Любуйтесь и изучайте.


// перевод произведенной техники(из кол-ва произведенных в день)
// в slow_depot для текущей коалиции при завершении ей хода
if Hdr_Massive.eco_use = 0 then
begin
for i:= 1 to 114000 do
begin
if proizv_pool_tech[i]>0 then slow_pool_tech[i]:=slow_pool_tech[i] + proizv_pool_tech[i];
end;
end;



// пополнение slow_depot за счет отремонтированной техники
for i:= 1 to 114000 do
begin
add_remont:=0;
// расчитываем кол-во отремонтированной (каждый день(правило по каждой модели) - 1% от числа находящейся в ремонте, если менее 100, но больше 0 - то 1шт в день))
if remont_pool_tech[i]>0 then
begin
if remont_pool_tech[i]>99
then add_remont:=(remont_pool_tech[i] div 100)
else add_remont:=1;
end;
// добавляем кол-во отремонтированной к slow_depot
if add_remont>0 then
begin
slow_pool_tech[i]:=slow_pool_tech[i] + add_remont;
end;
// вычитаем кол-во отремонтированной из техники, находящейся в ремонте
if add_remont>0 then
begin
remont_pool_tech[i]:=remont_pool_tech[i] - add_remont;
end;
end;


// если fast_depot < slow_depot, то переводим 10% от кол-ва в slow_depot в fast_depot (если 0<slow_depot<10, то переводим 1шт)
for i:= 1 to 114000 do
begin
move_fast_slow:=0;
//
if fast_pool_tech[i]<slow_pool_tech[i] then
begin
if slow_pool_tech[i]>9
then move_fast_slow:=(slow_pool_tech[i] div 10)
else move_fast_slow:=1;
end;
//
if move_fast_slow>0 then
begin
fast_pool_tech[i]:=fast_pool_tech[i] + move_fast_slow;
slow_pool_tech[i]:=slow_pool_tech[i] - move_fast_slow;
end;
end;

// автоматическая корректировка уровней производства моделей техники в зависимости от
// установленных приказов ("+","-","="), реального и требуемого экономических потенциалов
if Hdr_Massive.eco_use = 0 then
begin

// реальный экономич. потенциал - находится ранее, в differ_counter_for_stat_modes_13_34;

// вызов процедуры расчета требуемого экономического потенциала (с учетом приказов)
summa_nado_eco;

// вызов процедуры расчета требуемого экономического потенциала (без учета приказов)
summa_nado_eco2;


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

// максимально возможное выполнение приказов при нехватке требуемого экономического потенциала!

// а) сперва выполняем все [-], кроме тех где произв-во уже = 0
for i:=1 to 114000 do
begin
if (
(proizv_pool_tech[i]>0) and
(proizv_orders[i]=1)
) then
begin
proizv_pool_tech[i]:=proizv_pool_tech[i] - 1;
end;
end;

// б) выполняем (именно так!!!) все [+]
for i:=1 to 114000 do
begin
if (
(proizv_orders[i]=3)
) then
begin
// старый вариант
//proizv_pool_tech[i]:=proizv_pool_tech[i] + 1;


// новый вариант, начиная с 1.4.
if i<3001
then i50:=i
else i50:= i - (((i-1) div 3000) * 3000);

case tech_dat[i50].type_tech of
// может увеличиваться каждый день на 1 (с вероятностью 100%) при достатке экономич. потенциала
// 6 - минометы легкие (самоходн. или буксируем.)
// 7 - минометы средние (самоходн. или буксируем.)
// 16 - птр, гранатометы
6,7,16:
begin
proizv_pool_tech[i]:=proizv_pool_tech[i] + 1;
end;

// может увеличиваться каждый день на 1 (с вероятностью 75%) при достатке экономич. потенциала
// 8 - минометы тяжелые (самоходн. или буксируем.) в т.ч. и реактивные (но не РСЗО !!!)
8:
begin
random_chislo:= Random(4);{0,1,2,3}
if (
(random_chislo=0) or
(random_chislo=1) or
(random_chislo=2)
) then proizv_pool_tech[i]:=proizv_pool_tech[i] + 1;
end;

// может увеличиваться каждый день на 1 (с вероятностью 50%) при достатке экономич. потенциала
// 1 - БТР
// 2 - БМ
// 5 - ПТ (самоходн. или буксируем.)
// 9 - пехотная артиллерия (самоходн. или буксируем.)
// 10 - легкая артиллерия (самоходн. или буксируем.)
// 13 - РСЗО (самоходн. или буксируем.)
// 14 - легкие зен. системы (самоходн. или буксируем.)
1,2,5,9,10,13,14:
begin
random_chislo:= Random(2);{0,1}
if (
(random_chislo=0)
) then proizv_pool_tech[i]:=proizv_pool_tech[i] + 1;
end;

// может увеличиваться каждый день на 1 (с вероятностью 33%) при достатке экономич. потенциала
// 3 - танк
// 4 - штурм. орудие
// 11 - тяжелая артиллерия (самоходн. или буксируем.)
// 15 - тяжелые зен. системы (самоходн. или буксируем.)
// 100 - истребитель
// 101 - штурмовик или тактический бомбардировщик
3,4,11,15,100,101:
begin
random_chislo:= Random(3);{0,1,2}
if (
(random_chislo=0)
) then proizv_pool_tech[i]:=proizv_pool_tech[i] + 1;
end;

// может увеличиваться каждый день на 1 (с вероятностью 20%) при достатке экономич. потенциала
// 12 - особой мощности артиллерия (самоходн. или буксируем.)
// 102 - средний бомбардировщик
// 103 - дальний или тяжелый бомбардировщик
12,102,103:
begin
random_chislo:= Random(5);{0,1,2,3,4}
if (
(random_chislo=0)
) then proizv_pool_tech[i]:=proizv_pool_tech[i] + 1;
end;

end;






end;
end;

// в) случайным образом снижаем по всему списку произв-во до того, пока
// требуемый эко_потенциал не будет равен или меньше реальному, причем (внимание!!!),
// используется 2-ая процедура расчета требуемого эко_потенциала (процедура summa_nado_eco2), т.к. "+" временно уже выполнили выше...

for iiii:=1 to 38 do
begin

// а эту часть выполняем только тогда, когда требуемый потенциал > реального !!!
if summa_eco_now[iiii]<summa_eco_nado[iiii] then
begin
summa_nado_eco2;
// будем уменьшать производство конкретных видов техники, пока не будет уровень пр-ва не будет соотв-ть возможностям...
while summa_eco_now[iiii]<summa_eco_nado2[iiii] do
begin
for i:= 1 to 3000 do
begin
// проверка, если производство > 0шт/день и summa_eco_now[iiii]<summa_eco_nado2[iiii], то производство снижаем на 1шт
if (
(summa_eco_now[iiii]<summa_eco_nado2[iiii]) and
(proizv_pool_tech[((iiii-1)*3000 + i)]>0)
) then
begin
proizv_pool_tech[((iiii-1)*3000 + i)]:=proizv_pool_tech[((iiii-1)*3000 + i)] - 1;
summa_nado_eco2;
end;
end;
end;

end;

end;








end;






// ограничение по запасам...принудительное не больше 1млн штук :-)
for i:= 1 to 114000 do
begin
//
if fast_pool_tech[i]>1000000 then fast_pool_tech[i]:=1000000;
if slow_pool_tech[i]>1000000 then slow_pool_tech[i]:=1000000;
if remont_pool_tech[i]>1000000 then remont_pool_tech[i]:=1000000;
end;
User avatar
Igor Kulakov
IgorLab Software TEAM
IgorLab Software TEAM
 
Posts: 2630
Joined: November 21st, 2011, 11:18 am
Location: Evil Empire

Re: Обсуждение игры

Postby Atlas2 » February 4th, 2016, 6:43 pm

Игорь, как раз думаю, что говорю.
Указанные "вероятность 75%, 50% и т.д." - это "магия рэндома". Т.е. какая конкретно модель будет "прирощена" в ПРОИЗВОДСТВЕ на "+1"/день - не знает никто. ;)

"// может увеличиваться каждый день на 1 (с вероятностью 100%) при достатке экономич. потенциала
// 6 - минометы легкие (самоходн. или буксируем.)

------------

А вот и нет. При игре за США производство лёгких миномётов (модель - 60 мм М2) за 6 месяцев (при полном обеспечении промпотенциала - ещё и запас есть)
лёгкие миномёты = 126. При том, что производство их "поставлено на плюс" с 22.06.41. И не останавливалось. А к 31.01.42 их производство должно быть не менее 180 шт / день.
Atlas2
Sergeant
Sergeant
 
Posts: 42
Joined: December 22nd, 2015, 7:22 am

Re: Обсуждение игры

Postby Igor Kulakov » February 4th, 2016, 8:05 pm

Atlas2 wrote:Игорь, как раз думаю, что говорю.
Указанные "вероятность 75%, 50% и т.д." - это "магия рэндома". Т.е. какая конкретно модель будет "прирощена" в ПРОИЗВОДСТВЕ на "+1"/день - не знает никто. ;)

"// может увеличиваться каждый день на 1 (с вероятностью 100%) при достатке экономич. потенциала
// 6 - минометы легкие (самоходн. или буксируем.)

------------

А вот и нет. При игре за США производство лёгких миномётов (модель - 60 мм М2) за 6 месяцев (при полном обеспечении промпотенциала - ещё и запас есть)
лёгкие миномёты = 126. При том, что производство их "поставлено на плюс" с 22.06.41. И не останавливалось. А к 31.01.42 их производство должно быть не менее 180 шт / день.



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

2. Значит, в какие-то дни в момент завершения дня был недостаток требуемого экономического потенциала. Такое может быть запросто. Поясняю. Если в момент передачи хода врагу "вычерпать на приказы" близко к максимуму, а враг захватывает ваши города, то при смене даты будет недостаток потенциала. Выполняются не все приказы. Еще может быть фокус при ходе = 2 дням. Первый день (даже если враг ничего не захватил), экономического потенциала хватало, а на следующий день - нет. А если накладываются два фактора, то еще больше недостаток.
User avatar
Igor Kulakov
IgorLab Software TEAM
IgorLab Software TEAM
 
Posts: 2630
Joined: November 21st, 2011, 11:18 am
Location: Evil Empire

Re: Обсуждение игры

Postby Atlas2 » February 4th, 2016, 9:48 pm

Igor Kulakov wrote:
2. Значит, в какие-то дни в момент завершения дня был недостаток требуемого экономического потенциала. Такое может быть запросто. Поясняю. Если в момент передачи хода врагу "вычерпать на приказы" близко к максимуму, а враг захватывает ваши города, то при смене даты будет недостаток потенциала. Выполняются не все приказы. Еще может быть фокус при ходе = 2 дням. Первый день (даже если враг ничего не захватил), экономического потенциала хватало, а на следующий день - нет. А если накладываются два фактора, то еще больше недостаток.


Странно. У США сразу реальная экономика более 40 тыс. Ни разу до конца января 42-го (больше пока не наиграл) у меня "промышленный заказ" не превышал реальную экономику. Мало того, ни разу даже не догнал и близко по значению. Может быть в самом начале, когда джапы отхватили Филиппины (я не стал их удерживать), то эконом потенциалы (и реальный в т.ч.) и снижался. Но уже через 3-4 недели после начала игры пошёл захват территорий. На конец января 42-го реальная экономика более 160 тыс, потенциальная что-то под 185 тыс, а промышленный заказ "не дотягивает" до 120 тыс. Т.е. пром. заказ НИ РАЗУ даже не догнал реальную экономику. В т.ч. и в период "ухода" Филиппин.

играю 1 ход = 1 день
Atlas2
Sergeant
Sergeant
 
Posts: 42
Joined: December 22nd, 2015, 7:22 am

Re: Обсуждение игры

Postby Igor Kulakov » February 4th, 2016, 11:50 pm

Вы начинали играть эту партию на 1.4.? Если нет, то, возможно что-то было при изменениях в прошлых версиях. Я вроде несколько раз менял что-то в алгоритме по мере развития версий.Точно не помню.
Ещё вариант - использовали ли вы мод от Олега(trurle)? Я не особо интересовался что он там делал.

Сейчас проверил на паре моделей в паре стран в суперсценарии. При нормальной экономике за 1 день в ход возрастает модель с приказом увеличивать производства на 1шт, при 2 днях в ходе на 2шт. Все ок.
User avatar
Igor Kulakov
IgorLab Software TEAM
IgorLab Software TEAM
 
Posts: 2630
Joined: November 21st, 2011, 11:18 am
Location: Evil Empire

Re: Обсуждение игры

Postby Atlas2 » February 5th, 2016, 1:26 am

Igor Kulakov wrote:Вы начинали играть эту партию на 1.4.? Если нет, то, возможно что-то было при изменениях в прошлых версиях. Я вроде несколько раз менял что-то в алгоритме по мере развития версий.Точно не помню.
Ещё вариант - использовали ли вы мод от Олега(trurle)? Я не особо интересовался что он там делал.

Сейчас проверил на паре моделей в паре стран в суперсценарии. При нормальной экономике за 1 день в ход возрастает модель с приказом увеличивать производства на 1шт, при 2 днях в ходе на 2шт. Все ок.



"Нет" на оба вопроса. Я начинал на 1.5. и играю в "ванилу" (без мода или карт Олега). давайте так.
Я специально не отслеживал. Сейчас (пару дней назад) я начал переигрывать за США суперсценарий. Кое-какие вещи хочу по другому сыграть. Пока всё нормально - прошло 19 дней и производство миномётов "+19". Возможно, что в предыдущей игре я, всё же, где-то "тормознул" производство, а потом запустил (со средними миномётами я точно так делал). Сейчас буду отслеживать эти вещи.

P.S. Я сам сценарий в игровом редакторе переделал в "альтернативку". У меня за "союзников" только США и Великобритания+Доминионы. Все остальные страны - противники. Не может это повлиять на производство?

P.S.S. А что слышно про 1.6?
Atlas2
Sergeant
Sergeant
 
Posts: 42
Joined: December 22nd, 2015, 7:22 am

Re: Обсуждение игры

Postby Atlas2 » February 7th, 2016, 5:27 pm

Извините. Начинал партию в 1.4. и продолжаю в 1.4.
1.5. нет же ещё, как я понимаю.
Atlas2
Sergeant
Sergeant
 
Posts: 42
Joined: December 22nd, 2015, 7:22 am

Re: Обсуждение игры

Postby Igor Kulakov » February 8th, 2016, 11:35 pm

Atlas2 wrote:P.S. Я сам сценарий в игровом редакторе переделал в "альтернативку". У меня за "союзников" только США и Великобритания+Доминионы. Все остальные страны - противники. Не может это повлиять на производство?


Нет.

Работа над 1.5 идет медленно по причине малого времени, которое я могу сейчас уделять проекту. Судя по тому, что сделал и сколько осталось, раньше конца марта-начал апреля версия не будет готова. Единственное, чем могу порадовать, это то, что функции автоматического микроменеджемента при полной реализации избавят от затрат времени на ход за большие страны в суперсценарии.
User avatar
Igor Kulakov
IgorLab Software TEAM
IgorLab Software TEAM
 
Posts: 2630
Joined: November 21st, 2011, 11:18 am
Location: Evil Empire

Re: Обсуждение игры

Postby Khanti » February 10th, 2016, 2:38 pm

Igor Kulakov wrote:
(...) Судя по тому, что сделал и сколько осталось, раньше конца марта-начал апреля версия не будет готова. Единственное, чем могу порадовать, это то, что функции автоматического микроменеджемента при полной реализации избавят от затрат времени на ход за большие страны в суперсценарии.


Для этой функции Я с нетерпением жду :)
Khanti
Junior Sergeant
Junior Sergeant
 
Posts: 32
Joined: February 11th, 2014, 11:40 pm

PreviousNext

Return to Солдаты Империй II

Who is online

Users browsing this forum: No registered users and 18 guests

cron