ASCII Spiele und Interaktion mit der Welt

Übersicht Sonstiges Gamedesign

Neue Antwort erstellen

DivineDominion

Betreff: ASCII Spiele und Interaktion mit der Welt

BeitragSa, Sep 08, 2018 9:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich überlege, wie ich am besten in einem ASCII Spiel die Interaktion mit der Welt gestalten kann. Der Spielercharakter ist ein einziges Zeichen. Im Gegensatz zu Spielen mit Charaktergrafiken kann man so keine Richtung anzeigen, in die die Spielfigur guckt. Und ohne Blickrichtung ist auch nicht klar, was passieren wird, wenn man die "Benutzen" Taste drückt ("E" in Shootern). Stellt euch vor, die Spielfigur befindet sich sich neben mehreren interaktiven Objekten. Welches wird ausgelöst?

Code: [AUSKLAPPEN]

.@.
.☺i
...

☺    player
i    ein Hebel
@    ein anderer Charakter, mit dem man sprechen kann


Wenn ich "E" drücke, spreche ich dann mit dem NPC oder lege ich den Hebel um?

Mir fallen ein paar Möglichkeiten ein:

1. Man benutzt das, worauf man steht
2. Man gibt die Richtung an
2. Man muss ein Ziel auswählen

1. Auf Dingen stehen

Vielleicht kennt ihr ja [url="http://dwarffortresswiki.org/"]Dwarf Fortress[/url]. Die Tilesets dort bestehen traditionel aus Buchstaben und Sonderzeichen; mittlerweile kann man aber auch eigene Bilder-Tilesets verwenden, sodass nicht mehr ☼ für eine Schildkröte herhalten muss. Stellt euch im Spiel also ASCII Art vor, und sich bewegende Buchstaben für Zwerge und Monster und Tiere.

Bei Dwarf Fortress können auf einem Feld der Karte verschiedene Dinge sein: mehrere Lebewesen und Gegenstände, zum Beispiel, und natürlich der eigentliche Fußboden und seine Beschaffenheit. Irgendwann ist ein Feld voll, aber bis dahin kann man stapeln. Es werden dann von der "Grafik"-Engine nacheinander alle wichtigen Dinge nacheinander angezeigt, also der ganze Stapel durchrotiert.

Wenn mehrere Charaktere auf demselben Feld stehen, wird zwischen ihren Zeichen mit einer Animation gewechselt, die aus einem sich drehenden Balken besteht:
Code: [AUSKLAPPEN]
-\|/-


Es gibt auch noch [url="http://dwarffortresswiki.org/index.php/DF2014:Status_icon"]blinkende Statuseffekte[/url].

Mir ist das in Dwarf Fortress aber zu unruhig und zu schwer zu "lesen", was gerade vor sich geht. Für eine so komplexe Simulation find ich das aber noch verständlich. Alleine das Pathfinding von 100 Zwergen in einem dünnen Gang, wenn die nicht auf demselben Feld gehen könnten, wäre die Hölle. Oder man müsste absurd breite Gänge bauen, damit die fetten ASCII Zeichen genug Platz haben -- und sieht dann am Ende nix interessantes mehr.


2. Man gibt die Richtung an

Hier eine Veranschaulichung, was passiert, wenn man in den "Benutzen"-Modus wechselt und Pfeiltasten nach rechts und oben drückt.

Code: [AUSKLAPPEN]

.....        .....       .....       .....
.....        .###.       .###.       .##█.
..☺..  [E]   .#█#.  [>]  .##█.  [^]  .###.
.....        .###.       .###.       .###.
.....        .....       .....       .....


(Entweder lässt man dann "E" los, umzu bestätigen, oder muss noch mal "E" drücken, um das Feld auszuwählen. Da weiß ich noch nicht, wieviel das Terminal hergibt Smile )

Die Auswahl (█) selbst sollte wohl über dem eigentlichen Inhalt der Karte blinken, wie ein Cursor im Terminal das eben so macht, damit man weiß, was man sieht. Der aktive Radius (#) sollte auch irgendwie angezeigt werden.


3. "lock-on" auf interessante Objekte

Code: [AUSKLAPPEN]

.....        .....       .....
..@..        ..█..       ..@..
..☺i.  [E]   ..☺i.  [>]  ..☺█.
.....        .....       .....
.....        .....       .....


Statt anzugeben, "wohin man benutzen will", könnten benutzbare Objekte auch direkt hervorgehoben werden. Am Beispiel vom NPC und dem Schalter weiter oben würde zuerst der NPC angewählt (█). Wenn man eine Pfeiltaste drückt, wird die Auswahl auf den Schalter verschoben. Das wäre eher wie bei einer seeker missile zu zielen.

--------------

Fallen euch andere Alternativen ein? Welche würdet ihr bevorzugen, und für welches Genre?

Ich denke an ein Abenteuer/Rollenspiel-Setting ( Rolling Eyes ) und schwanke zwischen (2) und (3). Die Richtung anzugeben, und das vielleicht auch bei Kämpfen einzusetzen, würde das Spiel beinahe zu einem Diablo Clone machen. Ziele auszuwählen erinnert mich eher an Xcom und andere rundenbasierte Taktikspiele.
christian.tietze@gmail.com - https://christiantietze.de
macOS
 

konstantin

BeitragSa, Sep 08, 2018 10:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Variante 1 ist sicherlich der klassische Weg und auch die am einfachsten umzusetzende. Die mangelnde Übersicht nimmt man bei einem nethack-like ohnehin in Kauf, von daher...

Sorry, habe keinen relevanten Input, wollte nur Hallo sagen. Laughing

SpionAtom

Betreff: Variante 2

BeitragSa, Sep 08, 2018 10:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Mir gefällt die zweite Methode.

Wenn man eine Ziffernblock-Steuerung hat, ist man mit [e]+[Richtung] immer mit zwei Tastendrücken bei der eigentlichen Aktion.

eine weitere Möglichkeit wäre auf das [e], die Aktionstaste, zu verzichten. Also einfach gegen den Hebel oder den Charakter laufen. Jedoch muss man dann damit rechnen, dass man Aktionen versehentlich auslöst, wenn man irgendwo gegenläuft.
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

DivineDominion

BeitragSa, Sep 08, 2018 10:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Von Gegenlaufen als Auslöser bin ich kein Fan, wenn es keinen "Widerstand" gibt. Da alle Bewegung sich aber so labil anfühlt wie Fisher-Price, da jeder Tastendruck sofort umgesetzt wird, gibt es bestimmt böse Überraschungen.

Wenn die Engine rundenbasiert bleibt, also die Welt eingefroren ist, bis der Spieler sich bewegt, dann könnte man ja noch als Spielerversagen verbuchen, wenn man versehentlich irgendwo hineinrennt. Muss man sich halt mit mehr Bedacht bewegen. War bei den alten Roguelikes ja auch nicht anders.

Wenn ich die Engine von der Tastatureingabe enkopple, und dann mit echter Zeit rechnen muss, um die Spielgeschwindigkeit stabil zu halten, kann ich die Tastatureingabe auch puffern, sodass sich der Spieler nur N Felder pro Sekunde bewegen kann, wenn die Taste gedrückt bleibt, und Tastendruck über 3*N Sekunden oder so zum Auslösen von Interaktionen verwendet wird. (Dann dürfen andere Leute nicht weglaufen währenddessen Smile)
christian.tietze@gmail.com - https://christiantietze.de
macOS

Xeres

Moderator

BeitragSa, Sep 08, 2018 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Frage ist: Sollen Aktionen nur mit validen Objekten funktionieren?
Bei Variante 3 reduzierst du die Optionen des Spielers. Pro: Spieler müssen nicht so viel experimentieren, Con: Spieler können nicht so viel experimentieren. Wenn man in eine beliebige Richtung angeben kann, können Spieler z.B. die nächstgelegene Wand abtasten und einen versteckten Schalter finden. Oder in einen Lavasee langen und sich verletzen.
Bei sehr Aktionlastigen Spielen würde ich Variante 3 nehmen, damit man flüssiger durch ein Level kommt.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

DivineDominion

BeitragSo, Sep 09, 2018 17:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Guter Punkt! Smile Mit einem aimbot wie in (3) wären Verstecke nicht mehr so versteckt. Mit einer Variante wie (2) eine Wand abzutasten ist allerdings auch mühselig.
christian.tietze@gmail.com - https://christiantietze.de
macOS

DAK

BeitragMo, Sep 10, 2018 14:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine weitere Möglichkeit wäre die Blickrichtung extern, also außerhalb des Spielbildschirms anzuzeigen. Das hab ich auch schon bei ein paar Roguelikes gesehen. Da gibt es dann einfach einen schönen ASCII-Pfeil im HUD-Bereich, der anzeigt, wohin man gerade schaut. Oder, wenn man es besonders witzig will, malst du einen ASCII-Pfeil mit Blickrichtung mit 60 Hz wechselnd an die Spielerposition. Also immer einen Frame den Spieler und einen Frame den Pfeil. Und dann hoffen, dass der Spieler kein Epileptiker ist Wink
Gewinner der 6. und der 68. BlitzCodeCompo

BladeRunner

Moderator

BeitragMi, Sep 12, 2018 15:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde die Aktionstaste [e] belassen, allerdings intern speichern in welche Richtung man zuletzt lief. Damit ist es eine Kombination aus "dagegenlaufen" und "gezieltem Benutzen".

In deinem Ausgangsbeispiel: Wenn der Spieler erst nach oben und dann auch [e] drückt, spricht er mit dem NSC. Wenn er nach rechts drückt und dann auf [e], wird er den Schalter benutzen.
Somit verzichtest Du auf den Overhead eines gesonderten Modus und musst auch nicht beim drücken von [e] gleichzeitig eine andere Taste betätigen. Was benutzt wird, ergibt sich so aus dem Flow der Bewegung.
So lassen sich dann auch Wände auf Geheime Schalter absuchen: Gegen Wandlaufen, [e], ein Schritt weiter, gegen Wand laufen, [e] ...

Schön ein paar alte Hasen zu lesen Smile
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Holzchopf

Meisterpacker

BeitragMi, Sep 12, 2018 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube so wie Blade es beschreibt war es auch bei einigen SNES-Spielen. Da suh man zwar, in welche Richtung die Figur guckt, aber das Prinzip bleibt ja das selbe: erst in eine Richtung gehen, um die Figur auszurichten, dann in die Richtung die Aktion ausführen/mit der Welt interagieren.
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

DivineDominion

BeitragDo, Sep 13, 2018 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit der Blickrichtung, die nicht angezeigt wird, die sich der Spieler aber merken muss, fand ich komisch. Ich habe zum Test darum mal eine Zielvorrichtung eingebaut und finde den Effekt ganz witzig. Ich benutze das zum Navigieren in vielen Fällen richtig gerne. Allerdings nicht, wenn es darum geht, einen repetetiven Vorgang auszuführen, zum Beispiel mit demselben NPC mehrmals hintereinander zu reden.

Das könnte ich ausgleichen, indem ich zwischenspeichere, wo man zuletzt hingezielt hat, bis man sich von der Stelle wieder weg bewegt. Mal sehen. Oder der Zielmodus fliegt wieder raus.

Vorschau: https://imgur.com/6T2AX6L
user posted image

Was mir daran so gut gefällt ist vielleicht auch nur die Techdemo Smile Also dass es überhaupt geht, und man auf einem statischen Ausschnitt der Karte mit dem Fadenkreuz zielen kann.

Die Vorrichtung stelle ich mir allerdings für Kämpfe nützlich vor. Das Spiel soll ein Action-RPG werden. Da darf es an Kämpfen ja nicht fehlen! Und wenn man einen Radius von >1 einstellt, sollte das Zielfenster auch größer werden; 2 für lange Speere und 5 für Kurzbögen oder Zaubersprüche könnte ich mir gut vorstellen. Mal gucken, wie ich das überhaupt mache: ob man auf der aktuellen Karte kämpft oder auf einem extra Kampf-Feld wie bei JRPGs.

- - - - - - - - - - - - - - - - - - - - - - - -

Wer das auf seinem PC selbst mal ausprobieren will, der Code ist hier:
https://github.com/DivineDominion/TermQuickRPG

- Ruby 2.5 (2.x sollte reichen)
- curses/ncurses/pdcurses installiert (UNIX Standard)

Wie man das unter Windows einrichtet, weiß ich noch nicht: ich glaube, da gibt es die curses/ncurses Bibliothek gar nicht so leicht. Alle macOS/Linux Nutzer sollten das aber mit einem modernen Ruby leicht zum Laufen bringen können.
christian.tietze@gmail.com - https://christiantietze.de
macOS

DivineDominion

BeitragMo, Sep 24, 2018 15:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine interessante Lösung: der Spielcharakter ist bloß ein Richtrungspfeil, also ein Zeichen von: ^ < v >
https://www.youtube.com/watch?v=geA5-8_4zfw

Das könnte man als Animation überblenden mit der eigentlichen Spielfigur, also wie ein Blinke-Cursor, nur dass die Figur und die Richtung sich abwechseln.
christian.tietze@gmail.com - https://christiantietze.de
macOS

Neue Antwort erstellen


Übersicht Sonstiges Gamedesign

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group