Ich glaube du hast da eine falsche Vorstellung
Mal zur Erklärung:
Es ist wesentlich einfacher ein serielles Programm zu schreiben, da du alles nacheinander machen kannst, da du dir sicher sein kannst, dass alles für den auszuführenden Task schon errechnet/erledigt wurde (z.B. dass eine Kugel erst zerstört wird, nachdem sie das Ziel getroffen und ihm Schaden zugefügt hat). Bei mehreren parallelen Threads musst du ständig schauen, dass die Infos, die der Thread braucht, welche aber von anderen parallel laufenden Threads errechnet werden müssen, diese auch vor der Berechnung vorhanden sind, ansonsten gibt es meistens die berühmt berüchtigte NullPointerException, da z.B. ein Objekt, welches der eine Thread verwendet, noch nicht von einem anderen Thread erstellt wurde, weil dieser noch nicht so weit ist. Oder es gibt Bugs, wie z.B. dass die Kugel zerstört wurde bevor der Schaden zugefügt wurde. In diesem Fall nimmt das Ziel entweder keinen Schaden oder es gibt eine NullPointerException, da die Kugel, auf deren Schaden zugegriffen wird, einfach nicht mehr existiert.
Hoffe das war verständlich
Edit: Damnit Mephisto_xD war schneller