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

Anonymous

unregistriert

1

24.05.2005, 12:01

Engine Design

Hi,

Ich bin gerae am planen von meiner Engine.
Ich habe mir das ganze so gedacht.


ENGINE.LIB - core.lib
- math.lib
- scene.lib
- util.lib
- gfx -> DxGfx.dll
-input .> DxInout.dll

usw. usw

Was haltet ihr davon, alles in kleine Libs zu packen, Interfacesache in Dll.
Und zu guterletzt alles in eine Engine.lib zusammen zufassen.

Danke, für eure Meinungen.


Marion

Anonymous

unregistriert

2

24.05.2005, 13:15

Engine

Also wenn ich das richtig verstanden habe, dann hast du für jeden Namespace eine eine Lib gemacht, und die wichtigsten Sachen wie (Gfx, Input ) willst du mit Interfaces lösen, korrekt?

Wenn das so ist denke ich das es eine spitzen Idee ist! :help:

Was das mit deiner Engine.lib auf sich hat habe ich nicht ganz verstanden.
Ich denke aber das Du vorhast die über alles drüber zu legen, so das nur mehr diese Lib zum Source hinzugefügt werden muß.

Diese Lib fügt dann die einzelnen Lib zusammen und lädt die dll's.

Nicht schlecht Mädl nicht schlecht. :huhu:

Mach witer so ich denke das ist ein Mega Ansatz!!!!!!

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

24.05.2005, 13:24

Warum führst Du Selbstgespräche??

unsigned int

Alter Hase

Beiträge: 512

Wohnort: Bonn

Beruf: Schüler; C#-Programmierer in einer kleinen Firma

  • Private Nachricht senden

4

24.05.2005, 13:41

:-D

Gleiche IP oder was?
"Tu es. Oder tu es nicht. Es gibt kein Versuchen."
StarWars

www.tron2d.de.vu

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

24.05.2005, 13:46

Ja, und identischer Schreibstil sowie scheinbar hellseherische Fähigkeiten, was die Idee der Engine angeht ;)
Der Trick, unter einem weiblichen Vornamen zu posten, in der Hoffnung, dass alle nett, freundlich und hilfsbereit antworten, ist doch alt. Jeder sollte wissen, dass es sowas nicht gibt. *g*

Zur Sache:
Ich denke, mehrere LIBs machen die Sache unnötig kompliziert, aber die DLLs sind in jedem Fall gut, wenn man z.B. mehrere Renderer implementieren oder die Engine durch Plug-Ins erweiterbar machen möchte.

Anonymous

unregistriert

6

24.05.2005, 14:03

Engine

Na ja, wusste ja nicht ob Du so auch nett bist :roll:

@David
Ein Frage habe ich noch:

Macht es eigentlich Sinn alles in dll zu packen?
Also ich denke da an.

Gfx.dll
Sound.dll
win.dll
core.dll
util.dll
script.dll
weiters gibt es math.lib und base.lib(Basissachen wie Log, Exception, Enginetypen, usw).

Dann gibt es noch eine Engine.dll diese lädt dann anhand ein config-Files die die dll's. So ist es auch möglich auch mehreren Plattformen zu aggieren.

Die Engine.dll hat dann für alle dll's auch die Interfaces.
<Beispiel zur Win.dll>

In der Engine.dll ist die IWin -> pure virtual

class IWin
{
IWin() =0;
~IWin() =0;
bool Create(.....) =0;
}

In der win.dll schaut es dann wie folgt aus.

class CWin : public IWin
{
...
....
}

So hat man immer die möglichkeit schnell einen Bereich auszutauschen.


Meinugnen ( auch wenn ich kein Mädl mehr bin :o) )

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

7

24.05.2005, 14:03

Zitat von »"David Scherfgen"«

Jeder sollte wissen, dass es sowas nicht gibt. *g*


veto! Ich kenne eine die sich wirklich bemüht und auch schon einiges kann....
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Anonymous

unregistriert

8

24.05.2005, 14:07

Engine

sorry, habe beim letzten Posting einige Rechtschreibfehler gehabt(einige ist gut :help: ).Ich hoffe es könnt es dennoch verstehen

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

9

24.05.2005, 14:10

Re: Engine

Zitat von »"BlackDevil."«

Dann gibt es noch eine Engine.dll diese lädt dann anhand ein config-Files die die dll's. So ist es auch möglich auch mehreren Plattformen zu aggieren.

Erläuter das mal genauer, wie das unter verschiedenen Plattformen gehen soll (beispielsweise Windows und Linux).
Die vielen einzelnen DLLs haben meiner Meinung nach zwei Vorteile:
- man kann (wie schon gesagt) einzelne Dinge schneller austauschen
- es sieht ein bisschen beeindruckender aus, wenn man diese ganzen DLLs vorfindet ;)

Gravierende Nachteile sehe ich momentan keine...

Anonymous

unregistriert

10

24.05.2005, 14:21

Im Prinzip gibt es wie schon gesagt ein Interface nennen wir es mal <IWin>, welches in der Engine als Pure virtual definiert ist.

class IWin
{
IWin()=0;
~IWin()=0;
bool create() =0;
}
Dann gibt es die win.dll die schaut so aus:
class CWin32 : public IWin()
{
...
bool create()
{
// rezeuge W32 Fenster
}
}

weiters kann sich dann jeder auch eine Linuxwin.dll erstellen.
class CLinuxWin : public IWin
{
...
bool create()
{
// rezeuge Linux Fenster
}
}

Im configfile wird dann eingetragen welche window-dll geladen werden soll.

In meinem Gamesource könnte das ganze dann so aussehen

<code snip>
win::IWin *pWin = new win::IWin();
pWin->create(....);

// ob nun ein Linux oder Win32 Fenster erstellt wird hängt ganz davon ab welche dll von der Engine geladen wurde --> config file.

Dadurch, das der Programmierer immer auf die IWin-Schnittstelle zugreifft muß dieser keine Änderungen durchführen wenn es neue dll's gibt. (zumindest nicht wenn alles sauber programmiert wurde )

alles klar soweit?

Werbeanzeige