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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

11

22.05.2010, 22:06

Vergiss nur nicht dass du laut Lizenz eine credit line in deinem Spiel haben musst.

12

22.05.2010, 22:15

Also dein Code gefällt mir. Es fehlt aber auf jeden Fall noch Exception Handling und eventuell eine Logklasse. Und Kommentare solltest du dir auch angewöhnen, wenn du an einer Datei länger nichts gemacht hast, dann wirst du recht lange brauchen um wieder rein zu finden.
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

13

23.05.2010, 21:04

@dot
Das sieht dann ja richtig professionell aus :D

@-insane-
Danke, dachte immer mein Code ist unleslich und schlecht strukturiert :D
Ist denn z.B. einen Zeiger auf NULL überprüfen nicht das gleiche wie Exceptions?
Da musst du mich aufklären. Die Logklasse ist schon in Arbeit :P

14

23.05.2010, 21:22

Nein, wenn eine Exception auftritt und du diese nicht abfängst, wird das Programm einfach beendet, ohne dass irgendetwas freigegeben wird. Deshalb solltest du auf jeden Fall try & catch verwenden und entsprechend auf Exceptions reagieren. Es gibt dazu genügend Tutorials im Internet und jedes einigermaßen gute Einsteigerbuch sollte Exceptions behandeln. Es gibt sogar Gerüchte, dass ein Programmierer durch einen einfachen Logikfehler einen Schaden von über 80.000$ verursacht haben soll, wenn ich mich recht erinnere. Und das nur dadurch, dass er in einer if Abfrage aus Versehen eine Zuweisung statt eines Vergleiches gemacht hat.
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

15

23.05.2010, 21:29

Es gibt sogar Gerüchte, dass ein Programmierer durch einen einfachen Logikfehler einen Schaden von über 80.000$ verursacht haben soll, wenn ich mich recht erinnere.
http://de.wikipedia.org/wiki/Programmfeh…Programmfehlern
:D

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

16

24.05.2010, 09:25

Was benutzen eigl. Crysis, CoD und all die anderen grpßen Egoshooter?

Die CryEngine und Unreal Engine greifen beide auf FMod zurück. Bei CoD weiß ich es grad nicht. FMod ist schon recht gut, aber sobald man etwas kommerzielles entwickeln will, wird es recht teuer.
Laut http://connect.creativelabs.com/openal/O…Wiki/Games.aspx nutzt die Unreal Engine allerdings OpenAL. Bei der CryEngine3 wird FModEx verwendet.

Edit:
Was mir an deinem Code sofort negativ auffällt: Fast alles ist ein Singleton! Ausserdem gibts einige Unschönheiten, wie dieser Memoryleak aus Texturemanager.cpp:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Texture* newTexture = NULL;
newTexture = new Texture;

if(FAILED(D3DXCreateTextureFromFileEx(graphics->GetDevice(),
                Filename.c_str(),
                D3DX_DEFAULT, D3DX_DEFAULT,
                D3DX_DEFAULT,
                0,
                D3DFMT_UNKNOWN,
                D3DPOOL_MANAGED,
                D3DX_FILTER_NONE,
                D3DX_DEFAULT,
                ColorKey,
                NULL,
                NULL,
                &tempTexture)))
{
        MessageBox(NULL, "A texture couldn´t be loaded!", "Error", NULL);
        return(NULL);
}

// ...


Das Spiel konnt ich leider Zwecks nicht gefundener d3dx9_42 nicht testen.
@D13_Dreinig

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »David_pb« (24.05.2010, 16:27)


Tobiking

1x Rätselkönig

  • Private Nachricht senden

17

24.05.2010, 18:02

Laut http://connect.creativelabs.com/openal/O…Wiki/Games.aspx nutzt die Unreal Engine allerdings OpenAL.

Ah, ich hab nur auf der Seite der Unreal Engine gesehen das FMod als Partner eingetragen war. Wenn man aber weiter in die Lizenzen reinguckt steht dort, dass FMod nicht standardmäßig integriert ist.

18

24.05.2010, 22:09

@David_pb
Ich fand die Singletons sind gerechtfertigt, da es z.B. nur 1 Texturen-Manager geben sollte.
Die Teile der Engine, die es mehr mals geben könnte hab ich größtenteils noch nicht geschrieben.
Wo ist da bitte ein Memoryleak? "newTexture" wird weiter hinten in die Texturenliste eingefügt.
Und tempTexture besetzt keinen Speicher.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

19

24.05.2010, 22:11

Was ist den da oben mit Zeile 2? Wo ist das dazugehörende delete?

20

24.05.2010, 22:22

Das versteh ich jetzt nicht :(
Ich steck "newTexture" doch in die Liste ( list<texture*> ) warum muss ich dann den Speicher wieder freigeben,
wenn dr noch gebraucht wird?

Werbeanzeige