Jurnalul Căpitanului #57: Ce conține actualizarea 4.3
37.6k
Salut tuturor, sunt căpitanul Marek. De la ultima noastră jurnal de bord a trecut ceva timp, însă nu am stat cu mâinele în sân (așa cum se va vedea mai târziu, spre deosebire de unele dintre trenurile voastre). Am fost ocupați lucrând la funcții noi și îmbunătățiri, pe care voi prezenta în jurnalul de bord de azi. Și sunt încântat să anunț că toate acestea vor fi disponibile în câteva săptămâni, în cadrul actualizării 4.3! Această actualizare este foarte bogată, așa că luați ceva de băut, pentru că am multe de spus.
Suport complet pentru materiale mixte
În sfârșit a ajuns: suport complet pentru materiale mixte în întregul joc. Acest lucru înseamnă că materialele mixte extrase pot fi stocate în depozite, transportate pe benzi rulante și încărcate pe trenuri! Acest lucru poate avea un impact destul de mare asupra modului în care îți proiectezi minele sau operațiunile de terasamente. De exemplu, vei putea avea o instalație centralizată de sortare a minereurilor. Sau, materialele extrase pot fi transportate și descărcate în altă parte fără sortare, făcând terasamentele mai rapide și mai ușoare.
Suportul pentru materiale mixte poate părea evident acum, însă permiteți-mi să recapitulez cum am ajuns aici.

Unii dintre voi poate că vă amintiți că, înainte ca materialele mixte să devină un lucru obișnuit, camioanele și excavatoarele puteau transporta doar un singur material la un moment dat. Acest lucru funcționa bine, însă făcea ca extracția să fie foarte ineficientă atunci când erau prezente mai mult de un material. Dacă un camion era încărcat pe jumătate cu minereu, iar excavatorul ridica rocă, camionul trebuia trimis departe doar parțial încărcat. Acest lucru era în special problematic pentru camioanele de transport de nivel 3, care erau adesea văzute circulând cu un mic și trist deal de material în încăpătoarele lor uriașe, ceea ce ducea la o utilizare foarte slabă.
Un screenshot dintr-un raport de eroare din 2022, în care camioanele circulă parțial încărcate, iar jucătorul nu prea e mulțumit de situație. Mai cine-și mai amintește de interfața veche?
Pentru a gestiona camioanele parțial încărcate, am implementat suport pentru materiale mixte pentru excavatoare și camioane. Acest lucru a rezolvat problema de utilizare din mină, însă au apărut noi probleme. Camioanele trebuiau să descarce fiecare material separat la depozite sau mașini corespunzătoare, deplasându-se adesea pe întregul complex industrial parțial încărcate și livrând fiecare material pe rând, în timp ce excavatele stăteau inactivate în mină.
Așadar, a treia completare a fost planta de sortare a minereului, unde camioanele pot descărca integral încărcătura dintr-o singură dată. Acest lucru a rezolvat problemele de livrare, însă acum fiecare mină trebuia să aibă o plantă de sortare și toate produsele acesteia trebuiau transportate separat. Așadar, fiecare mină avea nevoie de un spațiu de stocare pentru rocă, un spațiu de stocare pentru pământ, un spațiu de stocare pentru minereul etc. Mai mult, pentru a arunca materialele cu un distribuitor de stive, acestea trebuiau sortate în prealabil, chiar și atunci când nu conțineau deloc minereul util. Așadar, da, v-am obligat să sortați rocă de pământ doar pentru a arunca ambele în ocean.
Înainte de suportul pentru materiale mixte, fiecare mină avea nevoie de o instalație de sortare, măcar pentru manipularea pământului și a stâncilor în exces.
Incorporarea unor materiale mixte în sistemele existente și menținerea compatibilității a reprezentat o sarcină cu adevărat complexă, în special pentru ca aceasta să funcționeze într-un mod performant, sistemul fiind deja profund optimizat pentru produse individuale.
Este complexă pentru că fiecare entitate trebuie să urmărească amestecul. Acesta înseamnă că fiecare spațiu de stocare, fiecare vagon și fiecare grămadă de pe o bandă transportatoare trebuie să conțină acum niște date suplimentare, ceea ce crește complexitatea codului și amprenta de memorie și necesită cicluri CPU suplimentare pentru a fi procesate. Vestea bună este că am optimizat alte părți ale jocului, astfel încât efectul net asupra performanței ar trebui să fie minim.
Stațiile de sortare a minereurilor dispun acum de porturi de alimentare prin bandă transportatoare, astfel încât materialele mixte pot fi livrate prin benzi transportatoare, nu doar prin mijloace de transport. De asemenea, materialele pentru care stația nu este configurată pentru sortare pot fi trimise către un port de ieșire nesortate. De asemenea, turnurile de mină pot fi asociate cu depozite pentru materiale mixte, astfel încât nu mai este necesară o stație de sortare la fiecare mină.
Suntem foarte entuziaști că am reușit să finalizăm totul înainte de Update 5.
Stația de sortare a minereului este alimentată de vehicule și trenuri, sortând exclusiv bauxitul și lăsând restul nesortat pentru eliminare.
Urmărirea materialelor reciclabile
Grăție suportului pentru materiale mixte, am reușit să îmbunătățim și modul în care sunt urmărite materialele reciclabile. Am depus eforturi suplimentare pentru a proiecta sistemul de materiale mixte astfel încât să fie generic, permițând combinarea nu doar a minereurilor, ci a oricărui tip de material (modderii ar putea considera acest lucru util). Deci ce s-a schimbat?
Până acum, materialele reciclabile erau urmărite la nivel global. Când se producea un produs recicabil, de exemplu într-un laborator de cercetare sau într-un depozit de mentenanță, proporția acestuia era înregistrată într-un register global (indiferent de proveniența sa). Apoi, atunci când o instalație de sortare a deșeurilor separa materialele recicabile, deșeurile rezultate erau create pe baza acestui register global.
Această gestionare globală a avut câteva efecte secundare ciudate. De exemplu, materialele reciclabile provenite din producția de Întreținere I, care utilizează doar fier și ar trebui să returneze doar deșeuri de fier, returnau și deșeuri de cupru și sticlă, doar pentru că un laborator de cercetare situat în altă parte a fabricii consuma produse pe bază de cupru și sticlă.
Un alt efect secundar destul de amuzant: jucătorii care adăugaseră materiale reciclabile folosind cheat-uri, sperând la ceva scrap gratuit și tentant, nu au primit nimic, deoarece registrul global nu avea nregistră a din ce erau făcute acele materiale reciclabile. Acest lucru ni a fost semnalat ca un bug de mai multe ori. Așadar, învățătura acestei povești este: nu faceți cheat-uri (cel puțin nu înainte de Update 4.3).
În actualizarea 4.3, toate materialele reciclabile urmăresc din ce au fost fabricate pe parcursul procesului, în același mod ca materialele extrase, astfel încât se comportă așa cum se așteaptă toată lumea. Acest lucru înseamnă de asemenea că acum sunt posibile și plante locale de sortare a deșeurilor care procesează doar anumite tipuri de materiale reciclabile.
Un detaliu care poate interesa câțiva dintre voi: un produs reciclabil se transformă în 2 produse menajere. În salvările existente, materialele reciclabile vor fi convertite automat, iar produsele de pe benzi, în vehicule sau în instalațiile de sortare vor fi mutate în depozite pentru a simplifica lucrurile din partea noastră. Am reparat și setările care ignoră raportul de reciclare, așa că așteptați-vă la mai puține materiale reciclabile din partea acestora decât înainte.
Stația locală de sortare primește doar materiale reciclabile provenite de la o singură linie de producție și emite doar fier și cupru reciclabil.
Suprapuneri
Pe măsură ce fabricile devin tot mai mari, devine tot mai dificil să identifici problemele și să previi întreruperile sau chiar spiralele morții. Aproape fiecare actualizare adăugăm mai multe instrumente pentru a ajuta la acest lucru, iar în actualizarea 4.3 prezentăm suprapuneri!
Un overlay afișează informații despre entități direct în vizualizarea jocului, transformând totul în gri și colorând doar entitățile de interes. Pentru a te ajuta să începi, am adăsit 8 noi overlays:
- Productivitate
- Poluare
- Prioritate
- ElectricitateCalcul
- Angajați
- Întreținere
- Fluxul produsului
O rafinare avansată cu suprapunerea productivității. Verde înseamnă că o mașină este ocupată 100%, roșu înseamnă că este inactivă.
Sistemul de suprapunere este extensibil, astfel încât modurile să îl poată folosi pentru a vizualiza orice informații despre entități care le interesează. Cred că mulți dintre voi îl veți considera foarte util pentru a vedea în sfârșit lucruri precum poluarea radioactivă, care altfel era „invizibilă” (așa cum radiațiile tind să fie).
Suprapunerea de poluare arată poluarea aerului, poluarea din depozitele de deșeuri și poluarea cu radiații (nemenționată).
Produsele radioactive uitate într-o șantier naval sunt mult mai ușor de localizat grație stratului de poluare. Cum diavolul au ajuns acolo?
Am adăugat și un strat de afișare a vitezei maxime pe șine, pentru a te ajuta să proiectezi șine de tren eficiente. Acesta este vizualizat sub forma unei linii colorate peste șine. Un lucru pe care ar trebui să-l știi: pantele abrupte de 25% au acum o limită de viteză de 80 km/h, similar cu curbele medii R 22. Pantele mai blânde de 12% încă nu au nicio limită de viteză.
Suprapunerea vitezei trenului: roșu indică limita de 40 km/h, galben 80 km/h, iar șinele marcate cu verde au viteză maximă nelimitată.
Vagoane și stații protejate împotriva radiațiilor
Vorbind despre trenuri și radiații, mulți dintre voi ni ați spus că gestionarea materialelor radioactive poate deveni dificilă și că nu există o opțiune viabilă de transport pe distanțe lungi. Acum ceva timp am avut o eroare prin care produsele radioactive puteau fi încărcate pe trenuri, ceea ce ducea foarte rapid la niveluri foarte ridicate de poluare cu radiații din cauza capacității mari a trenurilor.
Inițial, am gândit doar să adăugăm o rețetă pentru ambalarea și demarcalarea materialelor radioactive, astfel încât variantele ambalate să poată fi tratate ca produse unitare obișnuite, neradioactive. Totuși, în stilul nostru specific MaFi Jocuri, am decis să o facem în felul cel mai dificil și am creat o clasă complet nouă de vagoane de tren și de stații. În schimb, artistul nostru 3D a lucrat la ele timp de peste două luni, însă considerăm că rezultatul a meritat efortul. Și, în cazul în care vă întrebați, vagoanele și stațiile ecranate împotriva radiațiilor vor face parte din jocul de bază.
Noile stații de tren și vagoane izolate de radiații pot stoca și transporta orice fel de cargou radioactiv fără a provoca poluare cu radiații. Au o capacitate mai redusă de 240 de unități, iar încărcarea unui vagón complet durează aproximativ de două ori mai mult. Asigură-te doar că produsele radioactive nu se acumulează pe benzile transportatoare.
În cadrul acestei schimbări, am îmbunătățit și modul în care urmărim radiațiile în joc. Nu mai trebuie să fie posibilă „scăparea” radiațiilor prin numărarea greșită a produselor radioactive produse și consumate. Jocul poate detecta și repara automat astfel de probleme, fie că provin din erorile codului nostru, fie din moduri.
Produs de fisiune, un subprodus al funcționării reactoarelor rapide multiplicatoare, încărcat pe un tren care va fi transportat către o depozitare sigură pe termen lung.
Statistici de activitate pentru trenuri
În timp ce straturile de informații te ajută să diagnostichezi problemele din fabrica ta, am adăugat și statistici de activitate și deplasare pentru a te ajuta să diagnostichezi problemele legate de trenuri. Pe lângă statisticile pe tren, există și statistici pe linie disponibile în managerul de linii.
Graficul de activitate prezintă o descompunere lunară și anuală a activităților locomotivei, împărțite în 4 categorii: , , și . Acesta vă poate ajuta să evaluați utilizarea generală a unei locomotive sau a unei linii. De exemplu, când locomotivele nu stau niciodată inative, s-ar putea să fie necesară adăugarea mai multor locomotive. Sau, dacă locomotivele petrec prea mult timp la reîncărcare, poate a sosit momentul să reconsiderați locațiile stațiilor de alimentare.
Statistici de productivitate a liniei de tren care arată că linia de tren afișată funcționează aproximativ 50% din timp, iar restul timpului trenurile sunt staționate.
Și nu ne-am oprit aici. Trenurile colectează acum și un al doilea statistic privind eficiența călătoriilor. Acesta afișează 5 stări: , , , și . Interpretarea acestui statistic poate fi puțin subtilă. O rețea de trenuri sănătoasă își petrece majoritatea timpului accelerând/frânând sau circulând la viteză maximă, iar cât mai puțin timp posibil limitată de viteza maximă admisă pe linie sau blocată de alte trenuri.
Noile statistici de parcurs cu trenul care arată cât timp petrece trenul în lucru util comparativ cu timpul pierdut din cauza blocării sau a limitării vitezei impuse de linia ferată.
Această funcție a fost în parte inspirată de , care optimiza împreună cu o rețea feroviară de mari dimensiuni, dar care uneori nu dispunea de instrumente de diagnosticare adecvate. Dacă doriți să aflați mai multe despre concluziile lor, consultați , care conține link către video și o secțiune detaliată TL;DW despre concluziile lui ringgeest11. Sperăm că noile statistici și suprapunerea vitezei maxime vor face optimizarea rețelelor feroviare mai ușoară.
Vizualizări îmbunătate la transferul de produse
Dacă ai un ochi ascuțit, poate ai observat că produsele de la începutul și la sfârșitul benzilor transportatoare apar și dispar destul de brusc. Acest lucru există în joc încă de la început. Se întâmplă pentru că benzile transportatoare se termină chiar la marginea plăcii unde începe mașina, astfel încât fiecare produs apărea sau dispărea în timp ce jumătate din el era încă vizibilă.
Aceasta ne-a deranjat mult timp, iar Update 4.3 pune în sfârșit capăt acestei probleme. Transporturile acum simulează produsele la jumătate de casetă în interiorul mașinilor, astfel încât tranziția are loc în afara câmpului vizual. Datorită acestui lucru, conectorii nu mai simulează întârzierea intern, ceea ce îi face cu aproximativ 25% mai rapizi la simulare.
Server API web
Am avut această idee de câțiva ani acum, și în sfârșit este gata: Captain of Industry poate fi acum un server web! S-ar putea să vă întrebați dacă iau pastile de nebun (pe care nici nu le pot confirma, nici nega), dar ascultați-mă.
Este acum posibil să pornești un server web folosind comanda din consolă. Apoi, orice dependență globală din joc poate să se conecteze la o rută (URL) și să răspundă la cereri. Configurarea este extrem de simplă: trebuie doar să definești o metodă și să returnezi un răspuns, care poate fi HTML, JSON sau date binare.
[WebRoute("/hello")]
private string hello(string name = "world") {
return $"Hello {name}!";
}
Este, de asemenea, posibilă controlul complet al jocului prin trimiterea de comenzi. De exemplu, panoul nostru de demonstrație arată cum poate fi controlată viteza jocului și cum poate fi obținut un screenshot.
Panou de demo care permite controlarea vitezei jocului din browser.
Așadar, la ce este utilă aceasta? Inițial, am portat unele dintre instrumentele noastre de dezvoltare la această nouă interfață, ceea ce a simplificat lucrurile în interior. Dar cel mai excitant caz de utilizare este cel al modding-ului. Ne imaginăm că creatorii de moduri vor putea folosi browser-ul ca un ecran secundar al jocului, pentru prezentarea de informații suplimentare, precum panouri de control, alerte, note etc.
Când dev-ul nostru, Matt, a văzut această funcție, a venit rapid cu un prototip de minihartă în stil Google Maps, unde poți face zoom in și zoom out și poți urmări jocul în timp real, inclusiv vehiculele care se deplasează. A mers chiar atât de departe încât le-a făcut selectabile și a afișat locația lor. Acesta a fost doar un prototip intern pentru testarea funcționalității.
Demonstrația lui Matt a unei mini-hărți interactive, care rulează în browser și comunică în timp real cu jocul.
API-urile oficial suportate sunt în prezent limitate la dashboard-ul nostru de demonstrație și la recuperarea capturilor de ecran, însă vom urmări îndeaproape modul în care această funcționalitate este utilizată și o vom extinde în actualizările viitoare.
Notă: Serverul web rulează local pe calculatorul dumneavoastră și nu poate fi accesat din internetul public.
Traduceri pentru changelogs și moduri
Avem și noi vești pentru vorbitorii de limbi străine. Începând cu actualizarea 4.3, toate jurnalele de modificări vor fi traduse în toate cele 20 de limbi suportate și afișate în limba selectată în joc.
Jurnalurile de modificări sunt traduse automat, iar aceasta a fost o decizie deliberată. Acestea tind să fie lungi și tehnice, iar traducerile lor sunt sensibile la timp și de scurtă durată. Nu am considerat că ar fi meritat ca oamenii să își petreacă timpul și efortul traducându-le, însă faptul că sunt cel puțin traduse automat aduce totuși valoare pentru vorbitorii de alte limbi decât engleza. Jurnalul de modificări din joc are o opțiune de afișare a originalului în engleză în cazul în care ceva se pierde în traducere.
Restul jocului rămâne în principal tradus de la om la om prin intermediul . Vă mulțumim tuturor pentru contribuțiile și corecțiile continue!
Fereastra nouă de changelog cu o linie temporală în stânga, care afișează changelogul tradus.
În continuare, modurile pot oferi acum traduceri pentru propriile șiruri de caractere, în același mod în care este tradus jocul principal. Pur și simplu plasați fișierele traduse în în interiorul directorului modului. Pentru a obține un șablon de traducere, rulați comanda din consola jocului.
Vedem și multe moduri create de vorbitori de limbi non-englizești, așa că modurile de pe Hub pot oferi acum descrieri traduse prin interfața Hub, care vor fi afișate atât în joc, cât și online. De asemenea, luăm în considerare un sistem semi-automat pentru a ajuta autorii de moduri cu traducerile, dar vom detalia acest aspect mai târziu (dacă ești autor de moduri și ești interesat, nu ezita să ne contactezi).
Noua experiență de configurare inițială și setările de limbă
Dacă citești acest text și încă nu ai cumpărat jocul, avem și noi vești pentru tine, ceva ce doar tu vei putea experimenta! Am adăugat o nouă experiență de pornire care face ca prima lansare a jocului să fie mai lină.
Când jocul este lansat pentru prima dată, în loc să te arunce direct în meniul principal, va afișa acum un ecran de selecție a limbii. Aici poți alege limba cu un singur clic, fără a reporni jocul. Dacă limba Steam sau a sistemului de operare corespunde uneia dintre limbile acceptate, aceasta este afișată în mod prominent în partea de sus, toate celelalte limbe fiind listate mai jos.
Ecranul de selectare a limbii la pornirea jocului. Așa cum puteți vedea, jocul este acum localizat și în limba engleză britanică! Aluminiul și sulful sunt în sfârșit scrise corect.
În continuare, dacă PC-ul tău are mai mult de un ecran, vei vedea o selecție a modului de ecran și fereastră în care poți alege rapid ecranul pentru joc. Au dispărut zilele în care jocul se pornea pe monitorul secundar și trebuiau să navighezi prin setări cu capul dat pe parte ca să găsești opțiunea de a remedia problema.
Selectarea ecranului și dialogul pentru modul ferestrei în timpul configurării inițiale.
Pe lângă procesul de onboarding, limba jocului poate fi acum selectată dintr-o listă derulantă din meniul principal, iar modificarea se aplică imediat, fără a fi necesară repornirea jocului. Acest lucru ar trebui să pună capăt frustrării cauzate de căutarea setării de limbă într-un meniu pe care nu poți să-l citești.
Noua gestionare a sunetului
Acest articol devine lung, așa că pe scurt: am rescris complet modul în care sunt gestionate și redate sunetele în joc. Fabricile mai mari au mii de surse de sunet, iar sistemul implicit Unity nu făcea față.
Limitarea principală constă în numărul de sunete care pot reda simultan. Dacă aveți, de exemplu, 20 asamblatoare în apropiere, acestea ocupă toate sloturile de sunet și nu veți auzi nimic altceva. Foarte plăcut dacă sunteți un mare fan al sunetului asamblatorilor, mai puțin pentru ceilalți. Am implementat un sistem de clusterizare care combină sunetele similare, astfel încât să puteți auzi mai multă varietate. Există și o nouă setare a calității sunetului care controlează câți sunete pot reda simultan.
Am adăugat și sunete de ambient noi, așa că, pentru prima dată în istorie, poți aude oceanul sau pădurea! Acest sistem este destul de complicat: trebuie să detectăm dinamic ce apare pe ecran pentru a decide ce sunet de ambient să redăm, pentru că, spre deosebire de alte jocuri, în Captain of Industry ceea ce odată a fost un munte poate deveni ocean și invers.
Prăbușirile de teren au acum și ele propriile sunete. Acestea diferă în funcție de materialele moi sau dure și devin tot mai puternice pe măsură ce tot mai mult teren se prăbușește, așa că atunci când subminezi un munte, vei auzi exact cât de proastă idee a fost asta.
Suntem încă în proces de calibrare a noului sistem de sunet și intenționăm să adăugăm mai multe și mai bune efecte sonore în timp.
Vizualizarea de depanare pentru noul motor de sunet. Din aproximativ 620 de emitori, doar 34 sunt active.
Simulare deterministă
Am petrecut destul de mult timp asigurându-ne că jocul este determinist. Chiar înainte de Update 4.3, patch-urile v0.8.7b, c și d au rezolvat multe probleme care făceau ca jocul să se comporte ușor diferit între runde, sau chiar în funcție de producătorul CPU-ului. Mulțumim lui OPOSTOL de pe Discord, care a raportat multe dintre aceste probleme legate de determinism.
Această lucrare are trei motivații principale. În primul rând, pentru a face bug-urile reproductibile și mai ușor de rezolvat. Rezolvarea problemelor pe care nu le putem reproduce, sau care apar doar uneori, este mult mai dificilă, iar chiar și așa nu putem fi siguri că au fost rezolvate corect. Cu o reproducere stabilă, putem nu doar să rezolvăm și să verificăm bug-ul, ci și să scriem un test astfel încât să nu mai reapară niciodată. Determinismul ne ajută chiar și la bug-uri care nu sunt ale noastre: dacă același save se desfășoară diferit de două ori pe același calculator, vinovatul este cel mai probabil hardware-ul, cum ar fi un procesor Intel de generația a 13-a care ocazional decide că 2 + 2 = 5 ().
>
Al doilea motiv sunt replays-urile. Un replay este o listă de comenzi ale jucătorului care poate reproduce perfect întreaga istorie a unei salvări. Lucrăm în prezent la un astfel de sistem.
Al treilea și, probabil, cel mai entuziastant motiv este că un joc complet determinist face posibil multiplayer-ul, așa că toată această efort ne apropie de acest obiectiv. Faptul că putem chiar să ne gândim la multiplayer se întinde până la deciziile inițiale de design a jocului din acum 7+ ani. Pentru toți acești ani, am construit jocul astfel încât multiplayer-ul să rămână o opțiune într-o zi. Suntem chiar atât de aproape încât există deja moduri care implementează funcționalități de bază pentru multiplayer pe deasupra sistemelor noastre interne.
Concluzie
Acesta este tot știrile principale pentru actualizările viitoare. Vor exista și mai multe modificări mai mici, dar le puteți citi în jurnalul de modificări o dată cu lansarea actualizării, peste câteva săptămâni. Dacă doriți să încercați din timp, urmăriți ramura experimentală. Vă mulțumim pentru interes și spuneți-ne ce credeți pe forumul nostru!
Apropo, dacă nu vrei să pierzi nicio lansare sau articol, te poți abona la lista noastră de corespondență la .
PS: Angajăm!
În prezent căutăm și, eventual, . Dacă crezi că tu sau o persoană pe care cunoști ai putea fi potriviti, spune-ne!
### 🎯 Captain of Industry Patch Assessment & Mecanică de joc Verdict
This official developer update zeroes in on network tick rate, quality-of-life (QoL) refinements, and client stability. These optimizations mitigate frametime micro-stutters during heavy combat scenarios, resulting in significantly smoother input responsiveness.
Have thoughts, questions, or benchmarks on this topic? Join the discussion on our forums.
Join Discussion ➔

Alătură-te conversației