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.
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) 6076 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 ...
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 »

Sieht schon megacool aus. Ich persönlich hätte bei sowas immer gern Antialising, aber YMMV.
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 »

Danke! Zu YMMV: Ich möchte erst mal einen funktionierenden und verwendbaren Editor schaffen, danach kommen solche "Kleinigkeiten" dazu. Ich fände zum Beispiel auch Schatten oder Beleuchtung sehr praktisch, um die Tiefe der Szene besser erkennen zu können
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 »

Es geht voran! Man kann jetzt Vertices displacen, damit kann man schräge Dächer und ähnliches bauen:

Bild
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 »

Schön, freue mich das irgendwann mal antesten zu können. Cooler Austausch gestern :) dafür wieder nix am Jam gemacht.

Hier ein artverwandtes Projekt von mir, allerdings nicht für finale Assets, sondern als 3D-Sketcher gedacht, um Szenenideen schnell festhalten und aus verschiedenen Richtungen betrachten zu können. Die Kamerasteuerung ist dabei nicht Editor-typisch (also kein Dolly), sondern Game-ähnlich: mit WASD und Maus und auto-upright "schwebt man durch die Szene.
Aktuell keine Speicherfunktion, daher leider nur ein Quickie:
Bild
Bild
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 »

So, mittlerweile kann man auch die Größe der Tile Map anpassen, für die Menschen mit schlechten Augen (solche wie mich zum Beispiel):
Bild
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 »

Ich arbeite mich gerade ein wenig in Sound und Musik ein, das habe ich bisher stark vernachlässigt.

Ausgangslage:
Ich empfinde es leider eher nervig, I-Net-Seiten zu durchwühlen, sich bei tlw. langen Ladezeiten durchzuhören, Lizenzen checken, Credits merken, konvertieren, und dann passt es doch nicht so dazu wie man sich das vorstellte oder lässt sich nicht sauber loopen oder es bläst die Dateigröße immens auf. Ich habe zudem kein besonders gutes Sound-Gedächtnis und muss das alles erst im Zusammenhang ingame sehen/hören um es einigermaßen beurteilen zu können. Viel Trial & Error + schlechter Workflow = viel Frust. Für künftige Minigames und vor allem ZFX-Actions will/muss ich das endlich optimieren.

Zum Projekt:
Nach der letzten Action habe ich angefangen, einen kleinen Sequenzer zu entwickeln um kurze mehrstimmige Loops selbst komponieren zu können. Für einfache Jingles, keine orchestralen Werke.
Warum keinen vorhandenen nutzen? Das Thema interessiert mich, und ich möchte gerne die Engine auch ingame nutzen/erweitern können. Außerdem brauche ich als Nicht-Musiker gewisse Hilfen, hier im Bild z.B. Rhythmus- und Harmonie-Merkhilfen als graue Kästen, und möchte im Gegenzug nicht von unzähligen Profi-Einstellungen erschlagen werden. Ein Keyboard brauche ich z.B. auch nicht, ich könnte sowieso nichts live einspielen.
Komplex wird die Oberfläche nicht, selbsterklärend auch nicht, es ist lediglich ein persönliches Tool und wird wohl nur langsam mit den Anforderungen wachsen.

Der Sound wird komplett selbst gesampelt, d.h. 44100*2 float32 für jede Sekunde berechnet und in einen Bytestream geschrieben welcher dann wiedergegeben wird. Aktuell kann die Anwendung nur für 4 "Stimmen" Kästchen setzen/löschen und muss immer alles neu rendern. Hier müsste ich natürlich noch optimieren, so dass nur dort im Stream neu berechnet wird wo geändert wurde. Ist halt schwierig wegen möglicher Überlappungen wenn man z.B. einen einzelnen Ton löschen möchte. Ich habe da noch keine optimale Lösung.

Seit Samstag sind sogar "richtige" PC-Boxen und ein kleiner Subwoofer am Rechner, statt ein batteriebetriebener Handy-Brüllwürfel der immer leer war wenn ich ihn brauchte :roll: Nun kann ich auch endlich tiefer in die Tonerzeugung einsteigen. Bis jetzt synthetisiere ich nur ein einziges Instrument: Sinus mit Exponent um etwas in Richtung Rechteck zu kommen, und eine statische ADSR-Hüllkurve (alle Töne gleich, also aktuell eigentlich nur Zupfen, kein Halten). In diese Richtung (Wellenformen, Filter, Samples etc.) muss ich mich dann noch weiterbilden. Ich habe bis jetzt nur ein paar Grundlagen vom C64-SID drauf. Hier soll es auch einmal einen Geräuschgenerator ähnlich sfxr geben, den ich dann ebenfalls ingame parametrisiert verwenden kann. Aber noch Zukunftsmusik, im wahrsten Sinne ;)

Hier mal ein Gutelaune-Beispieljingle: Basslauf (blau), Akkordbegleitung (rot), Begleitmelodie (grün) und die Hauptmelodie (gelb) welche eher zufällig gesetzt wurde, sich aber an der Begleitung orientiert (Bahn frei für prozedurale Musik? :D).
compose01.jpg
Und so hört es sich an, ich übernehme keine Verantwortung bei Ohrenkrebs ;)
Der Jingle ist lediglich Proof-of-Concept, ob es den angedachten Zweck für mich erfüllt. So irgendwas wird evtl. mal in "Karottenjagd" landen, natürlich abschaltbar.
(Braucht ein paar Sekunden bis alles gerendert ist, dann draufklicken und es wird endlos abgespielt. Das ist nur der Player, keine Editiermöglichkeit)
MusiCompose.swf
(13.68 KiB) 8614-mal heruntergeladen
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 »

Cool. Ich wollte auch immer mal ins prozedure Sound-Erzeugen einsteigen, aber eher für Sounds und räumliche Platzierung in zurückschallenden Umgebungen. Für Musik würde ich ehrlich gesagt eher einen der bestehenden Sequencern benutzen, aber ich schätze das Nerdlevel hinter einem eigenen Sequencer sehr :-)
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 »

Klingt echt gut und spart wahrscheinlich bei größeren Stücken prozentual echt viel Speicherplatz
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2253
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von Zudomon »

Ja ja, der blöde Zudomon hier wieder...
Ich möchte nur nicht, dass es hinterher heißt, der Zudo guckt hier alles ab :D

Darum:
20170508_5.jpg


Das hatte ich vor nem halben Jahr oder so gemacht. Man sieht wohl nicht viel aber das Gekrissel ist Sound (ich habe kein Audio Beweis). Oder hatte ich das schon im SQ-Thread gepostet? Na jedenfalls glaube ich es waren 10 Sekunden Sound, 44100, auch ein paar Sinus übereinander. Die Klangvorlage hatte ich allerdings von nem Shadertoy Beispiel übernommen. Tja, bin Soundnoob und brauche erstmal Ansatzpunkte. Jedenfalls will ich ja auch die Sounds prozedural erzeugen und dann hinterher auch so patterns stricken um ganze Musikstücke zu machen.
Erst hatte ich das ganze übrigens über CPU (Single Core ohne SSE) laufen, was so 9 Sekunden gedauert hat, ich meine, da waren ne halbe Milliarde Sinus/SQRT/Exp zusammen gekommen. 9 Sekunden ist natürlich nicht Echtzeit. Hab es dann über dx9 gemacht, die Textur, die man da sieht erzeugt und dann zurück gelesen... die genauen Zeiten kann ich nicht sagen, da zurücklesen über dx9 ja jetzt eher ein bisschen behindert ist. Sollte aber so um die 11 - 25 ms gewesen sein.

Nachdem ich nun mein Ego befriedigt habe und mir wieder neue Freunde gemacht habe :D will ich mein Wort an joeydee richten:

@Joeydee
Krass! Also dass sich das am Ende so klasse anhört. Ich habe vorhin ewig lange nach einem "alten" Beweisbild gesucht, nicht gefunden und neues gemacht, dann hier den Beitrag geschrieben, also wo ich genaugenommen gerade immer noch dran schreibe. Und ich habe die ganze Zeit dein Beispiel laufen. Ich merke jetzt schon kaum, dass es sich wiederholt und es klingt schön. Die hohen Klänge sind mir noch etwas zu Spitz irgendwie und es fehlt noch ein bisschen Volumen, also Klänge oder so, die da mit drin sind, aber dann wäre das definitiv schon eine super schöne kleine Hintergrund Musik. Das gibt mir Hoffnung, die Musik auch prozedural zu machen. Sounds habe ich schon kritisch gesehen... nicht weil ich nicht glaube, es würde nicht gehen, sondern einfach, dass man es nicht selbst hin bekommt.
PS: Deine Musik läuft immer noch :D
Zuletzt geändert von Zudomon am 22.05.2017, 17:43, insgesamt 1-mal geändert.
joeydee
Establishment
Beiträge: 1039
Registriert: 23.04.2003, 15:29
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von joeydee »

@Zudo: Keine Panik, wir sind ganz sicher nicht die ersten die Samples prozedural erzeugen :D Ich hatte viel vom SID-Chip zu C64-Zeiten in den 80ern gelernt, wie dieser auf Registerebene angesteuert wird, und dadurch eine Vorstellung bekommen was da intern so passieren muss bis man zu einem hörbaren digitalen Signal kommt. Damit konnte man schon einige "Instrumente" andeuten, Piano, Flöte, Cembalo, Schlagzeug, ... und auch Laser, Explosionen, Wasserfälle etc. vertonen (siehe auch sfxr oder online bfxr, das ist dem SID in den Grundfunktionen sehr ähnlich). Das sind so die Quellen wo ich "abgucke".
Ich habe in diesem Projekt bisher nur ein einziges sehr sehr einfaches Instrument, daher fehlt natürlich noch Volumen da alle Stimmen gleich klingen. Wenn ich eine einzelne Melodie abspiele, hat das etwa die Tiefe eines elektronischen Türgongs :D und natürlich ist es mein Ziel, da mit der Zeit mehr Vielfalt zu schaffen. Auf besonders realistisch klingende Instrumente bin ich aber nicht aus.

Die Melodie ist ja unabhängig von den Samples (MIDI-Prinzip), das ist auch nochmal eine Wissenschaft für sich (Harmonielehre, Quintenzirkel etc.) welche Töne in welcher Folge gut zusammenpassen. Deshalb passt das Ende hier so gut als Loop, das wirkt wie ein Auftakt (Dominante->Tonika), das ist also kein Zufall.

Was die dynamische Berechnung angeht habe ich inzwischen eine vage Idee: Ich versuchs mal just-in-time, jede 1/8-Spalte wird vorberechnet/neuberechnet wenn man ändert, und erst beim Abspielen werden die zusammengebuffert. Sollte zeitlich reichen da zu dem Zeitpunkt vertikal schon alles berechnet und aufaddiert ist, und auch beliebige Überlappungen erlauben (nur noch 1 Adddition/float in den Streambuffer hinein). Die Daten sind ja kein Bild, das sofort komplett zur Verfügung stehen muss.
Das ist auch, worauf ich außerdem hinauswill: dynamisch Sequenzen austauschen/zusammensetzen können bei Änderung der Stimmung. Irgendwann ;)
joeydee
Establishment
Beiträge: 1039
Registriert: 23.04.2003, 15:29
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von joeydee »

Außerhalb der Action gehts weiter, ich poste das mal hier.
Mittelfristiges Ziel: Mein Jam-Spiel zu einer kleinen, vollständigeren Casual-App werden zu lassen. Weniger wegen dem Spiel selbst, sondern weil es eine prima Gelegenheit ist, meinen Workflow und mein Framework immer weiter auf "eben mal finalisieren" zu trimmen. Make games, not engines, da ist was Wahres dran.

Mein UI-Renderer ist etwas flexibler geworden. Rein generisch möglich: rund/eckig, beliebige und leicht justierbare Farbschemata, Transparenz auf HUDs optimiert (Lesbarkeit bei beliebigem Hintergrund und niedrigem Alpha). Da kommt noch ein bischen was an Möglichkeiten dazu. An die Text-Engine muss ich dann auch nochmal ran, Fonttausch ist noch etwas unbequem.

Auch im Screen zu sehen: Der erste Abklatsch meiner Music-Engine (den zugehörigen Mini-Composer s.o.) hat hier Einzug gehalten :)
carrots04.jpg
Und nebenbei: neue Grafikelemente "Wasser" und "Steg" für etwas mehr Abwechslung; spielerisch ist es aber immer noch dasselbe.
carrots05.jpg
Soviel zum Zwischenstand, Demo wenn ich etwas weiter bin.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von marcgfx »

cool dass du es weiterziehst. würde sich vermutlich auch gut für touch/mobile eignen das game :)
joeydee
Establishment
Beiträge: 1039
Registriert: 23.04.2003, 15:29
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von joeydee »

Ja, zumindest Tablets könnte ich anpeilen. Für Smartphones wird es evtl. zu klein in der Bedienung, aber vielleicht fällt mir noch was ein.
Muss mir mal ein Tablet zum Testen zulegen.
joeydee
Establishment
Beiträge: 1039
Registriert: 23.04.2003, 15:29
Kontaktdaten:

Re: Showroom - Aktuelle Arbeiten und Projekte

Beitrag von joeydee »

carrots09.jpg
Verschiedene Level und Spielmodi auf einen Blick. Das Menü ist noch nicht geskinnt. Beim Entwickeln lasse ich das gerne s/w. Das wird sich aber an den schon gezeigten Stil anlehnen. Bunt, warm, karottig.

Erreichte Milestones:
- Menüs und Game werden aus- und eingeblendet statt umgeschaltet.
- Previews für die Levelübersicht werden automatisch generiert (s.o.).
- Alle Anzeigen, auch dynamische Texte ingame, sind mehrsprachig umschaltbar, zentral verwaltet. Habe ich gleich ins UI-Framework integriert, nicht ins Projekt. Für dieses Projekt peile ich DE/EN an.
- Die KI konnte ich durch automatische Anpassung an den jeweiligen Level etwas schneller machen, zumindest für die kleineren Level. Default bei der Entwicklung ist außerdem eine Autorun-KI, um neue Level automatisch durchtesten zu lassen.
- Das komplette Meta-Gameframe-Gedöns lässt sich einfach durch Wechsel der Dokumentklasse aus der Compilierung raushalten. D.h. das Gameplay ist auch einzeln kompilierbar und als Singlescreen-App lauffähig. Dann greifen einfach hardgecodete Default-Werte (Levelwahl, Sprache usw.) So lässt sich viel bequemer testen.

Noch was Buntes: zwei weitere Hintergrund-Entwürfe "Sumpf" und "Scheune" zum schon vorhandenen, die dann die drei Welten mit jeweils neuen Elementen und Moves thematisch stimmungsvoll einrahmen sollen. Bisher sind das nur Skizzen. Die Tiles zum Scheunenthema muss ich dann optisch noch anpassen (Karottenkisten statt Gras).
carrots07.jpg
carrots08.jpg
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 »

Cool, gefällt mir sehr gut!
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Antworten