Du bist nicht angemeldet.

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

11

24.04.2003, 19:34

Zitat

diese plugin erweiterung sind die notwendig? ich mein man kann das doch alles statisch linken und dann würde ich ja auch nicht die enginverändern (der teil wäre in einer lib und nur zu gelinkt)

Der Vorteil eines PlugIn's ist es das der User selber das PlugIn schreiben kann. Natürlich kann man alles fest verlinken. Man kann seine API auch komplett in eine DLL schreiben. Nur wenn man alles Statisch hat, wie soll der User denn dann seine Erweiterungen in die Engine einbinden? Das ist es ja warum die meisten Engine's und Programme wie 3DS Max eine PlugIn unterstüzung haben.

Zitat

ok sehe aber die notwendigkeit nicht ein game in in mehrern sprachen zu schreiben, bei programmen kann ich es verstehen das man die gui in vb, objekt-pascal oder ähnlichen schreibt und das back-end in c/c++
aber bei ein game?

;D ein Game wird natürlich höchsten in zwei Sprachen geschrieben. Die Hauptsprache C oder C++ z.B. und die eigene Scriptsprache. Die Interfaces werden in C++ Definiert und daher ist die Sprache fest. Jedoch nicht der Compiler mit dem ich das Interface erzeuge. Bei Statischen Bibliotheken ist man gezwungen den selben Compiler zu nutzen mit der die API erzeugt wurde. Bei Dynamischen Bibliotheken nicht.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

12

24.04.2003, 21:32

Wenn die Engine die Fähigkeit hat, DLLs als PlugIns einzubinden, ist das schon was Feines ;) Man muss es ja nicht unbedingt so machen, dass auch die Standardkomponenten der Engine in DLLs sind - die können ja alle zusammen in einer einzigen LIB liegen.
Man könnte es ja so machen, dass sich jede Klasse bei einem "Klassenserver" registrieren muss, indem sie einen Zeiger auf eine Funktion gibt, die eine neue Instanz dieser Klasse erzeugt. Ob diese Funktion dann letzten Endes in einer DLL liegt oder direkt mit in der LIB (falls die Klasse zur "Standardausrüstung" zählt), ist dann ja auch egal.

13

26.04.2003, 01:53

Einer Engine diese Fähigkeit zu geben ist sehr einfach. Dazu bedarf es im einfachsten Fall nur einer sehr kleinen Klasse ;)

Aber zurück zum Thema. Mir ist bis jetzt noch keine gute Idee eingefallen, wie man ein vernünftiges Error System aufbaut. Außer ein einfaches DWORD zu liefern, oder halt einer Error Klasse. Wie es scheint hat niemand eine Ahnung wie man das macht, oder es will keiner sein geniales System preisgeben :crying: :( ???
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Anonymous

unregistriert

14

27.04.2003, 16:08

Was ist den so scheisse am msvc 6.0, das ihr alle hier darüber schimpft ? ???

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

15

27.04.2003, 18:04

Ich bin eigentlich ganz zufrieden mit dem VC6-Compiler. Man sagt, er habe schlechte Unterstützung für Templates, aber inwiefern die da so schlecht ist, weiß ich auch nicht - vielleicht kann das mal jemand erklären.

Anonymous

unregistriert

16

29.04.2003, 00:39

Das was mir bis jetzt aufgefallen ist, und sehr störend sein kann, ist das man keine Funktionen Explizit Instanzieren kann. Folgendes geht also nicht

Quellcode

1
2
3
template<class T> T func() { .... }
...
int i = func<int>();

Der Rückgabe Typ wird vom Compiler nicht als Typ für eine Instanzierung für die Funktion "func" verwendet und eine Explizite Angabe wird auch nicht Axeptiert.

Anonymous

unregistriert

17

30.04.2003, 21:46

Zitat von »"Anonymous"«

Was ist den so scheisse am msvc 6.0, das ihr alle hier darüber schimpft ? ???


z.b.

Quellcode

1
2
for(int i;;) {}
for(int i;;) {}


wird nicht übersetzt, erst wenn man ein switch setzt (und dann kann man MFC, ATL usw. nicht mehr benutzen)

oder das der inhalt von den neuen c headern nicht im namespace std ist (das ist der einzigste sinn der header)

partiziele template spezialiesierung kann er auch nicht

zu exception kann ich erst was sagen wenn ich getestet habe wie sich die neuen compilier schlagen

jedes mal wenn man vor hatt etwas code zu schreiben das auf mehr als einen compilier leuft kommt einen der vc6 in die querre
"schreibe ich jetzt korektest c++ und darf mir von jeden vc6 user anhören das der code nicht geht oder baue ich den workaround"

usw.[/code]

Werbeanzeige