Topic: Verbesserungsvorschlag : Baustellen produzieren Waren

Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 257
OS: Windows 11 Home 64-bit
Version: 1.2.1~rc1
Ranking
Tribe Member
Location: Deutschland
Posted at: 2024-08-13, 15:03

Wie von @Nordfriese im Thema : Einstellungen Soldaten gewünscht , unterteile ich meinen ursprünglichen Post und komprimiere Ihn :

Verbesserungsvorschlag :

Baustellen sollen die Möglichkeit erhalten auch Waren produzieren zu können .
Für Struktur Beispiele siehe angehängtes Bild .

Variante 1 :
- Es kann nicht definiert werden wann im Bauverlauf die Ware_B produziert werden soll .
- Es nicht möglich festzulegen das Ware_B erst dann produziert werden soll , wenn Ware_A konsumiert wurde .
- Es könnte zudem zu zahlreichen Fehlern bei der Berechnung des Baufortschritts und der Zeitspannen zwischen den Waren konsumieren , auftreten .
Aufwand : Niedrig 1/3
Risiko : Hoch 3/3

Variante 2 :
- Es kann definiert werden das eine Ware_B produziert wird , nachdem eine Ware_A konsumiert wurde .
Aufwand : Hoch 3/3
Risiko : Mittel 2/3

Variante 3 :
- Es kann nicht definiert werden das eine Ware_B produziert wird , wenn eine Ware_A konsumiert wurde .
- Es kann definiert werden das Ware_B produziert wird , nachdem Ware_a konsumiert wurde .
Aufwand : Mittel 2/3
Risiko : Niedrig 1/3

Aufwand Art : Neuer Code und bestehenden Code anpassen
Nutzen im Spiel : Mittel 2/3
Begründung : Ermöglicht es Waren aus der Gruppe der Transportmittel auch für Baustellen zu nutzen , ohne das diese dort vernichtet werden .
Bisher ist eine Rückgewinnung nur beim Abriss des Gebäudes möglich .

Edited: 2024-08-13, 15:04

Attachment: image/png
feature_request_constructionsites_produce_when_finished.png

Top Quote
Nordfriese
Avatar
Joined: 2017-01-17, 18:07
Posts: 2104
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2024-08-13, 16:03

Der Aufwand ist in allen Fällen hoch…

Was man noch am einfachsten umsetzen könnte, ohne den Constructionsite-Code massiv umzuschreiben, ist zu definieren, dass jedes Mal, wenn eine Ware vom Typ X verbraucht wird, N₁..Nᵢ Waren vom Typ Y₁..Yᵢ produziert werden.
Also etwa so:

produce_after_construction_finished = {
   planks = { granite = 1, rope = 2 },
   log = { granite = 3, water = 1 },
}

Das wäre machbar aber nicht trivial. In jedem Fall muss es sorgfältig durchdacht und getestet sein, diese Art von Logik ist anfällig für Bugs mit der parallelen Simulation. Ich sehe allerdings im OP keinen konkrete Verwendungszweck bzw. Notwendigkeit, um den Aufwand zu rechtfertigen.


Top Quote
kaputtnik
Avatar
Joined: 2013-02-18, 20:48
Posts: 2637
OS: Archlinux
Version: current master
Ranking
One Elder of Players
Location: Germany
Posted at: 2024-08-14, 07:56

Ermöglicht es Waren aus der Gruppe der Transportmittel auch für Baustellen zu nutzen , ohne das diese dort vernichtet werden .

Hm, ich verstehe das noch nicht so ganz. Wie soll eine Baustelle Waren produzieren? Was eine Baustelle produzieren könnte wäre Abfall: Sägespäne, Mörtelreste, Steinreste, ...


Top Quote
hessenfarmer
Avatar
Joined: 2014-12-11, 23:16
Posts: 2785
Ranking
One Elder of Players
Location: Bavaria
Posted at: 2024-08-14, 09:53

Ich denke er meint so etwas wie Mörteleimer, die dann wieder zu leeren Eimern werden.


Top Quote
Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 257
OS: Windows 11 Home 64-bit
Version: 1.2.1~rc1
Ranking
Tribe Member
Location: Deutschland
Posted at: 2024-08-14, 13:46

@hessenfarmer korrekt.


Attachment: image/png
leerer_eimer.png

Top Quote
kaputtnik
Avatar
Joined: 2013-02-18, 20:48
Posts: 2637
OS: Archlinux
Version: current master
Ranking
One Elder of Players
Location: Germany
Posted at: 2024-08-15, 08:02

Ich weiß nicht, ich finde das unlogisch (im Gegensatz zur Idee mit Heilung in Trainingsgebäuden).

Zu einer Baustelle werden Waren transportiert die für den Bau benötigt werden. Das Werkzeug (Hammer) bringt der Bauarbeiter mit. Wenn, dann könnte man überlegen ob der Bauarbeiter ein zusätzliches Werkzeug (z.B. Eimer) benötigt. Aber das auf einer Baustelle Waren erzeugt werden steht im Widerspruch zur sonstigen Logik von Widelands: Produktionsstätten erstellen Waren, die von anderen Arbeitern/Produktionsstätten benötigt werden. Eine Baustelle ist keine Produktionsstätte, imho.

Also -1 von mir.


Top Quote
Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 257
OS: Windows 11 Home 64-bit
Version: 1.2.1~rc1
Ranking
Tribe Member
Location: Deutschland
Posted at: 2025-02-21, 22:13

Ich muss nochmal nachfragen da ich noch nicht ganz das Ergebnis dieser Diskussion sehe.

kaputtnik ist gegen den Vorschlag -
Falls du deine Meinung dazu inzwischen geändert hast, dann tue dies kund, ansonsten gehe ich weiter von deiner bisherigen Positionierung zu den Vorschlag aus.

Nordfriese hat zwar geschrieben das es potenziell möglich wäre in gewisser Form, sieht aber keinen Verwendungszweck für diesen Vorschlag.
Ich interpretiere daher Nordfriese als Enthaltung - Oder ist das doch als Gegen den Vorschlag gemeint ?

hessenfarmer hat den Vorschlag gelesen aber ohne eine eigene Positionierung ( Für Vorschlag / Gegen Vorschlag ) abzugeben .

Ich frag nur damit ich das Ergebnis des Vorschlags entsprechend in der Liste labeln kann.


Top Quote
hessenfarmer
Avatar
Joined: 2014-12-11, 23:16
Posts: 2785
Ranking
One Elder of Players
Location: Bavaria
Posted at: 2025-02-21, 22:57

Also ich sehe das so, wie @Nordfriese, das Feature lohnt den Aufwand aus meiner Sicht nicht.
Das heißt nicht, dass ich jemanden daran hindern würde es zu implementieren.
Ich habe allerdings keine Kapazitäten irgenwas in dieser Richting zu tun.


Top Quote
Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 257
OS: Windows 11 Home 64-bit
Version: 1.2.1~rc1
Ranking
Tribe Member
Location: Deutschland
Posted at: Yesterday 20:08

Ich habe einen weiteren Verbesserungsvorschlag zu Baustellen:

Verbesserungsvorschlag - Baustellen können abgebrochen werden

Derzeit können Baustellen nur durch zerstören abgebrochen werden. Dabei gehen alle in der Baustelle gelagerten und auch schon im Gebäude verbauten Waren verloren. Ich würde es begrüßen wenn der Spieler die Möglichkeit hat auch Baustellen, wie normale Gebäude abzureißen. Ohne das die Baustelle in Flammen aufgeht.

Ich habe an folgende Lösung gedacht :

Die Einheiten-Klasse Baustellen bekommt eine neue Liste / Tabelle:

  • "Bereits verbaute Waren"

    • Jedesmal wenn der Bauarbeiter aus der bereits bestehenden Liste / Tabelle der gelagerten Waren in der Baustelle eine Ware verbraucht, um den Baufortschritt für das zu bauende Gebäude zu erhöhen, wird die verbrauchte Ware zwar weiterhin aus der bestehenden Liste / Tabelle gelöscht, aber sie wird intern nicht mehr gelöscht, sondern in die neue Liste / Tabelle der "bereits verbauten Waren" verschoben .

    • Wenn das Gebäude fertig gebaut wurde, wird die neue Liste / Tabelle einfach gelöscht, beziehungsweise hat keine Auswirkungen. Gleiches gilt wenn die Baustelle zerstört wird.

Wenn das Gebäude jedoch noch nicht fertig ist und der Spieler auf die neue Schaltfläche "Baustelle abbrechen" im UI-Menü der Baustelle, klickt, dann passiert folgendes:

  • Jedes Gebäude hat ja die Liste / Tabelle : return_on_dismantle, beziehungsweise bei Erweiterungen: return_on_dismantle_on_enhanced.
  • Der Bauarbeiter geht vom aktuellen %-Baufortschritt wieder runter bis auf 0% .
  • Dabei gibt er alle bereits verbauten Waren aus, die UND-Bedingung, auch in der Liste / Tabelle return_on_dismantle, beziehungsweise return_on_dismantle_on_enhanced aufgeführt sind .

Beispiel

Die Baracke

  • hat als Baukosten : [ * * ] , Zwei Bretter und ein Stamm .

  • gibt beim abgeriss zurück : [ * ] Zwei Bretter .

  • Wenn die Baustelle bei 66% steht, weil noch ein Brett fehlt und der Spieler die Baustelle abbricht, dann gibt die Baustelle ein Brett zurück ,

  • da die Baracke zwei Bretter beim abriss zurückgibt , aber nur ein Brett bereits verbaut wurde .

  • Der Stamm der bereits verbaut wurde , wird nicht zurück gegeben , da dieser nicht in der Abriss Liste / Tabelle der Baracke aufgeführt ist .

Probleme

Allerdings sehe ich auch Probleme :

  1. Was ich gelernt habe ist , das bei Gebäude-Erweiterungen die Liste / Tabelle return_on_dismantle_on_enhanced zu der Liste return_on_dismantle + addiert wird.

    • Das ist zwar kein direktes Problem aber was ist für den unwahrscheinlichen Fall das ein Gebäude mehr Waren in der Abriss Liste / Tabelle definiert hat , als es an Baukosten hat?
  2. Was ist wenn in der Abriss Liste / Tabelle Waren aufgeführt sind die aber in der Baukosten Liste / Tabelle nicht vorkommen? Siehe Europäher Add-On

    • In diesen Fall soll die in der Abriss Liste / Tabelle aufgeführte Ware zurückgegeben werden, aber gegen welche verbaute Ware?

Text Formatierung

@kaputtnik:

  • ich habe mich an deine Empfehlung keine >br< Zeilenumbruch-Zeichen im Text von Posts zu verwenden gehalten, aber der Post sieht für mich sehr langgestreckt aus, riesige Lücken zwischen den einzelnen Sätzen, die mit >br< nicht wären .

  • Außerdem funktioniert die Aufzählung im Abschnitt Probleme nicht . Ich habe beim zweiten Problem mit "2." begonnen , angezeigt wird jedoch "1." .


wurde von janus bearbeitet, original folgend:

Ich habe einen weiteren Verbesserungsvorschlag zu Baustellen :

Verbesserungsvorschlag - Baustellen können abgebrochen werden

Derzeit können Baustellen nur durch zerstören abgebrochen werden .

Dabei gehen alle in der Baustelle gelagerten und auch schon im Gebäude verbauten Waren verloren .

Ich würde es begrüßen wenn der Spieler die Möglichkeit hat auch Baustellen, wie normale Gebäude abzureißen . Ohne das die Baustelle in Flammen aufgeht .

Ich habe an folgende Lösung gedacht :

Die Einheiten-Klasse Baustellen bekommt eine neue Liste / Tabelle : "Bereits verbaute Waren"

Jedesmal wenn der Bauarbeiter aus der bereits bestehenden Liste / Tabelle der gelagerten Waren in der Baustelle eine Ware verbraucht ,

um den Baufortschritt für das zu bauende Gebäude zu erhöhen , wird die verbrauchte Ware zwar weiterhin aus der bestehenden Liste / Tabelle gelöscht ,

aber sie wird intern nicht mehr gelöscht , sondern in die neue Liste / Tabelle der "bereits verbauten Waren" verschoben .

Wenn das Gebäude fertig gebaut wurde , wird die neue Liste / Tabelle einfach gelöscht , beziehungsweise hat keine Auswirkungen . Gleiches gilt wenn die Baustelle zerstört wird .

Wenn das Gebäude jedoch noch nicht fertig ist und der Spieler auf die neue Schaltfläche "Baustelle abbrechen" im UI-Menü der Baustelle , klickt , dann passiert folgendes :

Jedes Gebäude hat ja die Liste / Tabelle : "return_on_dismantle" , beziehungsweise bei Erweiterungen : "return_on_dismantle_on_enhanced" .

Der Bauarbeiter geht vom aktuellen %-Baufortschritt wieder runter bis auf 0% .

Dabei gibt er alle bereits verbauten Waren aus , die UND-Bedingung , auch in der Liste / Tabelle "return_on_dismantle" , beziehungsweise "return_on_dismantle_on_enhanced" aufgeführt sind .

Beispiel

Die Baracke

hat als Baukosten : [ * * ] , Zwei Bretter und ein Stamm .

gibt beim abgeriss zurück : [ * ] Zwei Bretter .

Wenn die Baustelle bei 66% steht weil noch ein Brett fehlt und der Spieler die Baustelle abbricht , dann gibt die Baustelle ein Brett zurück ,

da die Baracke zwei Bretter beim abriss zurückgibt , aber nur ein Brett bereits verbaut wurde .

Der Stamm der bereits verbaut wurde , wird nicht zurück gegeben , da dieser nicht in der Abriss Liste / Tabelle der Baracke aufgeführt ist .

Probleme

Allerdings sehe ich auch Probleme :

  1. Was ich gelernt habe ist , das bei Gebäude-Erweiterungen die Liste / Tabelle "return_on_dismantle_on_enhanced" zu der Liste "return_on_dismantle" + addiert wird .

Das ist zwar kein direktes Problem aber was ist für den unwahrscheinlichen Fall das ein Gebäude mehr Waren in der Abriss Liste / Tabelle definiert hat , als es an Baukosten hat ?

  1. Was ist wenn in der Abriss Liste / Tabelle Waren aufgeführt sind die aber in der Baukosten Liste / Tabelle nicht vorkommen ? Siehe Europäher Add-On ?

In diesen Fall soll die in der Abriss Liste / Tabelle aufgeführte Ware zurückgegeben werden , aber gegen welche verbaute Ware ?

Text Formatierung

@kaputtnik , ich habe mich an deine Empfehlung keine >br< Zeilenumbruch-Zeichen im Text von Posts zu verwenden gehalten ,

aber der Post sieht für mich sehr langgestreckt aus , riesige Lücken zwischen den einzelnen Sätzen , die mit >br< nicht wären .

Außerdem funktioniert die Aufzählung im Abschnitt Probleme nicht . Ich habe beim zweiten Problem mit "2." begonnen , angezeigt wird jedoch "1." .

Edited: Yesterday 21:07

Top Quote
MarkMcWire
Avatar
Joined: 2017-02-08, 21:06
Posts: 362
Ranking
Tribe Member
Location: Eisenach, Germany
Posted at: Yesterday 20:51

kaputtnik wrote:

Ermöglicht es Waren aus der Gruppe der Transportmittel auch für Baustellen zu nutzen , ohne das diese dort vernichtet werden .

Hm, ich verstehe das noch nicht so ganz. Wie soll eine Baustelle Waren produzieren? Was eine Baustelle produzieren könnte wäre Abfall: Sägespäne, Mörtelreste, Steinreste, ...

Genau diesen Ansatz habe ich bei den Europäern. Beim Abreißen von Gebäuden, bei welchen als Baumaterial Stamm or Bretter benötigt wurden, wird immer Altholz "erzeugt". Man kann also nie die originale Ware zurückgewinnen und bekommt stattdessen eine Abfall-Ware, welche dann bspw. in Köhlereien zu Kohle verarbeitet werden kann. Aus Mörtel und Ziegeln ziehe ich "Granit" (Stein) als Abfall, da ich hierfür keine explizite Abfallware definiert habe. Dieses Granit kann dann wieder zu neuem Mörtel oder neuen Ziegeln verarbeitet werden.

Der Grund für den Ansatz ist neben Realismus auch die Tatsache, dass sonst Sägewerke, Steinmetze usw. keine Arbeit mehr haben und im Laufe der Spielzeit überflüssig werden. Denn irgendwann haben sie ja mal genügend Baumaterial produziert, dass die Reserve in den Lagern den Bedarf im weiteren Spielverlauf komplett abdeckt. So viele Gebäude kann man irgendwann nicht mehr neu bauen, wie man Reserve an Baumaterial hat. Und Gebäude, welche die ganze Zeit nur 0% Produktivität haben, ziehen nur die Statistik nach unten, deswegen lasse ich Sägewerke usw solange weiter produzieren, wie es Nachschub an Holz von den Holzfällern gibt.

Edited: Yesterday 21:04

My widelands addons: https://drive.google.com/file/d/1jopANlODo41T2reHJ0zaCOMYxq_rxXP-/view?usp=sharing

Top Quote