Aktuelle Zeit: 18.04.2024, 12:54

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: einfacher 3D Shooter
BeitragVerfasst: 14.06.2009, 16:45 
Offline

Registriert: 14.06.2009, 16:31
Beiträge: 6
Hallo,

ich bin neu hier und hoffen, dass ich mit meinem anliegen im richtigen forum bin.
Ich möchte gerne einen 3D-Shooter programmieren, etwa so wie wolfenstein (falls das jemand kennt, also die erste version, nicht die neue).
Ich habe mir das etwa so gedacht:
Als Waffe nehme ich einfach ein bild, das rechts unten im eck zu sehen ist, also kein 3D objekt. Beim schiessen wird eben ein anderes bild eingeblendet.
Maps würde ich mit irgendeinem 3D-Editor erstellen (kann mir da jemand was empfehlen?), die dann von Irrlicht geladen werden.
Spielprinzip ist, dass es auf der map spawnpoints gibt, an denen gegner wiedereinsteigen, nachdem sie getötet wurden. Sieger ist, derjenige, der nach einer gewissen zeit am meisten punkte hat.
Multiplayer sollte es keinen geben.
Schwierigkeit wird durch die rektionszeit der gegner und lebenspunkte des spielers eingestellt.
Irgendwelche dynamischen objekt soll es nicht geben.
Treppen gehen sollte man noch können.
Die Qualität der Grafik ist absolut wurscht, die kann wirklich kacke sein.
Springen muss nicht sein, wäre aber nett.
Für granaten gillt das gleiche.

meine Fragen:
Sollte ich C++ oder BlitzMax (was ich deutlich besser kann) nehmen?
Wie frage ich ab, ob ein gegner getroffen wurde?
Wie lasse ich einschusslöcher in wänden/gegnern erscheinen?
Ist Ragdoll bei gegnern schwer zu realisieren?
Sollte ich den gegnern wegpunkte geben, die sie ablaufen oder ist es einfacher, sie durch zufall durch die map rennen zu lassen(mehr als das sollen sie nicht können...)?
Wie realisiere ich das herumlaufen aus der Ego-Perspektive?
Wo finde ich dem entsprechnde tutorials?


Ist vllt. viel für den anfang, aber ich hoffe jmd. kann mir zumindest bei einigen dingen helfen.

Danke im Voraus!

Viele Grüße

GreenDay2244


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: einfacher 3D Shooter
BeitragVerfasst: 14.06.2009, 23:24 
Offline
Benutzeravatar

Registriert: 23.03.2009, 18:52
Beiträge: 23
Wohnort: Bremen
Hallo erstmal,

ich gebe einfach mal so meinen Senf dazu ab, ich hoffe, das ist ok.
Also Wolfenstein (das wirklich allererste) besteht gar nicht aus richtiger 3D-
Grafik, sondern sozusagem Pseudo-3D. Dabei werden 2D-Sprites entsprechend der
Kameraposition und dem Winkel verzerrt. Das ganze heißt Raycasting (nicht zu verwechseln
mit Raytracing, was aber ähnlich ist), einige gute Links dazu sind folgende:

http://www.permadi.com/tutorial/raycast/
http://de.wikipedia.org/wiki/Raycasting#Raycasting_bei_Computerspielen
http://ffs-net.next-dimension.org/Tutorials.htm

Die Levels dazu können meist in einem einfachen Grafikprogramm gemalt werden, weil sie
halt nicht "richtig" 3D sind, weshalb es mit den Treppen auch etwas schwieriger wird.

Irrlicht allerdings verwendet "richtige" 3D-Grafik. Sicherlich ist es möglich, einen eigenen Raycaster
mit Irrlicht zu schreiben, aber dazu würde wahrscheinlich auch SDL reichen.
ich würde dir empfehlen, deinen Shooter in "richtiger" 3D-Grafik zu programmieren,
weil Irrlicht dazu alles bietet (sofern du nicht den nostalgischen Look haben willst).
Dann wird das erstens mit den Treppen kein Problem mehr, du kannst zweitens die Levels in einem 3D-Editor
wie z.B. GTK-Radiant, IrrEdit oder Blender erstellen.

Für den Anfang würde ich dir auch empfehlen, die Tutorials für Irrlicht durchzuarbeiten, vielleicht
garnicht mal alle, schon bei den ersten paar werden so Sachen wie Ego-Kamera, Quake-Map laden und
so behandelt, dass könnte dann schonmal die Grundlage für dein Spiel bieten. Du findest einige hier im Forum
und alles andere auf der englischen Seite.

Wenn du allgemein was über Irrlicht lesen willst, gibt es im englischen Wiki eine Einführung.
Falls du das lieber auf deutsch lesen möchtest, kannst du das zumindest fürs erste Kapitel auch,
ich habe hier eine Übersetzung reingestellt.

Für Ragdolls solltest du dir eine Physikengine wie Newton oder ODE ansehen.

Zur Wahl der Programmiersprache:
Ich fange selber gerade erst an, mich in Irrlicht einzuarbeiten und nutze C++, aber ich denke mal,
dass das Geschmackssache ist. Der Vorteil bei C++ ist sicherlich, dass Irrlicht selbst in C++ geschrieben ist
und so auf jeden Fall immer auf dem neusten Stand gehalten werden kann und man nicht davon
abhängig ist, dass die Language-Bindings aktuell gehalten werden.

Ich hoffe, dass dich das erstmal weitergebracht hat.

Gruß,
Carsten

_________________
Bit Happens!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: einfacher 3D Shooter
BeitragVerfasst: 15.06.2009, 13:11 
Offline

Registriert: 14.06.2009, 16:31
Beiträge: 6
Hi,

also wenn treppen der einzige grund sind, warum ich eine "richtige" 3D-Engine nutzen sollte dann lass ich das.
Ich wäre mit Raycasting schon völlig zufrieden!


Was ich noch dazusagen möchte:
Ich bin auch bereit deswegen ne neue Programmiersprache zu lernen, des weiteren habe ich aber auch Visula Basic 5 Kentnisse.
Blitzbasic Version ist bei mir 1.14, gibt es da updates, da manche tutorials nicht funktionieren?
Aber ich würde jetzt erst mal gerne mit Raycasting-Grafik anfangen.

Vielen Danke, das hat mir wirklich geholfen!

Viele Grüße

GreenDay2244

EDIT:
Gibt es da noch tutorials, die für eine Programmiersprache wie QBasic C++ oder BlitzBasic speziell gemacht sind?
Auserdem:
Wie mache ich das mit einschusslöchern in der Wand und wie überprüfe ich ob ein gegner getroffen wurde?
Wie ich texturen da drauf kriege würde ich mir auch noch gerne in einem spezifischen tut ansehen.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: einfacher 3D Shooter
BeitragVerfasst: 15.06.2009, 18:49 
Offline

Registriert: 21.05.2009, 23:10
Beiträge: 17
Kann sein dass ich da nicht ganz neutral bin, aber ich denke, dass du mit Irrlicht in echtem 3D eventuell besser aufgehoben bist... ich glaube nicht dass Raycasting soviel einfacher ist für dich.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: einfacher 3D Shooter
BeitragVerfasst: 15.06.2009, 20:05 
Offline

Registriert: 14.06.2009, 16:31
Beiträge: 6
Also das prinzip von raycasting ist mir deutlich besser klar als das von Irrlicht.
Nur wie und mit welcher programmiersprache realisiere ich das am besten?
Vorallem das mit den texturen an der Wand...

Danke!

Viele Grüße

GreenDay2244


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: einfacher 3D Shooter
BeitragVerfasst: 15.06.2009, 22:47 
Offline
Benutzeravatar

Registriert: 23.03.2009, 18:52
Beiträge: 23
Wohnort: Bremen
Ich kann Hirte da voll und ganz zustimmen, mit Irrlicht wirst du schneller
befriedigende Ergebnisse erzielen, für einen Raycaster müsstest du halt
den Renderer selbst schreiben. Aber wenn du das willst, würde ich es
in C++ mit SDL machen.

Zu den Texturen:
beim Raycaster schickst du ja praktisch einen Strahl für jede Bildspalte durch den Raum
und berechnest bei einer Kollision die Höhe einer Linie, die du dann in dieser Spalte malst.
Willst du keine Farben, sondern richtige Texturen haben, musst du nicht eine Linie malen,
sondern die entsprechende Zeile aus der Textur auf die errechnete Höhe skalieren und
auf den Bildschirm zeichnen.

Aber im Ernst, bei Irrlicht ist die 3D-Grafik schon komplett fertig und du kannst alle
möglichen anderen Formate laden. Musst du letztendlich selbst entscheiden, ich will dich
von nichts abhalten, es ist ja möglich und auch nicht so extrem schwer, aber einfacher
ists mit Irrlicht und echter 3D-Grafik, zumal die Tutorials da etwas dichter gesäht sind.

_________________
Bit Happens!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: einfacher 3D Shooter
BeitragVerfasst: 16.06.2009, 06:33 
Offline
Benutzeravatar

Registriert: 16.10.2007, 07:56
Beiträge: 229
Wohnort: Regensburg
Vor allem gibts auf http://irrlicht.sourceforge.net/docu/example002.html ein Tutorial, das dir (fast) alles zeigt, was nötig ist: das Laden von Quake-Maps, die Bewegung der Kamera und die Kollisionsabfrage mit dem Quake-Level. Das kannst du als Basis verwenden (wenn du bereit bist, auf C++ umzusteigen (was ich nur empfehlen kann (OK, bin da nicht neutral ;) ))) und dann mit den Sachen erweitern, die du haben willst.

_________________
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: einfacher 3D Shooter
BeitragVerfasst: 16.06.2009, 14:56 
Offline

Registriert: 14.06.2009, 16:31
Beiträge: 6
OK, nur würde ich dann doch mal gerne so just4fun und aus nostalgischen gründen nen shooter mit raycasting programmieren.
Es wäre hilfreich, wenn mir jmd. ein tutorial zeigen könnte wie ich das mit den texturen genau mit C++ löse, den rest habe ich verstanden.

Vielen Dank schonmal für eure hilfe!

Viele Grüße

GreenDay2244


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: einfacher 3D Shooter
BeitragVerfasst: 16.06.2009, 15:35 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Du löst das mit den Texturen in C++ genauso wie in jeder anderen Programmiersprache auch.
Datei einlesen. Zur not in ein Format konvertieren, dass du ausgeben kannst. Und ausgeben.
Wie die Ausgabe funktioniert hängt von den verwendeten Bilbiotheken ab.

Was willst du überhaupt an Texturen lösen?

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: einfacher 3D Shooter
BeitragVerfasst: 16.06.2009, 15:39 
Offline

Registriert: 14.06.2009, 16:31
Beiträge: 6
Naja, die werden ja "verzerrt" und wie ich das mache verstehe ich noch nicht so ganz.

Viele Grüße

GreenDay2244

EDIT:

Achja, da wäre nochwas:

Hat jmd. ein tutorial für raytracing in C++ oder irgendeinem Basic (Von mir aus auch assembler :lol: ) indem mal so einfach wie möglich ein raytracer (ohne texturen) erklärt wird? Einfach nur wände und böden/decke.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: einfacher 3D Shooter
BeitragVerfasst: 16.06.2009, 19:01 
Offline
Benutzeravatar

Registriert: 23.03.2009, 18:52
Beiträge: 23
Wohnort: Bremen
Das herunterskalieren von Bildern wird von vielen Frameworks schon von Haus aus unterstützt.
wxWidgets kann es zum Beispiel mittels wxImage, Irrlicht kann es soweit ich weiß auch und
ich denke, SDL müsste es auch können.
Allerdings habe ich hier auch noch einen Artikel gefunden, der sich mit dem Skalieren von Bildern
beschäftigt, falls du es selber machen willst:
http://www.tutorials.de/forum/c-c/337662-algorithmus-fuer-freies-skalieren-arbitrary-up-downscaling-images.html

Zum Raycasting:
Das Tutorial unter http://ffs-net.next-dimension.org/Tutorials/RaycastingTutorial.pdf erklärt eigentlich alles,
es muss halt "nur noch" umgesetzt werden. Die Berechnungen sind ja in etwa in jeder Programmiersprache gleich
und das Malen der Linien ist wie gesagt davon abhängig, welche Bibliothek du verwenden willst.
(du meintest doch Raycatser und nicht Raytracer, oder?)



PS: Ich hab auch mal einen Raycaster geschrieben, allerdings ohne Texturen und in Python. Ich hab das
erstmal unterbrochen, aber wenn ich den Code wiederfinde, kann ich ihn dir gerne zur Verfügung stellen.

_________________
Bit Happens!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: einfacher 3D Shooter
BeitragVerfasst: 16.06.2009, 20:47 
Offline

Registriert: 14.06.2009, 16:31
Beiträge: 6
ja sowas meine ich! wäre nett von dir, wenn du mir das noch zukommen lassen könntest.

Viele Grüße

GreenDay2244


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de