Author Topic: [3D] Basic Movement eines Egoshooters  (Read 8874 times)

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5022
  • O Rly?
    • View Profile
Hi Leute

Ich dachte mir ich fang mal einen Egoshooter an in GLBasic in 3D!
So! , da ich sehr schnell feststellen musste, dass die Steuerung im 3-Dimensionalen Raum nicht ganz so einfach von der Hand geht, dachte ich mir teile ich mein neu erworbenes Wissen mit euch.

ICH WILL KEIN LOB!
Ich will nur kritik hören, Gute oder schlecht sei dahingestellt :D
Ich habe vor, nach und nach immer mehr in dieser Richtung zu bringen, wenn es Anklang findet ....

########################################################
Das kommt als nächstes:

1. Darstellung einer Spielumgebung [DONE]
2. Anziehung, Collisionen          [DONE]
3. Skybox(?)                       [DONE]

4. Sliding Collision mit Wänden
5. Schüsse im 3D-Raum
6. Gegner/ Multiplayer

########################################################
(LAST UPDATE 02.09.07)
LINK: www.StyleAttax.de/3D_Movement.rar


BASIS BEWEGUNG:

Code: GLBasic [Select]
// --------------------------------- //
// Project: 3D Movement
// Start: Friday, August 31, 2007
// IDE Version: 4.279

// Steuerung mit W-A-S-D Tasten + Maus

GLOBAL up_down_limit = 80  //gesammt 160°
GLOBAL WalkSpeed = 2
GLOBAL phiXZ = 90                  // Startwinkel korregieren

WHILE TRUE
        X_MAKE3D 1,1000,45         // sicht von 1 bis 1000, brennweite 45
        X_CAMERA X, Y, Z,       X+COS(phiXZ), Y+SIN(-phiXY), Z+SIN(phiXZ) // Die Cam erstellen

// Achsen anzeigen zum Debugen
        X_DRAWAXES 0,0,0
        X_DRAWAXES 0,0,50
        X_DRAWAXES 0,0,100
        X_DRAWAXES 0,0,150
        X_DRAWAXES 0,0,200
//----------------------------
       
        INC phiXZ,MOUSEAXIS(0)/2        //links-rechts
        INC phiXY,MOUSEAXIS(1)/2        //hoch runter
       
        IF phiXZ > 359 THEN phiXZ = 0  //Winkel begrenzen
        IF phiXZ < 0 THEN phiXZ = 359  //Winkel begrenzen
       
        IF phiXY < -up_down_limit THEN phiXY = -up_down_limit //Winkel begrenzen
        IF phiXY > up_down_limit THEN phiXY = up_down_limit   //Winkel begrenzen
       
        IF KEY(17) // forward -- W-Key
                INC Z,SIN(phiXZ)*WalkSpeed
                INC X,COS(phiXZ)*WalkSpeed
        ENDIF
        IF KEY(31) // back    -- S-Key
                DEC Z,SIN(phiXZ)*WalkSpeed
                DEC X,COS(phiXZ)*WalkSpeed
        ENDIF
        IF KEY(30) // left        -- A-Key
                INC Z,SIN(phiXZ-90)*WalkSpeed
                INC X,COS(phiXZ-90)*WalkSpeed
        ENDIF
        IF KEY(32) // right       -- D-Key
                INC Z,SIN(phiXZ+90)*WalkSpeed
                INC X,COS(phiXZ+90)*WalkSpeed
        ENDIF
       


        X_MAKE2D
        // Koordinaten und Winkel anzeigen !
        PRINT "X: "+INTEGER(X)+" | Y: "+INTEGER(Y)+" | Z: "+INTEGER(Z),10,10    // Koordinaten
        PRINT "phiXZ: "+(phiXZ-90)+" | phiXY: "+phiXY, 10,30 // Winkel

SHOWSCREEN
WEND
END
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
[3D] Basic Movement eines Egoshooters
« Reply #1 on: 2007-Sep-01 »
fein, genau so kleine Beispiele braucht man, um da überhaupt mal einen Anfang hin zu bekommen. Ich muss gestehen, 3D ist für mich immer noch ein böhmisches Dorf. Könntest du das Beisipiel vielleicht so erweitern, daß man z.B. eine Wand darstellt, die mit der Steuerung wie oben von allen Seiten betrachten kann? Das wäre klasse.

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5022
  • O Rly?
    • View Profile
[3D] Basic Movement eines Egoshooters
« Reply #2 on: 2007-Sep-02 »
Hi Quentin!

Sicher ist kein Problem.
Hatte eh vor, heute weiter zu machen.

Das kommt als nächstes:

1. Darstellung einer Spielumgebung
2. Anziehung, Collisionen
3. Skybox(?)

Werde jeden Schritt versuchen, gut zu beschreiben!
Und die einzelnen Posts, noch im ersten Post ergänzen,
so dass die übersicht vorhanden bleibt!

Always remember:
;)
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
[3D] Basic Movement eines Egoshooters
« Reply #3 on: 2007-Sep-02 »
klasse! Dank dir schon mal. Vielleicht raff ich das ja so irgendwann ;)

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5022
  • O Rly?
    • View Profile
[3D] Basic Movement eines Egoshooters
« Reply #4 on: 2007-Sep-02 »
So Update hier mal die neue Version, Grafisch nicht der Hammer, aber zu testen reichts ja !

www.StyleAttax.de/3D_Movement.rar
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

x-tra

  • Guest
[3D] Basic Movement eines Egoshooters
« Reply #5 on: 2007-Sep-02 »
Sehr nett, wunderbar, kann man einiges lernen bei.
Aber mal so eine Frage am Rande.
Ist es normal, daß die CPU Last bei meinem X2 4600+ auf 70 % !!! ansteigt?

Is aber bei anderen GLB Sachen auch so schon gewesen, und da sind das eigentlich simple Dinge.

Woran könnt das denn liegen?

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5022
  • O Rly?
    • View Profile
[3D] Basic Movement eines Egoshooters
« Reply #6 on: 2007-Sep-02 »
Denke der greift sich schon was vorraus ab.
Ist bei Blitz3D das selbe....
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
[3D] Basic Movement eines Egoshooters
« Reply #7 on: 2007-Sep-03 »
Dat is ja jeil. Genau so hab ich mir das vorgestellt. Weiter so Schranzor.

Offline trucidare

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1377
  • Bachelor of Fail
    • View Profile
[3D] Basic Movement eines Egoshooters
« Reply #8 on: 2007-Sep-03 »
Lecker :) klasse gemacht. Darauf lässt sich bestimmt ein nettes Adventure oder gar ein kleines RPG machen. Vielleicht sogar ein Spiel auf dem Niveau von Legends od Idhuriel das die BB Szene rockt.
MacBook Pro 2,2 GHz Core 2 Duo, 4 GB RAM, 160 GB HDD, 8600M GT
Core i3 - 3,07 GHz, 8 GB Ram, 2.5 TB HDD, Geforce GTX 260+ OC

Offline D2O

  • Prof. Inline
  • *****
  • Posts: 1063
    • View Profile
    • http://www.deuteriumoxid.com
[3D] Basic Movement eines Egoshooters
« Reply #9 on: 2007-Sep-03 »
Quote from: x-tra
...

Ist es normal, daß die CPU Last bei meinem X2 4600+ auf 70 % !!! ansteigt?

Is aber bei anderen GLB Sachen auch so schon gewesen, und da sind das eigentlich simple Dinge.

Woran könnt das denn liegen?
Hi, das ist Normal, 70% sin eh gut ;)
Wenn Du OGL ode DX nutzt, wird die CPU komplett dafür reserviert/ gebraucht.
Um das zu verhinder, z.B. wenn Du einen Editor im Fenstermodus laufen lässt, kannst Du die mal den befehl
"HIBERNATE" anschauen.
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

x-tra

  • Guest
[3D] Basic Movement eines Egoshooters
« Reply #10 on: 2007-Sep-03 »
Daran hab ich auch schon gedacht, hat schon was für sich wenn man die F1 Hilfe in nem schönen Ringordner hat, da schmöckert man gern mal, und da kommt einem schonmal die ein oder andere Idee.

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
[3D] Basic Movement eines Egoshooters
« Reply #11 on: 2008-Jan-08 »
*hochschieb*

Schranzor? Machst an dem Teil noch weiter? So ganz, ganz allmählich bekomme ich einen leichten Raff von dem 3D-Zeugs. Aber gerade sowas wie Bewegung im 3D-Raum bereiten mir noch arg Kopfzerbrechen

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10714
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
[3D] Basic Movement eines Egoshooters
« Reply #12 on: 2008-Jan-08 »
Probier doch mal das Entity System. Das scheint für Einsteiger einfacher.

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5022
  • O Rly?
    • View Profile
[3D] Basic Movement eines Egoshooters
« Reply #13 on: 2008-Jan-08 »
hmm ne eigentlich nicht ^^

Aber wie Gernot schon sagte, das EntitySystem ist VIIIIIIIIIIIIIIIIEEEL einfacher als das ganze Sin Cos -gedöhns ;)
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline BumbleBee

  • Global Moderator
  • Prof. Inline
  • *******
  • Posts: 891
    • View Profile
[3D] Basic Movement eines Egoshooters
« Reply #14 on: 2008-Jan-08 »
@Quentin
3D ist in GLBasic genau so einfach wie 2D. Ist ja nur 1 Achse mehr.Vielleicht am Anfang etwas ungwohnt aber dann...:D Texturen,Modelle basteln, Sprites , Sound....Das macht viel mehr Arbeit als das Programm schreiben, find ich:D


Cheers
The day will come...

CPU Intel(R) Core(TM) i5-3570k, 3.4GHz, AMD Radeon 7800 , 8 GB RAM, Windows 10 Home 64Bit