Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Nov 21, 2024 16:08

Foren-Übersicht » Sonstiges » Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Adventure-3D-Outdoor-Engine
BeitragVerfasst: Fr Apr 11, 2008 19:56 
Offline
DGL Member

Registriert: Mi Mär 31, 2004 15:24
Beiträge: 114
Hallo Leute ich möchte euch hier mein Projekt vorstellen!

Es handelt sich - wie der Titel schon sagt - um eine 3D-Outdoor-Engine, welche ich für ein Adventure mit Rollenspielelementen programmiere. Ich werde wie es aussieht auch die restlichen Teile des Spieles schreiben, wobei ich bei Story und Modelling Hilfe bekommen werde. Da sich die Entwicklung dieses Spiels erst in den letzten Semesterferien entschieden hat(Einen großen Teilcode hatte ich aber bereits vorher), werde ich hier die Entwicklung der dem Spiel zugrundeliegenden Spielengine beschreiben und vorerst nicht die geplanten Elemente des Spieles selber beschreiben. Das wird aber noch kommen - es steht im Moment aber noch wenig fest.
Es wird seine Zeit brauchen, das ist sicher. Ich programmiere die Engine alleine und bin eigentlich nur so ein "normaler Hobbyprogrammierer", der Spaß am
Entwickeln hat - daher auch nicht so super schnell. Aber ich gebe mir natürlich größte Mühe! Soviel zum Grundsätzlichen, ich werde nun ein wenig meine Engine beschreiben:

Implementiert:

- Grundsätzliches (Fenstererzeugung, Vollbild, Tastatur, Maus, Struktur :) )

- Eine simple Konsole, zum besseren Bugtracking

- Patchbasiertes Ladesystem - das Terrain, welches vorher im Editor generiert wird, wird in Blöcken gestreamt. Nicht benötigte Patches werden entladen.
Frustum Culling zur Optimierung.

- Virtuelles Dateisystem - Speziell für dieses Spiel, Dateitypen sind also feste Objekte. Es werden Streams und Datenkompression verwendet.

- Momentan lasse ich alles Statische über Displaylisten laufen, die die Vertices nach Texturen sortiert übergeben bekommen, damit überflüssige
Texturenbindings vermieden werden. VBOs hab ich als Klasse implementiert, werden aber momentan nicht erwendet.

- Kollisionskontrolle, die aber noch nicht so funktioniert, wie sie sollte. Fallen funktioniert schon ;) , aber Hochlaufen ist noch ruckelig.

- Eigenes statisches Modelformat. Die Models werden ebenfalls in Patches organisiert, jedoch werden sie nur bei Bedarf ge- oder entladen und dann angezeigt.
Damit meine ich: Die Positionierungsdaten der Models (also welches Model mit welcher Position, Rotation, Skalierung wo gesetzt werden muss), werden in
Blöcken geladen. Es handelt sich dabei um die gleichen Blöcke, wie beim Terrain.

- Ein halbwegs funktionierender Editor. Er kann zumindest schon das Terrain aus Heightmaps erstellen und auch Models so reinsetzen und bearbeiten, wie
es möchte. Achja, und statische 3ds-Models importieren kann er auch.


Geplant für die nächste Zukunft sind:

- Himmel (Skybox/-dome o.Ä.) - war ich bisher zu faul zu

- Eine bessere GUI. Momentan können nur Texturen als "Fenster" dargestellt werden.

- Dynamische Models, ebenfalls 3ds

- Multitexturing(vllt. Lightmaps, Detailmapping)

- Ein Effektsystem für Wettereffekte etc.

- Vegetation, (vielleicht auch prozedurale Bäume)

- Tag/Nacht-Zyklus (und damit die Implementation von Licht, vielleicht mit Lightmaps)

- Eine komplette Kollisionskontrolle

- Eine Modifikation des Editors zur Terrainmanipulation. Sehr wichtig ist auch ein Tool, um die Textur der einzelnen Terrainblöcke zu bearbeiten.


Das ist schon ein riesiger Batzen für mich, der sich so schnell nicht abarbeiten lässt. Ich werde euch regelmäßig über die Fortschritte unterrichten!
So, ich hoffe, ich konnte euch in etwa herüberbringen, woran ich gerade arbeite. Wenn Infos fehlen, fragen. Meinungen, Kritiken, Anregungen usw. sind sehr
erwünscht!


Anliegend jetzt noch ein paar Screenshots, damit ihr auch einen Eindruck bekommt, wie es denn aussieht.


Viele Grüße,

Rüdiger


Dateianhänge:
Dateikommentar: Der Editor. Einfach, aber bereits zu benutzen. Der blaue Körper ist das aktuelle Modelle, die Schablone sozusagen. Sie kann dann beliebig gedreht, skaliert und bewegt werden und dann auch mehrfach gesetzt werden.
5.JPG
5.JPG [ 73.78 KiB | 9769-mal betrachtet ]
Dateikommentar: Die Konsole. In der Liste stehen die Dateien, die im VFS enthalten sind und eine Information, wo welche Models geladen sind.
3.JPG [75.92 KiB]
17-mal heruntergeladen
Dateikommentar: Ein paar gesetzte Models. Texturkoordinaten werden richtig geladen, sind aber nicht richtig gemodelt, soweit bin ich noch nicht :)
2.JPG
2.JPG [ 41.9 KiB | 9769-mal betrachtet ]
Dateikommentar: Der Aufbau des Patchsystems. Die Randblöcke werden ein und ausgeblendet, wie man sehen kann. Das rote Raster ist ein Hilfsraster, es zeigt die Positionen
der einzelnen Patches an.

1.JPG
1.JPG [ 46.7 KiB | 9769-mal betrachtet ]
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 01, 2008 19:29 
Offline
DGL Member

Registriert: Mi Mär 31, 2004 15:24
Beiträge: 114
Hallo Leute!
Ich bin weitergekommen! Es nimmt immer mehr Gestalt an!

Nicht mehr lange, dann wird es ne Techdemo geben!

Hier meine Fortschritte:

- Himmel/Wolken. Dabei handelt es sich aber nur um Texturen, die sich über den Himmel bewegen. Sieht nett aus, aber vielleicht etwas zu "Comic-artig". Mal sehen, ob ich es behalte.
- Tag/Nacht-Zyklus. Die Farben, welche linear ineinander übergefadet werden, sind noch nicht so gut balanciert, sieht aber schon ganz cool aus.
- Editor-Verbesserungen. Mehr Kontrolle über Texturen, besseres Kontrollsystem. Jetzt Texturenimport direkt mit Alpha-Kanal! :)
- Multi-Texturing für Detailmapping.

- Vegetation - Gras, welches sich im Wind bewegt. Sieht schon echt cool aus. Ist ne beschleunigte Bewegung. Das Gras wird mittels Alphatest durchsichtig gemacht (Sorry, Lossy ex ;) ).
- Regen und Schnee. Sieht auch schon cool aus, frisst aber Leistung...
- Klein, aber fein: Ein Handler, der die virtuelle Zeit mit beliebiger Geschwindigkeit abspielen kann(Datum kann er auch).


Die Zukunft:

Weiterhin ganz oben stehen:

- Dynamische Modells
- Komplette Kollisionskontrolle
- Bessere GUI
- Terrainmanipulation/Texturmanipulation im Editor

Auch noch wichtig:

- Überblendung zwischen Horizont und Wolken
- Verbesserte Wolken :)


Feedback ist erwünscht!


Viele Grüße,

Rüdiger

Noch ein paar Screenshots:


Dateianhänge:
Dateikommentar: Regendemo. Der Himmel passt nicht ganz...
New3.JPG [114.28 KiB]
62-mal heruntergeladen
Dateikommentar: "Triumphbogen" in der Dämmerung
New2.JPG [66.1 KiB]
60-mal heruntergeladen
Dateikommentar: Vegetation deutlich sichtbar
New1.JPG [77.32 KiB]
62-mal heruntergeladen
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Mai 16, 2008 19:16 
Offline
DGL Member

Registriert: Mi Mär 31, 2004 15:24
Beiträge: 114
Ganz kurz,
nur damit ihr seht, dass es weitergeht. Bald mehr dazu.

Wasser (nur Refraktionsmap) und dynamische Wolken (noch im Anfangsstadium) sind implementiert.

Screenshots im Anhang


Dateianhänge:
Dateikommentar: Wasser
Wasser.JPG [194.91 KiB]
55-mal heruntergeladen
Dateikommentar: Wolken
DynamicClouds.JPG [87.83 KiB]
54-mal heruntergeladen
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mai 17, 2008 20:04 
Offline
DGL Member

Registriert: Mi Mär 31, 2004 15:24
Beiträge: 114
Hallo Leute!

Wie angedroht, hier noch ein paar Infos. Ich hoffe, dass ich bis morgen, die erste Exe-Demo hinbekomme.

Hier meine Fortschritte:

- Prozedurale Wolken - Aus Noisemaps in einem zweiten Thread erstellt. Screenshot im letzten Post.
- Wasser. Eigentlich wollte ich keine "Shader" benutzen. Hab ich aber trotzdem getan. Allerdings lasse ich aus Performancegründen die Spiegelung weg und benutze nur Refraktionen ohne "Tiefenshader" bisher. Screenshot im letzten Post.
- Ein Skydome, der einen Teilausschnitt einer Kugeloberfläche simuliert.
- Performance-Verbesserungen, Bugfixes, etc.

Worum ich mich als nächstes kümmern werde:

- Überblendung zwischen Horizont und Wolken ist noch nicht perfekt, auch wenn ich jetzt einen Skydome benutze.
- Eine Sonne mit Lensflare.
- Der Himmel soll noch ein wenig verfeinert werden, am liebsten würde ich als Hintergrund diese Farben verwenden:
http://www.geocities.com/ngdash/whitepapers/skydomecolor.html. Mal schauen,ob ich das hinbekomme :)

- Wenn obiges einigermaßen schön und stabil läuft, möchte ich mich an das Modelformat für die dynamischen Models heranwagen.


Also wie gesagt: Ich hoffe, dass ich morgen mal eine kleine Demo hochstellen kann!

Noch etwas:
Was Lizenzen angeht: In jedem Fall wird das Endprodukt Freeware und sehr wahrscheinlich werde ich alles auch Open-Source veröffentlichen, wenn es fertig ist.

Viele Grüße,
Rüdiger.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 19, 2008 18:37 
Offline
DGL Member

Registriert: Mi Mär 31, 2004 15:24
Beiträge: 114
Hallo Leute!

Ich hab eine kleine Demo fertig, die ich euch zeigen möchte. Leider ist die Performance ziemlich schlecht und es sind noch einige Bugs in der Darstellung, aber für mehr hat es jetzt leider nicht gereicht.
Ich werde in der nächsten Zeit nur wenige Ressourcen auf das Projekt verwenden können, weil mein Vordiplom ansteht und ich bemerkt habe, dass meine Uni-Leistungen stark unter der Entwicklung an diesem Projekt zu leiden haben.


Hier der Demolink. Sorry, nur bei Rapidshare, ich habe leider keinen eigenen Webspace.

http://rapidshare.de/files/39459210/Techdemo.zip.html (ca. 6 MB)


Wer es zum Laufen bekommt(ich glaube, dass es im Moment nur auf DualCore-PCs vernünftig läuft):
- Die Steuerung dürfte eine typische Egoshooter-Steuerung sein (WASD, Maus, Leertaste für hoch, Strg für runter)
- Kollisionskontrolle habe ich deaktiviert, die funktioniert immernoch nicht richtig.
- Die Wolkentextur wird spaßeshalber mit F2 eingeblendet.
- Die Konsole aktiviert/deaktiviert man mit F1.
- Dort interessante Befehle:
"weather good", "weather bad", "weather fair" - verändert das Wetter. Einfach mal rumprobieren!
Wer sich das Ganze im Wireframe-Modus angucken möchte: "rendermode=wireframe" und "rendermode=polygons" schaltet die Rendermodes um.
- Das eine Model(das Haus) ist nicht sonderlich gut texturiert, einfach mal im Wireframe angucken ;) Texturieren kann ich leider nicht. Und mein Kollege, der sich ums Modelling kümmern wollte, ist abgesprungen.
- Den Wasser-Shader hab ich mitgeliefert, er wird noch separat aus der Textdatei geladen und nicht aus der der Projekt-Datei.

Feedback erwünscht :)


Noch was:
Mir ist aufgefallen, dass ich das Projekt so wie geplant in vernünftiger Zeit einfach nicht schaffen kann.
Ich möchte das Ziel, ein richtiges Spiel fertigzustellen, jedoch nicht justieren und suche deshalb jemanden unter euch, der Lust hat, mit mir an diesem Projekt zu arbeiten. Wie bereits in diesem Thread beschrieben, steht noch wenig fest, was die Story angeht. Es soll ein Outdoor-Adventure mit RPG-Elementen entstehen, wobei die Welt so frei wie nur möglich realisiert werden soll. Es geht also primär um die Entwicklung der Engine.
Wie bereits beschrieben, bin ich nur "so ein kleiner Hobbyprogrammierer". Ich denke, durch die bereits implementierten Features, die ich oben beschrieben habe und die man in den Screenshots und der Demo sieht, hat man einen guten Eindruck, von dem was ich (mitunter aus Tutorials :) ) implementieren kann.
Also, falls sich jemand interessiert, so soll er/sie sich bei mir melden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 21, 2008 02:00 
Offline
DGL Member

Registriert: Mi Mär 31, 2004 15:24
Beiträge: 114
Hi Leute!

Habe eine neue Version geschaffen, die hoffentlich bei allen Interessierten laufen wird. Es wird jetzt eine LogFile erschaffen und das Programm kann angewiesen werden, OpenGL-Fehler zu ignorieren.

Zwei Downloads: Der erste ist die komplette Demo mit einem etwas performanterem Level. Der zweite ist das reine Update des Programms.


Hier die komplette Demo:
http://rapidshare.com/files/116409165/Techdemo.zip.html(ca. 4 Mb)

Hier das Programmupdate:
http://rapidshare.com/files/116408600/PEngine.zip.html(320 kB)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jun 07, 2008 10:43 
Offline
DGL Member

Registriert: Mi Mär 31, 2004 15:24
Beiträge: 114
Hi Leute!

Nachdem ich hier vorschnell eine erste Techdemo veröffentlicht habe, die bei den meisten nicht funktioniert hat, werde ich jetzt bis zum nächsten Release noch etwas Zeit vergehen lassen.

Dennoch gab es bisher einige Fortschritte:

Die größten Fortschritte liegen wohl in der Kollisionskontrolle und einem Algorithmus für prozedurale Bäume (Screenshot).

Die Kollisionskontrolle basiert auf dem Tiefenpuffer. Wenn Interesse besteht, kann ich dazu gerne noch etwas mehr posten.
Bei der Baumerstellung habe ich mich von den sogenannten Speedtree-Bäumen inspirieren lassen. Es handelt sich also um einen Stamm mit Ästen und Unterästen, welche Blattwerk als Billboards tragen. Da ich das Blattwerk aus Blattfotos selbst erstellen musste, sieht es echt schlecht aus bisher. Aber das kann ja noch werden.
Mit der Geschwindigkeit bin ich zufrieden bisher, etwa 0,15 ms pro Baum auf meiner Hardware- was noch fehlt ist "Level of Detail", damit es auch wirklich praktibel eingesetzt werden kann. Außerdem muss noch was am Algorithmus getan werden, der die Äste setzt.

Weiterhin werde ich mich wohl um Performanceverbesserungen kümmern und manche Techniken/Effekte verbessern.



Viele Grüße!


Hier noch der Screenshot:


Dateianhänge:
Dateikommentar: Drei Bäume werden gerendert.
Screenshot.JPG [189.88 KiB]
72-mal heruntergeladen
Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Foren-Übersicht » Sonstiges » Projekte


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.023s | 17 Queries | GZIP : On ]