Große programm eteilen?
lima-city → Forum → Programmiersprachen → C/C++ und D
dll
einflu
format
funktion
interface
klassen miteinander
komponente
lagerung
modell
normalfall
pack
sogenannten interface
sound
source
speicher
teilweise
update
wrapper
zugreifen
zugriff
-
Hi!
Wie w?rdet ihr gro?e Programme (z.B. Spiele) in Teile unterteilen?
Also das nert ales ?ber eine Exe abl?uft?
Danke im Voraus! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo adrians,
es kommt immer drauf an in welcher Programmiersprache du es schreibst, aber ich w?rde feste Werte in eine Configdatei schreiben lassen. Es gibt so viele M?glichkeiten.
-
Ich weis nich was mit "unterteil meinst"? Bei gro?en Programmen w?rd ich bestimmte Funktionen in dll's packen z.B.: nem Spiel alles was zum Sound geh?rt da in ne extra dll dadurch wird die EXE kleine (nich das ganze Projeckt) und man kann Updates leichter machen weil nur einzelne Komponenten erneuert werden m?ssen das macht dann z.B. das Update kleiner weil nur eine dll erneuert werden muss. Ich hoff das meintst jetzt.
in ne INI Datei feste werte? Feste werte sind f?r mich Konstanten "const int i = 5;" und die kann man nicht ?ndern also bestimmte Variablen kann man in Ini oder registry packen z.B. Strings f?r Texte wenn man z.B. was mit mehreren Sprachen macht oder die Fenstergr??e etc. -
Hmmm... klingt gut... DLL's.... klingt gut... INI's...kenn ich mich net mit aus!^^
Was sind eigentlich *.sys dateien? Systemdateien...aber wie funzen die??? -
spiel unterteilen, technisch her:
* netzwerk interface
* opengl interface (openglapi <-> game)
* sound interface
* keyboard/mouse interface
* gamecode in dll
* rendercode in dll (models, maps, textures)
* sprachen module in dll (also german, english translatings)
* verschiedenes...
so in etwa, oder nimm das valve's source-engine prinzip:
dlls: vstdlib, materialsystem, tier0, dx9shaders, dx8shaders, engine, filesystem_stdio, filesystem_steam. steam...
hauptprogram is dann ca. 80 kb gro?, das l?dt die dll-dateien in den speicher und startet halt.. -
Hi,
Ich w?re beim unterteilen in DLL's grade bei Spielen enorm vorsichtig! Jede nicht einkompilierte Funktion die ?ber DLL's aufgerufen wird kostet dich ne Menge Prozessorzeit (Bei Spielen z?hlt jedes Qu?ntchen!). Im Normalfall unterteilt man in Klassen und Komponenten! Die Komponenten werden dann meist mit sogenannten Interface bzw Wrapper Klassen miteinander verbunden! Au?lagerungen in DLL Dateien wie's z.B. bei Half-Life gemacht wurde, werden nur vorgenommen wenn man dem Benutzer die m?glichkeit bieten will auf den Source Code eines Spiels TEILWEISE einfluss zu nehmen.. so genanntes modding! models,maps und texturen geh?ren nicht in DLL Dateien und schon gar nicht in den Code! Sie werden meist in einem verbreiteten oder eigenen Bin?ren Format gespeichert das schnellen Zugriff erlaubt! Wie gesagt.. DLL Zugriffe minimal halten! Und vor allem alles in Klassen unterteilen und vorher abstrakt aufzeichnen (Kein Code sondern ein Modell erstellen!).
Elandir -
Hast du schonmal an includes gedacht? Damit k?nntest du zumindest den Code ?bersichtlicher gestalten. Aber wenn du dann das Programm compilierst, wird es ja trotzdem eine Datei.
Du solltest wirklich mal deine Frage etwas genauer definieren!
mfg,
direx -
Hi,
Ich w?re beim unterteilen in DLL's grade bei Spielen enorm vorsichtig! Jede nicht einkompilierte Funktion die ?ber DLL's aufgerufen wird kostet dich ne Menge Prozessorzeit (Bei Spielen z?hlt jedes Qu?ntchen!). Im Normalfall unterteilt man in Klassen und Komponenten! Die Komponenten werden dann meist mit sogenannten Interface bzw Wrapper Klassen miteinander verbunden! Au?lagerungen in DLL Dateien wie's z.B. bei Half-Life gemacht wurde, werden nur vorgenommen wenn man dem Benutzer die m?glichkeit bieten will auf den Source Code eines Spiels TEILWEISE einfluss zu nehmen.. so genanntes modding! models,maps und texturen geh?ren nicht in DLL Dateien und schon gar nicht in den Code! Sie werden meist in einem verbreiteten oder eigenen Bin?ren Format gespeichert das schnellen Zugriff erlaubt! Wie gesagt.. DLL Zugriffe minimal halten! Und vor allem alles in Klassen unterteilen und vorher abstrakt aufzeichnen (Kein Code sondern ein Modell erstellen!).
Elandir
Man kann darauf vorsichtig reagieren indem man einfach die DLLs dynamisch aufruft also mit LoadLibrary und GetProcAddress hier wird dann die DLL auch erst geladen wenn sie gebraucht wird nich wie bei dllimport. Du kannst dir ja auch mal angucken welche DLLs son Programm schon ohne dein eingreifen importiert das kann man unter win98 mit QuickView ansonsten mit DEPENDS das aber leider nur mit VC++ ausgelievert wird.
*EDIT* Zum Beispiel Enclave funzt so hier is die eigendliche Grafikengine die RndrD3D8.dll und MSystem.dll is f?r Input und Sound zust?ndig.
Beitrag ge?ndert am 24.07.2005 13:18 von funkdoobiest -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage