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

Lemming

Alter Hase

  • »Lemming« ist der Autor dieses Themas

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

1

17.11.2005, 22:14

zu komplexe strukturen

hi jungs,
ich hab in letzter zeit gewisse schwierigkeiten mir ne vernünftige struktur und nen vernünftigen aufbau auszudenken. ich denk mir andauernd neue manager und interface und sonsts was klassen aus. mir macht das zwar riesen spaß mir auszudenken, wie da irgendwelche viecher in meinem RAM zusammenarbeiten (natürlich bildlich gesprochen). Nur ich merke es is der größe der exe und der geschwindigkeit nich grad zuträglich.
daher meine frage, woran kann man erkennen, wann etwas überflüssig ist und wann nicht? einfach mal nen paar tips, wie ihr das macht, denn ich dreh mich langsam im kreis...

schonma vielen dank im vorraus...
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

Anonymous

unregistriert

2

17.11.2005, 22:19

Thema exe-Größe: www.germangamedev.de << Tutorials << How To Build 64K

Etws was überflüssig ist? Hmn, was du anders effektiver lösen könntest! z.B. für nur einen String std::basic_string<wchar_t> zu benutzen wäre unsinnig. da kann man einen const wchar_t* benutzen.

Kommt immer auf den Fall an.

Auch absolut überflüssige Zusatzlibs wie D3DX braucht kein Schwein. Sind zwar manchmal was feines, blähen aber das Programm unglaublich auf! z.B. um eine Textur zu laden schreibt man den Loader lieber selber, so spart man oft schon paar Hundert KB.

Lemming

Alter Hase

  • »Lemming« ist der Autor dieses Themas

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

3

17.11.2005, 23:14

schon ma vielen dank...

mir gehts in erster linie darum, was ihr in manager klassen verpackt und was ihr mit einfachen funktionen oder copy & paste(mag ich nich) löst..

stichwort overlays, oder texte aufm bildschirm oder gamestates, levels son zeug
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

17.11.2005, 23:35

Meine Methode:
Alles erstmal funktional implementieren um es erstmal testen zu können.
Falls ich feststelle, dass ich das mehrmals brauche, dann wird es gekaspelt. Für den Fall, dass Großteile von Klassen sich stark ähnelnm, wird mit Vererbung gearbeitet.
Nicht jedermanns Sache, manchmal auch ein wenig zeitaufwändig, aber super einfach :meinung:
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.

Lemming

Alter Hase

  • »Lemming« ist der Autor dieses Themas

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

5

17.11.2005, 23:45

@Nox is keine allzu schlechte idee, hab ich bei dem "kinderspielnbausatz" für die WinAPI so gemacht... und es ging extrem schnell. in ner halben std hat ich ne version, die das meiste schon konnte.
ich denke ganz besonders bei der benutzerführung werd ich das auch so machen.
andere frage in dem zusammenhang (ich hoffe ich werd nich nervig)
wie baut ihr eure leveldateien auf? ich schätze mal chunks größten teils, aber auch intern so die "verwaltung" wie gesagt nur recht grob... ich brauch denkanstöße
thx
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

6

17.11.2005, 23:50

ich persönlich habe keine level sondern welten. Ich habe eine txt Datei die beim Systemstart interpretiert wird.
Sieht so aus:

Quellcode

1
2
3
4
5
6
7
8
9
10
;typ: Objekt; Name:tempel.ckm; position:(0,-5,0); Masse:-1;

;typ: schiff; Name:bomber.ckm; Masse: 1000; position:(0 ,100 ,0 ); bewegung:(0,-1,0);
;Name:ship-light.ckm; position: (0,50,0); rotation:(4,-4 ,4); Masse: 10
;Name: cube.ckm; typ: objekt; position:(0,0,0); Masse: 100;
;Name: cube.ckm; typ: objekt; position:(0,0,20); Masse: 100;

typ: schiff; Name:ship.ckm; position:(100,100,0); rotation:(4,4,4); NumGeschütze: 1;
2. waffenname: vendettaI.ckm; NumverschiedeneMunition: 1; intern: nein;
Munitionsname: tiger.ckm; NumMunition: 100;

hat finde ich den Vorteil sehr variabel zu sein. Jedoch kann ich damit keinerlei Abhängigkeiten darstellen. (z.b. Objekt A hängt so und so an Objekt B dran)
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.

Lemming

Alter Hase

  • »Lemming« ist der Autor dieses Themas

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

7

18.11.2005, 00:25

könnt bei dem was ich vorhab in der form kompliziert werden...
ich hab drei dimensionale labyrinthe also 3d auch im sinne der möglichen richtungen...
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

Anonymous

unregistriert

8

18.11.2005, 08:27

Lemming
Wie und was ich alles in Managern packe: www.germangamedev.de << Tutorials << Funny Break :D

Bei mir gibt für DirectDraw wenig Manager

Grundaufbau:
DirectDraw selbst
SurfaceManager
DirectInput
Debug
GameState

Spielaufbau:
Welt
Objekte


Bei Direct3D Siehts da etwas mehr aus:
Direct3D
SurfaceManager
TextureManager
PolygonManager
ShaderManager
Debug
DirectInput
GameState
RenderManager

Für Spiel:
PortalManager
Welt
ObjektManager

Sicaine

unregistriert

9

18.11.2005, 15:27

Zitat von »"nix da"«

Thema exe-Größe: www.germangamedev.de << Tutorials << How To Build 64K

Etws was überflüssig ist? Hmn, was du anders effektiver lösen könntest! z.B. für nur einen String std::basic_string<wchar_t> zu benutzen wäre unsinnig. da kann man einen const wchar_t* benutzen.

Kommt immer auf den Fall an.

Auch absolut überflüssige Zusatzlibs wie D3DX braucht kein Schwein. Sind zwar manchmal was feines, blähen aber das Programm unglaublich auf! z.B. um eine Textur zu laden schreibt man den Loader lieber selber, so spart man oft schon paar Hundert KB.


Oo weil das ned scheißegal is wenn die Exe paar MB-groß is. Wenn die im Ram is wird sowieso darüber hinweggesprungen also wo sollen groß die vorteile dabei sein? Ok wenn man viel dazwischen hat muss man vielleicht etwas mehr cachen(cpu halt) aber trozdem?

Anonymous

unregistriert

10

18.11.2005, 15:48

Sicaine
Ich würde es als Zumutung empfinden wenn eine Exe-Datei 8 MByte groß ist nur weil der Coder zu Blöde & Faul war nachzudenken.

Das sehen sicherlich auch ISDN oder Modem-User die gerne Freewarespiele spielen.

Da wird nichts dran gerüttelt, es ist und bleibt eine Zumutung!

Werbeanzeige