Author Topic: Nie udało się dokończyć budowy  (Read 7264 times)

Offline Andurin

  • Jr. Member
  • **
  • Posts: 93
    • View Profile
Re: Nie udało się dokończyć budowy
« Reply #30 on: October 30, 2012, 11:08:22 PM »
Robotnicy budowali palisadę, w końcu skończyło się drewno (w mieście było napisane o braku materiałów i pustym magazynie- przy drewnie stał myślnik), ale mimo to tragarz nie wyładował drewna.

Ile miałeś miejsca w magazynach? Zauważyłem, że gdy mamy magazyn tylko na 100 jednostek tragarze nie wyrzucają w mieście towarów(jeśli oczywiście niosą 100 szt "czegoś")

Offline liosan

  • Administrator
  • Hero Member
  • *****
  • Posts: 585
  • Kataj
    • View Profile
Re: Nie udało się dokończyć budowy
« Reply #31 on: November 07, 2012, 11:41:51 PM »
Nowy trop - kupiłem cegły na czarnym rynku. Afryka. Żadnych tragarzy. Deski dostarczał lokalny cieśla, pojedynczy budowniczy wznosił małą latarnię morską. Jak skończył, zostało mu 49 cegieł. Czyli jedną zjadł - proste. Budowniczy miał poziom drugi.

Liosan

Offline julusmaximus

  • Jr. Member
  • **
  • Posts: 59
    • View Profile
Re: Nie udało się dokończyć budowy
« Reply #32 on: November 08, 2012, 12:36:50 AM »
To nie budowniczy, tylko tragarze i czarny rynek. Gdy produkt powstaje w mieście i przepełnisz magazyn (100 sztuk czegokolwiek), to zostaje Ci 50 sztuk, a jak kupisz lub przyniesiesz 49 (choć nie zawsze).
214 India, 226 Chanat Kazański, 227 Królestwo Polskie

Offline hydro

  • developer
  • Administrator
  • Sr. Member
  • *****
  • Posts: 496
    • View Profile
Re: Nie udało się dokończyć budowy
« Reply #33 on: April 08, 2013, 12:33:25 PM »
Zdecydowanie nie jest to kwestia tragarzy :-)

Na starcie w magazynie było 100 tuzinów cegieł.
Po zbudowaniu placu targowego (30 tuzinów cegieł) i  szkoły (40 tuzinów cegieł) w magazynie zostało 100 - (40+30) - x = 29 tuzinów cegieł (screen 0056)
Nie było w międzyczasie żadnego noszenia cegieł przez tragarzy. Z miasta wyszli tylko tragarze z ubraniami.

Istnieje teoretycznie możliwość, że zaczęłam jakąś budowę, potem anulowałam, a teraz tego nie pamiętam - i gdzieś jakiś ułamek cegły się ukruszył :-)
Nie pamiętam, ale to nie jest niemożliwy scenariusz. Mogłam np. sprawdzać wstawiając budowniczego, ile czasu trwała by budowa domów, czy kościoła - przyzwyczaiłam się tak robić w poprzedniej wersji, więc być może teraz też tak odruchowo zrobiłam.

---
Od razu mówię - w ogóle nie traktuję tego jako błąd. Przyjęłam że to cecha a nie wada, zakładałam że musi być zapas o 1 zasób więcej (zresztą to bardzo realistyczne, w realu lepiej mieć zapas zasobów, a nie żeby kończył się węgiel na przedwiośniu) i w poprzedniej wersji cały czas stosowałam dwa obejścia:
1) noszenie zawsze o minimum 10 zasobów więcej niż trzeba na budowę (lepiej później wysłać tragarza niż zorientować się po paru dniach, że gdzieś zatrzymała się budowa).
2) jeśli w danym mieście jest możliwość - wyprodukowanie kimkolwiek tej jednej dodatkowej cegły / deski na miejscu w domu rzemieślnika (dodaję screena: 0056a) - sposób przydatny zwłaszcza na początku gry.
« Last Edit: April 08, 2013, 01:45:48 PM by hydro »

Offline liosan

  • Administrator
  • Hero Member
  • *****
  • Posts: 585
  • Kataj
    • View Profile
Re: Nie udało się dokończyć budowy
« Reply #34 on: April 08, 2013, 12:47:03 PM »
Z miasta wyszli tylko tragarze z ubraniami.
No i wszystko jasne - wynieśli cegłę!

Istnieje teoretycznie możliwość, że zaczęłam jakąś budowę, potem anulowałam, a teraz tego nie pamiętam - i gdzieś jakiś ułamek cegły się ukruszył :-)
Nie pamiętam, ale to nie jest niemożliwy scenariusz. Mogłam np. sprawdzać wstawiając budowniczego, ile czasu trwała by budowa domów, czy kościoła - przyzwyczaiłam się tak robić w poprzedniej wersji, więc być może teraz też tak odruchowo zrobiłam.
No, dobra... ale jak ktoś włożył cegłę, to trzeba potem ją wyjąć. Wydaje mi się, że gra ma takie założenie, że jak nikt nie zaczął budować to anulowanie konstrukcji jest "od ręki", a jak ktoś zaczął budować i poświęcił chociaż jedną "turę" na to, to potem musi przyjść budowniczy żeby zdemontować anulowaną konstrukcję budynku...

Liosan

Offline hydro

  • developer
  • Administrator
  • Sr. Member
  • *****
  • Posts: 496
    • View Profile
Re: Nie udało się dokończyć budowy
« Reply #35 on: April 08, 2013, 12:59:01 PM »
Z miasta wyszli tylko tragarze z ubraniami.
No i wszystko jasne - wynieśli cegłę!

To musieli przehandlować gdzieś po drodze, bo na miejsce dotarły tylko ubrania :-)

(...) a jak ktoś zaczął budować i poświęcił chociaż jedną "turę" na to, to potem musi przyjść budowniczy żeby zdemontować anulowaną konstrukcję budynku...

I odzyskać 50 % zasobów.

Edit: Ale masz rację, że trudniej zapomnieć rozmontowywanie zaczętego budynku niż tylko wstawienie budowniczego (żeby obejrzeć szacowany czas) i jego zabranie póki nie zaczął budowy. Tylko że nie jestem w stanie wykluczyć, czy tak jednak nie było :-)
« Last Edit: April 08, 2013, 01:05:15 PM by hydro »

Offline liosan

  • Administrator
  • Hero Member
  • *****
  • Posts: 585
  • Kataj
    • View Profile
Re: Nie udało się dokończyć budowy
« Reply #36 on: May 19, 2013, 06:49:40 PM »
Nową obserwację poczyniłem. Akurat zalogowałem się, patrzę - 7 minut do końca budowy palisady przez 3 budowniczych, zakończona w 97%. 5 minut później zaglądam jak im idzie - zostało 8 minut :/ Budowa zakończona w 98%. 3 minuty później - "brakuje materiałów budowlanych", 99% zakończenia budowy.

Czy to może mieć jakiś związek?

Liosan

Offline liosan

  • Administrator
  • Hero Member
  • *****
  • Posts: 585
  • Kataj
    • View Profile
Re: Nie udało się dokończyć budowy
« Reply #37 on: October 11, 2013, 09:01:56 AM »
Błąd został zidentyfikowany, a w każdym razie z dużym prawdopodobieństwem umiemy w kodzie palcem pokazać przyczynę. Niestety fix nie jest super-prosty, ale mamy nadzieję że na wersję 0.81 się załapie.

Problem nie był związany z tragarzami, tylko z budowniczymi awansującymi na kolejne poziomy.

Mam nadzieję, że uda mi się to w prosty sposób wyjaśnić... Chodzi o to, że tura budowania jest przeliczana tak, że wyznaczamy wydajność budowniczego - dajmy na to 4 roboczogodziny. Następnie odejmujemy tą wydajność od ilości pozostałych do wykonania roboczogodzin, a także wyjmujemy pewną ilość zasobów z magazynu. Taka dajmy na to świątynia wymaga 60000 roboczogodzin. Jeśli budowniczy ma wydajność 4 roboczogodziny, to 60000 się ładnie dzieli; podobnie jeśli ma wydajność 2, 3, 5 lub 6. Problem się pojawia, jeśli wydajność zmieni się w trakcie pracy - wtedy popracujemy trochę z wydajnością 4, trochę z wydajnością 5, i na koniec zostanie nam np. 3 roboczogodziny do wypracowania, i... proporcjonalna ilość materiałów budowlanych. A kiedy algorytm spróbuje wyciągnąć ilość materiałów proporcjonalną do wydajności 5, okaże się, że ich brakuje. Błąd polega na tym, że algorytm powinien brać pod uwagę ile pracy pozostało do wykonania, i nie pracować więcej niż potrzeba.

Liosan