Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Anonymous
unregistriert
Zitat von »"DragonMaster"«
Erstens, sie sind lagsam.
Zitat von »"DragonMaster"«
Zweitens, sie sind mit dem Umgang mit DLL's nicht zu gebrauchen.
Zitat von »"DragonMaster"«
Die Entwickler sind dann, bei der Entwicklung ihrer PlugIn's, an den VC++ 7 Kompiler gebunden, und können z.B. nicht den Intel Compiler benutzten. Exceptions gehen ja schon nicht mehr wenn man VC 7 mit VC 6 mischt. Das hatte ich schon mal in einem Projekt. Die Exceptions werden dann nicht richtig verarbeitet oder gar Ignoriert.
Administrator
Anonymous
unregistriert
Zitat
wie viele games auf einmal wills du den am pc laufen lassen?
Zitat
außerdem haben die sich das ziemlich leicht gemacht und einfach exception default mäsig aus gemacht
Zitat
verzichtest auf inline optimierungen usw
Anonymous
unregistriert
Zitat von »"David Scherfgen"«
Hallo, schön, dass Du auch mal hier ins Forum kommst
Zitat von »"David Scherfgen"«
DLLs sind nicht zwangweise dafür da, mehrere Programme gleichzeitig zu machen. Eine richtig gute Engine lässt sich durch Plug-Ins erweitern, und die wahrscheinlich beste Möglichkeit, diese Plug-Ins zu realisieren, sind DLL-Dateien. Man braucht dann die eigentliche Engine nicht zu modifizieren.
Zitat von »"David Scherfgen"«
Inline-Optimierungen gehen auch nicht unbedingt verloren, man kann ja die wichtigen Inline-Funktionen direkt in die Header-Datei des Plug-Ins schreiben.
Zitat von »"Anonymous"«
Von exceptions in Größeren Projekten kann ich nur abraten. Auf Low Level ebene sprich bei Listen und Array’s usw.. habe ich einfach eine Variable, die, die fehler speichert, sowie eine Funktion GetLastError, auf der ebene exceptions einzusetzen ist der Performance Killer Nr.1. Zumal der einigt relevante fehler ein BadAlloc sein kann, und dafür ein try catch block? Ein Overflow würde ich einfach intern abfangen, und mittels einer Grow() Methode bekämpfen.
Zitat von »"Anonymous"«
Das Globale ErrorHandling habe ich ebenfalls in einem Thread laufen, wenn es nötig ist, können ganze PlugIn Gruppen abgesägt werden, und neu gestartet werden.
Zitat von »"DragonMaster"«
Wie man eine DLL einsetzt ist jedem selbst überlassen. Das Prinzip einer DLL sollte aber klar sein. Ein vorteil von dynamisch geladenen DLL's ist, das sie nicht unbedingt mit vc7 geschrieben müssen wenn das eigene Projekt mit vc7 geschrieben wurde. Die DLL's die ich verwende werden alle dynamisch als PlugIn geladen. Nur der Kernel wird an das Projekt fest verlinkt.
Zitat von »"DragonMaster"«
Aber nicht nur ein Game würde die PlugIn's benutzten. Der Level Editor wird ebenfalls einiege PlugIn's benutzen. Z.B. das Grafik PlugIn
Zitat von »"DragonMaster"«
Das sollte bei jedem Kompeiler so sein
Zitat von »"DragonMaster"«
Ob inline benutzt wird oder nicht, entscheidet oft der Compiler selber. Das kann sogar soweit gehen das eine DLL gar nicht mehr mit dem Projekt verlinkt wird. Hab ich oft wenn ich die WinAPI nutze. Zudem ist es sehr schwer inline zu nutzen, wenn in den PlugIn's nur Interfaces sind. D.h. virtuelle Methoden
Zitat von »"DragonMaster"«
@longjmp Funktion
Hab ich noch nie mit gearbeitet.
Werbeanzeige