Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Mär 19, 2024 10:36

Foren-Übersicht » Sonstiges » Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: BroodTech Game Engine
BeitragVerfasst: Mi Dez 24, 2014 02:26 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
So noch ein kleiner Nachtrag zum Thema Threads, Nachrichten und co.:

Wie bereits erwähnt benutzt die Engine verschiedene asynchrone Module. Diese sog. "Process"-Klassen,
unterstützen nun auch die Windows Fiber. Es gibt jetzt also nicht nur Multithreading sondern auch echtes Multitasking. Die entsprechenden Objekte verhalten sich in beiden Fällen identisch und unterscheiden sich nur in der jeweiligen Start-Routine. Halt je nachdem ob ein Thread oder ein Fiber erzeugt werden soll. In beiden Fällen kann der Garbage Collector den jeweiligen Stack analysieren und so die Referenzen finden (der Boehm Collector macht dies meines Wissens nach nicht). Auf diese Weise kann man das Multithreading in die Settings packen. Wenn also jemand zum Beispiel nicht genügend Kerne hat, kann er einfach den Thread für das Rendering killen :)

Zur Kommunikation unter den Prozessen dient jetzt das "Processable"-Template. Hier können wie bereits erwähnt komplette Funktionsaufrufe in einer Queue gespeichert werden um sie später abzuarbeiten. Neu ist jetzt das ich diesen Part in das bereits erwähnte Template ausgelagert habe. "Process" und "Processable" ist dann das "Service"-Template. Die oben genannten Hauptmodule sind jeweils eine eigene Klasse die von "Service" erbt. Hier werden dann die eigentlichen low-level Funktionen stupide abgearbeitet.

Der nächste Schritt sind jetzt die sog. "ServerObjects". Diese sollen zur Komposition von Render und Client-Queues dienen und damit eine Art "LINQ to Game" werden :D
Processable dürfte auch hier eine gute Basis bilden.

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: BroodTech Game Engine
BeitragVerfasst: Do Okt 22, 2015 11:58 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Hallo zusammen,

inspiriert vom Datadriven Rendering Thread habe ich mal wieder den alten Code hervorgekramt und ein paar Anpassungen gemacht.

Als erstes habe ich mal den Renderer mit einen kleinen Build-Tool versehen. Dieses Build-Tool schnappt sich XML-Dateien, welche die verschiedenen Commands beschreiben, und generiert
daraus dann die Implementierung des Render-Thread. Da das Tool auch die Spec-XML von OpenGL mit verwurstelt kann man so auch gleich erkennen welche Extensions oder
OpenGL-Versionen ein Command so braucht. Man muss also einfach nur noch die verschiedenen Code-Paths hinschreiben und die ganzen Checks, LoadProcs, usw. werden
dann automatisch generiert. Daraus ergeben sich dann die beiden C-Funktionen R_Load und R_Proc.

R_Load besteht dabei aus einer Menge checks über die Werte vom Extensions-String. Anhand der Überprüfungen wird dann das Array der Commands mit Indexen der
jeweiligen Implementierung gefüttert. R_Proc hingegen bekommt einfach nur einen Buffer der stupide aus Command-Index + Daten besteht.

Die einzelnen Commands:
NOOP - Nix
DRAW_SURFS - 3D und 2D zeichnen
DO_CSG - CPU oder GPU basierte CSG-Operationen
SET_BUFFER - VBOs bzw. DisplayListen mit Daten Füttern
COPY_RENDER - FBOs bzw. SwapBuffers
POST_PROCESS - Noch nichts ... vermutlich deferred Shading oder solche Geschichten

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Sonstiges » Projekte


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.025s | 17 Queries | GZIP : On ]