Technik-Tagebuch von den Anno-Entwicklern

5
Special Falk Jeromin Als bevorzugte Quelle auf Google hinzufügen

In ersten Teil des Anno 1404-Entwicklertagebuchs auf PCGH stellen wir das proprietäre Multi-Threading-System vor, das Related Designs für seine neue 3D-Engine entwickelt hat und das erstmals in Anno 1404 zum Einsatz kommt.

Anno 1404: Entwicklertagebuch zum Thema Multi-Threading Anno 1404: Entwicklertagebuch zum Thema Multi-Threading Das Tagebuch wurde geschrieben von Burkhard Ratheiser (Head of R&D, Related Designs) und Frank Hoffmann (Junior Software Developer, Related Designs). Viel Spaß damit.

"Prozessoren mit zwei oder mehreren Kernen sind mittlerweile in den Mainstream-Markt vorgedrungen. Konventionelle Einkerner sind an eine physikalische Grenze gestoßen, an der weitere Geschwindigkeitszuwächse nur noch in sehr geringem Maße möglich sind. Deshalb sind die Hersteller dazu übergegangen, mehrere Kerne auf einem Chip unterzubringen.

Um diese neuen Leistungspotenziale zu nutzen, bedarf es aber einer speziellen Unterstützung innerhalb des jeweiligen Programmcodes. Der große Vorteil eines solchen Systems liegt in der parallelen Abarbeitung verschiedener Programmteile im Gegensatz zur ineffizienteren und langsameren sequenziellen Bearbeitung. Das ist mit einem gewissen Aufwand verbunden, da parallel arbeitende Programmteile sich nicht gegenseitig in die Quere kommen dürfen, was im günstigsten Fall zu einem fehlerhaften Rendering führt, meist aber einen Programm­absturz zur Folge hat.

Der Scheduler
Der Scheduler erkennt in einem System vorhandene Prozessorkerne und fertigt für jeden einen Worker-Thread an. Der Scheduler erkennt in einem System vorhandene Prozessorkerne und fertigt für jeden einen Worker-Thread an. Ziel bei der Implementierung unseres Multi-Threading-Systems war es von vornherein, nicht durch die Zahl der Prozessorkerne limitiert zu sein, sondern eine flexible, skalierbare Basistechnologie zu entwickeln. Zu diesem Zweck programmierten wir unseren Scheduler - einen Aufgabenplaner. Der Scheduler erkennt die im System vorhandenen CPU-Kerne und erstellt für jeden dieser Kerne einen Worker-Thread. Um den Scheduler und dessen Worker-Threads mit Arbeit zu versorgen, legt die Engine für verschiedene Systeme (Physiksimulation, Effekte, Animationen usw.) jeweils eine sogenannte Job-Queue (Aufgabenliste) an. Während des Programmablaufes fügt die Engine verschiedene Jobs oder Job-Pakete in die jeweilige Queue ein. Diese Jobs holen sich die Worker-Threads dann aus den Queues und arbeiten sie ab.

Jobs und Job-Pakete
Zu den Jobs, die die Worker-Threads parallel abarbeiten, gehören die Physik- und Stoffsimulation, die Partikeleffekte und die Animation. Zu den Jobs, die die Worker-Threads parallel abarbeiten, gehören die Physik- und Stoffsimulation, die Partikeleffekte und die Animation. Ein Job kann ein beliebiger Programmteil innerhalb der Applikation (Anwendung) sein. Da das Eintragen und Austragen der Jobs in einer Liste mit Aufgaben auch einen - wenn auch sehr kleinen - Mehraufwand (Overhead) bedeutet, ist es sinnvoller, sehr kleine Jobs in sogenannte Job-Pakete zusammenzupacken. Job-Pakete bestehen aus einer Sammlung einzelner Jobs, welche auf einmal abgearbeitet werden.

5
  1. Seite 1 Anno 1404: Multi-Threading
  2. Seite 2 Anno 1404: Quad-Core
    • Kommentare (5)

      Zur Diskussion im Forum
      • Von Zsinj BIOS-Overclocker(in)
        sooo viele sind das auch net, kommt dir nur so vor
        Auf Diablo 3 darf man sicher noch ein ganzes Weilchen warten (2010?) und für meinen teil zieh ich Anno vielem nun mal vor. Bin aber anderen Spielen auch nicht abgeneigt.

        ajo, ist eigentlich für AoE mal was neues angekündigt oder lässt sich MS damit mal so richtig Zeit? Wär mir nämlich neu.
        (Auch bei Freelancer wartet man ja schon sehr lange mal auf einen Nachfolger... hoff mal das es bei AoE nicht soo lang dauert.)
      • Von Zsinj BIOS-Overclocker(in)
        sooo viele sind das auch net, kommt dir nur so vor
        Auf Diablo 3 darf man sicher noch ein ganzes Weilchen warten (2010?) und für meinen teil zieh ich Anno vielem nun mal vor. Bin aber anderen Spielen auch nicht abgeneigt.

        ajo, ist eigentlich für AoE mal was neues angekündigt oder lässt sich MS damit mal so richtig Zeit? Wär mir nämlich neu.
        (Auch bei Freelancer wartet man ja schon sehr lange mal auf einen Nachfolger... hoff mal das es bei AoE nicht soo lang dauert.)
      • Von Kone PC-Selbstbauer(in)
        Zitat von Zsinj
        freu mich schon riesig auf Anno 1404 ich hoff das es da wieder eine schöne Limited Edition gitb

        Und je nach dem wann Anno erscheint gibts bis dahin evtl. noch nen Quadcore die neuen AMD sehen ja schon heiß aus... wenn die halten was sie versprechen und sonst wirds halt nen Intel...

        Bin auf jeden Fall schon mal richtig gespannt auf das neue Anno. Nicht zuletzt weil es da eben mal wirklich eine Engine gibt die Multicore richtig gut unterstützt. Was es ja bisher kaum oder gar nicht gab.
        wie kann man einen post nur so mit smilies verunstalten, da scheint sich einer wirklich zu freuen ^^
        ich für meinen teil warte zur zeit auf diablo 3 und sollte ein neues age of empires kommen würde ich das mit sicherheit jedem anno teil vorziehen ...

        naja meine meinung find das gameplay bei der anno reihe einfach net ganz so prickelnd ...
      • Von Zsinj BIOS-Overclocker(in)
        freu mich schon riesig auf Anno 1404 ich hoff das es da wieder eine schöne Limited Edition gitb

        Und je nach dem wann Anno erscheint gibts bis dahin evtl. noch nen Quadcore die neuen AMD sehen ja schon heiß aus... wenn die halten was sie versprechen und sonst wirds halt nen Intel...

        Bin auf jeden Fall schon mal richtig gespannt auf das neue Anno. Nicht zuletzt weil es da eben mal wirklich eine Engine gibt die Multicore richtig gut unterstützt. Was es ja bisher kaum oder gar nicht gab.
      • Von der_fabi92
        Guter Artikel
        das ist die Zukunft aller PC Programme würde ich meinen.
      • Von falk-falk Kabelverknoter(in)
        Der Artikel gefällt mir und man sieht, dass wenn man sich in der Planung eines Spieles mit dem Thema Multi-Threading und deren optimale Programmierung vernünftig beschäftigt und versucht dieses auch bestmöglich zu implementieren auch erfolgreich umgesetzt werden kann. Bleibt nur zu hoffen, dass andere Spiele auch so gut auf Multi-Threading programmiert werden, aber erstmal abwarten wie Anno 1404 im Test auf mehreren Kernen skaliert. Jetzt freue ich mich noch mehr auf das Spiel...fehlt nur noch mein neuer Rechner, aber mal schauen wie sich die Preise für ein X58 Mainboard in nächster Zeit entwickeln oder wie der Deneb einschlägt
      Direkt zum Diskussionsende
  • Print / Abo
    Apps
    PCGH Magazin 07/2026 PC Games 06/2026 play5 07/2026 N-Zone 06/2026 Linux Magazin 06/2026 LinuxUser 06/2026 Raspberry Pi Geek 07/2026
    PC Games Hardware PC Games Linux Magazin Raspberry Pi Geek Computec Kiosk