Ich schreibe eine Spiel-Engine neu, die ich geschrieben habe, um so viel wie möglich zu parallelisieren. Ich denke darüber nach, Eigenschaften zu erstellen, auf die von mehreren Threads aus zugegriffen werden kann. Alle verwenden Accessoren, die boost scoped_locks verwenden, um Race-Bedingungen zu vermeiden.
Angenommen, ich habe einen Charakter mit der Basisklasse CharacterBase. Die X / Y / Z-Koordinaten des Charakters werden durch Accessoren mit Sperren mit Gültigkeitsbereich gesteuert. In der Hauptschleife werden 3 Threads ausgeführt, einer zum Verarbeiten der Physik, einer zum Verarbeiten des Renderns und einer zum Verarbeiten von Benutzereingaben usw.
Dies führt dazu, dass scoped_locks grundsätzlich überall vorhanden sind und vom Design explizit benötigt werden, wenn Benutzer die Engine erweitern. Ich habe vor, diese Open Source-Version zu erstellen, daher frage ich mich, ob dieses Design aus technischer Sicht oder aus Sicht des Endbenutzers (für diejenigen, die den Motor erweitern) erhebliche Mängel oder Nachteile aufweist. Vielen Dank!