Entwicklung einer 3D-Engine

Halli Hallo,

ich bin dir dankbar, dass du wenigstens nicht abgeneigt bist, mir zu helfen.

Falls du dich dazu entschließen würdest mir bei meinem Projekt zur Seite zu stehen, wäre es als einzigstes Hilfreich, wenn du meinen Quellcode auf Sourceoptimierung hin prüfen würdest. (Weniger Source = mehr Performance)


Ich habe jetzt in den letzten Tagen in meine Engine ein paar Module eingebaut:
  • Modul 1: CAFile
    Das ist eine virtuelle Datei. Also liegt irgendwo auf meiner Festplatte eine Datei, die ich in die Klasse einlese und damit habe ich eine Kopie des Originals in meinem Speicher. Verwenden kann ich das zum Beispiel bei Bitmaps oder bei Musikstücken.
  • Modul 2: CAInput
    Ich denke mal, dass das klar ist: Alle Eingaben und Ausgaben laufen über dieses Modul. Hier müsste ich mir allerdings noch etwas überlegen, wie ich die individuell belegbaren Tasten realisiere.
    (Aufgeteilt in CAMouse und CAKeyboard)
  • Modul 3: CAMemory
    Hiermit will ich eine effiziente Lösung für SpaceLeeks verwenden. Alle allokierten Speicher trage ich in eine Liste ein und zum Schluss, wenn die Engine heruntergefahren wird, werden alle Speicher in der Liste wieder freigegeben.
  • Modul 4: CAMath
    Hier habe ich bis jetzt alle benötigten Rechenoperationen implementiert. Leider kann ich Aufgrund meines Wissensstandes nur die Vektor-Rechenoperationen und die entsprechenden 2D und 3D Vektorstrukturen implementieren.
    Hier wäre eine Auffrischung in Themen "Ebenen" und "Matrizen" hilfreich.
  • Modul 5: CASound
    Ich denke mal, dass dies hier auch klar ist. Hierdrüber laufen alle Soundausgaben. Aufgeteilt in CASound und CASoundFile. Über CASound werden die Ausgaben über die Lautsprecher konfiguriert und über CASoundFile werden die Daten an CASound zum Ausgeben weitergeleitet.
Das waren bis jetzt meine implementierten Module. Falls du noch eine sinnvolle Ergänzung hast, die dir einfällt, dann bitte ich dich, sie mir und den vielen Themenbesuchern nicht vorzuenthalten.


Damit wir nicht auf Missverständnisse stoßen, hier eine Liste der Module, die ich noch geplant habe:
  • CALogFile
    Mit diesem Modul werden Ausgaben in eine Datei gemacht. Implementieren möchte ich Funktionen, die mir ermöglichen, zum Beispiel eine Variable als NULL-Pointer zu prüfen und dementsprechend Fehlermeldungen in diese Log-File schreiben. Das hat den Vorteil, dass ich bei Vollbildmodi keine PopUp-Fenster brauche.
  • CAConfigFile
    Mit diesem Modul kann ich eine Datei einlesen. Es liegt auf meiner Festplatte eine Datei, die einen bestimmten Syntax folgt und die Klasse kann diese Datei analysieren und zum Beispiel Werte aus der Datei speichern (um nachher von mir abgerufen zu werden).
  • CAGraphic
    Mit diesem Modul werden dann die ganzen grafischen Ausgaben getätigt. Wie ich diese Klasse allerdings implementiere, steht noch in den Sternen. Dieses Modul werde ich warscheinlich zu allerletzt implementieren.
Auf deine Meinung und hilfe freue ich mich sehr!
 
Abend!

Klar, mach ich gern. Ich schick' Dir meine eMail Adresse als PM. Antworte am besten gleich mit dem bisherigen Source als Anhang - damit ich mir ein genaueres Bild von dem ganzen Kram machen kann, denn du oben so schön beschrieben hast ;-)
Bei der Optimierung kann ich Dir bestimmt behilflich sein, ebenso in Sachen Theorie und Mathematik. Allerdings habe ich selbst - wie gesagt - kaum Erfahrung mit DirectX.

Gruß
Enum
 
Zurück