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.
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von xq »

Let's go 3D:

Bild
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von xq »

Da hier schon lange Stille herrscht:

Ich arbeite an meiner Bachelor-Arbeit, es geht um die Analyse eines alten Computers.

Hier mal ein kleiner Code-Flowgraph, welcher noch nicht den selbstmodifizierenden Code enthält:
Bild
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von Krishty »

Schick! Ich würde sagen, dass ich da Funktionen erkennen kann. Oder trügt das nur und er unterstützt sowas garnicht? (Gibt ja genug Computer ohne Stack, vor allem alte …)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von xq »

Ne, gibt keinen Stack. Aber du siehst Funktionsblöcke. Bin mir aber noch nicht sicher, wie zuverlässig die Informationen über das ganze sind. Die Maschine lebt von selbstmodifizierendem Code (unten links wird NIE angesprungen, scheint aber kein Zufall zu sein, dass es diese kleine Schleife mit zwei Branches sein soll)
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von Schrompf »

In den seltenen Momenten, da ich zum Arbeiten komme, baue ich am Landschaftsgenerator. Das aktuelle Thema ist der Baum-Generator, noch sehr unvollständig, und der spuckt je nach Konfiguration chtulluh-eske Ergebnisse aus.
chtulluh-baum.png
Ich bleibe dran :-)
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von xq »

Sieht doch geil aus, strebe am besten was non-realistic-lookiges an
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
joeydee
Establishment
Beiträge: 1039
Registriert: 23.04.2003, 15:29
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von joeydee »

Wie du schon angedeutet hast - mach einfach ein Monster draus :D
Die vergangenen Screenshots waren ja auch schon cool, bin gespannt was du noch so mit deinen Voxeln anstellen wirst.
joeydee
Establishment
Beiträge: 1039
Registriert: 23.04.2003, 15:29
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von joeydee »

Ich lasse auch mal wieder was von mir hören :)
Bei der letzten Action (Kenney's Dreamland) hatte ich eine kleine Tile-Engine von Grund auf entwickelt. Zum Testen des Kollisionsalgos ohne vorhandenen Level hatte ich damals eine Fläche einfach mit zufälligen Hindernis-Tiles übersät. Nicht zum ersten mal hätte ich mir eine schlanke wiederverwendbare Funktion/Klasse gewünscht "MachMaSchnellNMaze(w,h)", die auch größere Hindernisse und längere Wände und Arena-Freiflächen mit ein paar Wänden und und und ... produziert, einfach mal zum rumlaufen.

Genau die habe ich mir nun gemacht. Faul wie ich bin mit dem einfachsten Algo der mir einfiel: ein zellulärer Automat. Ich bin immer noch überrascht wie vielfältig und brauchbar das schon mit ein paar Regeln ist. Vor allem, dass es bestimmte Charakteristika gibt (schmal und labyrinthartig, breitere gewundene Gänge, eher architektonisch anmutende Grundrisse) und bestimmte Anordnungen und Symmetrien fast wie gewollt und vorsätzlich gruppiert aussehen ohne sich zu auffällig-musterartig zu wiederholen wie lediglich einkopierte parametrisierte Assets. Und das obwohl nur sehr wenige Iterationen mit sehr kurzen lokalen Regeln dahinterstecken. Und diese Charakteristika sind reproduzierbar. Aber genau das Verhalten kennt man ja auch schon von Conway's "Game of Life". Dafür lassen sich bestimmte Charakteristika natürlich nicht konstruieren (wohl aber grob beeinflussen mit ein wenig Übung), sondern eher nur finden.
cellular01.jpg
cellular02.jpg
cellular03.jpg
cellular04.jpg
Hier eine kleine Web-App im Spoiler.
cellular_map_lab.swf
(12.77 KiB) 5422-mal heruntergeladen
In den Sets links oben sind ein paar Kombinationen hardgecodet die mir gefallen haben und mit denen ich spontan einen Begriff assoziiert habe. Die aktuell dargestellte Kombi wird jeweils links unten angezeigt.
Funktionsweise ist immer so: Erst das Feld mit x% Pixeldeckung zufällig leeren/füllen (links 1-9), das löscht auch die aktuelle Kombi, und dann verschiedene Regeln in bestimmter Reihenfolge und Iterationszahl darauf anwenden (rechts A-J). (Keine Tastaturbelegung, die Buttons heißen einfach nur so.) Keine Speicherfunktion, die paar Buchstaben kann man sich notieren. Bei Gefallen kann die aktuelle Kombi mit anderem Seed rechts unten wiederholt werden.
Die Anfangsbedingung (Prozent-Füllwert) hat immense Auswirkungen auf die Entwicklung, das genaue Muster (Seed) aber nicht.
Die Regeln sind eher zufällig herausgepickt/ausprobiert. B ist z.B. das original Game of Life. Eigene Regeln kann man hier jetzt nicht eingeben. Wie die Regeln zu interpretieren sind, und wie der Automat funktioniert steht in der Wikipedia, von daher lässt sich das auch in 5 Minuten nachcoden. Ich halte das für ausbaubar, mit Bildfiltern, Masken, Fülloperationen, Analysewerkzeugen usw. und/oder einfach nur als Grundlage in einem Editor.
Wer eine interesante Kombi findet, darf sie gerne posten :)
joeydee
Establishment
Beiträge: 1039
Registriert: 23.04.2003, 15:29
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von joeydee »

Jaaa, der joeydee macht auch in 3D ;)
Mal eines der Mazes in Würfel umgesetzt und mit einfachem Depth-Cue gerendert. Und noch was zum Aneinanderhängen und herumposen von Objekten (in den Anfängen). Ohne konkreten Plan, jetzt aus einem der Experimente ein Spiel oder einen Editor zu machen. Wenn das untere was taugt um relativ einfach Bewegung in eine Szene zu bringen, wird es zur Lib aufbereitet.

Das sind jetzt keine spektakulären Screens, mich interessieren dabei meist mehr die Algorithmen, Visualisierung und Manipulation in 3D. Meine Libs sind über die Jahre rein durch private Interessen und Anforderungen an solche Experimente (und die eine oder andere Action) gewachsen und dementsprechend unausgereift, aber für mich extrem brauchbar geworden. Das Weiterentwickeln für Wiederverwendbarkeit nach eigenen Anforderungen, mit möglichst simplen überschaubaren Schnittstellen und ohne tiefe Abhängigkeiten, macht mir mehr Spaß als fertige Libs zu nutzen (also kein falscher Stolz, nur Interessensschwerpunkt).
Umgebung ist Adobe AIR, Entwicklung ausschließlich mit FlashDevelop.
maze3d01.jpg
maze3d02.jpg
bones01.jpg
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von marcgfx »

Sieht doch gut aus :)
Das mit den eigenen Libs verstehe ich nur zu gut. Irgendwie kennt man seinen eigenen Mist einfach besser und wenn was Kacke ist, ist man wenigstens selber schuld :D
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von Krishty »

Hatte am Wochenende Lust, Verkehr zu simulieren. Für meinen Flugsimulator (von dem noch nichts geschrieben wurde) will ich Autos auf den Straßen haben, damit es am Boden nicht so langweilig aussieht. (Natürlich nur grob simuliert, denn man kommt nie nah ran.) So weit bin ich gekommen (keine Grafik, nur Punkte):
2017-04-10 traffic.gif
Sprünge sind drin weil a) die Enden der Straßen nicht genau aneinanderpassen und b) die Spurwechsel abrupt sind. Erkenntnisse:
  1. Viel schwieriger als die eigentliche Verkehrssimulation ist, vernünftige Straßen zu bekommen. Der Graph oben hat mich glatt eine Stunde gekostet. (Und an der Abzweigung unten rechts biegen die Autos von der linken Spur nach rechts ab, grrrrr!) Ich muss dringend zusehen, entweder einen Editor oder einen Import für Open Street Maps o.ä. zu schreiben.
  2. Ich wollte bei Autos nur die Geschwindigkeit steuern. Das sieht aber völlig künstlich aus. Stattdessen ausschließlich die Beschleunigung zu steuern macht sooooo viel realistischere Ergebnisse, dass es mir der zusätzliche Rechenaufwand wert ist.
  3. Ursprünglich wollte ich keine Spurwechsel einbauen, weil pfff, keep it simple – einfach alle Spuren gleichmäßig mit Autos befüllen! Aber weil die Autos fast ausschließlich auf die rechten Spuren von Autobahnen auffahren, ist nach kurzer Laufzeit die rechte Spur die einzige, die noch benutzt wird. Also doch Spurwechsel.
  4. Sobald die Autos Abstand halten können, sind Ampeln sehr einfach: Ein stehendes Auto an Stelle der Ampel platzieren, wenn sie rot ist. Ich bin aktuell der Meinung, dass man überhaupt kein Konzept „anderes Auto“ braucht, sondern dass „bewegliches Hindernis“ von Autos über Ampeln bis zu eingestürzten Brücken alles abdeckt.
Ziel: Vernünftigen Graph hinbekommen, dann die Frame-Rate der Simulation auf 1 fps oder niedriger drücken (Positionen werden dazwischen einfach linear interpoliert), damit auf 1 mio Autos gleichzeitig kommen (dürfte für Sicht auf ein Ballungsgebiet ausreichen).
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von Schrompf »

Interessant. Wenn man sich nicht allzu sehr auf die Knotenpunkte konzentriert, sieht das schon ziemlich gut aus!

Ich stehe (nur in Gedanken, Realität ist noch fern) vor einem ähnlichen Problem: glaubwürdige Graphen zufällig erstellen, die auch noch Sinn ergeben, wenn man keine Kenntnisse über fernere Sektoren hat. Ich glaube, das ist unmöglich, ohne Brüche in die Welt zu bekommen, an denen Flüsse oder Straßen mitten im Nichts enden, weil die Generierung der Nachbarsektoren halt keine Anschlusspunkte ergeben hat. Daher liebäugele ich eher mit einer Top-Down-Generierung, die bei wirklich großen Strukturen anfängt und dann immer weiter unterteilt. Die Teilstücke sollen je nach verfügbarem Platz und Charakteristiken dann nach Vorschrift verschiedener Bedeutungen ausdetailliert werden.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von Krishty »

Falls du in die Richtung prozeduralen Contents gehst: Um Top-Down führt kein Weg herum. Die Wahrnehmung erkennt sofort, wenn irgendwas lokal gelöst wurde. Der Informationsgehalt ist dann einfach so niedrig, dass es wehtut. Du kannst es entweder hübsch machen (indem du top-down viele übergeordnete und benachbarte Faktoren einfließen lässt), oder schnell (indem du es lokal berechnest) – ooooder du kombinierst sehr lange globale Vorberechnung mit viel Speicherplatz, aus dem das fertige Spiel lädt. (Geht für Flüsse usw., aber natürlich nicht für bewegliche Dinge wie meine Autos.)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von Alexander Kornrumpf »

Krishty hat geschrieben:
2017-04-10 traffic.gif
Der rechte innere Weg zur Kreuzung in der Mitte ist offensichtlich kürzer als der über die untere mittlere Kreuzung. Da eindeutig sichtbar ist, dass die Fahrzeuge, die die mittlere vertikale benutzen nicht von unten links kommen können, weil alles nur in eine Richtung fließt, sind das alles Leute, die falsch abgebogen sind. Hinzu kommt, dass es auf dem kürzeren Pfad einen guten Teil der Zeit auch noch leerer ist und beide etwa gleich schnell fließen. Das macht es mir schon sehr schwer das als "close enough" zu akzeptieren (suspension of disbelief und so).
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von Krishty »

Es geht nur um die Bewegung der Fahrzeuge – sie haben kein Ziel und keinen Zweck, und dementsprechend auch keine Wegfindung. Es gibt nur die Werte „50 % der Autos sollen hier rechts abbiegen; 50 % geradeaus fahren“ und damit ist die Verkehrsführung komplett auf den Graph geschoben, der – wie gesagt – schon mit 16 Einbahnstraßen pure Quälerei war. Wenn ich den vernünftig erzeuge, kriegst du was Schöneres :)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von Alexander Kornrumpf »

Krishty hat geschrieben:Es geht nur um die Bewegung der Fahrzeuge
Ist mMn nicht genug Dynamik drin. Warum fahren die Fahrzeuge auf leerer Strecke nicht schneller? Warum bewegen sich die beiden Spuren bei mehrspurigen Straßen nicht verschieden schell? Warum gibt es keine Rückstaus hinter Abbiegespuren?
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von Krishty »

Alexander Kornrumpf hat geschrieben:Warum fahren die Fahrzeuge auf leerer Strecke nicht schneller?
Geschwindigkeitsbegrenzung ;)
Warum bewegen sich die beiden Spuren bei mehrspurigen Straßen nicht verschieden schell?
Tun sie, siehe Straße ganz oben (linke Spur 100–140 km/h, ganz rechte 80–100).
Warum gibt es keine Rückstaus hinter Abbiegespuren?
Guter Punkt, denn das war auch was, das ich vorher nicht bedacht hatte:
  1. Das Abbiegen geschieht im Augenblick mit der gleichen Geschwindigkeit wie die Geradeausfahrt. Ich habe jedem Streckenabschnitt eine Geschwindigkeit zugeordnet, und das ist überhaupt nicht ausreichend. Ich brauche für das Ende eines Abschnitts (da, wo abgebogen wird) eine andere Geschwindigkeit als am Anfang, und muss vernünftig dazwischen interpolieren.
  2. Die Spurwechsel geschehen zu häufig und zu abrupt. Wannimmer eine Spur auch nur ansatzweise staut, wechseln die Autos dahinter sofort auf die andere Spur. Das bringt noch andere Probleme mit sich; z.B. schneiden sie Autos, von denen sie eigentlich überholt werden sollten (weil ich Rangierplatz nur nach vorn auswerte, nicht nach hinten, ich bin dran) und die wechseln dann wiederum die Spur. Das löst gern Kettenreaktionen von Spurwechseln aus, in denen nach einer Zehntelsekunde alle Spuren ausgeglichen befahren werden. (Wobei „ausgeglichen“ hier bedeutet, „die Autos haben mindestens acht Meter Platz oder den höchstmöglichen Wert darunter vor sich“.)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von Alexander Kornrumpf »

Krishty hat geschrieben:Geschwindigkeitsbegrenzung ;)
Hatte ich mir schon fast gedacht. Allerdings kann ich dann genausogut fragen warum die Autos auf den vollen Strecken so schnell fahren. Will sagen, die Zeitskalierung ist ja willkürlich nur sind die vollen Strecken so voll, dass ich erwarten würde, dass es einen merkbaren Effekt hat.
Tun sie, siehe Straße ganz oben (linke Spur 100–140 km/h, ganz rechte 80–100).
Stimmt und es macht im positiven Sinne viel aus. Ich würde aber auf der zweispurigen Straße entweder dasselbe erwarten, oder eben, dass beide Spuren spürbar langsamer sind als die obere Straße.
Das Abbiegen geschieht im Augenblick mit der gleichen Geschwindigkeit wie die Geradeausfahrt. Ich habe jedem Streckenabschnitt eine Geschwindigkeit zugeordnet, und das ist überhaupt nicht ausreichend. Ich brauche für das Ende eines Abschnitts (da, wo abgebogen wird) eine andere Geschwindigkeit als am Anfang, und muss vernünftig dazwischen interpolieren.
Ich dachte genau das wolltest du mit der "generalisiertes Hindernis" Logik lösen?!
Die Spurwechsel geschehen zu häufig und zu abrupt. Wannimmer eine Spur auch nur ansatzweise staut, wechseln die Autos dahinter sofort auf die andere Spur. Das bringt noch andere Probleme mit sich; z.B. schneiden sie Autos, von denen sie eigentlich überholt werden sollten (weil ich Rangierplatz nur nach vorn auswerte, nicht nach hinten, ich bin dran) und die wechseln dann wiederum die Spur. Das löst gern Kettenreaktionen von Spurwechseln aus, in denen nach einer Zehntelsekunde alle Spuren ausgeglichen befahren werden.
Stimmt, das ist mir auch aufgefallen.
Es gibt nur die Werte „50 % der Autos sollen hier rechts abbiegen; 50 % geradeaus fahren“
Hatte ich vorhin noch vergessen: Hast du mal ausprobiert, wie es aussieht, wenn der Anteil einfach umgekehrt proportional zur Länge der Teilstrecke ist? D. h. die kürzere Strecke wird auch ohne Wegfindung häufiger gewählt.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von marcgfx »

ich finde es sieht schon ziemlich cool aus, vor allem wenn das eh nur im hintergrund läuft. kannst natürlich auch ne komplette verkehrssimulation daraus zaubern, aber wenn es keiner sieht wäre das schade.
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von Alexander Kornrumpf »

Die Frage ist in der Tat, wieviel der Spieler gleichzeitig sieht und wie lange er beobachten kann. Verkehr in einer Straße gleichzeitig kann man wahrscheinlich mit 99% Fake und 1% Simulation close enough hinbekommen. Siehe alle Rockstar Spiele. Verkehr den man sozusagen nur im Vorbeifliegen im Augenwinkel sehen kann hat andere Anforderungen (man sieht mehr gleichzeitig) aber nicht unbedingt höhere Anforderungen (denn der Spieler interagiert nicht mit dem Verkehr). Wenn das das Ziel ist, ist die hier gezeigte Visualisierung aber nicht hilfreich um abzuschätzen, ob es erreicht ist. Wenn "Flugsimulator" hingegen z. B. einen Hubschrauber impliziert, mit dem man den Verkehr gezielt beobachten kann, dann braucht es eben ein einigermaßen glaubwürdiges Abbild.
antisteo
Establishment
Beiträge: 854
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von antisteo »

Letztes Wochenende mal Gravitation und Quanten-Bewegung als zellulären Automaten implementiert.
[youtube]3srLSeb47ZI[/youtube]
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von Krishty »

Alexander Kornrumpf hat geschrieben:
Das Abbiegen geschieht im Augenblick mit der gleichen Geschwindigkeit wie die Geradeausfahrt. Ich habe jedem Streckenabschnitt eine Geschwindigkeit zugeordnet, und das ist überhaupt nicht ausreichend. Ich brauche für das Ende eines Abschnitts (da, wo abgebogen wird) eine andere Geschwindigkeit als am Anfang, und muss vernünftig dazwischen interpolieren.
Ich dachte genau das wolltest du mit der "generalisiertes Hindernis" Logik lösen?!
Nein, mit der kann ich nur Ampeln/Vorfahrt/Stoppschilder lösen. Die zulässige Höchstgeschwindigkeit steht sowieso schon in jedem Streckenabschnitt, und an den Verbindungspunkten zwischen zwei Straßen werde ich die auf 15 km/h oder so senken.
Es gibt nur die Werte „50 % der Autos sollen hier rechts abbiegen; 50 % geradeaus fahren“
Hatte ich vorhin noch vergessen: Hast du mal ausprobiert, wie es aussieht, wenn der Anteil einfach umgekehrt proportional zur Länge der Teilstrecke ist? D. h. die kürzere Strecke wird auch ohne Wegfindung häufiger gewählt.
Nein noch nicht; aber genau um das zu emulieren habe ich die Werte drin. Ich zeig’s, sobald’s klappt!
Alexander Kornrumpf hat geschrieben:Die Frage ist in der Tat, wieviel der Spieler gleichzeitig sieht und wie lange er beobachten kann. Verkehr in einer Straße gleichzeitig kann man wahrscheinlich mit 99% Fake und 1% Simulation close enough hinbekommen. Siehe alle Rockstar Spiele. Verkehr den man sozusagen nur im Vorbeifliegen im Augenwinkel sehen kann hat andere Anforderungen (man sieht mehr gleichzeitig) aber nicht unbedingt höhere Anforderungen (denn der Spieler interagiert nicht mit dem Verkehr). Wenn das das Ziel ist, ist die hier gezeigte Visualisierung aber nicht hilfreich um abzuschätzen, ob es erreicht ist. Wenn "Flugsimulator" hingegen z. B. einen Hubschrauber impliziert, mit dem man den Verkehr gezielt beobachten kann, dann braucht es eben ein einigermaßen glaubwürdiges Abbild.
Ja; ich habe ohne große Erklärung drauflosgepostet weil wie immer die Zeit knapp ist, und ich mir denke: Erstmal schreiben. Irgendwann wird’s jemandem nützen – egal, wie schlecht ich’s aufschreibe. Mindestens mir, wenn ich das Projekt in drei Monaten wieder aufnehme. Und wenn’s niemanden interessiert, habe ich zumindest nicht viel Zeit verschwendet ;)

Ich überschlage die Anforderungen schnell:
  • Jets, also „viel und schnell“ statt „ausgetüftelt weil lange beobachtet“.
  • Ich will mindestens 20 km Sichtweite. Könnte über Großstädten eine Million Autos werden. Vor allem zur Rush Hour will ich ein Lichtermeer auf den Straßen haben.
  • Das schafft man natürlich nicht mit einem Algo für alles. Man braucht mehrstufiges LOD. Ich habe mir überlegt:
    1. Ganz feine Simulation à Autos in GTA. Vielleicht so auf 2, 3 km Radius in Bodennähe oder bei Gameplay-Relevanz. Fange ich erstmal nicht an weil höchster Aufwand (detaillierte Straßen konstruieren?!) bei geringstem Nutzen.
    2. Grobe Simulation, die ich hier zeige. Vielleicht auf 10 km Radius; bei Nacht auch 20–30 (so weit, wie man die Lichter sieht).
    3. Ganz grobe Simulation mit nicht mehr als „Autos auf Teilabschnitt“, „Durchschnittsgeschwindigkeit“, und „ist blockiert“ auf einem groben Straßengraph. Halt gerade genug, dass bombardierte Brücken nicht mehr von Autos befahren werden. Habe ich nicht angefangen, weil ich keinen Graph habe, der umfangreich genug ist um sinnvoll was zu testen (wieder Straßen konstruieren …).
  • Um viel auf einmal zu schaffen, habe ich mir gedacht:
    1. Simulationsrate reduzieren ohne Ende. Autofahrer treffen nur alle paar Sekunden die Entscheidung, ob sie abbiegen oder Spur wechseln oder für eine Ampel bremsen. Nicht 200 Mal pro Sekunde. Wozu also so schnell simulieren.
    2. Damit es auf den Straßen nicht stockt, die Grafik davon entkoppeln. Grafik interpoliert bei Anzeigerate zwischen der letzten und berechneten nächsten Position jedes Autos.
    3. Eine Straße wird im Schnitt von mehr als einem Auto befahren, und die bewegen sich fast gleichartig. Wenn man solche Sachen wie „Geschwindigkeit“, „Platz nach vorn“ nicht pro Auto verwaltet, sondern pro Streckenabschnitt, gewinnt man recht viel.
  • Diese Vereinfachungen haben eine super Nebenwirkung: Das meiste reduziert sich auf ein 1-D-Problem. Du hast die Kante eines Graphen und die Autos fahren darauf. Ist es eine Gerade? Eine Bezierkurve? Ist für die Simulation völlig egal: Auto 1 ist bei 30 m @ 40 km/h auf der Kante, Auto 2 bei 50 @ 55 km/h. Mehr muss ich nicht wissen. Die 3D-Positionen interpoliert am Ende der Renderer. Wegfindung? Beobachtet aus dem Flugzeug eh kein Schwein – die Wahrscheinlichkeiten zum Abbiegen bei Knoten kümmern sich drum, dass es nicht zu obskur wird.
  • Darum habe ich auch diese furchtbar hässlichen Sprünge und den unrealistischen Graph: ich sehe das als Nebensache, die von allein funktioniert, wenn die Berechnung innerhalb einer Kante erstmal klappt und der Graph mit ordentlichen Werten gefüllt ist.
  • Spurwechsel fallen aus dem 1-D-Raster. In begrenztem Maß kann man das noch immer so lösen (sind die Nachbarautos vor/hinter mir 300/100 m entfernt, egal auf welcher Spur, kann ich garantiert wechseln), aber die Grenzen kommen schnell. Das versuche ich gerade aufzulösen.
Kurze Verbesserung zu dem, was ich am viel zu kurzen Osterwochenende verbessert hatte: Auffahrunfälle sind raus (gleichmäßig beschleunigte Bewegung ist schon schwer m[ ), Farben sind drin um die Geschwindigkeit besser erkennen zu können. Spurwechsel sind erstmal wieder raus.
traffic2.gif
Lektion gelernt: Staus würden sich sehr viel schneller auflösen, wenn Autos mit 0.1 km/h weiterfahren würden statt auf Null zu bremsen. Meine Autos sind vorher auch im Stau nie komplett zum Stillstand gekommen, sondern haben sich nur seeehr langsam entlang der optimalen Distanz am Hintermann entlangbewegt. Seit ich unterhalb von 1 km/h auf Null bremsen lasse, sind 1. die Mindestabstände viel realistischer und 2. breiten sich Staus tatsächlich rückwärts aus Stauungen aus ♥
traffic3.gif
traffic3.gif (34.35 KiB) 6077 mal betrachtet

(Vorher haben die sich in der Situation sehr langsam als starre Gruppe bewegt.)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
joggel

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von joggel »

antisteo hat geschrieben:Letztes Wochenende mal Gravitation und Quanten-Bewegung als zellulären Automaten implementiert.
[youtube]3srLSeb47ZI[/youtube]
Was genau sehe ich da?
Welcher Algorithmus verbirgt sich dahinter?
antisteo
Establishment
Beiträge: 854
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von antisteo »

joggel hat geschrieben:
antisteo hat geschrieben:Letztes Wochenende mal Gravitation und Quanten-Bewegung als zellulären Automaten implementiert.
[youtube]3srLSeb47ZI[/youtube]
Was genau sehe ich da?
Welcher Algorithmus verbirgt sich dahinter?
Eine 12 Zeilen dicke Formel, die bestimmt, wie groß die 9 Parameter (v0..v5, m, g, p) in Abhängigkeit ihrer 6 Nachbarn verhält.
v0..v5: Geschwindigkeit in die jeweils 6 Richtungen der Masse
m: Masse des Teilchens in der Zelle
g: Stärke des Gravitationsfeldes in der Zelle
p: Stärke des Ladungsfeldes in der Zelle

Die Krafteinwirkung durch Gravi- und Ladungsfelder ergeben sich aus dem Unterschied der Felddichte. Bewegung entsteht quantisiert und pseudo-zufällig.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
joggel

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von joggel »

antisteo hat geschrieben: Eine 12 Zeilen dicke Formel, die bestimmt, wie groß die 9 Parameter (v0..v5, m, g, p) in Abhängigkeit ihrer 6 Nachbarn verhält.
v0..v5: Geschwindigkeit in die jeweils 6 Richtungen der Masse
m: Masse des Teilchens in der Zelle
g: Stärke des Gravitationsfeldes in der Zelle
p: Stärke des Ladungsfeldes in der Zelle

Die Krafteinwirkung durch Gravi- und Ladungsfelder ergeben sich aus dem Unterschied der Felddichte. Bewegung entsteht quantisiert und pseudo-zufällig.
Dumme Frage: Richtungen der Masse? 6? Was ist damit gemeint?
antisteo
Establishment
Beiträge: 854
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von antisteo »

joggel hat geschrieben:
antisteo hat geschrieben: Eine 12 Zeilen dicke Formel, die bestimmt, wie groß die 9 Parameter (v0..v5, m, g, p) in Abhängigkeit ihrer 6 Nachbarn verhält.
v0..v5: Geschwindigkeit in die jeweils 6 Richtungen der Masse
m: Masse des Teilchens in der Zelle
g: Stärke des Gravitationsfeldes in der Zelle
p: Stärke des Ladungsfeldes in der Zelle

Die Krafteinwirkung durch Gravi- und Ladungsfelder ergeben sich aus dem Unterschied der Felddichte. Bewegung entsteht quantisiert und pseudo-zufällig.
Dumme Frage: Richtungen der Masse? 6? Was ist damit gemeint?
Siehe https://de.wikipedia.org/wiki/FHP-Modell

Vom Prinzip her gebe ich die Geschwindigkeit (in dem Fall als Prozentsatz der Lichtgeschwindigkeit, da sich die Teilchen quantisiert bewegen) als 6D-Vektor an, der angibt, mit welcher WSK das Teilchen im i-ten Nachbarn landet nach einem Zeitschritt. Statistisch gesehen ergibt sich daraus wieder eine gleichmäßige Bewegung.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
joggel

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von joggel »

Aha, okay...
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von xq »

Sprite-basierter 3D-Modell-Editor, sehr frühes Stadium:
Bild
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von xq »

Flip-/Rotate für Sprites funktioniert jetzt:
Bild

Was jetzt noch auf der Feature-Liste fehlt ist das nachträgliche Bearbeiten von eingefügten Sprites, wie Verschieben, Kippen, Drehen, Vertices verschieben, ....
Ach, und der Dateiexport... :P
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
joeydee
Establishment
Beiträge: 1039
Registriert: 23.04.2003, 15:29
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von joeydee »

Sweet :) Und noch ein paar schöne Demoszenen, und irgendwelche Möglichkeiten für Atmo & Lighting ...
Antworten