Erstes 3D-Game, aber welche Engine?

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Codusa
Beiträge: 92
Registriert: 11.07.2009 09:44

Re: Erstes 3D-Game, aber welche Engine?

Beitrag von Codusa »

DarkDragon hat geschrieben:
Vermilion hat geschrieben:
Ok... Ich probier n3xt-d mal aus, weil ich grad sowiso ein bissl genervt von Ogre bin(LoadWorld).
LoadWorld ist schon seit geraumer Zeit bzw. seit einigen PureBasic Versionen nur noch eine Leiche, d.h. hat keine Funktion mehr. Ist genauso wie mit TextureOutput() derzeit, ist auch nutzlos.
LoadWorld ist seit einiger Zeit wieder dabei und funktioniert wunderbar. Probiers mal mit ET Wolfenstein maps.
Hab mir ET Map Ae_Sniper_Challenge runtergeladen und folgenden code benutzt:

Code: Alles auswählen

#CameraSpeed = 10

If InitEngine3D()  
  InitSprite()
  InitKeyboard()
  InitMouse()
  OpenScreen(1680,1050,32,"Demons")

    AmbientColor(RGB(0,200,0))  
     
    CreateCamera(0, 0, 0, 100, 100)
    CameraLocate(0,0,1000,0)  
    CameraBackColor(0,RGB(0,2,200))

    Add3DArchive("DemonsPics\ae_sniper_challenge.pk3",#PB_3DArchive_Zip)
    LoadWorld("maps\ae_sniper_challenge.bsp")
    SkyDome("Wolken02.jpg",-10)
    Repeat

      
      ;ClearScreen(RGB(0, 0, 0))
            
      If ExamineKeyboard()
        
        If KeyboardPushed(#PB_Key_Left)
          KeyX = -#CameraSpeed 
        ElseIf KeyboardPushed(#PB_Key_Right)
          KeyX = #CameraSpeed 
        Else
          KeyX = 0
        EndIf
        If KeyboardPushed(#PB_Key_Space)
          CameraLocate(0,0,1000,0)
        EndIf
        If KeyboardPushed(#PB_Key_Up)
          KeyY = -#CameraSpeed 
        ElseIf KeyboardPushed(#PB_Key_Down)
          KeyY = #CameraSpeed 
        Else
          KeyY = 0
        EndIf

      EndIf
      
      If ExamineMouse()
        MouseX = -(MouseDeltaX()/3)*#CameraSpeed/2
        MouseY = -(MouseDeltaY()/3)*#CameraSpeed/2
      EndIf
      
      
      RotateCamera(0, MouseY, MouseX, RollZ, #PB_Relative)
      MoveCamera  (0, KeyX, 0, KeyY) ; ################IMA####################


      
      RenderWorld()

      FlipBuffers()
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1

    
Else
  MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
  
End
LoadWorld liefert 1 zurück
Da bekomme ich dann einen IMA bei MoveCamera...
"I became insane, with long intervals of horrible sanity." - Edgar A. Poe
Benutzeravatar
Hoessi666
Beiträge: 19
Registriert: 09.12.2009 11:34
Computerausstattung: eMachine Notebook G520, Intel 575 @ 2GHz, 2GB Ram,Intel Mobile 4 Series Express
Wohnort: R´Lyeh

Re: Erstes 3D-Game, aber welche Engine?

Beitrag von Hoessi666 »

DarkDragon hat geschrieben:
Vermilion hat geschrieben:
Ok... Ich probier n3xt-d mal aus, weil ich grad sowiso ein bissl genervt von Ogre bin(LoadWorld).
LoadWorld ist schon seit geraumer Zeit bzw. seit einigen PureBasic Versionen nur noch eine Leiche, d.h. hat keine Funktion mehr. Ist genauso wie mit TextureOutput() derzeit, ist auch nutzlos.
LoadWorld ist seit einiger Zeit wieder dabei und funktioniert wunderbar. Probiers mal mit ET Wolfenstein maps.
Als LoadWorld wieder reingenommen wurde, habe ich´s mal direkt mit einer Q3-Map genutzt. Problem war, dass die Ogre-Entities und die Q3-Map ein anderes Koordinatensystem nutzten.
So mußte man eine Entity an der x-Achse verschieben um die y-Position im Level zu ändern...Die Kamera lief dagegen einwandfrei, wenn ichs recht in Erinnerung habe...
War letzten Endes so nervig, dass ichs gelassen habe...

Wurde da schon was gefixed?
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Erstes 3D-Game, aber welche Engine?

Beitrag von DarkDragon »

Hallo,

Da ist ein Beispiel drin das funktioniert (Eine Map muss man natürlich selbst suchen):
http://www.purebasic.com/Ogre1.6.zip
Hoessi666 hat geschrieben:Als LoadWorld wieder reingenommen wurde, habe ich´s mal direkt mit einer Q3-Map genutzt. Problem war, dass die Ogre-Entities und die Q3-Map ein anderes Koordinatensystem nutzten.
So mußte man eine Entity an der x-Achse verschieben um die y-Position im Level zu ändern...Die Kamera lief dagegen einwandfrei, wenn ichs recht in Erinnerung habe...
War letzten Endes so nervig, dass ichs gelassen habe...

Wurde da schon was gefixed?
Darüber kann man sich jetzt streiten ob das ein Bug ist. Das ist lediglich eine Komponentenvertauschung, mehr nicht. Wenn du das nicht willst musst du halt deine Maps drehen in einem Mapeditor.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Antworten