1. Foren
  2. Kommentare
  3. Sonstiges
  4. Alle Kommentare zum Artikel
  5. › Kaufberatung: Die richtige CPU und…

Spiele Logik parallelisieren?

  1. Thema

Neues Thema Ansicht wechseln


  1. Spiele Logik parallelisieren?

    Autor: FreierLukas 18.12.17 - 13:06

    Logische Operationen lassen sich schwierig parallelisieren da Zustand 2 von Zustand 1 abhängig ist.

    checkInterval() {
    Wenn "W" gedrückt dann "lauf nach vorne"
    // Tu etwas das vom nach vorne Laufen abhängig ist
    }

    Wie kann man so etwas parallelisieren? Solange Spiele so funktionieren werden sie meiner Ansicht nach nicht von massiv parallelisierten Systemen profitieren können.

    Die Spielelogik muss Bestandteil der Physik werden. Statt abzufragen ob eine Figur nach vorne läuft, könnte man zB. durch drücken von "W" eine physikalische Konstante ändern die die Figur nach vorne laufen lässt ohne dass man eine langsame Logik durchläuft. Macht das Sinn? Man würde zwar jede Menge Berechnungen hinzufügen die eigetnlich nicht nötig sind, könnte aber so alles parallelisieren.



    3 mal bearbeitet, zuletzt am 18.12.17 13:13 durch FreierLukas.

  2. Re: Spiele Logik parallelisieren?

    Autor: bolzen 18.12.17 - 13:13

    Das Laufen eines anderen Charakters oder eine Explosion ist aber nicht unbedingt von deiner Bewegung abhängig. Da lässt sich schon einiges machen.
    Z.B. die Physik von Haaren muss dann zwischendurch abfragen wie die G-Kräfte des Charakters gerade sind, das geht auch parallel.

  3. Re: Spiele Logik parallelisieren?

    Autor: FreierLukas 18.12.17 - 13:17

    Solche Parent-Child Verknüpfungen sind sicher Mitschuld an Physik-Bottlenecks. Eigentlich müsste der Kopf nur eine Kraft auf die Haare ausüben und sie würden ihr eigenes Leben leben. So könnten sie zB ausreissen wenn die G-Kräfte zu hoch werden ohne dass man extra eine Abfrage dafür einbaut.

    Ich glaube um Spiele komplett zu parallelisieren müsste man alles in Felder umwandeln die einander beeinflussen. Haare wären einfach wie Licht ein Feld das eine gewisse Intensität überm Kopf hat sich aber nicht so einfach wie Licht ausbreiten kann. Man könnte dann Rahmenbedingungen wie zB. Startwerte eingeben und so jedem Charakter eine gewisse Haarpracht zuordnen die dann einfach nur noch der Physik gehorcht.

    Wäre das gesamte Spiel ein Feldmischmasch würde es wie eine Simulation ohne Bottlenecks mit der Rechenleistung skalieren. Das Spiel könnte erkennen wie viel Rechenleistung zur Verfügung steht und die Parameter so anpassen dass man immer über eine gewisse Schwelle an Berechnungen pro Sekunde kommt. Ich stelle mir das aber wahrscheinlich zu einfach vor.



    6 mal bearbeitet, zuletzt am 18.12.17 13:29 durch FreierLukas.

  4. Re: Spiele Logik parallelisieren?

    Autor: bolzen 18.12.17 - 13:22

    Habe etwas Erfahrung mit Spiele-Entwicklung für Android. Es ist einfach nicht möglich die gesamte Physik/Logik linear 60 mal in der Sekunde vollständig zu berechnen. Deswegen wirkt die Physik manchmal auch in aufwändigen Spielen, auf Top-Hardware, immer noch nicht perfekt, wenn man denn darauf achtet.



    1 mal bearbeitet, zuletzt am 18.12.17 13:23 durch bolzen.

  5. Re: Spiele Logik parallelisieren?

    Autor: xmaniac 19.12.17 - 09:57

    Die Physik läuft schon hinreichend parallel. Wenn aber die Dinge sich anders verhalten, je nachdem ob du WAS oder D drückst, kannst du mit parallelisierung bestenfalls mehr Varianten voraus berechnen und dann einige verwerfen. Die Möglichkeit der Parallelisierung sind stets stark begrenzt für solche Probleme. Dazu gibt es Informatik Gesetzmäßigkeiten und Formeln die das beschreiben:

    https://de.m.wikipedia.org/wiki/Amdahlsches_Gesetz

    Aber für Spiellogik wird das nix, weil jede mögliche Variante sich mit allen anderen multipliziert. Da braucht man bei 8 Möglichkeiten schnell 256 fache Rechenleistung



    1 mal bearbeitet, zuletzt am 19.12.17 10:02 durch xmaniac.

  6. Re: Spiele Logik parallelisieren?

    Autor: Allandor 19.12.17 - 12:35

    FreierLukas schrieb:
    --------------------------------------------------------------------------------
    > Logische Operationen lassen sich schwierig parallelisieren da Zustand 2 von
    > Zustand 1 abhängig ist.
    >
    > checkInterval() {
    > Wenn "W" gedrückt dann "lauf nach vorne"
    > // Tu etwas das vom nach vorne Laufen abhängig ist
    > }
    >
    > Wie kann man so etwas parallelisieren? Solange Spiele so funktionieren
    > werden sie meiner Ansicht nach nicht von massiv parallelisierten Systemen
    > profitieren können.
    >
    > Die Spielelogik muss Bestandteil der Physik werden. Statt abzufragen ob
    > eine Figur nach vorne läuft, könnte man zB. durch drücken von "W" eine
    > physikalische Konstante ändern die die Figur nach vorne laufen lässt ohne
    > dass man eine langsame Logik durchläuft. Macht das Sinn? Man würde zwar
    > jede Menge Berechnungen hinzufügen die eigetnlich nicht nötig sind, könnte
    > aber so alles parallelisieren.

    Es lassen sich viele dinge parallelisieren. Nur weil du "W" gedrückt hast heißt das ja nicht das der Character in der MS weiter läuft. Es wird einfach z.B. für den nächsten frameaufbau notiert "laufe x nach vorn".

    Kleine Aufgaben lassen sich immer gut parallelisieren, aber irgendwann kommst du zu einem punkt wo sich dinge genseitig beeinflussen und du musst warten bis diese Berechnungen abgeschlossen sind, die wiederum auch auf etwas warten. Und irgendwo ist am ende der Flaschenhals.
    Daher ist es eigentlich einfacher die durch die Wartezeiten brachliegende Rechenzeit für andere Dinge zu verwenden. Diese dürfen dann aber wiederum den bestehenden code nicht zusätzlich blocken.

  7. Re: Spiele Logik parallelisieren?

    Autor: Komischer_Phreak 21.12.17 - 12:59

    FreierLukas schrieb:
    --------------------------------------------------------------------------------
    > Logische Operationen lassen sich schwierig parallelisieren da Zustand 2 von
    > Zustand 1 abhängig ist.
    >
    > checkInterval() {
    > Wenn "W" gedrückt dann "lauf nach vorne"
    > // Tu etwas das vom nach vorne Laufen abhängig ist
    > }
    >
    > Wie kann man so etwas parallelisieren? Solange Spiele so funktionieren
    > werden sie meiner Ansicht nach nicht von massiv parallelisierten Systemen
    > profitieren können.
    >
    > Die Spielelogik muss Bestandteil der Physik werden. Statt abzufragen ob
    > eine Figur nach vorne läuft, könnte man zB. durch drücken von "W" eine
    > physikalische Konstante ändern die die Figur nach vorne laufen lässt ohne
    > dass man eine langsame Logik durchläuft. Macht das Sinn? Man würde zwar
    > jede Menge Berechnungen hinzufügen die eigetnlich nicht nötig sind, könnte
    > aber so alles parallelisieren.

    Doch, diese Dinge lassen sich sehr wohl parallelisieren. Das Problem ist, das man das aktuell zu Fuß machen müsste - und das ist in der Tat sehr, sehr schwierig. Ein Kumpel von mir kennt von der Arbeit her einen Prof, der aktuell an einem Compiler, der buchstäblich alles parallelisiert, arbeitet (nicht als Hobby wohlgemerkt, ist tatsächlich eine ziemlich große Sache). Ich hoffe, das die Reise da hin geht. Dann wäre das in Zukunft nämlich kein Problem der Spieleprogrammierer mehr. Es bräuchte lediglich einen passenden Compiler.

  8. Re: Spiele Logik parallelisieren?

    Autor: Anonymer Nutzer 22.12.17 - 12:51

    Logische Operationen lassen sich an sich gut parallelisieren. Müssen halt genug sein bzw. sich schön zerlegen lassen. Bei einem Spiel klappt das mit der Parallelisierung doch an sich ganz gut. Bei Krachern wir Flappy Birds ist da halt ziemlich egal.

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Zum Login

Stellenmarkt
  1. BG-Phoenics GmbH, München
  2. Hessisches Ministerium der Finanzen / FITKO, Frankfurt am Main, Berlin
  3. ITEOS, Freiburg, Heilbronn, Stuttgart, Ulm
  4. Hessischer Rundfunk Anstalt des öffentlichen Rechts, Frankfurt am Main

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. 589€ (Bestpreis!)
  2. (u. a. Amazon-Geräte im Angebot, Thrustmaster T300 RS GT Edition für 259€, T300 RS GT Edition...
  3. 79€ (Bestpreis mit Saturn. Vergleichspreis über 100€)
  4. 79€ (Bestpreis mit Amazon. Vergleichspreis über 100€)


Haben wir etwas übersehen?

E-Mail an news@golem.de