Mir ist da leider ein kleiner Fehler unterlaufen und dabei ist das originale Thema "was braucht ein egoshooter alles" (erstellt von darkinsanity für seinen Shooter) abhanden gekommen... zur Neuintegration müsste wieder die komplette Datenbank überschrieben werden... Sry
Aber ich habe die ganzen Beiträge aus dem alten Forum hernehmen können und füge die einfach mal als Quote mit an:
Die dafür gute Nachricht: Dein Thema konnte endlich zu Ego-Shooter -> Allgemein verschoben werden
Darkinsanity:
Wie ihr wahrscheinlich nicht wisst, schreibe ich schon seit längerem an einem 3D-Egoshooter. Was mich jetzt mal interessiert:
Was braucht ein Egoshooter denn alles, damit ihr ihn spielt? Wieviel verschiedene Waffen usw. ?
RAMBO:
Waffen, Gegner, verschieden levels.....KP^^
Lucki:
ich finde, man sollte viele möglichkeiten haben ein level zu schaffen
1. Weg z.B. indem man einfach schießend drauflosrennt ("Sirious Sam")
2. Weg z.B. indem man schleicht und versucht einen Gegner nach dem anderen aus dem Weg zu schaffen (eine Möglichkeit in "No One Lives Forever 2")
Auch sollte es nicht nur ein reiner shooter sein... man sollte auch geistreiche Aufgaben lösen oder Gegenstände finden müssen (auch in "No One Lives Forever 2")
Außerdem sollte es intelligente KI-Gegner geben, aber auch möglichkeiten um sich vor diesen zu verstecken...
Waffen sollte es mit verschiedenen Eigenschaften geben. Auch sollte es vielleicht Lachgas oder Bananen geben (lass dir was einfallen), womit man Gegner ausser Gefecht setzen kann.
ich freu mich schon auf dein Spiel...
Demon:
darkinsanity-.- des hier issen fehlpost, gehört zu-> Egoshooter - Allgemein - Gesprächsecke Wink
Wieviel versch. Waffen iss an und für sich egal aber es sollten mind. 5 sein, am besten welche die´s auch gibt, ausser es wird en Sci-Fi Shooter
Ansonsten-> Ne gescheite Story
Gute KI (ich hab dir ja mal den Artikel gezeigt (glaubi jedenfalls) das 99% der heutigen KI Gegner Cheaten und des will echt keiner)
Einstellbarer und steigender Schwierigkeitsgrad, aber net so wie in Übersoldier, wo die Gegner 10ma stärker sinn wie du
ne konsole wie in HL², die aber keine cheats zulässt, sondern nur das "protokoll" anzeigt, um im spiel fehler zu sehen (jetz keine bugs, sondern fehlerhafte dateien)
jetz mal was was mittem shooter an sich nix zu tun hat, sondern im spielverzeichniss sollte der ordner mit den spielständen LEICHT! zu finden sein
RAMBO:
Wenn amn alle ideen der anderen berücksichtig: man sollte auf nen gegner treffen, derne über-starke waffe hat, den man TAKTISHC plätten muss....ratze fatze isse rübe ab^^
[offtopic]abgesägte schrotflinte: *pam* pam *chick* Pchick* *pam* *pam* *chick* *chick*
Kisel:
multiplayer!!
RAMBO:
KOOP-Singleplayer. Ich meine, dass man mit Freunden (online) missionen lösen muss.
Edit: Bei treffern sollte der Bildschirm vershwimmen (schmerzenstränen)
kisel:
die gegner sollten von einem headshot sterben, egal bei welcher schusswaffe.
Darkinsanity:
Als erstes: Danke für die Antworten.Dark-Demon wrote:darkinsanity-.- des hier issen fehlpost, gehört zu-> Egoshooter - Allgemein - Gesprächsecke
Aber ich hab auch einen Jobangebot gemacht: Berater bei einem Ego-ShooterDevil-Driver wrote:Bei treffern sollte der Bildschirm vershwimmen (schmerzenstränen)
Könnte schwer werden, aber ich werds versuchen.kisel wrote:die gegner sollten von einem headshot sterben, egal bei welcher schusswaffe.
war auch so geplant.Devil-Driver wrote:KOOP-Singleplayer. Ich meine, dass man mit Freunden (online) missionen lösen muss.
Ich hatte schon an einem Online-System gearbeitet, ist aber nicht einfach. Ich werds auf jeden Fall versuchen, versprechen kann ich allerdings nichts.Devil-Driver wrote:Wenn amn alle ideen der anderen berücksichtig: man sollte auf nen gegner treffen, derne über-starke waffe hat, den man TAKTISHC plätten muss....ratze fatze isse rübe ab^^
Ja, ich finde, ein bisschen Taktik sollte schon rein.Dark-Demon wrote:Wieviel versch. Waffen iss an und für sich egal aber es sollten mind. 5 sein, am besten welche die´s auch gibt, ausser es wird en Sci-Fi Shooter
Das Spiel soll in drei verschiedenen Zeiten spielen: Mittelalte oder Antike (weiß ich noch nicht so genau), Gegenwart und Zukunft. Man wird mit einer Zeitmaschine reisen.Dark-Demon wrote:Ansonsten-> Ne gescheite Story
Gute KI (ich hab dir ja mal den Artikel gezeigt (glaubi jedenfalls) das 99% der heutigen KI Gegner Cheaten und des will echt keiner)
An der Story arbeite ich noch. Ne gute KI ist schwer, aber meine wird auf gar keinen Fall cheaten.
Schwierigkeitsgrad wird einstellbar sein, Konsole mach ich auch und cheats gibts keine, spielstände bekommen nen eigenen Ordner.Lucki wrote:Auch sollte es nicht nur ein reiner shooter sein... man sollte auch geistreiche Aufgaben lösen oder Gegenstände finden müssen (auch in "No One Lives Forever 2")
Außerdem sollte es intelligente KI-Gegner geben, aber auch möglichkeiten um sich vor diesen zu verstecken...
Waffen sollte es mit verschiedenen Eigenschaften geben. Auch sollte es vielleicht Lachgas oder Bananen geben (lass dir was einfallen), womit man Gegner ausser Gefecht setzen kann.
Ich finde nichts blöder als ein Ego-Shooter ohne Story wo man nur rumballert und weiß nicht warum. Daher wird es schon ein paar Rätsel geben. Ich habe folgende Waffen geplant: stationäre Waffen, Raketenwerfer, Granaten, Pistolen, Laser-Scharfschützengewehre und noch ein paar andere.
Achja: Der (vorübergehende) Name des Spiels ist TIMEZ.
So, hier ein Link zu der Engine-Demo: http://www.greensoft.de.vu/timez/TIMEZ-V0.8.5.zip
Bitte beachtet: Die Engine ist nicht die aktuellste, OpenGL ist noch nicht eingebaut und es gibt noch keine Levels etc.
Bitte berichtet mir Steuerungsprobleme, Grafik-Fehler usw.
Ich arbeite schon ganz eifrig an den verbesserungen.
/Edit:
So, ich weiß, die Demo sieht ziemlich bescheuert aus, und wenn die Grafik so bleiben würde, würde das keiner spielen. Aber keine Angst, ich hab mir eben 40 OpenGL Tutorials runtergeladen, die werd ich alle durcharbeiten. Danach wird die Grafik saugeil. Ich schwörs.
Aber, ich brauch dann Leute, die sich die Levels und Texturen ausdenken (natürlich werden die Personen dann auf meiner website und in der readme genannt), denn hauptsächlich bin ich Programmierer und kein Grafiker oder Leveldesigner. Aber wenn ihr Ideen habt, iss das auch schon mal was.
Ich hab auch ein paar neue Features in mein Spiel eingebaut (nicht in der Demo enthalten):
eine screenshot-funktion, die durchnummerierte BMP-Dateien erstellt. Die Taste dafür ist F5.
ein Menü, das erscheint wenn man im spiel Esc drückt.
Alle wichtigen Ereignisse und Vorgänge werden protokolliert, wenn man später die Konsole aufruft steht dort alles. so kann man fehler/bugs melden. leider ist die konsole noch nicht fertig. außerdem wird eine datei erstellt, in der alles steht was auch in der Konsole erscheint, falls das spiel abstürzen sollte, kann man mir diese Datei senden und ich kann genauer eingrenzen, wo der Fehler liegt.
Ich werd euch mitteilen, wenn ich OpenGL eingebaut hab. Könnte aber en bisschen dauern, ich hab noch ein paar andere Projekte, an denen ich arbeite (unter anderem ein richtiges Betriebssystem in Assembler mit Multitasking usw.). Aber ich werd mich beeilen.
Demon:
Naja bin jetz ma zum testen gekommen, ich weiss net obs an meinem pc liegt aber die bewegungsabläufe sind zu schnell, man tippt kurz auf pfeiltaste-oben und rennt 20 meter
Für Texturen und Leveldesign kannste schonmal auf mich zählen ich kannja so einiges mit Gimp
Darkinsanity:
ok, das liegt daran, das ich keine Brems-schleife eingebaut hab, die den spielablauf abbremst. bei meiner neuesten demo (noch nicht im web) hab ich eine schleife drin, allerdings speziell für meinen Core2Duo 3Ghz. ich muss da noch rumprobiern, denn ich will ja hohe Frameraten.
So: Ich habs geschafft! OpenGL ist in meiner Engine eingebaut. Hier eine kleine Features-liste:
Smooth Shading: weiche Licht-Schatten übergänge
ambient light: alle texturen werden von diesem licht (kann auch schwarz leuchten) angestrahlt
diffuse lights: lichter, die man im level positionieren kann
MipMapped Textures: Beste darstellung für Texturen
Die Demo wird bald kommen. Leider wieder nur ne Demo mit einer Box. (aber mit textur und licht.)
Lucki:
Hört sich schonmal gut an.![]()
Weiter so!
Darkinsanity:
iss aber nich einfach. ich werd vielleicht noch OpenAL einbauen, damit kann man soundquellen im 3D-Raum angeben. Dann ist der Sound realistischer.
Und ich hab momentan ein Problem mit meiner .TGA lade-routine. ich konnte mit GIMP erstellte dateien nicht einlesen und mitlereweile gehts gar nicht mehr.
TJ:
Cool, das wir hier einen Programmierer haben!
Also ich mag Schleichaufgaben, aber auch Ballereien.
Es könnte auch ein Taktik-Shooter sein, in dem bis zu 64 (32 reicht auch^^) Spieler aufeinander treffen.
Es sollte mehrere Klassen (Scharfschütze, MG-Schütze, ...) geben.
Wenn man sich durch die Antike oder das Mittelalter ballert, sollte es zeitgemäße Waffen geben (z.B. ein Schwert)
Wenn möglich wären Fahrzeuge und zerstörbare Umgebung cool;-)
Ich freu mich auf jeden Fall!
Darkinsanity:
sorry jetzt gibts leider ne kleine enttäuschung. und zwar wird das mit dem spiel in nächster zeit wohl nix. unter anderem gibts es ein Problem mit den texturen und OpenGL, irgendwie kann ich die texturen nicht richtig laden. und ich arbeite noch an einem Online-Spiel (in dem es auch noch viele Fehler gibt) und an einem OS und ich hab auch noch nur wenig zeit. Aber das Spiel wird auf jeden Fall 3D Sound kriegen der sehr realistisch klingt. Außerdem informiere ich mich gerade über Partikelengines und wie man damit z.b.: wolken und blitze erstellt die auch geil aussehen.
Ich arbeite an der Lösung der Probleme, aber es kann dauern... Außerdem brauch ich noch jemanden, der sich levels ausdenkt, mir sagt was für das level alles benötigt wird und der das level später dann auch erstellt (mit einem 3D-Programm).
Fahrzeuge sind geplant und zerstörbare Umgebung teilweise auch, d.h. man wird nicht einfach die komplette spielwelt auf einmal wegpusten können, aber bestimmte teile zerstören.
TJ:
ich könnte mit google sketchup (nicht allzu detaillierte) maps erstellen, die ich dann in eine .3ds-file konvertieren![]()
dazu hätte ich auch noch ein paar ideen
DMA TAKE 2:
Bei der umsetzung des Multiplayers könnte ich den Server schreiben
Also falls Interesse besteht einfach mir eine PM senden.
Darkinsanity:
hm, ich glaube ich müsste den kompletten code des spiels neu schreiben... der code is einfach zu verhackstückt, ich hab lang dran rumgebastelt und übersichtlich ist er auch nicht. schlimmer ist noch, das er nicht mit den neueren versionen des FreeBASIC-compilers funktioniert, sondern nur mit der alten version 0.15, die auch noch ein paar bugs enthält. falls ich mal zeit und lust habe, werde ich mich daran machen das ganze neu zu schreiben. ich werd dann auch das kamerasystem neu schreiben, unter anderem mit dem von egoshootern bekannten seitwärtsgehen. wenn ich an gescheites internet komme kann ich ja mal den alten code hochladen, falls sich jemand dafür interessiert.
Darkinsanity:
hi,
ich weis, der Thread is alt, aber da ich in letzter Zeit wieder Zeit gefunden habe (was für ein Satz...), habe ich an dem nachfolgeprojekt gearbeitet.
Es ist nun von Anfang an besser aufgebaut, und ich habe es einfacher den code zu erweitern.
Momentan funktioniert bereits das laden eines levels+texturen (noch ein eigenes Format, aber ich werde mich mal über andere Formate informieren...), außerdem ist ein neues Kamerasystem eingebaut (vorwärts, rückwärts, drehen, strafen).
Zum laden der Texturen wird FreeImage verwendet, bringt zwar ne 2MB große .dll mit aber dafür habe ich eine große Zahl von unterstützten Formaten (unter anderem auch HDR-Formate). FMOD wird zwar schon initialisiert, aber die Möglichkeit Sound zu verwenden ist noch nicht eingebaut.
Falls sich jemand über die niedrigen Frameraten wundert, dem sei gesagt, das es runtergebremst wird. (bei meinem Core 2 Duo 3Ghz sinds 1311 FPS)
Die Demo gibts hier.
Lucki:
Sieht ja wieder mal für den Anfang ganz gut aus
Nur die Startweise ist ein wenig gewöhnungsbedürftig xD ich starte nicht jedes spiel, indem ich das X rechts oben benutze
Und im SPiel selber funktioniert das X dann nicht mehr...
Darkinsanity:
thx
also, das programm wartet am anfang auf zwei tastendrücke (das x zählt auch als tastendruck^^), das programm wird dann mit Esc beendet.
das demo-level ist nicht soo toll, weil ich erstmal was zum testen der grundroutinen gebraucht hab.
Ich hab auch noch vor eine Physik-Engine einzubinden. Da nVidia aber leider keine FreeBasic/VisualBasic header für PhysX anbietet, werde ich wohl Newton Game Dynamics nutzen müssen (die bisher einzige Engine die unter FreeBasic funktioniert).
Beim Sound hoffe ich das FMOD Ex bald unter FreeBasic geht, ansonsten muss ich weiterhin das etwas veraltete FMOD 3 nutzen.
/edit: neue Version: verbessertes Kamerasystem + Maussteuerung
Link bleibt derselbe
/edit2:
nochmal neue Version: Diesmal alle texturen als .png statt .tga und in der config-file kann nun fullscreen-AntiAliasing aktiviert werden (senkt die Framerate stark! auf meinem PC von 1300 auf 300)
Darkinsanity:
So,
ich hab mich ja mal wieder eine Weile hier nicht sehen lassen
Aber ich werde euch jetzt mal mitteilen was ich in der Zwischenzeit alles eingebaut habe:
Screenshots:
Wegen einem wirklich kleinen, fiesen Bug konnte ich die ganze Zeit keine Screenshots von meiner Engine erstellen lassen. Vor einigen Tagen konnte ich den Bug endlich finden, und jetzt kann man mit F5 screenshots erzeugen. (format: yyyy.mm.tt_hh.mm.ss.png, im Ordner data\screenshots
Neues Modelformat:
Die Engine nutzt nun das XMF V0.1 Format. Das ist ein speziell an die Engine angepasstes Format, das ich mir in den Ferien ausgedacht habe. Es hat einige Nächte verschlungen bis alles so lief wie ich es wollte.
Außerdem existiert jetzt ein mapCompiler, mit dem das textbasierte Format in das neue Format umgewandelt wird.
Das neue Format ist deutlich kleiner, da es nicht mehr auf text basiert, und die Engine ist dadurch auch ein wenig kleiner und übersichtlicher geworden. Das Format ist nicht "fertig", je weiter die Enginen entwickelt wird, desto weiter wird auch das Format entwickelt, um die Features auch ausnutzen zu können.
Wenn ihr die demo-Map (haha, tolle Map) verändert habt, klickt einfach doppelt auf die "buildMaps.bat", die ruft automatisch für jede .mdl-Datei im Verzeichnis den mapCompiler auf, der dann die .xmf-Datei erzeugt.
Für diejenigen, die es interessiert, ist auch der Quelltext des mapCompilers dabei (in "data\maps\MapCompiler sourcecode").
VBOs:
Ich hab am 29.4. auch die Vertex-Buffer-Objects fertig gekriegt. Vorher hab ich die Daten in jedem Schleifendurchlauf neu an die Grafikkarte gesendet. Nun wird beim laden eines Models ein VBO erstellt und die Daten reingeschrieben. Dadurch können jetzt mit einem Befehl an die Grafikkarte Millionen von Polygonen gerendert werden, und die Performance ist verbessert (besonders bei vielen Polygonen). Außerdem liegen die Daten nun im VRAM der GraKa, wodurch weniger Daten im PC rumgeschickt werden müssen.
Extensions:
Um die VBOs nutzen zu können, muss man die OpenGL-Extensions (Funktionserweiterungen) nutzen können, was bisher leider nicht klappte. Daher musste ich erst lange an meinem "Yang OpenGL toolset" rumschreiben, bis alles glatt lief. Dafür kann ich jetzt auch mit dem Shader-Support beginnen, womit dann endlich Per-Pixel-Beleuchtung, Toon-Shading und andere sehr interessante Techniken möglich werden (unter anderem auch ein Partikelsystem, das komplett auf der Grafikkarte läuft).
Ich arbeite momentan am Shader-Support, Orthogonal-Projektion (für ein HUD), Texturen-Kompression (damit nicht gleich der ganze VRAM voll ist) und an der Audioausgabe, die über OpenAL laufen soll. Leider hör ich irgendwie keinen Sound, obwohl die Initialisierung und die Buffer-Erzeugung laufen...
Außerdem achte ich nun darauf, meine Engine möglichst kompatible zu OpenGL 3 zu machen, denn viele alte Techniken (z.B. der alte Rendering-Modus, deswegen hab ich die VBOs eingebaut) existieren in OpenGL 3 nicht mehr. Und ohne Shader sieht man da gar nichts mehr, es gibt kein Standard-Rendering mehr, man braucht von Anfang an Shader.
Was meiner Engine noch fehlt ist unter anderem ein benutzbares Partikelsystem, ohne das realistische Effekte wie Feuer und Rauch praktisch nicht möglich sind. Wenn ich Zeit habe werde ich auch noch ein paar Konverter schreiben, damit man andere Formate zu XMF konvertieren kann. (3ds, evtl. auch Milkshape)
Theorethisch könnte man mit der jetzigen Engine schon kleine Spielchen realisieren, aber die würden nicht gut aussehen
Das Problem ist, das man zu aktuellen Techniken gar nicht mehr wirklich aufholen kann (wer Half-Life 2 Episode Two gespielt hat weiß wovon ich rede. Stichwort Superportal). Valve benutzt z.B. schon Shader für Texturen-Erzeugung & Beleuchtung, ein komplexes Event-System und eine absolut kranke Physik-Engine (Stichwort "cinematic Physics"). Gemixt mit mehreren Millionen Polygonen
Trotzdem werde ich mein bestes versuchen.
Mittlerweile steckt schon eine ganze Menge Arbeit drinnen, auch wenn man das leider nicht sieht.
Wenn ihr mir einen gefallen tun wollt: Im Ordner "data\log" liegen die "game.log" und die "GLext.log". Es wäre super, wenn mal ein paar Leute meine Engine laufen lassen würden und mir dann die logfiles geben, damit ich sehen kann, welche Features auf welcher GraKa laufen. Ich kann auch sehen wieviels FPS ihr gehabt habt, was auch eine nützliche Information ist. (Bei mir sind es maximal 1277 FPS)
Na super, ich hab ja nen ganzen Roman geschrieben. Naja, ich hoffe mal, das ich euch nicht zu Tode gelangweiligt habe.
Sollte meine Freehoster-Site wider erwarten erreichbar sein, könnt ihr die aktuelle Demo hier ansehen: http://darkinsanity.freehoster.ch/cd.zip
Lucki:
leider kann ich die Datei nicht downloaden...
Schonmal versucht, sie an deinen post mit 'Datei anhängen' anzuhängen?
edit: hab sie von whity bekommen
fps: ~4200
logs im anhang
Darkinsanity:
danke
Schön das jemand sich noch dafür interessiert. Deine FPS-Zahl zeigt mir mal wieder, was ich für ne schlechte GraKa hab
Die Probleme mit dem Download liegen an meinem Server von freehoster.ch. Daher hab ich die neueste Version sowohl auf dem Server als auch hier angehängt.
Achja: Neue Version.
Diesmal ist eine kleine Partikel-Engine dazu gekommen. Einfach mal "N" drücken.
"cd.exe" ist die normale Version, bei "cd_slow.exe" sind die Partikel sehr viel langsamer, damit man den Effekt beobachten kann.
Das Partikelsystem ist natürlich noch nicht sehr weit, es fehlen noch Dinge wie Lebensdauer usw., momentan werden die Partikel einfach zurückgesetzt wenn sie außerhalb eines bestimmten Bereichs liegen.
Damit das ganze möglichst realistisch aussieht, werden Position, Geschwindigkeit und Farbe per Zufall festgelegt.
Momentan läuft das ganze mit 200 Partikeln. Ab 200 Millionen Partikeln sinkt bei mir die Framerate auf 0 FPS
In "data\pics\" liegt die "particle.png", das ist die Textur für die Partikel. Zum ändern der Textur einfach die Datei austauschen.
Mit den Shadern gibt es momentan noch ein paar Probleme, aber wenn es dann läuft, sind Effekte wie dieser hier möglich: http://wiki.delphigl.com/index.php/shader_radial_blur
//edit:
Der Anhang wurde entfernt. Neuere Version weiter unten.
Lucki:
dafür hab ich ne schlechte cpu
Die partikel sollten sich noch zur Kamara hindrehen, damit man nicht sieht, dass es Flache Bilder sind.
Der Schader Effekt (glaube, man nennt ihn auch Motion Blur) sollte natürlichnur sehr sparsam zum einsatz kommen, z.B. indem er an eine Hohe Geschwindigkeit gebunden wird Very Happy
Darkinsanity:
Das mit dem drehen zur Kamera, das mache ich gerade. Dafür muss man "nur" die Rotation, die die Kamera macht, wieder aus der Matrix entfernen.
Mein Ziel war es, mit dem Partikelsystem einen Feuereffekt hinzukriegen, aber irgendwie haut das noch nicht hin.
Hab auch gerade auf DelphiGL gelesen, das es sinvoll ist die Partikel-Berechnungen in einen eigenen Thread auszulagern, vor allem bei Mehrkern-Prozessoren.
The Gnaa:
bei mir sagt er immer anwendung konnte nicht gesatrtet werden openAL32.dll wurde nicht gefunden
??
[edit]
problem behoben
Darkinsanity:
ups, ja, hab vergessen zu sagen dass man OpenAL installieren mussSind nur en paar DLLs, die auch von anderen games benutzt werden (Unreal 2, Race Driver Grid). OpenAL bietet hardwarebeschleunigten 3D-Sound.
Die aktuelle Version versucht bereits Sound auszugeben. Warums nicht klappt weiß ich noch nicht, aber ich finde, dass das Partikelsystem erstmal Vorrang hat. Sollte ich das Problem aber finden werde ich es sofort beheben.
Heute hab ich was über "sphärisches Billboarding" gelesen, das den komischen Effekt bei den Partikeln angeblich behebt. Werd ich dann mal ausprobieren. nVidia hat auch eine Extension für OpenGL, das praktisch automatisch sphärisches Billboarding bereitstellt. Nur sind die Spezifikationen immer so schwer zu verstehen...
TJ:
wenn ich mal so fragen darf:
billboarding=?
Darkinsanity:
Billboarding richtet die Partikel parallel zur Kamera aus
Ich geb euch hier mal wieder neu neue Version:
1. Es gibt nun eine Skybox. Die Texturen hab ich mit Terragen und nem selbst zusammengebastelten Script erledigt.
2. Ist die Partikelengine nun ganz anders aufgebaut, Sie zeichnet nun keine Quads mehr, sondern nutzt die im Jahr 2003 eingeführte "Point-Sprite"-Erweiterung von OpenGL. Damit werden die Partikel automatisch ausgerichtet.
Mein Problem ist nur, das auf meinem PC die Partikel keine Textur mehr haben, Nur ab und zu flackert die Textur auf. (GraKa; Radeon HD 2400 XT)
Ich hoffe mal, das ein paar Leute das mal auf anderen GraKas testen können (vor allem nVidia), und am besten gebt ihr mir Screenshots.
Partikelsystem wird weiterhin mit "N" aktiviert.
Zur Skybox: Ich hab die mal schnell eingebaut, weil ich da so ein Tutorial gesehen hab, und das wirklich schnell ging. Leider sieht man die Ränder der Skybox sehr deutlich. Ich informier mich mal, wie ich die weg krieg.
Das lustige ist, das die Skybox genauso groß ist wie der kleine Würfel, aber trotzdem groß aussieht. Dadurch das sie klein ist, hat man ein paar FPS mehr.
Die OpenAL32.dll ist diesmal dabei, damit ihr nicht extra OpenAL installieren müsst.
/edit: Ok, das die Texturen fehlen war ein Bug im ATI-Treiber. Aber jetzt stehen die Texturen aufm Kopf... Screenshots erwünscht.
Lucki:
jetzt geht alles
Partikel fliegen langsam sich zur kamera drehend.
Max. FPS: 75.
Skybox ist dir richtig gut gelungen.![]()
Man sieht ab und zu Ränder, aber erst nachdem ich deinen Screenshot angeschaut habe, wusste, wonach ich suchen muss.
Vorher hab ich sie nicht bemerkt...
Was ich noch sehr gut finde, wäre dies hier.
Nur sollte man als rechtes Auge Cyanblau, anstatt grün verwenden (ist gebräuchlicher).
Darkinsanity:
So, nach etwas längerer Pause melde ich mich wieder mit einer neuen Version.
Grafisch hat sich nicht viel getan, aber intern wurde einiges verändert.
Zuerst habe ich den Render-Vorgang optimiert, was jetzt wahrscheinlich noch nicht auffällt. Aber wenn ich dann viele Polygone rendern werde, wird der Unterschied deutlich spürbar sein.
Das Rendern läuft jetzt so ab:
1. Grafikkarte Aufgaben geben
2. Cpu arbeiten lassen (Tastatureingaben usw.)
3. warten bis die GraKa fertig ist und Bild anzeigen
Als zweites habe ich die SkyBox-Routinen etwas umgebaut, das bringt ein bisschen Geschwindigkeit und macht für mich den Sourcecode übersichtlicher. Außerdem könnte ich den Speicher der SkyBox jetzt auch vor Programmende freigeben.
Und nun zur wohl wichtigsten Änderung: Ich nutze jetzt endlich Shader. Damit sind schöne Effekte möglich, momentan benutze ich aber nur einen Standard-Shader, der nichts anderes tut als die Grafikkarte normalerweise macht. Die Shader liegen im "/data/shaders/"-Verzeichnis. Wer sich mit GLSL auskennt kann ja mal selbst Shader schreiben
Der Shader-Support ist noch nicht komplett (z.B. fehlt die Variablen-Übergabe von der Engine zum Shader), aber es freut mich das wenigstens das endlich klappt.
Was ich jetzt vorhabe:
Partikel-System fertigstellen (da gibt es noch ein paar Dinge die noch nicht fertig sind)
Shader-Support fertigstellen (Variablenübergabe)
Licht & Schatten (wird wohl etwas länger dauern, ich muss mich erst mal in die Techniken einarbeiten, das ist alles sehr komplex)
Der Link: http://darkinsanity.netne.net/cd/cd.zip
Darkinsanity:
Ok, doppelpost, aber da ich ne neue Version habe erlaub ich mir das mal:
Als ich gerade dabei war die Lichttechnik zu implementieren bin ich auf einen kleinen Fehler gestoßen. Und das war genau der Fehler, der verursacht hat, dass kein Sound ausgegeben wird.
Zur Soundausgabe verwendet OpenAL nämlich handles (Nummern), und an einer Stelle hat ein vergessener Parameter bewirkt, das als handle 0 anstatt dem wirklichen handle zurückgegeben wird.
Ich hab den Fehler entfernt, und nun kann man einen Sound hören (die Lautstärke und Richtung ist natürlich von der Spieler-Position abhängig, das hatte ich schon seit langem eingebaut). Leider geht momentan nur Wave als Format, ich seh mal ob ich dann noch ogg vorbis nutzen kann.
Aber als erstes kümmer ich mich weiter um die Beleuchtung.
Der Downloadlink: http://darkinsanity.netne.net/cd/cd.zip
Falls jemand die Technik interessiert, die ich für das Licht einsetze:
Hier gibt es eine Demo: http://downloads.gamedev.net/features/p ... htDemo.zip
Und hier ein Tutorial: http://www.gamedev.net/reference/progra ... efault.asp
Diese Technik ist sehr effizient, in der Demo werden 400 Lichter gerendert. Zusätzlich zu dieser Technik lässt sich auch noch das OpenGL-Licht nutzen, das aber nur 8 Lichter unterstützt.
Der Shader-Support ist fertig, das mit der Physik-Engine wird wohl etwas länger dauern und nur schrittweise, da von den Umbauten alles betroffen ist, auch das Levelformat usw.
Falls das mit dem Licht gut klappt werd ich die Umbauten in Angriff nehmen.
Lucki:darkinsanity wrote:die Lautstärke und Richtung ist natürlich von der Spieler-Position abhängig
Unterstützt das Sourround 5.1 ? (Wär toll)
Doppelpost macht natürlich gar nichts. Ist ja neue Version und du kannst nichts dafür, dass nach dir niemand geschrieben hat ^^
[hr]
Hab ich was auf den Ohrn, oder kommt da kein Sound? Muss man den vielleicht irgendwo anschalten, wie mit den Partikeln?
[hr]
Habs gefunden 'P' ist es.
Und Ja, es unterstützt Surround 5.1 *freu*
Gute Arbeit
Darkinsanity:
Das mit dem Surround hätte ich nicht beantworten können
Das hängt vom Treiber usw. ab, ich kanns auch nicht selbst testen da ich kein Surround habAber ich nehme einfach mal an das die meisten Soundkarten-Treiber alles korrekt implementiert haben, von daher sollte es eigentlich überall gehen.
Hm, ich denke ich muss das alles sogar zweimal umkrempeln. Einmal wegen der Physik-Engine, und dann nochmal, da das Programm momentan mehr Technik-Demo als eine Engine ist...
Aber das hat noch ein bisschen Zeit, zumindest bis ich das Licht fertig hab.
Und schlau wie ich bin hab ich vergessen euch zu sagen wie man den Sound anschaltet. Also, "P" startet die Soundquelle (es gibt momentan nur eine) und "L" stoppt die Soundquelle. Die Soundquelle hört aber auch auf abzuspielen wenn das Ende der Wave-Datei erreicht ist. Wenn man wieder "P" drückt dann geht die Soundquelle aber auch wieder an.
Ich bin gerade am Überlegen wie ich das am sinnvollsten in das Level-Format einbaue. Entweder ich mach das direkt rein (wäre für die Lichtquellen sinnvoll) oder ich stecke ein paar Dinge in ein Script (für Shader sinnvoll).
Es liegt also noch eine Menge Arbeit vor mir
Darkinsanity:
So,
schon wieder was neues. Diesmal ist ALUT (Audio-Library-Utility-Toolkit) rausgeflogen, weil es nur Wav unterstützt. Ich hab es durch OggVorbis ersetzt, was einige Vorteile hat. Zuerst einmal hat es Kompression, und im Gegensatz zu MP3 gibt es keine Lizenzprobleme da der Codec Open-Source ist. Außerdem kann ich jetzt Sound streamen, d.h. ich lade immer kleine Teile des Sounds nach anstatt alles gleich in den RAM zu laden. Das spart bei großen Sounds viel Speicher.
Bei kleinen Sounds lohnt sich das Streaming nicht, daher werde ich auch noch die Möglichkeit einbauen einen OggVorbis-Sound komplett zu laden.
Die Sirene war eigentlich nur als Test-Sound gedacht, ich hab sie gefunden als ich auf meiner Festplatte einfach nach Wave's gesucht hab. Da ich jetzt keine Wave's mehr nutze hab ich den Sirenen-Sound mit Audacity verlängert (Wiederholung klappt beim streamen noch nicht) und ins OggVorbis-Format konvertiert.
Ein paar kleine Änderungen gab es hier und da auch noch, die sind aber nicht nennenswert. In Sachen Beleuchtung bin ich einen großen Schritt weiter, aber es ist noch nicht fertig.
Der Link: http://darkinsanity.netne.net/cd/cd.zip
Bis dann
3 Posts mit Errors...
Whitefire:
Hehe da ist einer ja richtig fleißigWünsche dir weiterhin viel Erfolg und hoffe alles klappt so wie du es dir wünschst!
Und zu den Double Posts: Es ist nur nicht gerne gesehen wenn man nach ein paar Minuten oder wenigen Stunden nicht Gebrauch vom Edit-Button macht (wozu ist der sonst da?), aber sonst ist ein Double Post überhaupt kein Problem
Also ich schließ mich Lucki an und sag weiter so!
Darkinsanity:
sorry, konnte ne zeit lang nicht ins netz (hatten ferien, daheim hab ich kein gescheites internet), hab daher nicht gemerkt das diese affen meinen webspace gelöscht haben...
werd mir wohl mal wieder neuen besorgen müssen. könnte aber en weilchen dauern bis es wieder geht.
@Whitefire: thx.
/edit:
ok hab mir mal nen neuen server gemacht. vermutlich ham die den alten gelöscht weil keine html-datei drauf war, deshalb hab ich auf den neuen gleich mal eine drauf
Und ich belästige das Netz gleich mal wieder mit ner neuen Version:
Leider funktioniert die Beleuchtung (und der Schatten) immer noch nicht, da sitzt wohl noch ein fieser Fehler drin.
Es hat trotzdem einige Änderungen gegeben, die ich hier mal in Kurzform aufliste:
Bugfixes:
- Ende der OggVorbis-Datei wurde nicht richtig erkannt
- Ränder an der Skybox sind nun weg
- Colorbuffer wurde unnötigerweise gelöscht (unnötig da der Hintergrund sowieso von der Skybox überdeckt wird)
- Texturen des Partikelsystems sind nun wieder richtig herum
- ein paar kleinere Bugs
sonstige Änderungen:
- restlichen Wave-Code entfernt
- Umbau zu Engine-mäßiger Form
- Config-File ist nun "thunder project\config\config.lua"
- Lua 5.1 hinzugefügt
- Config-File wird nun von Lua verarbeitet
- gameinfo-script hinzugefügt ("thunder project\gameinfo.lua")
- Anisotropische Filterung (macht die Texturen schärfer) kann nun in der Config-File aktiviert werden
Wie schon gesagt hab ich das ganze mehr in eine Engine-Form gebracht. Daher wird die Demo jetzt auch etwas anders gestartet, nämlich über die "thunder.bat". Die ruft die Engine mit dem richtigen Parameter auf.
Ich wette das nicht alle wissen was Lua ist
Lua ist eine leistungsfähige Skriptsprache, die in "FarCry", WoW und der Source-Engine Verwendung findet. Ich bin einfach zu faul mir meine eigene Skriptsprache auszudenken, und Lua hat ja bereits bewiesen, was es kann. Also hab ich Lua in die Engine gepackt und bisher bin ich sehr zufrieden. Wichtig bei Lua ist, das auf Groß/Kleinschreibung geachtet wird.
Ich habe auch vor, das (noch nicht vorhandene) Hauptmenü von Lua-Scripts aus zu steuern.
Jetzt kommen noch ein paar Worte über das Design:
Ich strebe einen Aufbau ähnlich der Source-Engine an. Das hat mehrere Vorteile. Zum einen kann ich so mehrere Spiele auf derselben Engine aufbauen, auch Mods wären kein Problem. Zum anderen kann ich so das Verhalten verschiedener Objekte in Skripten festlegen.
Jedes Benutzbare Item wird ein eigenes Skript spendiert bekommen. Dort werden nicht nur die Eigenschaften des Items festgelegt, sondern auch die Funktionen die dieses Item hat. Da wird also zum Beispiel festgelegt, ob man das Item aufnehmen kann, wie schwer es ist, ob es einen Sound abspielen soll wenn man es aufnimmt, welche Taste welche Funktion auslöst usw.
Die Source-Engine erledigt das auch so, die Items heißen dort "Entities".
Da ich mitlerweile einige Dinge verwende, die von anderen Personen stammen, liste ich hier alle mal auf, und schreibe auch die Aufgabe dazu:
OpenGL - Grafik
OpenAL - Soundausgabe
Newton Game Dynamics - Physik
Lua - Scripts
FreeImage - lesen und schreiben von Bildern (Texturen, Screenshots)
OggVorbis - Soundformat
FreeBASIC V0.21.0b - Der Compiler
Alles davon ist kostenlos, das meiste open-source. Nur Newton rückt den Quelltext nicht raus
Der Hauptgrund, warum ich genau diese Libs verwende? Alle haben eine sinnvolle Lizenz, die es mir ermöglicht sie ohne Lizenzprobleme kostenlos einzusetzen. Deswegen verwende ich auch OggVorbis anstatt Mp3, da es wegen Mp3 in letzter Zeit schon einige Klagen gegeben hat.
Und hier kommt der (diesmal etwas andere) Link: http://darkinsanity.netii.net/xenon/xenon.zip
Momentan ist die Maussteuerung nicht so toll. Sie ist unpräzise, die Genauigkeit ist abhängig von der Bildschirmauflösung und sie nutzt den Vorteil von hochauflösenden Mäusen nicht aus.
Ich werde mich also auf die Suche nach einer besseren und plattformunabhängigen Maussteuerung machen und mich um die Beleuchtung kümmern. Also genug zu tun für die nächsten Jahre
So, ich hoffe mal ich hab euch nicht totgelabert
Bis denn
Lucki:
Ecken der skybox sind weg![]()
Partikel durch Wand sichtbar... ^^
Maussteureung bestätigter Weise sehr unpräzise hat immer 'aussetzer' (hatte mal genau so'n prob unter ubuntu... hat sich von allein verflüchtigt)
[zip Problem von The Gnaa mal weg gelassen...]
Darkinsanity:
So, die neue Version ist noch nicht fertig, aber ich will euch mal sagen woran ich gerade arbeite
Also, ich hatte total vergessen, einen Material-Manager zu schreiben.
Das hole ich jetzt nach. Erste Konsequenz ist, das die Viereck-Render-Routinen rausgeflogen sind, da ich sonst das doppelte an Code hätte: Einmal für Dreiecke und einmal für Vierecke.
Ein Material ist besteht aus folgendem:
- Farbe (Rot, Grün, Blau, Alpha, wenn Textur vorhanden ist wird sie eingefärbt)
- Textur
- Shader
- Liste mit allen Dreiecken, die zu diesem Material gehören
Die Zeichenroutinen sind bereits fertig, aber ich muss mir noch überlegen wie ich das in einer Datei ablege.
Wenn ich fertig bin melde ich mich wieder
Darkinsanity:
Es ist vollbracht: Die nächste Demo ist fertig
Es sieht nicht soo toll aus - nur ein einziges Dreieck ist dageblieben. Dafür sieht die Skybox jetzt viel besser aus, da ich jetzt höher aufgelöste Texturen verwende. Das sind aber jetzt "non-power-of-two"-Texturen, wenn es also Fehler bei jemandem gibt, dann bitte melden.
Also, was hat es mit dem Dreieck auf sich? Dieses einzelne Dreieck nutzt nun das komplexe Material-System, das ich mir ausgedacht habe, ich könnte also jetzt soviele unterschiedliche Texturen und Shader nutzen wie ich will (bzw. wie in den RAM passt).
Momentan gibt es aber noch einen Nachteil: Ich hab noch keinen neuen Map-Compiler geschrieben, deswegen muss ich die Daten "von Hand" in die Datei eintragen.
Ich werd mich also daran machen und einen neuen Map-Compiler schreiben, vielleicht seh ich mich auch mal nach einem gescheiten Editor um. Momentan dauert das ganze aber etwas länger, da momentan der "Bundeswettbewerb Informatik" (bei dem ich teilnehme) stattfindet und außerdem außer mir nur noch einer da ist der sich um das Linux-Projekt bei uns in der Schule kümmert...
Achja, ganz nebenbei hab ich auch ein paar kleinere Fehler im Skybox-Code behoben. Außerdem müsst ihr ein Stück "zurücklaufen" um das Dreieck zu sehen. Bis gestern Abend gab es auch noch einen Fehler im Dateiformat, aber das hab ich um halb elf dann noch behoben.
Ich weiß nicht, wann ich die nächste Demo fertig hab, aber wenn ich Zeit und Ideen habe arbeite ich daran
Aber jetzt erstmal der Link: http://darkinsanity.netii.net/xenon/xenon.zip
Die Datei ist diesmal größer, da die Texturen größer sind.
Bis denn
TheGnaa:
-.- bei mir kommt bei winrar immer die fehlermeldung "unerwartetes archivende das archiv hat entweder ein unbekanntes format oder ist beschädigt"
Whitefire:
Wollte das unzippen mal probieren, aber 7zip gibt mir auch nur eine Diagnosefehlermeldung aus...
Puh... war ein bisschen an Arbeit, aber auch meine eigene Schuld... möchte mich nochmal bei dir entschuldigen darkinsanity für das Löschen deiner Topic... Wäre super wenn in Zukunft weitere Demos bis zum Release folgen


)









