Showroom - Aktuelle Arbeiten und Projekte

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitragvon gdsWizard » 12.07.2013, 06:17

Ich habe gestern festgestellt, das noch einige Bugs im Designer enthalten sind. Zwar stürzt das Programm nicht ab, aber einige Funktionen haben doch noch nicht das korrekte Verhalten. Wenn es mir zeitlich möglich ist werde ich also nachbessern.
gdsWizard
Thomas Mittelsdorf
 
Beiträge: 203
Registriert: 04.02.2005, 10:12
Wohnort: Meiningen
Benutzertext: www.gamedevstudio.com

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitragvon RazorX » 13.07.2013, 19:19

Ich habe in den letzten Tagen an einem neuen Logging-System gearbeitet, was neben der Erfassung von Datei/Funktion/Zeile auch in der Lage ist brauchbare Informationen im Falle einer Exception zu generieren. So gibt es zum einen eine Funktion, die SEH oder auch C++ Exceptions abfängt und entsprechend logt. Es kann aber auch ein Makro manuell genutzt werden, was ein loggen von zu schmeißenden Exceptions vornimmt. SEH Exceptions (Windows/MSVC++) sind Hardware-Exceptions wie z.B. Access Violation, Division by Zero, etc.).

Code: Ansicht erweitern :: Alles auswählen

// Sichere Ausführung
Fate2::securedExecution(std::bind(&foo));

// Logging einer zu schmeißenden C++ Exception (wo ich das schreibe fällt mir auf, dass man das sogar noch vereinfachen könnte, sodass die Exception dem Makro übergeben wird und dieses die Typinformationen generiert)
FATE_LOG_FATAL(GetThreadContext(), "std::logic_error", "Exception Beschreibung", "Weitere Beschreibung mit __VA_ARGS__ erweiterbar", ...);
throw std::logic_error("Exception Beschreibung");


Wenn eine C++ Exception nicht durch einen catch-Block abgefangen wird, so landet diese im SEH-Filter und ich kann diese loggen. Der Typ wird dabei aus der EXCEPTION_POINTERS Struktur hergeleitet, dort befinden sich mehrere type_info Informationen, sodass man sogar relativ zuverlässig einen cast vornehmen kann um an die ursprüngliche C++ Exception zu kommen. Das ist leider auch alles etwas wage da es keine offizielle Dokumentation gibt, letztlich sind das alles Compiler-interne Typen, die zwar vorhanden sind aber von IntelliSense nicht erkannt werden. Nunja das explizite Loggen einer C++ Exception ist dann sinnvoll, wenn diese von einem catch-Block gefangen werden würde. Gemäß der Implementierung des try/catch lässt sich nämlich im catch nicht auf die ursprüngliche Position im Quelltext zurückfinden. Um einen Stack-Trace anzufertigen sind die Kontextinformationen aber wichtig, weswegen das Makro auch ein GetThreadContext() bekommt.

Gespeichert wird das ganze auf XML Basis, am Anfang Informationen über den Ausführungszeitpunkt sowie der Hardware des Computers, dann am Ende die ganzen Events. Als Front-End hab ich mir dafür ein HTML5 Seite gebaut, die mit Javascript/jQuery/XSLT/CSS das ganze in eine präsentable Form bringt, inklusive per Thread-Filterung und Eventtyp-Filterung.

callstack.PNG
filter.PNG


Für den Stack-Trace verwende ich die "StackWalker"-Bibliothek (http://stackwalker.codeplex.com/), hier wäre es sogar möglich noch Informationen über geladene Symbole und co zu generieren.
RazorX
 
Beiträge: 156
Registriert: 23.12.2010, 15:13

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitragvon gdsWizard » 16.07.2013, 14:42

Hallo, ich wollte mal eine kleine Kathedrale zeigen die ich mit meinem Softcube Designer 3.0 erstellt habe. Insgesamt geht das Modellieren ziemlich flüssig. Die Datei Kathedrale.scd ist 649 KByte groß und wird, wenn ich den Download wieder einstelle, mit dabei sein. 2 kleine Bugs habe ich korrigiert.

Kathedrale.jpg


Edit: Da sieht man ja die Labels in der ListvIew teilweise nicht mehr. Das tritt manchmal auf seit ich von DX9 auf DX11 umgestellt habe. Wenn man Drag&Drop Technique bei den Pane(-s, -pages ) macht. Hat jemand eine Idee woran das liegen könnte ? In den nächsten Tagen werde ich wieder alles auf meiner Seite anbieten.
gdsWizard
Thomas Mittelsdorf
 
Beiträge: 203
Registriert: 04.02.2005, 10:12
Wohnort: Meiningen
Benutzertext: www.gamedevstudio.com

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitragvon gdsWizard » 20.07.2013, 14:38

Ich habe auf meiner Homepage http://www.gamedevstudio.com eine neue Version als Demo eingestellt. Die obige Kathedrale ist mit dabei. Als Einschränkung hat die Demo nur das nicht alle Cubes als DirectX File gespeichert werden.
gdsWizard
Thomas Mittelsdorf
 
Beiträge: 203
Registriert: 04.02.2005, 10:12
Wohnort: Meiningen
Benutzertext: www.gamedevstudio.com

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitragvon gdsWizard » 20.07.2013, 16:53

Eben habe ich noch 2 Bugs behoben. "Align on grid" funktionierte nicht. Das Schliessen einer angedockten ProjectPage (beim Softcube Designer die Ansicht einer Texture) führte bis eben zum Absturz.
gdsWizard
Thomas Mittelsdorf
 
Beiträge: 203
Registriert: 04.02.2005, 10:12
Wohnort: Meiningen
Benutzertext: www.gamedevstudio.com

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitragvon Schrompf » 20.07.2013, 16:56

Magst Du nicht einen separaten Thread dazu aufmachen, wenn Du das hier wie ein Devlog führst? :-)
Häuptling von Dreamworlds. Baut an was Neuem. Hilft nebenbei nur höchst selten an der Open Asset Import Library mit.
Benutzeravatar
Schrompf
Thomas Ziegenhagen
Moderator
 
Beiträge: 3603
Registriert: 26.02.2009, 00:44
Wohnort: Dresden
Benutzertext: Lernt nur selten dazu

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitragvon gdsWizard » 20.07.2013, 17:27

Mache ich doch gerne . Aber erst Morgen. :)
gdsWizard
Thomas Mittelsdorf
 
Beiträge: 203
Registriert: 04.02.2005, 10:12
Wohnort: Meiningen
Benutzertext: www.gamedevstudio.com

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitragvon Krishty » 27.07.2013, 21:54

Das New York-Level aus Driver von 1999 – einfach aus Jux und Dollerei.
nyc wireframe.png

Mal sehen, wie ich die Texturen reinkriege.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
 
Beiträge: 5973
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitragvon Krishty » 28.07.2013, 18:25

Schon besser:
13-07-28 NYC 1-2.png

13-07-28 NYC 2-2.png

13-07-28 NYC 3-2.png

Beängstigend, dass ich heute ohne Culling als nicht-indizierte Triangle List runterrendern kann, was vor 14 Jahren High-End-Rechner brauchte. Bei 200 fps. (Mein Rechner ist schon vier Jahre alt, also eher vor zehn Jahren.)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
 
Beiträge: 5973
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitragvon gdsWizard » 29.07.2013, 06:52

Beeindruckend ! Vielleicht könntest du schreiben wie die Daten bei Driver vorliegen ? Das würde mich wirklich interessieren.
gdsWizard
Thomas Mittelsdorf
 
Beiträge: 203
Registriert: 04.02.2005, 10:12
Wohnort: Meiningen
Benutzertext: www.gamedevstudio.com

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitragvon Krishty » 29.07.2013, 12:33

gdsWizard hat geschrieben:Beeindruckend ! Vielleicht könntest du schreiben wie die Daten bei Driver vorliegen ? Das würde mich wirklich interessieren.
Driver ist ursprünglich ein PlayStation-Spiel, und die Datenstruktur ist dementsprechend angehaucht. Ich habe mich damit beschäftigt, weil ich mit dem Entschlüsseln der Driver 2-Daten, die PlayStation-exklusiv sind, nicht weiterkomme.

Das meiste hiervon hat someone972 für seinen Driver Texture Editor benutzt, auf dem ich im Wesentlichen aufbaue:

Die Städte selber liegen als Sammlung von Blöcken vor (weil Speicher knapp ist und das Bewegen des CD-Lesekopfs langsam). Das New York-Level aus den Schnappschüssen ist z.B. 4×4 km groß, und besteht aus 8×8 Blöcken.

Jeder Block bedient sich aus einem globalen Modellverzeichnis. Das Verzeichnis umfasst für New York 1030 Modelle, die dann an beliebiger Stelle und mit optionaler Rotation um die Y-Achse, aber ohne Skalierung eingefügt werden.

Modelle, die mehr als einen Block bedecken, werden in einem zusätzlichen globalen Block gespeichert. Tatsächlich sind es also 65 Blöcke für New York.

Die Modelle sind immer mit Flächenbeschreibungen ausgestattet; aber nicht zwingend mit Punktbeschreibungen. Das kommt daher, dass sich viele Gebäude nur in Farbe und Textur unterscheiden, aber nicht in Geometrie. In diesem Fall verweisen Modelle auf die Vertices anderer Modelle. Sie haben außerdem Bounding Boxes und Clipping Planes. Außerdem liegen Motion Capture-Daten für Passantenanimation vor und Pfade für Verkehrssimulation.

Die Flächen liegen in einem alptraumhaften Format vor: Als Dreiecke oder Rechtecke; mit oder ohne Texturen; mit oder ohne Vertex-Farben; mit oder ohne Normalen. Davon je nach Shading-Art nur eine, drei, oder vier. Jede Kombination aus diesen Attributen hat ein eigenes Format und erfordert eigenen Code. Warum das gerade auf so schwachen Plattformen wie der PlayStation gemacht wurde, und ob es Obfuscation ist, weiß ich nicht. Es wurde aber für Driver 2 beibehalten.

Weil Driver oft bei Nacht spielt, sind die meisten Flächen mit Normalen ausgestattet. Im Spiel selber bewegt sich nachts eine Punktlichtquelle mit dem Spieler mit.

Die Vertices liegen in der PC-Version als float vor. Die Koordinaten sind aber absolut glatt und außerdem mit 256 vorskaliert. Ich gehe deshalb davon aus, dass in der PlayStation-Version 16- oder 24-Bit-Festkommazahlen zum Einsatz kommen. Winkel und Normalenvektoren sind in 13 vorzeichenbehafteten Bits gespeichert.

Texturen liegen in 8 oder 16 Bits pro Pixel vor. 8-Bit-Texturen sind palettiert, und haben je einen Satz von einer bis acht Paletten für unterschiedliche Tageszeiten und Einsatzzwecke – eine Baumtextur wird z.B. mit anderer, vollschwarzer Palette als Baumschatten wiederverwendet; Autos eines Typs sind gleich nur ihre Palette wird für unterschiedliche Farben durchgewechselt; usw. 16-Bit-Texturen sind RGB oder RGBA oder beides; ich weiß es noch nicht genau.

Alle Texturen sind PlayStation-typisch 256² Pixel groß, und als Sammlung einzelner Regionen (sogenannter Texture Windows) anzusehen. Die Hardware beschränkt beim Zeichnen jegliches Filtern auf diese Regionen, so dass benachbarte Regionen nicht ineinander überbluten. Das nachzubilden ist eine ziemliche Herausforderung und wird mich noch in Schach halten; darum sind die Texturen auf meinen Schnappschüssen auch noch so hässlich.

New York besteht aus ungefähr 70.000 Modellreferenzen mit insgesamt etwa 300.000 Dreiecken. Im Augenblick backe ich alle Flächen in eine 40 Megabyte große Vertex-Liste, in der ich außerdem den Texturindex jeder Fläche vermerke. Die 170 Texturen konvertiere ich zu 24-Bit-RGBX (Transparenz habe ich noch nicht im Griff) und stopfe sie in ein 256×256×170 großes Texture Array (ungefähr 30 MiB). Die Stadt wird als einzelner Draw Call gezeichnet; der Texturindex jeder Fläche wandert aus den Vertex-Daten über den Vertex Shader in den Pixel Shader und wird dort im Texture Array nachgeschlagen.

Die drei anderen Städte (Miami, Los Angeles, San Francisco) haben ähnliche Ausmaße und Datengrößen. Das Apartment aus den Zwischensequenzen ist deutlich kleiner. Das Trainingslevel konnte ich noch nicht laden; da ist irgendwas an dem Format anders.

Hier ist ein kleines Video. Dummerweise war meine Hardware zu langsam für die Aufnahme der hohen Auflösung; tatsächlich läuft es natürlich flüssig.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
 
Beiträge: 5973
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitragvon gdsWizard » 29.07.2013, 14:21

@Krishty: Danke für deine sehr ausführliche Antwort. Der Driver Texture Editor hat dir sicher viel geholfen (ich habe ihn mal überflogen (den source)). Ich finde es gut das Du hier im Forum immer dein Wissen teilst. Nochmals Danke.
gdsWizard
Thomas Mittelsdorf
 
Beiträge: 203
Registriert: 04.02.2005, 10:12
Wohnort: Meiningen
Benutzertext: www.gamedevstudio.com

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitragvon Krishty » 29.07.2013, 20:58

gdsWizard hat geschrieben:Der Driver Texture Editor hat dir sicher viel geholfen (ich habe ihn mal überflogen (den source)).
Ja; vor allem die Flächenaufschlüsselung hat mir Tage an Arbeit erspart. Schade, dass ich das Tool nicht eher gefunden habe.
Ich finde es gut das Du hier im Forum immer dein Wissen teilst. Nochmals Danke.
Gern; zumal ich aus offensichtlichen Urheberrechtsproblemen nicht einfach alles zum Download stellen kann.

In der Zwischenzeit:

Ich habe das Transparenzproblem weitestgehend gelöst: palettierte Texturen sind immer deckend; bei 15-Bit-RGB-Texturen sorgt der Color Key (1, 1, 1) für Volltransparenz. Wozu das 16. Farbbit da ist, habe ich noch nicht begriffen. Vielleicht ist es einfach ein Bit Zusatzgenauigkeit für einen der Farbkanäle.

Außerdem führe ich wirklich banale Lichtberechnungen auf den Flächen durch. Die Wirkung ist aber massiv, denn das Shading im linearen Farbraum sorgt dafür, dass der Dunst erst vor schattigen Stellen so richtig zum Tragen kommt.
13-07-29 NYC 3.png
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
 
Beiträge: 5973
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitragvon Niki » 30.07.2013, 02:36

Nette Arbeit, Krishty. Besonders die Sichtweite macht das schön.

Ist zwar nicht wirklich relevant, aber bin ich hier der einzige dem die Straßenmarkierungen mehr als merkwürdig vorkommen? Wo fangen denn da die Lanes an und wo hören sie auf? Auch wenn ich nach New York Bildern google, kann ich nichts in der Art finden. Irritierend :D
Niki
 
Beiträge: 309
Registriert: 01.01.2013, 22:52

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitragvon BeRsErKeR » 02.08.2013, 17:12

Krishty hat geschrieben:Ich habe das Transparenzproblem weitestgehend gelöst: palettierte Texturen sind immer deckend; bei 15-Bit-RGB-Texturen sorgt der Color Key (1, 1, 1) für Volltransparenz. Wozu das 16. Farbbit da ist, habe ich noch nicht begriffen. Vielleicht ist es einfach ein Bit Zusatzgenauigkeit für einen der Farbkanäle.


Verbreitet sind doch R5G6B5 und A1R5G5B5, aber du meintest ja dass es über nen ColorKey geht, daher würd ich die 1. Variante vermuten oder halt X1R5G5B5, also mit ungenutztem 16. Bit. Gibts ja öfters mal sowas.
Ohne Input kein Output.
Benutzeravatar
BeRsErKeR
 
Beiträge: 689
Registriert: 27.04.2002, 22:01

VorherigeNächste

Zurück zu Vorstellungsbereich

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast