Du bist nicht angemeldet.

Werbeanzeige

1

03.05.2022, 17:13

Spiele Entwicklung mal ganz anders. Bitte um Hilfe.

Hallo in die Runde,
Dies ist mein erster Beitrag hier im Forum. Ich bin der Maik und hoffe, dass ihr mir für meine sehr spezielle Situation ein paar Tipps geben könnt. Nur als Randnotiz: in der Vergangenheit habe ich schon ein paar Programmiererfahrungen mit C++ und C # gemacht. Zu gegebener Weise nicht sehr viele. Allerdings so viele, dass programmieren jetzt nicht eine ganz neue Sache für mich ist.
Dies ist nun auch schon etliche Jahre her, weswegen ich ein paar Ratschläge Brauch.

Meine Idee ist, dass ich ein Smartphone Spiel programmieren möchte. Und zwar soll es eine Mischung zwischen Point and click Adventure und Rollenspiel sein. Das besondere an dem Spiel wird sein, dass es weitesgehend ohne Grafik auskommen soll. Es soll ein reines Audio Game werden. Das was der Spieler sieht, soll wie in guten alten pennen Paper Rollenspielen nur über Text erklärt werden. Allerdings möchte ich das mit 3-D Audio untermalen, damit man mit Kopfhörern das Gefühl hat, in dieser Szene zu stehen.

Das einmal grob zu meiner Idee. Jetzt zur Besonderheit an meiner Situation. Vielleicht fragt ihr euch, warum ich das Ganze ohne Grafik machen möchte. Das liegt daran, dass ich seit etwa 15 Jahren komplett erblindet bin. Alles was ich an meinem Smartphone und dem PC mache, steuere ich mit einen Screen Reader. Unter Windows ist es Jaws und auf dem iPhone ist es VoiceOver. Das funktioniert ziemlich gut und erlaubt mir, dass ich sogar manche Spiele spielen kann.

Vielleicht kennt von euch ja einer Lords & Knights oder die Lifeline Reihe auf dem iPhone. Letzteres Spiel hat mich zu der Idee inspiriert. Die große Frage ist jetzt natürlich, auf welchem System diese Idee leichter zu realisieren ist. Am coolsten wäre es natürlich auf dem Smartphone wofür ich swift verwenden müsste. Allerdings gibt es ja auch Engines, die explizit für Spiele gedacht sind. Nur braucht man für so ein Spiel überhaupt eine Spiel Engine?
Denn es soll ja wie gesagt fast nur aus Text, ein paar Schaltern für die Aktionen und Interaktionen und eine Audio Ausgabe bestehen. Eventuell könnte man ja später noch ein bisschen grafik implementieren, damit es nicht völlig nach Tonne aussieht.

Auch wenn ihr zu dem Thema Accessibility nichts wisst, würde es mich sehr interessieren, wie ihr so ein Projekt umsetzen würdet.

Beste Grüße

Maik

Jonathan

Community-Fossil

  • Private Nachricht senden

2

03.05.2022, 20:23

Witzig, ich habe tatsächlich erst letzte Woche darüber nachgedacht. Ich habe mich gefragt, warum eigentlich Grafikprogrammierung so viel schwieriger ist, als Soundprogrammierung. Man sieht das alleine schon am technologischen Fortschritt den wir erleben, da hat sich über die Jahre echt immer wieder super viel getan. Beim Sound hingegen, nun, es gibt natürlich auch hier Fortschritte, aber halt lange nicht so viel. Richtig offensichtlich war das in einem Video über die Star-Wars PC Spiele der letzten 30 Jahre, die halt alle seit immer die ikonischen Blaster- und Lichtschwertsounds verwenden, und somit alle irgendwie komplett gleich klingen. Ich vereinfache hier etwas, aber es sollte klar sein, was ich meine: Du konntest vor 30 Jahren einen Sound aus dem Film kopieren und für dein Spiel benutzen und das selbe kannst du heute quasi immer noch machen. Du konntest auch vor 30 Jahren ein Sprite aus dem Film kopieren, aber wenn du das heute machen willst, nunja, da wirst du eben ausgelacht, weil die Grafik schlecht ist.

Und das ist interessant, denn physikalisch betrachtet ist Schall eigentlich nicht einfacher als Licht. Beides kann man als Wellen beschreiben, aber bei Schall sind Welleneffekte viel interessanter, da man Szenen in der selben Größenordnung wie Schallwellen hat (bei Licht hat man dann eher Dinge wie Oberflächenunebenheiten im Nanometerbereich, die dann eben für diffuse statt spekulare Reflektionen sorgen). Es gibt auch Sound-Rendering, mit dem man z.B. berechnet, welchen Ton ein Becken erzeugt, wenn man dagegen schlägt (indem man seine Schwingung abhängig von seiner Geometrie und seinem Material berechnet), das sind dann aber in der Regel 3D-Voxel Simulationen die weit davon entfernt sind, in Echtzeit lauffähig zu sein. Kurz: Sound ist eigentlich überhaupt nicht einfacher als Grafik, es interessiert sich nur irgendwie kaum jemand ähnlich ernsthaft dafür.

Meine Antwort darauf war, dass Menschen eben hauptsächlich visuell arbeiten. Nun, die allermeisten zumindest. Blinde Menschen müssen fehlende Sehkraft mit anderen Sinnen kompensieren und diese dann entsprechend viel bewusster benutzen. Ein Raum klingt ja auch anders, wenn er verputzt ist, oder Fließen an der Wand hat, oder Teppich. Und Soundquellen klingen anders, wenn etwas zwischen ihnen und dem Hörer ist. Was mich da interessiert wäre, inwieweit ein Blinder sich damit tatsächlich orientieren kann. Könnte man z.B. mithilfe von Geräuschquellen durch eine Art Labyrinth laufen und hören, wo sich Wände befinden und dementsprechend vermeiden, in sie hinein zu laufen? Funktioniert das auch noch mit einer Säule inmitten eines großen Raumes? Wie dick müsste die dafür sein?

Naiv würde ich denken, dass man nur mit Schall alleine nicht wirklich auskommt, jedenfalls nicht so wie es eine Fledermaus tut. Man muss z.B. viele Dinge einfach ertasten. Und Tasten ist ja so ein Sinn den man in Videospielen trotz des VR-Booms noch so überhaupt nicht gut abdecken kann.
Hm, was ich mir vlt. noch realistisch vorstellen könnte wäre ein Spiel wie "Legend of Grimrock", also ein tilebasiertes Spiel aus der Egoperspektive, mit Surround-Sound und Geräuschquellen an den meisten Wänden und gut simuliertem Hall. Zusammen mit den sehr eingeschränkten Bewegungsmöglichkeiten (man kann die Anzahl der Tiles zählen, fast alle Räume sind kleiner als 10 Tiles) könnte das schon für eine rein audio-basierte Navigation ausreichen. Spannendes Thema.

Ich hab übrigens mal ein Video über einen blinden Zocker geschaut. Er hat Oddworld gespielt, ein Jump and Run mit "tile-basierter" Spiellogik (d.h. man kann immer nur diskrete Schritte nach links und rechts machen und somit nur an bestimmten Stellen stehen bleiben) und recht umfangreicher Soundkulisse. Dennoch war er viel auf auswendiglernen und Quicksaves angewiesen: https://www.youtube.com/watch?v=jKOxsGpgzbQ

So viel zu meinen Gedanken. Um jetzt mal auf deine Frage einzugehen: So wie ich das verstehe geht es dir ja überhaupt nicht darum, nur anhand von Sounds zu Spielen, sondern sie nur zu nutzen um das Spielgeschehen interessanter zu machen, das macht es natürlich etwas leichter.
Aber egal ob man es jetzt Engine nennt oder nicht, jedes Spiel braucht eine interne Repräsentation des Spielablaufs. Der Grafikteil ist vielleicht in vielen Spielen die aufwändigste Komponente, aber das bedeutet ja nicht, dass der Rest trivial ist. Ich würde dein Projekt am ehesten mit einem Spiel mit 2D-Sprite-basierter Grafik vergleichen. Für die 'Darstellung' musst du für Spielobjekte die richtigen Sounds an der richtigen Stelle abspielen (anstatt die richtigen Sprites an der richtigen Stellen anzuzeigen), aber die Simulation der Spiellogik bleibt ansonsten gleich. Das Kampfsystem, die Charakterwerte, Gespräche, Quests, Gegenstände, etc..

Es gibt ja fertige Engines für Point-n-Click Adventures und auch für Textadventures findet sich bestimmt was. Aber gerade wenn du z.B. ein komplexes Kampfsystem willst, könnte sich eine eigene Engine anbieten. Anstatt einer Grafikausgabe brauchst du ja mindestens eine gute Möglichkeit, die aktuelle Szene als Text zu beschreiben. Du musst eben den aktuellen Spielzustand in Text übersetzen, anstatt in Pixel.
Für Soundeffekte gibt es ja hinreichend viele Bibliotheken die 3D-Sound ermöglichen, und das sollte man dann natürlich auch nutzen. Sprich, auch wenn du rudenbasierte Kämpfe hast sollten alle Charaktere 3D-Positionen haben damit man hört wer von wo Angreift oder vlt. sogar Geschosse von links nach rechts fliegen hört. Und anstatt Hintergrundgrafiken hätten diese Arenen dann Soundkulissen, je nachdem ob man im Wald oder im Dungeon oder in einer Stadt ist. Man könnte vlt. sogar analog zu einem Point-and-Click Adventure '2D' Räume haben die dann entsprechend viele Soundeffekte haben und die Mausbewegung definiert die Hörerposition, so dass man den 'Bildschirm' wie in einem Point-and-Click Adventure absuchen kann und dann mit den Soundquellen interagieren kann. Für Smartphones könnte man ggf. den Lagesensor verwenden und sich in Richtung eines Sounds drehen müssen um mit ihm zu interagieren (so augmented reality mäßig).
Lieber dumm fragen, als dumm bleiben!

3

03.05.2022, 21:40

Dank dir für die Antwort. Das was du in Bezug auf die Berechnung von Instrumenten meinst ist wahrscheinlich Physical Modelling. Das gibt es tatsächlich schon und kann auch in Echtzeit berechnet werden. Pianos kann man damit mittlerweile sogar schon ziemlich gut emulieren.
Und ja, man kann sich tatsächlich allein durch Geräusche und den Schall von Wänden in einem Raum orientieren. Obwohl ich erst sehr spät erblindet bin, kann ich das auch zum Teil. Ich höre zum Beispiel sehr gut ob ich einer Wand näher komme, oder ob ich auf einem Bürgersteig an einem Auto vorbei laufe dass geparkt am Weg rum steht. Der Schal wird dann einfach dumpfer und trockener. Es gibt sogar ein Spiel für das iPhone, wo man sich nur mithilfe von Geräuschen im Raum orientiert. Man bewegt sich quasi durch einen 3-D Raum aber ohne etwas zu sehen. Leider stürzt das Spiel in einem Level kontinuierlich ab was unspielbar macht. War aber ein ganz interessantes Konzept.
Das doofe an diesem Spiel ist, dass die Geschichte immer damit anfängt dass es einen Stromausfall gab und man deswegen nicht sieht oder man einen Blinden spielt. Allerdings ist es mein Wunsch, ein Spiel fern ab der Behinderung zu entwickeln und die Geräusche dazu zu verwenden die Fantasie anzuregen. Was das Kampfsystem und die Sensoren des Smartphones betrifft hatte ich sogar schon sehr ähnliche Ideen.
Für mich stellt sich nur zwei wichtige Fragen. Welche Engine nutzt man für so etwas? Denn wenn es in diesem Spiel Buttons gibt, mit denen man das Spiel steuern kann, muss der Screen Reader diese ja auch auslesen können. Im Programmoberflächen die sowohl auf Mac als auch auf Windows laufen, ist es leicht zu implementieren. Nur wie sieht es in einem Spiel aus?
Das zweite ist der 3-D Sound. Entweder ich erstelle in einem Audio Programm die Sound Kulissen in vorgerendeter Form, was die Soundkulisse natürlich relativ statisch machen würde. Oder sie wird in Echtzeit dargestellt. Das wäre noch am coolsten. Dann könnte der Charakter über vorgegebene Wegpunkte laufen was dazu führen würde, dass die Sound Quellen an einem vorbei wandern würden. Nur das stelle ich mir sehr aufwändig vor. Was meinst du?

Jonathan

Community-Fossil

  • Private Nachricht senden

4

03.05.2022, 22:16

3D-Sound ist tatsächlich ziemlich einfach. Die schwierigste Frage ist vermutliches, welche Bibliothek man verwenden will, ist halt abhängig von der Plattform und welche Lizenz einem passt und so. Ich habe auf Windows und mit C++ mit Fmod, Irrklang und SoLoud gearbeitet, und bei allen Bibliotheken kann man mit wenigen Zeilen Code Sound-Dateien Laden und deren 3D Position setzen. Was ansonsten noch geht ist dann so ein bisschen abhängig, wofür du dich genau entscheidest, bei manchen kann man halt tatsächlich Occluder setzen, so dass Geräusche dann stumpfer werden. Das ist dann schon etwas fortschrittlicher aber so Basics wie 3D Position und Hall gehen eigentlich immer sehr einfach.

Ein "normales" Textadventure kann man ja vermutlich sehr gut in der Standardkonsole entwickeln, wo man Text nur Zeilenweise ausgibt und Befehle mit Enter bestätigt und so. Bloß wird das kompliziert sobald es um Echtzeitkämpfe geht oder du Sounds abspielen willst und so. Da brauchst du dann eigentlich schon eine normale Game-Loop die etwa 30 mal pro Sekunde den Spielzustand aktualisiert und sofort auf Eingaben reagiert.

Aber man kann ja auch irgendein Framework verwenden und dann auf den Grafikteil verzichten. SFML etwa (https://www.sfml-dev.org/) sagt "It is composed of five modules: system, window, graphics, audio and network." Man wird ja vermutlich auch ohne Grafikausgabe irgendein Fenster öffnen wollen, und das vielleicht auch mit einheitlichem Code auf verschiedenen Plattformen, also wären da schonmal 4 von 5 Komponenten für dich potentiell interessant. SFML kann jetzt leider kein Android, aber mit mobile-games kenne ich mich auch echt nicht aus. Aber ich könnte mir z.B. auch vorstellen, dass auch sowas wie Unity für dich in Frage kommt. Das kann halt super viel was du nicht brauchst, aber eben vermutlich auch alles, was du brauchst.
Lieber dumm fragen, als dumm bleiben!

5

04.05.2022, 18:33

Das 3-D Sound so leicht zu implementieren ist habe ich nicht gewusst. Ich komme ursprünglich aus dem Audiobereich, wo die Simulation von dreidimensionale Audio Position immer sehr kritisch hinterfragt wird. Deswegen dachte ich, dass Software, die so etwas simulieren kann er rar gesät ist und mit einem höheren Aufwand verbunden ist.
Ich hab mal ein Audio Beispiel einer solchen Software auf YouTube gehört, wo man sich wirklich umdrehen wollte, weil man dachte das der Sound hinter einem ist. Echt abgefahren.
also ein Konsolenspiele soll es definitiv nicht werden. Ich möchte schon eine richtige Oberfläche haben, die auf einem Smartphone lauffähig ist und Schalter hat, die angetippt werden können. Im Grunde genommen stelle ich mir die Oberfläche meines Spiels wie das Menü eines Videospiels vor, wo man Einstellungen vornehmen kann.
Heißt, dass es eine Reihe von Schaltern gibt und eine Fläche auf der angezeigt wird, was die Betätigung des Schalters für Auswirkungen hat. Wichtig bei der Entwicklung wäre natürlich, dass so wenig wie möglich über drag und drop gemacht wird. Für mich ist es am besten, wenn alles nachträglich in Kot geschrieben werden kann. Ist Unity eine Engine, in der sehr viel draag und drop gemacht wird?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Schnupps« (04.05.2022, 20:21)


Jonathan

Community-Fossil

  • Private Nachricht senden

6

07.05.2022, 15:49

Das 3-D Sound so leicht zu implementieren ist habe ich nicht gewusst. Ich komme ursprünglich aus dem Audiobereich, wo die Simulation von dreidimensionale Audio Position immer sehr kritisch hinterfragt wird. Deswegen dachte ich, dass Software, die so etwas simulieren kann er rar gesät ist und mit einem höheren Aufwand verbunden ist.
Ich hab mal ein Audio Beispiel einer solchen Software auf YouTube gehört, wo man sich wirklich umdrehen wollte, weil man dachte das der Sound hinter einem ist. Echt abgefahren.


Naja es kommt ja immer auch darauf an, was für eine Qualität man erwartet. Dieses YT Video wird ja vermutlich etwas Richtung Binaural recording gewesen sein, davon ist 3D Sound in Spielen natürlich weit entfernt. Aber probier es halt aus.

Zu Unity: Du kannst damit auf jeden Fall auch alles ohne Drag'n'Drop machen, aber wirklich gearbeitet habe ich damit nie selber. Es gibt aber gewiss entsprechende Tutorials Online. Unity sollte natürlich auch direkt 3D-Audio können, vielleicht ist das also wirklich der beste Einstiegspunkt.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige