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

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

91

17.02.2017, 18:27

Nochmal ne andere Sache: Kann es sein, dass das Laden so lange dauert, weil du für jedes Objekt das Modell und die Texturen neu lädst (also wenn es z.B. 100 Grasbüschel gibt, lädst du dann 100-mal das entsprechende Modell + Textur?). Ich habe einen ziemlich leistungsstarken Rechner und eine SSD, das darf eigentlich nicht so lange laden.

ByteJunkie

Alter Hase

  • »ByteJunkie« ist der Autor dieses Themas

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

92

17.02.2017, 18:37

Ein Codeschnipsel sagt mehr als 100 Worte:

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
23
24
25
26
27
28
29
30
31
32
33
34
35
tbResult CItemManager::LoadGrass1(BOOL bAddNew)
{
    // Die Grasbüschel laden
    if(bAddNew)
    {
        m_aGrass1[m_iGrass1Counter-1].m_aType.iIndex = m_iGrass1Counter-1;
        sprintf(m_aGrass1[m_iGrass1Counter-1].m_aType.acName, "Grasbüschel");
        sprintf(m_aGrass1[m_iGrass1Counter-1].m_aType.acDesc, "Grünes Gras");
        m_aGrass1[m_iGrass1Counter-1].m_pModel = m_aGrass1[0].m_pModel;
    }
    else
    {
        for(int iObj = 0; iObj < m_iGrass1Counter; iObj++)
        {
            m_aGrass1[iObj].m_aType.iIndex = iObj;
            sprintf(m_aGrass1[iObj].m_aType.acName, "Grasbüschel");
            sprintf(m_aGrass1[iObj].m_aType.acDesc, "Grünes Gras");

            if(iObj == 0)
            {
                m_aGrass1[iObj].m_pModel = new tbModel;
                
                if(m_aGrass1[iObj].m_pModel->Init("Data\\Plants\\Grass001\\Grass001.tbm", "Data\\Plants\\Grass001\\"))
                {
                    MessageBox(tbDirect3D::Instance().GetWindow(), "Fehler beim Laden der Modelldatei: Data\\Plants\\Grass001\\Grass001.tbm",
                                "Fehler", MB_OK | MB_ICONEXCLAMATION);
                    //CleanUp();
                    return TB_ERROR;
                }
            }
            else m_aGrass1[iObj].m_pModel = m_aGrass1[0].m_pModel;
        }
    }
    return TB_OK;
}


Der if Zweig ist für den Edit-Mode. Im Else Zweig passiert es dann. 500 Grasbüschel und nur das Erste wird mit New und Init erzeugt.
Das Gras ist wohl nicht das Problem. Eher die Bäume mit den vielen Polygonen.

Allerdings könnte hier vielleicht wirklich ein Release helfen. Ich werde es nochmal probieren. ;) Kann doch nicht so schwer sein. :hmm:
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

Kilo

Frischling

Beiträge: 74

Wohnort: Aachen

  • Private Nachricht senden

93

17.02.2017, 18:37

Ich wäre froh wenn das Spiel wenigstens laden würde!!!

ByteJunkie

Alter Hase

  • »ByteJunkie« ist der Autor dieses Themas

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

94

17.02.2017, 18:44

Wahnsinn! :fie: Heute schon fast 500 Klicks und nur 2 Leute die es ausprobiert haben. Bei einem geht es beim anderen nicht. :crazy:
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

Kilo

Frischling

Beiträge: 74

Wohnort: Aachen

  • Private Nachricht senden

95

17.02.2017, 20:56

Was mich wundert ist, dass mein laptop mit einem bluescreen abstürzt und neu startet. Sowas darf ja nicht passieren.

Was ist denn der unterschied zu der Version mit Setup zum installieren und der jetzigen bereits entpackten?

ByteJunkie

Alter Hase

  • »ByteJunkie« ist der Autor dieses Themas

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

96

17.02.2017, 21:06

Eigentlich kein wesentlicher. Wir warten einfach mal ab wer sich hier meldet.
Eigentlich müssten alle die gleichen Probleme haben wie Du, wenn was nicht funktioniert.
Aber ein Bluescreen ist meist was mit Treibern. Einfach mal abwarten was die Anderen so feststellen.
Vielleicht sind wir einfach zu ungeduldig. :S
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

97

18.02.2017, 00:38

Habe es auch mal getestet. Lädt bei mir auch ziemlich lange, trotz SSD und Haswell-E. Die Datenträgerauslastung ist dabei auch nur bei 0,1 MB/s.
Bei mir läuft es allerdings ingame ganz gut und recht schnell für einen Debug-Build: ~90 FPS mit einer R9 290 und 8xMSAA/FHD.

Ein paar kleine Sachen sind mir auf die schnelle aufgefallen:
- wenn man mit Alt+Tab rausgeht und dann wieder ins Spiel, stürzt es ab
- Wenn man im Fenstermodus startet, passt die Mauszeigerposition nicht (nicht identisch mit dem Windows Mauszeiger, was ziemlich verwirrt)
- im linken und rechten oberen Bildschirmeck hab ich Grafikbugs, je nach dem wie ich mich drehe (siehe Screenshot)
- wie David schon angemerkt hat: Es wäre schön, wenn der Spieler schneller laufen könnte. Mit Mausrad konnte ich nur ran bzw. wegzoomen, aber die Spielfigur läuft immer noch genauso schnell
- wie David schon angemerkt hat: Das mit der Kamera und der Blickfeldrotation funktioniert noch nicht so ganz

Ansonsten läuft es schon ganz gut und sieht auch schön aus und sobald du mir sagst wie ich die Spielfigur dazu bewege schneller zu laufen schaue ich mir die Spielwelt mal genauer an :D
Edit: Habs, also mit +/- kann man schneller laufen, hatte nur Mausrad versucht sorry :whistling:


@Kilo: Hast du eine Intel-IGP/ iGPU?
»Chaia*« hat folgende Bilder angehängt:
  • Screenshot1.jpg
  • Screenshot2.jpg

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Chaia*« (18.02.2017, 00:50)


ByteJunkie

Alter Hase

  • »ByteJunkie« ist der Autor dieses Themas

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

98

18.02.2017, 08:19

Hallo Chaia,

danke für das Feedback. Vorweg: Mausrad drücken erhöht die Geschwindigkeit auch! Reset mit Pos1-Taste! :this:

Das mit den Ecken ist mir auch schon aufgefallen. Aber erst seit ich meinen neuen Rechner habe. Könnte an der verbugten Kameraeinstellung liegen. Das muss ich auf jeden Fall verbessern.

Wie man das Spiel mit Alt-Tab am Laufen hält weiß ich leider noch nicht. Bin aber schon einmal über einen ähnlichen Artikel hier im Forum gestolpert.
Ich mach erst mal eine Release und schau ob es da schneller startet. Sonst muss ich da mal schauen, ob sich das optimieren lässt.

Das Spiel selber läuft sehr schnell und das ist, wie ich finde ein großer Vorteil. Ich kann auch die Größe ganz einfach verdoppeln. Aber dann kommt man sich in der riesigen Welt verloren vor und es gibt kaum Vegetation. Darum hab ich die Insel erst mal etwas kleiner gemacht. ;)

Ergänzung:
An die doppelten Mauszeiger im Fenstermodus hatte ich mich schon so gewöhnt. :whistling: Aber Du hast natürlich recht. Geht gar nicht. Muss ich mir mal genauer anschauen. Jetzt Fallen solche Sachen natürlich negativ auf. :huh:
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »ByteJunkie« (18.02.2017, 08:33)


ByteJunkie

Alter Hase

  • »ByteJunkie« ist der Autor dieses Themas

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

99

18.02.2017, 11:46

Eine Fehlermeldung trennt mich noch vom Release. :D Kann man da was anderes angeben als DS3DALG_HRTF_FULL? Kommt aus der DSound.h

C-/C++-Quelltext

1
2
3
4
5
6
7
8
        // Cargosound laden
        m_pGetCargoSound = new tbSound;
        if(m_pGetCargoSound->Init("Data\\Sounds\\GetCargo.wav",
            DSBCAPS_STATIC | DSBCAPS_LOCDEFER | DSBCAPS_CTRL3D | DSBCAPS_CTRLFREQUENCY | DSBCAPS_MUTE3DATMAXDISTANCE, DS3DALG_HRTF_FULL, 16))
        {
            // Fehler!
            TB_ERROR("Fehler beim Laden des GetCargosounds!", TB_ERROR);
        }


C-/C++-Quelltext

1
2
3
4
5
6
7
1>------ Erstellen gestartet: Projekt: MysteryOutback, Konfiguration: Release Win32 ------
1>  CGame.cpp
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1087): warning C4995: 'wcscat': der Name, der als #pragma markiert war, wurde verworfen
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1089): warning C4995: 'wcscpy': der Name, der als #pragma markiert war, wurde verworfen
1>CGame.obj : error LNK2001: Nicht aufgelöstes externes Symbol "_DS3DALG_HRTF_FULL".
1>.\MysteryOutback.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


DSound.h

C-/C++-Quelltext

1
2
3
4
5
6
7
8
// No virtualization (Pan3D) {C241333F-1C1B-11d2-94F5-00C04FC28ACA}
DEFINE_GUID(DS3DALG_NO_VIRTUALIZATION, 0xc241333f, 0x1c1b, 0x11d2, 0x94, 0xf5, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca);

// High-quality HRTF algorithm {C2413340-1C1B-11d2-94F5-00C04FC28ACA}
DEFINE_GUID(DS3DALG_HRTF_FULL, 0xc2413340, 0x1c1b, 0x11d2, 0x94, 0xf5, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca);

// Lower-quality HRTF algorithm {C2413342-1C1B-11d2-94F5-00C04FC28ACA}
DEFINE_GUID(DS3DALG_HRTF_LIGHT, 0xc2413342, 0x1c1b, 0x11d2, 0x94, 0xf5, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca);
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

ByteJunkie

Alter Hase

  • »ByteJunkie« ist der Autor dieses Themas

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

100

18.02.2017, 11:59

Die dxguid.lib hat geholfen. :D

Grüße
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

Werbeanzeige