Author Topic: Entity-System: Space-Shooter  (Read 5658 times)

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
Entity-System: Space-Shooter
« on: 2009-Jan-29 »
Hallo liebe GLBasic'ler,

da ich mich schon seit längerem mit dem Entity-System beschäftige (um endlich den nächsten X-Wing-Nachfolger rauszubringen ;) ) habe ich mal ein kleines Tutorial verfaßt, daß die Grundzüge des Entity-Systems anhand eines einfachen Weltraum-Shooters zeigen soll. Man kann sich hier frei im 3D-Weltraum bewegen und bunte Asteroiden abschießen, die planlos in der Gegend rumschwirren. Also nichts großes, aber vielleicht kann der ein oder andere etwas damit anfangen.

Im Anhang befinden sich gepackt das Tutorial als PDF-Dokument sowie die erforderlichen Projektdatein.

Viel Spaß damit.

---------------------
Update 1.01
- Lasergeschütze als Pivotelemente
- Funktion für Kollisionserkennung optimiert (FOREACH)
- Anhang aktualisiert

[attachment deleted by admin]
« Last Edit: 2009-Feb-02 by Quentin »

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10708
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Re: Entity-System: Space-Shooter
« Reply #1 on: 2009-Jan-29 »
Wow, danke. Genial.

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5019
  • O Rly?
    • View Profile
Re: Entity-System: Space-Shooter
« Reply #2 on: 2009-Jan-29 »
Sehr cool :D

Muss ich trotzdem den Sokoban noch machen ;)
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10708
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Re: Entity-System: Space-Shooter
« Reply #3 on: 2009-Jan-30 »
Anmerkungen:
eine Art Lasergeschütz (hier nur als kleines Dummyobjekt),
-> Dafür kann man auch EntityCreatePivot nehmen. Das ist ein Dummy-Objekt, dass weder Kollision noch Grafik hat.

Code: GLBasic [Select]
FOR k = 0 TO count
   IF asteroid[k].obj = ecol
      INC hits, 1
      EntityFree(asteroid[k].obj)
      AsteroidCreate(k)
      //DIMDEL asteroid[], k --> use this if you
      // don&#39;t want them to return
   BREAK
   ENDIF
NEXT
 

besser mit FOREACH:
Code: GLBasic [Select]
FOREACK ka IN asteroid[]
IF ka.obj = ecol
INC hits, 1
EntityFree(ka.obj)
    // AsteroidCreate(k) <-- umbauen, oder index mitzählen
//DIMDEL asteroid[], k --> use this if you
// don&#39;t want them to return

// DELETE ka
BREAK
ENDIF
NEXT
 


Danke, super Tutorial!  :good:

Offline Heiko

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 500
    • View Profile
Re: Entity-System: Space-Shooter
« Reply #4 on: 2009-Jan-30 »
Sollte aber Kollision haben, ist nämlich nützlich für Kamera Movements, damit man nicht mit dem Level bspw. kollidiert bzw. genügend Abstand hat.Nur eine Anmerkung am Rande.
Ryzen 5 2400G - MSI B450 Tomahawk

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5019
  • O Rly?
    • View Profile
Re: Entity-System: Space-Shooter
« Reply #5 on: 2009-Jan-30 »
@Gernot:

Das mit dem Pivots ist ne geile Sache :D
Hab die auch für das Movement genommen :) Player und Cam drann, dann gehts ab :D
Wenn eine Festeinbindung stattfindet, dann hätt ich da ein paar Vorschläge:

1. Jedersmal EntityBefehl eingeben ist auf dauer nicht so prickelnd. Besser wäre da sowas wie ES_befehl oder E_befehl.
    Da kann man dann super die Autovervollständigung benutzen :P
2. Wenn man was "setzt" wirklich auch gucken, dass der Befehl ES_SetBefehl heißt, das gleiche auch mit Get :) (Haste du auch super
    umgesetzt soweit )
3. Evtl den Befehl EntityAlignTowards umbenennen in EntityLookAt ? // hab den Befehl doch ein wenig suchen müssen :D


Sonst ist mir echt noch nix aufgefallen...
TOP arbeit Gernot!
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
Re: Entity-System: Space-Shooter
« Reply #6 on: 2009-Jan-30 »
jau, stimmt, in diesem Falle wäre ein Pivotelement gut. Hab es schon umgestrickt, die Kollisions-Funktion auch. Muss nur noch das Geschreibsel entsprechend ergänzen  :S

Wenn das ganze wirklich fest eingebaut werden soll, wäre eine Skybox/-sphere/-dome oder ähnliches ganz gut. Zumindest die Möglichkeit, diese dann zu ergänzen

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5019
  • O Rly?
    • View Profile
Re: Entity-System: Space-Shooter
« Reply #7 on: 2009-Jan-31 »
:) Gernot läst ja mit sich reden...

Deshalb liebe ich GLBasic auch so, net nur wegen den netten Leuten :D
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Heiko

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 500
    • View Profile
Re: Entity-System: Space-Shooter
« Reply #8 on: 2009-Jan-31 »
Genau, ich bleib ja auch bei GLB obwohls es für xors3d schon fertige bmax und bb wrapper gibt.
Aber ich  <3 GLBasic.
Ryzen 5 2400G - MSI B450 Tomahawk

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5019
  • O Rly?
    • View Profile
Re: Entity-System: Space-Shooter
« Reply #9 on: 2009-Jan-31 »
:)
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
Re: Entity-System: Space-Shooter
« Reply #10 on: 2009-Feb-02 »
Danke!
Update! Siehe erste Post.