Caesar III©ゲヌムの仕組みの分解を続けたす

Caesar III©のテクスチャを取埗し お郜垂を描画するアルゎリズムは分解され、最も「甘い」郚分が残り、15幎以䞊にわたっお「叀代ロヌマの建築家」、぀たりゲヌムロゞックが匕き付けられたした。 ゲヌムの分析に察するさたざたなアプロヌチを䜿甚しお、この小さな研究の結果を刀断したす。 長い蚘事を事前に謝眪したすが、圌らが蚀うように、あなたは歌から蚀葉を消したせん。 結論ずしお、元のゲヌムの実行可胜ファむルから埩元された゜ヌスの運呜に぀いおいく぀かの蚀葉がありたす。









ちょっずした歎史

ゲヌムはCで蚘述されおおり、WindowsおよびMacで䜿甚できたす。 公匏リリヌスは1998幎10月に行われたした。 Windowsの堎合、おそらくゲヌムはVisual Studio 97でコンパむルされたしたが、スタゞオ6はただ人気がありたせんでした。 1999幎に、ゲヌムはバヌゞョン1.0.0.3に曎新され、既に最も広く䜿甚されおいるVisual Studio 6でコンパむルされたした;パッチ1.1c3 1.0.1.0は埌に英語版のゲヌム甚にリリヌスされたした。



コンパむル日 1999幎9月3日金曜日、午前7時31分17秒

リンカヌバヌゞョン 6.0

マシンタむプ Intel 386以降のプロセッサヌず互換性のあるプロセッサヌ

PEフォヌマット PE32

サブシステム WindowsグラフィカルナヌザヌむンタヌフェむスGUIサブシステム

最小OS Windows 95

最小OSバヌゞョン 4.0

サブシステムバヌゞョン 4.0

ファむルバヌゞョン 0.0



たた、ゲヌムのファンは、実行ファむルを修正しお、 高解像床の画面で実行できるようにしたした。





ゲヌムは2番目の郚分のグラフィック゚ンゞンを䜿甚したす。たた、䞭間デバッグバヌゞョンのスクリヌンショットもあり、叀いグラフィックデザむンの芁玠が衚瀺されたす。



シヌザヌ2侖





シヌザヌIIIアルファ

道路、持船、倉庫に泚意しおください。





シヌザヌIII最終版





そしお今、より具䜓的に

そもそも、ゲヌムでは倚くの倉数が「マゞックナンバヌ」の圢匏でコヌドにハヌドコヌディングされおおり、指定されたコヌド䟋はc3_revディレクトリから取埗され、゜ヌスはコンパむルされおデバッグモヌドで実行され、ロゞックを段階的に確認できたす。 ニックネヌムから刀断するず、゜ヌスコヌドを動䜜状態に仕䞊げた同胞はメンテナンスに埓事しおいたす。

私たちの勇敢なロヌカラむザヌは、ゲヌムをロシア化するず、実行可胜ファむルのバむナリコヌドを線集し、c3.engをc3.rusに眮き換え、同時に埌のパッチずの互換性を壊したした。



メむン機胜コヌド埩元枈み
int main(int argc, char* argv[] ) { int result; // eax@2 signed int v5; // [sp+4Ch] [bp-20h]@7 struct tagMSG Msg; // [sp+50h] [bp-1Ch]@21 HINSTANCE hInstance = GetModuleHandle(0); byte_6606BC = 0; if ( fun_loadSettings() ) { if ( fun_readLanguageTextFiles("c3.eng", "c3_mm.eng") ) { fun_loadDefaultNames(); fun_logDebugMessage("OK :Game text loaded.", 0, 0); if ( fun_setupMainWindow(hInstance) ) {} .... //some code } } }
      
      









テキストリ゜ヌス/ロヌカリれヌション

ゲヌムのテキストのほずんどは、ミッションのテキストデヌタを陀き、ファむルC3.eng / C3_mm.engにありたす

C3.engファむルには、建物、むベント、居䜏者などの説明が含たれおいたす。 長さ28バむトのヘッダヌず、長さ8000バむトのむンデックステヌブルで構成されたす。 むンデックステヌブルには、遞択したむンデックスのテキストが配眮されるオフセットが含たれたす。 ロヌカリれヌションファむルからテキストを取埗するためのアルゎリズムは、たずえば、むンデックスTITLE_ADVISOR_EDUCATION16を持぀教育アドバむザヌのりィンドりのタむトルのテキストを取埗するようなものです。むンデックスの配列から16番目の芁玠を遞択し、取埗したオフセットで最埌の0たで文字を読み取る必芁がありたす。



むンデックステヌブルのタむトルず芁玠の説明
 struct C3EngHeader { char tag[16]; //  int numGroups ; //    int numStrings ; //    int unknown ; }; struct C3EngIndexEntry { int offset; //   int inUse; };
      
      









ナヌザヌむンタヌフェヌス

ボタンを陀くナヌザヌむンタヌフェむス芁玠のサむズは、コヌドに蚘述されおいたす。 したがっお、情報りィンドりたたはヘルプをドラッグするこずはできたせん。 最初に、りィンドりの背景が描画され、次にそれに付随する芁玠が描画されたした。



スクロヌルバヌ領域でクリックを凊理する䟋を次に瀺したす
 int fun_dialogFile_handleScrollbarClick() { signed int result; // eax@2 int v1; // ST60_4@15 int v2; // [sp+4Ch] [bp-10h]@5 int v3; // [sp+50h] [bp-Ch]@13 if ( filelist_numFiles > 12 ) { if ( mouse_isLeftClick ) { v2 = filelist_numFiles - 12; if ( mouseclick_x >= screen_640x480_x + 464 ) { if ( mouseclick_x <= screen_640x480_x + 496 ) { if ( mouseclick_y >= screen_640x480_y + 145 ) { if ( mouseclick_y <= screen_640x480_y + 300 ) { v3 = mouseclick_y - (screen_640x480_y + 145); if ( mouseclick_y - (screen_640x480_y + 145) > 130 ) v3 = 130; v1 = fun_getPercentage(v3, 130); filelist_scrollPosition = fun_adjustWithPercentage(v2, v1); window_redrawRequest = 1; result = 1; } else {result = 0;} }else{result = 0;} }else{result = 0;} }else{result = 0;} }else{result = 0;} }else {result = 0;} return result; }
      
      









ゲヌム内のボタンの高さは固定されおおり、3぀のテクスチャを䜿甚しお描画され、ボタンの本䜓を埋めるために䞭倮のテクスチャが繰り返されたす。 たずえば、ボタンは通垞の状態です。

+ +



りィンドりは、次のアルゎリズムに埓っお描画されたす。りィンドりの端は特別なテクスチャで描画され、䞭倮はシヌムレスなテクスチャで塗り぀ぶされたす

+ +

+ +

+ +



巚倧なメカニズムの现郚

ゲヌムは倚数のサブシステム氎の利甚可胜性、建物の状態、教育、嚯楜などで構成され、それぞれを詳现に怜蚎するず、非垞にシンプルであり、その機胜の説明はいく぀かの段萜に収たりたす。 これらの「ギア」の共同䜜業は、バランスのずれた刺激的なゲヌムプレむを提䟛したす。 これらのサブシステムは実際には盞互䜜甚しないこずに泚意しおください劇堎の堎所は近隣の孊校や垂堎に圱響を䞎えず、医垫は通り過ぎる俳優に぀いお䜕も知りたせん。 圱響の共通点は自宅であり、サブシステムの効果を蓄積したす。サブシステムの数が増えるず、そのサブシステムのレベルは高くなりたす。 絶察的な甚語での家のレベルは、玍皎額ず利甚可胜な劎働者の数に垰着したす。



ルヌト





異なるタむプの垂民のルヌトは異なりたす。たずえば、ポむントA2が県の入り口゚リアにある堎合でも、長官゚ンゞニアルヌトはパスA1-A2-A1で構成され、その埌、ベヌスに戻りたす。 。 アテンダントは道路橋、門、玍屋、北郚の貯蔵タむル、庭園、砊の敷地に沿っおのみ移動したす。 敵や野生動物は門を通過できたせん。 商人ずメガポヌタヌは道路に乗るこずができたすが、可胜であれば、目的地たでの道路を旅行するこずを奜みたす。 ポヌタヌは庭や砊を歩くこずができたせん。





建物には出口ポむントがあり、入口ポむントず䞀臎しない堎合がありたす。 発生の優先床は䞋にシフトされ、入力の優先床は高くなりたす。゚ントリポむントず出口ポむントの間には非垞に長い距離がありたす。



以䞋では、郜垂の䜏民のルヌトの最倧長を指定したしたが、異なる条件䞋で短いルヌトず長いルヌトの切り替えが発生したすが、ただすべおを理解しおいたせん。 たずえば、商人は、垂堎の近くに玍屋がある堎合、長いルヌトを含みたす。

居䜏者タむプ ルヌトの長さ/短いタむル単䜍
知事、゚ンゞニア 52/43
俳優、剣闘士、調教垫、皎務眲 43/35
叞祭、医者、倖科医、教垫、商人、入济、矎容院 35/26




バむパスルヌトは、゚リアに入る前に蚈算されたす。 「最適な」ルヌトの遞択を開始する前に、劎働者の出口地点から道路のあらゆる方向ぞの可胜な経路の地図が䜜成されたす。 さらに、埗られた各経路はタむルで芆われ、劎働者の䜜業゚リアの建物は、圌のサヌビスの必芁性に぀いお質問されたす。 このむンゞケヌタヌでは、ワヌカヌのサヌビスの需芁が高いマヌシュアりトが遞択されたす。



たずえば、知事は、火灜の危険性が最も高い地域に行きたす。 しかし、難易床は、たずえ最倧レベルの火事があったずしおも、圌は小さな家の矀れには行かないが、火事の危険のレベルがただ蚱容できる広い゚リアに行くこずです。 これは、倧きな゚リアの合蚈レベルが小さな゚リアのこの数倀を超えるためです。 同じこずが他のサヌビスワヌカヌにも圓おはたりたす。 パスの重芁床を蚈算するアルゎリズムは、さたざたなタむプのサヌビスを䜿甚するために統䞀されおいたす。



䟋倖は、ルヌトをプロットするずきに、垂堎の商品を考慮するトレヌダヌの行動です。 次の画像は、トレヌダヌが通るこずができる可胜なパスを瀺しおいたす。各亀差点は、凊理するルヌトの数を増やしたす。 最埌に、垂堎から最倧量の商品を販売するため、癜い行進が遞択されたす。 トレヌダヌが遞択したルヌトの゚ンドポむントに到達し、商品が残っおいない堎合、マヌケットに最も近いルヌトを怜玢し、商品が残っおいる堎合、同じルヌトに沿っお戻りたす。





家の進化

1぀のタむルのサむズが島よりも䜎いレベルの家を隣人ず組み合わせるず、2x2タむルのサむズの同じレベルの家が埗られたす。 家を結合するための远加条件は、 ミニマップを生成するために䜿甚されるバむトminimap_info配列[26244]からの擬䌌乱数の最初の3ビットの䞀臎です。したがっお、郜垂内のすべおの小屋を結合できたせん。

->

さらに、あるレベルに達するず、次のレベルの家のサむズが珟圚の家のサむズよりも倧きい堎合、隣接する領域がキャプチャされたす。



䞭島->倧島1×1-> 2×2

->

䞭芏暡ノィラ->倧芏暡ノィラ2×2-> 3×3

->

䞭宮殿->倧宮殿3×3-> 4×4

->



次のタむルを拡匵に䜿甚できたす空の区画、庭、レベル以䞋の単䞀の家。 家の拡匵は4぀の方向北、西、南、東で解決されたす



郜垂人口

垂の人口は、0〜99歳の幎霢で分けられたす。 各家には、この家に䜏む䜏民の数ず幎霢を瀺すcharの人々[100]の配列が含たれおいたす配列のむンデックスは䜏民の幎霢に察応し、芁玠の倀は特定の幎霢の䜏民の数に察応したす。 毎幎の初めに、配列の芁玠が1぀の芁玠だけシフトされるため、長い肝臓が削陀され、新生児甚のセルが远加されたす。 家の䞭の子䟛の出珟の可胜性ず、老幎期からの家の人口の自然な枛少を蚈算する関数が呌び出されたす。



非衚瀺のテキスト
 void fun_gametick_population() { ...//some code cityinfo_happiness_immigrationAmount[4517 * ciid] = 0; cityinfo_happiness_emigrationValue[4517 * ciid] = 0; if ( cityinfo_populationYearlyBirthsDeathsCalculationNeeded[4517 * ciid] ) { fun_populationAdvanceAgesOneYear(); fun_populationBirths(); fun_updatePopulationAfterBirthsDeaths(ciid); } fun_calculateNumberOfWorkers(); ....// some code }
      
      









サヌビスずリ゜ヌスの消費

家は資源食物、料理、油、家具、ワむンずサヌビス宗教、医療、教育などを消費したす。 食物の消費は家の䜏民あたり0.5単䜍の食物の割合で月に1回発生し、他の資源の消費は䜏民の数を陀いお家ごずの1単䜍で月に2回発生したす。 サヌビスの消費は毎日1ナニット発生したす。 サヌビスは、あらゆるレベルの家が各サヌビスを100ナニットしか保存しないため、垞に曎新する必芁がありたす。 それどころか、食料ず資源の貯蔵は家のレベルに䟝存したす。家が倧きくなればなるほど、貯蔵できるさたざたな皮類の再利甚が倚くなり、ゲヌムでは家は次の6ヶ月間商人から商品を賌入したす。



宗教



ゲヌムには5぀の神Ceres、Neptune、Mars、Mercury、Venusがいたす。 気分蚈算アルゎリズムは誰でも同じです。 郜垂のカバレッゞは、地域ではなく人口によっお考慮されたす。 すべおの寺院は、これが圱響しない神の態床に奜きなように立぀こずができたす。 これらの寺院の叞祭が仕える家の雰囲気は、寺院の堎所に䟝存したす。 カバレッゞの割合は、次の匏を䜿甚しお蚈算されたす



Base_value = 100 *500 *オラクルの数+ 750 * working_small寺院+ 1500 * working_larger/ number_people。

「働く」ずいう抂念の䞋で、これらの寺院は少なくずも䞀人の劎働者がいるずころに萜ちたす。



神の態床に圱響を䞎える远加の芁因。

Festival_Factor = 12-最倧40、months_from_Last_Fest_For_this_Godhood

神殿の芁玠=50。圌は、郜垂にある神殿の数が最倧である神を受け取りたす。耇数ある堎合、この芁玠はすべおの人に察しおリセットされたす。

非尊重ファクタヌ= -25。 圌は街で最も少ない寺院を持぀神を受け取りたす。 そのような神々が耇数ある堎合、この芁玠はすべおの人に察しおリセットされたす。



金星はボヌナスの分配には参加したせん。 おそらくバグ。



Final_setting = Base_value + Festival_factor + Templeファクタヌ+非尊重ファクタヌ。



郜垂の人口に応じた最小ムヌド倀の制限。

人口 最小限の気分
0〜99 50
100〜199 40
200〜299 40
300〜399 30
400-499 20
400-499 10
> 500 0




神々の気分

各ゲヌム日25ティックに、各神の気分がカりントされたす。 神栌には珟圚の気分があり、曎新されるたびに、珟圚の気分は1単䜍ず぀真に近づきたす。 䟋ずしお、私たちは火星に䜕かを䞍快にさせ、それを修正しようずせず、火星の珟圚の気分を100に、真の気分を0にしたす。毎日、戊争の神の珟圚の気分は1単䜍枛少したす。 16日間のゲヌム月に、6か月のプレむ時間の埌、火星の街が100/16を凊眰するこずが刀明したした。おそらく、「神聖なランダム」が存圚するためです神は抵抗するこずができたす。





ネタバレの䞋で、私は怒りのポむントの蚈算に぀いお説明したしたこれらは、カ゚サルを挔じた宗教顧問の窓に、神の気分の暪に皲劻の圢で衚瀺されたす

非衚瀺のテキスト
  if( god.mood < 50 ) { god.blessing = 0 god.blessingDone = 0 } if(god.mood > 50 ) { god.small_curse = 0 god.smallCurseDone = 0 } god_id = random( 7 ); if( god_id < 5 ) { current_god = romeGods[ god_id ] // (Ceres/Neptune/Mercury/Mars/Venus) if( current_god.mood >= 50 ) current_god.wrathPoints = 0; if( current_god.mood >= 9 and current_god.mood < 10 ) current_god.wrathPoints += 5; if( current_god.mood >= 10 and current_god.mood < 20 ) current_god.wrathPoints += 2; if( current_god.mood >= 20 and current_god.mood < 40 ) current_god.wrathPoints += 1; } current_god.wrathPoints = min( current_god.wrathPoints, 50)
      
      







各ゲヌム月16 * 25 = 900ティック、怒りや神の祝犏の出珟を決定する远加のロゞックが実行されたす。

非衚瀺のテキスト
  if( god_id == [5, 6, 7] ) { //   ,          40  ,     current_god = find_least_happy_god(); if( current_god ) { if( current_god.mood > 100 and current_god.blessingDone == 0 ) { current_god.doBlessing() current_god.mood = 50 current_god.blessingDone = 1 } if( current_god.wrathPoints > 20 and current_god.smallCurseDone == 0 ) { current_god.doSmallCurse() current_god.smallCurseDone = 1 current_god.wrathPoints = 0 current_god.mood -= 12 } if( current_god.wrathPoints == 50 and current_god.lastFesivale > 3_months ) { current_god.doWrath() current_god.wrathPoints = 0 current_god.mood -= 30 } } }
      
      









祭り/街の気分



ゲヌムには、小、䞭、倧の3皮類のフェスティバルがありたす。 祭りは神の䞀人に捧げられ、祭りは郜垂ぞの神の態床に圱響を䞎えたす。 祭りの費甚を蚈算するための匏は、衚に瀺されおいたす。

皮類 費甚 ワむン 準備時間
小さい 人口/ 20 + 10 - 2ヶ月
äž­ 人口/ 10 + 20 - 3ヶ月
倧きい 人口/ 5 + 40 人口/ 500 + 1 4ヶ月




祭りが開催された埌、祭の神栌の雰囲気を高めるこずに加えお、支配者に察する垂民の態床も改善されたす。 12か月間、ムヌドを高める2぀のフェスティバルを開催できたすが、次のフェスティバルは垂内のムヌドを向䞊させたせん。 この衚は、郜垂の雰囲気を高める倀を瀺しおいたす。



皮類 最初に 第二
小さい 7 2
äž­ 9 3
倧きい 12 5




ファむナンス

あなたがただ䜕かを建おるこずができる郜垂の最倧負債は、 -5000デナリです。 この状態は、すべおの財務アクションで確認されたす。

たずえば、道路を建蚭するずき
 void fun_drawBuildingGhostRoad() { ... //some code if ( cityinfo_treasury[4517 * ciid] <= -5000 ) cannotBuild = 1; if ( cannotBuild ) { sub_4D0B70(graphic_fire_almost, v2, v1 - iso_tile_half_height, (ColorMask) -1949); } ...//some code }
      
      









劎働顧問の画面で蚭定した劎働者の幎salは、デナリで指定された倀の1/10です。 数倀30は、埓業員ぞの幎間3デナリの支払いを意味したす。これは、ゲヌムでは、財務蚈算が敎数で実行されるためです。





劎働者には毎月、簡単な公匏に埓っお絊䞎が支払われたす。

Zp_v_ denarii =月末の埓業員数*zp_worker/ 10/12

この金額は、垂の宝庫から、たずえばトロピコでは居䜏者の財垃に送金されたどこにも持ち蟌たれたせんが、これはたったく別の話です。



郜垂が借金を抱えおいる堎合、぀たり 䞊のメニュヌに衚瀺される金額が0未満の堎合、垂はロヌンの䞀皮であるロヌマに利息を支払い始めたす。

ロヌンの利率は10で、毎月垂の財務省から差し匕かれたす。



ペむアりト=-money_of_trend* 10/100/12



ロヌマが初めお5,000借金に達するず、ロヌマは融資を行いたすミッションによっお異なりたすが、通垞10,000日。2回目も金額を取埗できたすが、すでに融資ずしお考慮されおいたす。



繎金



毎月、郜垂の家は皎金を生み出したす。これは家のレベルずそこに䜏む人々の数に䟝存したす。 家からの皎金は、城収人が新しい幎の初めに通り過ぎるずきに城収され、城収されなかった堎合は前幎の金額が燃え尜きたす。 皎のレベルは、構成ファむルc3_model.txtで蚭定されたす。郜垂の耇雑さのレベルは、耇雑さのレベルによっおも圱響を受けたす。



難易床 係数
ずおも簡単 300
かんたん 200
わかった 150
難しい 100
ずおも難しい 75




自宅から皎金を蚈算するための最終的な匏は次のようになりたす。

総皎Dn=tax_base / 2*percentage_city_state_city/12 * 100



ファむル垝囜

幎末に、垂は収入の䞀郚をロヌマに送りたす。支払いは、垂の䜏民の数ず利益に䟝存したす。 ゲヌムでは、利益は収入ず支出の差です。 垂が借金を抱えおいる堎合、皎率は25で、皎は支払われたせんが、倩皇の奜意は枛りたす。

収益コンポヌネント 原䟡構成芁玠
寄付 建蚭業
商品の茞出 商品の茞入
ロヌン金利
定芏の絊料
残り
絊䞎




たた、皎の最小倀は、郜垂の人口によっお決たりたす。

人口 利益なし/利益あり
0〜500 0/50
501-1000 0/150
1001-2000 100/225
2001-3000 200/300
3001-5000 200/400
5000+ 200/500




倩皇の奜意



任務の成功に重芁な圹割を果たしおいるのは、支配者ず郜垂の評䟡に察する倩皇の態床です。 皇垝の気分に最も倧きな圱響を䞎えるのは、「郜垂の収益性」や、皇垝の芁求の履行/無芖などのパラメヌタヌです。



莈り物は、あなたに察する倩皇の意芋を倧いに増加させたすが、頻繁に莈り物をするこずで、圌らの圱響は著しく枛少したす。 有利な倉化を蚈算するずき、過去12か月間に行われたすべおのギフトが考慮され、それらは衚にリストされたす。

ギフト番号 控えめな 芪愛なる 玠晎らしい
1 3 5 10
2 1 3 5
3 0 1 3
4 0 0 1
5+ 0 0 0




皇垝によっお蚭定された時間に、芁求が満たされるず、䞀定の増加が埗られたす。 リク゚ストがCaesarによっお蚭定された時間より埌に完了した堎合、報酬の半分しか受け取れたせん。それを無芖するず、8ナニットだけ完党に敬意を倱いたす。締め切り。



ストヌリヌのリク゚ストずギフトに加えお、慈善の䟡倀の曎新は毎幎の初めに実行され、次の芁因に䟝存したす。

ベヌス倉曎 = -2

玍皎の成功 = 玍皎が成功した堎合は +1、1幎、2幎、たたは2幎以䞊玍皎しなかった堎合はそれぞれ-3、-5、-8。

絊䞎 =絊䞎が珟圚のルヌラヌレベルの絊䞎よりも䜎い堎合は+1、レベルを䞊回る各ランクに぀いおは-1

むベント =ミッションに䟝存したす。たずえば、人口1000人に達するず+5



文化の評䟡



ゲヌム内の文化の評䟡は、郜垂の魅力を刀断できる総合的な評䟡です。 それは、劇堎、寺院、孊校、アカデミヌ、図曞通での郜垂の報道のレベルで構成されおいたす。 間接的に、教育的芁玠の存圚文化のレベルは30以䞊によっお、郜垂には裕犏な垂民がいるこずがわかりたす。



文化_評䟡=劇堎_評䟡+寺院_評䟡+ラむブラリ_評䟡+å­Šæ ¡_評䟡+アカデミヌ_評䟡





劇堎の評䟡倀は、堎所に関係なく、劇堎の収容人数ず居䜏者数の比率に察応したす。

Theater_ Rating = 500 * working_theaters / populationの数。 このカバレッゞに埓っお、評䟡が遞択されたす。

カバレッゞ 文化ポむント
0〜30 0
31〜50 3
51〜70 8
71〜85 12
86-99 18
100 + 25






劇堎の評䟡は、堎所に関係なく、寺院の収容人数ず居䜏者数の比率に察応しおいたす。

神殿の評䟡= 150 *小寺院の数+ 300 *倧寺院の数+ 500 *神蚗の数。

劇堎ず同様に、評䟡倀は衚から遞択されたす。

カバレッゞ 文化ポむント
0〜30 0
31〜50 3
51〜70 9
71〜85 14
86-99 22
100 + 30




教育



孊校は最倧15の文化ポむントを持ち蟌み、蚈算は孊霢期の居䜏者に察しお行われ、各孊校は75人の生埒を収容したす。

アカデミヌは10文化ポむントを远加し、孊生幎霢の居䜏者に察しお蚈算が行われ、アカデミヌは100人の孊生を蚓緎したす。

図曞通には、䜏民の総数で蚈算される20ポむントがあり、1぀の図曞通で最倧800人の䜏民にサヌビスを提䟛できたす。

郜垂のカバレッゞレベルに察する文化ポむントの䟝存性を衚に瀺したす。

カバレッゞ å­Šæ ¡ アカデミヌ 図曞通
0〜30 0 0 9
31〜50 1 1 2
51〜70 4 2 4
71〜85 6 4 8
86-99 10 7 14
100 + 15 10 20




リ゜ヌスず生産





ゲヌムの経枈の基瀎はリ゜ヌスであり、䞀郚のリ゜ヌスは凊理が必芁です。そのため、たずえば鉄鉱山->歊噚など、最も単玔な生産チェヌンが珟れたす。ゲヌム内のリ゜ヌスは無制限です。ただし、魚の数が限られおいる釣りスポットは䟋倖です。



小麊は、ゲヌムが玹介する最初のリ゜ヌスです。䞭郚地方では、小麊蟲堎は他の蟲堎よりも効果的ですが、北郚および砂挠地域では機胜したせん。蟲堎は肥沃な土壌に眮かれ、地図䞊に黄色い芜ずしお衚瀺されたす。収穫物は玍屋たたは倉庫に運ばれたす。蟲堎、採掘ビル、およびワヌクショップは、1スキヌムに埓っお動䜜し、25ティックごずゲヌム1日に1回、次の匏に埓っお生産の進捗が曎新されたす。

毎日の生産進捗の蚈算匏
  productionRate -        100%  numberWorkers -      12 * 16 -   *    maximumWorkers -       progress += 100 * ( productionRate * numberWorkers) / (12 * 16 * maximumWorkers )
      
      







生産の最埌に、商品のポヌタヌが䜜成され、それが最寄りの保管堎所に配送されたす。商品を配達するこずが䞍可胜な堎合、圌は生産の近くに立ちたす。ポヌタヌがビゞヌで、新しい補品がすでに生産されおいる堎合、ポヌタヌがリリヌスされるたで生産は停止したす。



リ゜ヌスの保管ず配垃



リ゜ヌスの保管ず配垃には2぀のタむプの保管が関係したす。玍屋ず倉庫、玍屋は補品のみを保管し、垂堎トレヌダヌは玍屋から商品を受け取り、倉庫はあらゆる皮類の商品を保管し、商人に販売できたす。埓業員の数が半分未満の堎合、ボヌルトは商品の受け取りを停止し、ボヌルトは商品の配達に参加したせん。ただし、特別な「商品受け取り」モヌドは䟋倖です。別に。



商品のリ゜ヌス抜出、凊理、およびマヌケティングの組み合わせは、非垞に発展したこずが刀明したした。少数の商品はプレむダヌにミクロ管理を課したせん。たた、保管堎所や配送堎所の遞択など、ほずんどの日垞的なアクションの自動化により、戊略的蚈画のための定芏宀が残されたす。



この時点で、おそらく蚘事を終了したす。郜垂間の貿易や軍事䜜戊などのトピックは船倖に残り、それぞれが非垞に倧きく、ただ十分な資料がありたせん。ご枅聎ありがずうございたした、



ZY蚘事の最埌で、元のゲヌムの゜ヌスコヌドを埩元するずきに、ゲヌムのファンが芋぀けられなかった点や泚意を払わなかった点をさらに远加できるこずは間違いありたせん。オリゞナルの䜜者が慎重に磚き䞊げたバランスを厩さないように、ゲヌムロゞックに関する䞀般的なアむデアを埗るこずが重芁でした。埩元された゜ヌスに぀いおは、通垞のコンパむルするだけの倖芳にするのに十分な忍耐力はありたせんでしたが、芪切な人AntonBaracuda、github.com / AntonBaracuda / opencaesar3 / c3_revがこの倧倉な䜜業を完了したした。指定されたアドレスに、゜ヌスおよび郚分的に構造化されたファむルずいく぀かの関数がありたす。これらはすべおコンパむルおよび起動され、デバッガヌで最初の関数を実行できたす。



参照資料





(, )

CaesarIA: (opensource, c++, SDL)(Window,Linux,Mac,Haiku,Android)



All Articles