Tester für 3D Game gesucht: Top Gun (in Entwicklung)

  • Halli hallo hallöchen,
    heute möchte ich euch die Möglichkeit geben, Teile von meinem FLugsimulator zu testen.
    Das Spiel befindet sich natürlich noch in der Entwicklung, das Grundgerüst steht jedoch.
    Steuerung mit Pfeil nach oben (gas geben), Lenkung:maus.
    Bis jetzt gabs bei der Steuerung einige Probleme, werds bei Möglichkeit verbessern

    [Blockierte Grafik: http://www7.pic-upload.de/05.06.11/9crq7sz63uc7.jpg]
    Ich möchte von euch wissen,
    -wie die Steuerung ist
    -ob und wie die Simulation läuft
    ...
    ..to be continued
    Andere Urteile sind natürlich auch erwünscht.
    Gruß, Billie
    Downloadlink:
    http://www.file-upload.net/download-34872…-Gun-1.rar.html

    [align=center]Meine Werke mit der Irrlicht Engine
    AutoIt Picture Viewer Dreidimensionaler Bildbetrachter
    Mr Bubble 3D Neue Interpretation des Flashklassikers Bubble trouble

    2 Mal editiert, zuletzt von Twodollarbillie (18. Juni 2011 um 19:34)

  • Du solltest vielleicht dazu schreiben das die Irrlicht-Wrapper-DLL benötigt wird - sonst läuft da nix.


    Das erklärt einiges :rolleyes:

    Mhh, als Beta nicht schlecht. Ich glaube aber, da liegt aber noch ein Stück Arbeit vor dir. Du solltest die Steuerung (aber vor allem das Flugverhalten) verbessern und man sollte nicht mehr durch Berge und durch den Boden durchfliegen können. Auch die Landschaft ist noch etwas dürftig (ein schnellerer Aufbau wäre super).

    Aber ich finde es trotzdem cool :rock:

  • Irrlicht Wrapper DLL wird natürlich benötigt, hatte ich vergessen.
    - Zur Physik: was will man da groß machen ^^
    - um es echter aussehen zu lassen, werd ich das Flugzeug beim Lenken leicht rotieren lassen
    - die Drehgeschwindigkeit bzw Rotationsgeschwindigkeit der FPSCam werd ich morgen erhöhen
    - die Kollision wird natürlich noch behandelt. Nachdem die Steuerung einigermaßen ok ist, werd ich mich daran setzen.
    - eine große Landschaft wird demnächst kreeirt
    Danke für die ersten Bewertungen!

    [align=center]Meine Werke mit der Irrlicht Engine
    AutoIt Picture Viewer Dreidimensionaler Bildbetrachter
    Mr Bubble 3D Neue Interpretation des Flashklassikers Bubble trouble

  • Kurze verständnis Frage: Wieso kann man bei der Flugphysik nicht viel machen?

  • Auf jeden Fall schon nicht schlecht. Bei mir ist die Mauslenkung zwar sehr langsam, unkontolliert und unzuverlässig, aber ich denke das liegt an meiner VM, denn im Grunde funktionierts ja...
    Könnten wir denn den Quellcode mal sehen? Jetzt fehlt natürlich noch Kolision, etc und die FPS-Geschwindigkeit sollte was hochgeschraubt werden, dann ist es schon recht gut. (Bis auf die Winz-Welt, die ja aber größer werden soll)
    Übrigens hat es mit dem Link für die Irrlicht.dll nicht geklappt, ka. wieso, ist einfach nicht gestartet, ohne Fehlermeldung. Mit meiner eigenen klappts aber...

  • Hallo!
    Habs grad mal geladen und getestet...
    Nunja was soll ich sagen, da is ja nicht viel zum Testen?!?
    0% Physik
    Kein Speed, dadurch Null Flugverhalten...

    Sorry, will dir dein Programm nicht zerreissen; du wolltest aber Kritik

    Grüsse!

  • Definiere mal deine Physik. Was genau fehlt?
    Wie schon gesagt, bei der FPS Camera viel Physik hinzuzufügen, fällt ziemlich schwer.
    Einen eigenen Kamera- und Lenkmodus zu programmieren ist ziemlich hart und allein braucht man da eh ewig...

    [align=center]Meine Werke mit der Irrlicht Engine
    AutoIt Picture Viewer Dreidimensionaler Bildbetrachter
    Mr Bubble 3D Neue Interpretation des Flashklassikers Bubble trouble

  • Hy!
    Zum thema Physik:
    Ich Arbeite Momentan auch an einem 'Spiel' aber eben in 2D, Und da habe ich eine Physik 'Emuliert' also so 'getan' als würde es eine Physik geben... z.B. wird der Speed bei mir angehoben in festgelegten Schritten, und ebenso abgesengt (blos Langsamer). Und wenn ich Vollgas gebe, dann lasse ich die Kamera ein wenig 'Shaken'; so entsteht ein Cooler Look. Du Arbeitest ja mit Irrlicht, da mußt du die Kamera ja auch mit Coordinaten festlegen; da lässt du z.B. einen Shaker einfliessen. Somit entsteht kein steriler Look.
    Ich habe ja auch keine echte Physikengine für ein einfaches Movement geschrieben, ich Tue aber einfach so ;)

    Grüsse von
    Techmix!

  • Vielen Dank für den Hinweis!
    Ich werds bei Gelegenheit einbauen.

    - Könnte jemand schauen ob Tastensimulationen, gezielt auf das Spiel (zb pfeil nach oben), unterdrückt werden?

    [align=center]Meine Werke mit der Irrlicht Engine
    AutoIt Picture Viewer Dreidimensionaler Bildbetrachter
    Mr Bubble 3D Neue Interpretation des Flashklassikers Bubble trouble

  • Bessergesagt rudimentäre physik
    demenstprechend sollte man dem flugzeug auch ein gewicht zuweißen

  • Ich arbeite ja mit der FPSCamera.
    Dementsprechend ist es bisschen schwer, das FLugzeug (child der camera) einfach sinken zu lassen. Versuche mit _irrsetnodeposition missglückten.
    Deshalb nochmals: Kann jemand testen, ob Tastensimulationen via send oder controlsend fehlschlagen (Send("{up}") oder so... ) von dem Spiel unterdrückt werden?
    Edit: Arbeiten eingestellt.

    [align=center]Meine Werke mit der Irrlicht Engine
    AutoIt Picture Viewer Dreidimensionaler Bildbetrachter
    Mr Bubble 3D Neue Interpretation des Flashklassikers Bubble trouble

    Einmal editiert, zuletzt von Twodollarbillie (18. Juni 2011 um 19:34)

  • Hey!
    Zwar hat 2$Billie das Projekt aufgehört/verschoben, allerdings hatte ich mich letzte Woche mal daran versucht, ein bisschen "Physik" reinzubringen..
    die Fighter3.txt in md2 umbenennen und ins Scriptverzeichnis ;)
    Auch hier ist die Physik noch unrealistisch und unvollständig!

    Viel Spaß!

    Spoiler anzeigen
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include "..\au3Irrlicht2.au3"
    #include <misc.au3>
    Global Const $Pi = 3.1415
    Global Const $DegToRad = $Pi / 180

    [/autoit] [autoit][/autoit] [autoit]

    Global $R_W = 0 ;Dazu addierter Winkel am Höhenruder
    Global $A_W = 0 ;Gesamtwinkel des Höhenruders
    Global $S_W = 0 ;Winkel des Seitenruders
    Global $V = 0.5 ;Aktuelle Geschwindigkeit in 20px/s
    Global $a = 0.05 ;Beschleunigung
    Global $M_R_W = 2 ;Stärke des Höhenruders
    Global $M_S_W = 2 ;Stärke des Seitenruders
    Global $V_MIN = 0.5 ;Minimale Geschwindigkeit
    Global $V_MAX = 3 ;Maximale Geschwindigkeit
    Global $AUTO_CAL = True ;Wenn True, dann calibriere das Flugzeug nach Lenkung
    Global $CAL_SPEED = 1.5 ;Geschwindigkeit der Kalibrierung
    Global $X = 0, $Y = 100, $Z = -100 ;X-, Y-, Z-Position des Flugzeugs
    Global $CAM_X = 0, $CAM_Y = 100, $CAM_Z = -115 ;X-, Y-, Z-Position der Kamera
    Global $CAM_DIST = 0.1 ;Abstand der Kamera zum Flugzeug
    HotKeySet("z", "_exit")

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "Steuerung", "Beschleunigen: q"&@CRLF&"Bremsen: a"&@CRLF&"Lenken: Pfeiltasten"&@CRLF&"Beenden: z")
    $Debug = GUICreate("Debugger", 118, 180, 200, 172, BitOR($WS_SYSMENU, $WS_CAPTION, $WS_POPUP, $WS_POPUPWINDOW, $WS_BORDER))
    $ListView1 = GUICtrlCreateListView("Was|Wert", 0, 0, 113, 177)
    $SpeedItem = GUICtrlCreateListViewItem("V|" & $V, $ListView1)
    $XItem = GUICtrlCreateListViewItem("X|" & $X, $ListView1)
    $YItem = GUICtrlCreateListViewItem("Y|" & $Y, $ListView1)
    $ZItem = GUICtrlCreateListViewItem("Z|" & $Z, $ListView1)
    $R_WItem = GUICtrlCreateListViewItem("Winkel H/T|" & 0, $ListView1)
    $S_WItem = GUICtrlCreateListViewItem("Winkel L/R|" & 0, $ListView1)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    _IrrStart($IRR_EDT_OPENGL, 800, 800, $IRR_BITS_PER_PIXEL_32, _
    $IRR_WINDOWED, $IRR_SHADOWS, $IRR_CAPTURE_EVENTS, $IRR_VERTICAL_SYNC_ON)
    _IrrSetWindowCaption("Top Gun")

    [/autoit] [autoit][/autoit] [autoit]

    $CloudTexture = _IrrGetTexture(@ScriptDir&"\cloud4.png")
    $CloudNode = _IrrAddClouds($CloudTexture, 3, 1, 10)

    [/autoit] [autoit][/autoit] [autoit]

    $PlaneMesh = _IrrGetMesh(@ScriptDir&"\fighter3.md2")
    $TerrainMesh = _IrrGetMesh(@ScriptDir&"\topgun2.obj")
    $TerrainTexture0 = _IrrGetTexture(@ScriptDir&"\topgun2.png")
    $MeshTexture = _IrrGetTexture(@ScriptDir&"\fighter.pcx")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $PlaneNode = _IrrAddMeshToScene($PlaneMesh)
    _Irrsetnodescale($PlaneNode, 0.1, 0.1, 0.1)
    _IrrSetNodePosition($PlaneNode, $X, $Y, $Z)
    _IrrSetNodeMaterialTexture($PlaneNode, $MeshTexture, 0)
    _IrrSetNodeMaterialFlag($PlaneNode, $IRR_EMF_LIGHTING, $IRR_OFF)

    [/autoit] [autoit][/autoit] [autoit]

    $Terrain = _IrrAddMeshToScene($TerrainMesh)
    _IrrSetNodeMaterialTexture($Terrain, $TerrainTexture0, 0)
    _IrrSetNodeMaterialFlag($Terrain, $IRR_EMF_LIGHTING, $IRR_OFF)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $Camera = _IrraddCamera($X, $Y, $Z - 5, $X, $Y, $Z)

    [/autoit] [autoit][/autoit] [autoit]

    $MapCollision = _IrrGetCollisionGroupFromComplexMesh($TerrainMesh, $Terrain)

    [/autoit] [autoit][/autoit] [autoit]

    _IrrHideMouse()
    AdlibRegister("_ActData", 500)

    [/autoit] [autoit][/autoit] [autoit]

    While _IrrRunning()
    _IrrBeginScene(240, 255, 255)
    If _IsPressed("51") And $V + $a < $V_MAX Then $V += $a ;Addiere Beschleunigung zur Geschwindigkeit
    If _IsPressed("41") And $V - $a > $V_MIN Then $V -= $a
    If _IsPressed("28") Or _IsPressed("26") Then ;Setze Die Höhenruder
    If _IsPressed("28") Then $R_W = $M_R_W
    If _IsPressed("26") Then $R_W = -$M_R_W
    Elseif $AUTO_CAL Then
    If $A_W > $M_R_W * $CAL_SPEED Then
    $A_W -= $M_R_W * $CAL_SPEED
    Elseif $A_W < -$M_R_W * $CAL_SPEED Then
    $A_W += $M_R_W * $CAL_SPEED
    Else
    $A_W = 0
    EndIf
    EndIf
    If _IsPressed("25") Or _IsPressed("27") Then ;Setze Die Seitenruder
    If _IsPressed("25") Then $S_W += $M_S_W
    If _IsPressed("27") Then $S_W -= $M_S_W
    Elseif $AUTO_CAL Then
    If $S_W > $M_S_W * $CAL_SPEED Then
    $S_W -= $M_S_W * $CAL_SPEED
    Elseif $S_W < -$M_S_W * $CAL_SPEED Then
    $S_W += $M_S_W * $CAL_SPEED
    Else
    $S_W = 0
    EndIf
    EndIf
    _Berechne_Position()
    _Setze_Position()
    _IrrDrawScene()
    _IrrDrawGUI()
    _IrrEndScene()
    $R_W = 0
    Sleep(50)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Berechne_Position()
    Local $T_W = $S_W
    $A_W += $R_W
    If Mod(Abs($S_W), 360) >= 90 Then $S_W = 90-($S_W-90)
    $Z += Cos($S_W * $DegToRad) * Cos($A_W * $DegToRad) * $V ;Zurückgelegte Strecke in Z-Richtung
    $Y += Sin($A_W * $DegToRad) * $V ;Zurückgelegte Strecke in Y-Richtung
    $X += -Sin($S_W * $DegToRad) * Cos($A_W * $DegToRad) * $V ;Zurückgelegte Strecke in X-Richtung
    $CAM_Z += Cos($S_W * $DegToRad) * Cos($A_W * $DegToRad) * ($V-$CAM_DIST) ;Zurückgelegte Strecke in Z-Richtung
    $CAM_Y += Sin($A_W * $DegToRad) * ($V-$CAM_DIST) ;Zurückgelegte Strecke in Y-Richtung
    $CAM_X += -Sin($S_W * $DegToRad) * Cos($A_W * $DegToRad) * ($V-$CAM_DIST) ;Zurückgelegte Strecke in X-Richtung
    $S_W = $T_W
    _IrrSetNodeRotation($PlaneNode, -$A_W, 0, $S_W)
    EndFunc ;==>_Berechne_Position

    [/autoit] [autoit][/autoit] [autoit]

    Func _Setze_Position()
    _IrrSetNodePosition($PlaneNode, $X, $Y, $Z)
    _IrrSetNodePosition($Camera, $CAM_X, $CAM_Y, $CAM_Z)
    _IrrSetCameraTarget($Camera, $X, $Y, $Z)
    EndFunc ;==>_Setze_Position

    [/autoit] [autoit][/autoit] [autoit]

    Func _ActData()
    GUICtrlSetData($SpeedItem, "V|" & $V)
    GUICtrlSetData($XItem, "X|" & $X)
    GUICtrlSetData($YItem, "Y|" & $Y)
    GUICtrlSetData($ZItem, "Z|" & $Z)
    GUICtrlSetData($R_WItem, "Winkel H/T|" & $A_W)
    GUICtrlSetData($S_WItem, "Winkel L/R|" & $S_W)
    EndFunc ;==>_ActData

    [/autoit] [autoit][/autoit] [autoit]

    Func _exit()
    Exit
    EndFunc ;==>_exit

    [/autoit]

    MfG,
    Fresapore