Pen & Paper - Rollenspiel > Pen & Paper - Eigenentwicklungen
[Projekt] Ein für PC-Spiele optimiertes Rollenspiel-System
(1/1)
open_rpg:
Ich arbeite seit einigen Wochen an einem für Computerspiele optimierten Meta-Rollenspiel-System. Meta deshalb weil es generisch ist und nur die Grundlage für die eigentlichen Rollenspiel-Systeme ist (etwa so wie GURPS). Das System soll in Form einer C-Bibliothek veröffentlich werden. Sie enthält aber nur die Grundregeln ohne dabei Rassen, Gegenstände, Waffen usw. zu definieren, diese Daten werden in XML-Dateien gespeichert und stellen dann das eigentliche Rollenspiel-System dar.
Die Bibliothek soll unter der LGPL-Lizenz veröffentlicht werden und so sowohl für kommerzielle als auch für Hobby-Projekte kostenlos nutzbar sein. Verändert man das Basis-System (also die C-Bibliothek) müssen diese Änderungen veröffentlicht werden und können bei Bedarf in die Grundversion der Bibliothek einfliessen. Das eigentliche Rollenspiel ist davon nicht betroffen, man könnte für die eigene Rollenspiel-Welt also bspw. problemlos kostenpflichtige Lizenzen an andere Entwickler verkaufen.
Mit diesem Projekt möchte die Entwicklung von Open-Source-Rollenspielen vereinfachen und die Szene stärken da bisher viele Open-Source-RPG-Projekte an der Implementierung eines eigenen Regelwerks scheitern, ein lizenzpflichtiges Regelwerk nutzen und sich so in einer rechtlichen Grauzone bewegen oder ein freies Pen-and-Paper-Rollenspiel implementieren müssten (was aber kaum geschieht). Ausserdem muss bei einem auf Computerspiele optimierten Rollenspiel keine (oder weniger) Rücksicht auf die Anzahl Würfe oder die Komplexität der Berechnungen genommen werden, da diese werden ja vom Computer übernommen werden und nicht von den Spielern/Spielleitern berechnet werden müssen.
Falls das Interesse besteht würde ich hier weitere Informationen zu meinem System posten. Kritik und Ideen sind natürlich auch immer willkommen.
Shihan:
Das hört sich doch schon sehr interessant an. Vor allem, weil ich selbst auch öfter darüber nachgedacht habe, wie ich in einem kleinen Spiel RPG-ähnliche Faktoren einbinden kann.
In welche Richtung geht denn der Ansatz des Regelwerks? Also was diese klassischen Dinge wie Attributes, Skills, Skillchecks, etc. angeht?
Ein Dev-Blog wäre super :)
Hast du sowas? Oder evtl. ein Github-Repository?
Also Interesse ist vorhanden. Vielleicht auch noch bei anderen!
open_rpg:
Vielen dank für die Rückmeldung.
Das Regelwerk ist momentan noch recht einfach und unterscheidet sich noch nicht wirklich von Pen-and-Paper-Rollenspiele: es gibt Attribute, Rassen, Klassifizierungen, Charaktere, Gegenstände, Waffen, Kleidung, Übernatürliche Kräfte, Monster und Aktionen. Allgemeines Ziel ist es alles möglichst dynamisch zu machen, es gibt keine festen Klassen oder eine Gesinnung, diese ergeben sich erst durch das Spiel des Charakters bzw. verändern sich durch die Aktionen des Spielers.
Attribute sollten ja soweit bekannt sein.
Rassen definieren Minimal- und Maximalpunktzahl für Attribute.
Übernatürliche Kräfte decken sowohl die Magie als auch andere spezielle Fähigkeiten ab (Die speziellen Kräfte eines Superhelden würden auch hier definiert werden), diese können erlernbar aber auch einem oder mehreren Charakteren / Rassen zugewiesen werden.
Anstatt festen Klassen gibt es Klassifizierungen die sich je nach Attribut-Werte ständig anpasst. Steigerd man am Anfang die Schleich-Fähigkeiten ist man Anfangs bspw. ein "Dieb", steigert man dann noch die übernatürlichen Kräfte könnte man bspw. ein "magiebegabter Dieb" werden. Diese Klassifizierungen können dem Charakter ermöglichen spezielle Gegenstände, Zaubersprüche und jeweils gewisse Boni auf verschiedene Attribute (Alle Boni usw. werden bei der Klassifizierung nicht beachtet).
Kleidung und Waffen gibt Boni/Mali auf verschiedene Attribute. Waffen und Kleidungen können für bestimmte Rassen verboten werden.
Gegenstände sind nicht lebendige Dinge mit welchen die Charaktere interagieren können.
Monster sind nicht oder wenige intelligente Wesen welche nur einfache Werte wie Angriff/Verteidigung anstatt alle Fähigkeiten haben.
Aktionen sind Proben von Fähigkeiten gegen verschiedene Dinge:
* einfache Probe gegen eine/mehrere Fähigkeit(en) eines Charakters
* Probe einer/mehrerer Fähigkeit(en) gegen Werte eines Gegenstands
* Probe einer/mehrerer Fähigkeit(en) gegen eine/mehrere Fähigkeiten eines anderen Charakters
* Probe einer/mehrerer Fähigkeit(en) gegen eine/mehrere Werte eines Monsters
Aktionen können runden-, aber auch zeitbasiert ablaufen. Mann kann ihnen ausserdem spezielle Schwierigkeiten zuweisen und es können mehrere Stufen von Erfolg/Misserfolg definiert werden. Aktionen können ausserdem die Gesinnung eines Charakters verändern.
Das ist der Stand welche ich als erstes Ziel definiert habe, damit lässt sich schon ziemlich viel abbilden. Wie gesagt, abgesehen von der Möglichkeit der zeitbasierten Aktionen unterscheidet es sich noch nicht gross von Pen-and-Paper-Rollenspielen.
DevBlog habe ich keinen geplannt, GitHub hingegen schon. Den Quellcode werde ich veröffentlichen sobald das oben Beschriebene implementiert ist.
open_rpg:
Um einmal einen kleinen Einblick zu geben wie das System im Moment aussieht zeige ich wie die Charaktergenerierung bis jetzt aussieht:
Die Rollenspiel-Welt definiert in XML-Dateien folgende Werte:
Minimaler Wert eines Attributs = 1
Maximaler Wert eines Attributs = 99
Startpunkte welche bei der Charaktererstellung vergeben werden können = 8
Zusätzlich wurden folgende Attribute und Rassen definiert (die Zahl vor jedem Wert ist die Identifikationsnummer)
Attribute:
1 Stärke
2 Intelligenz
3 Charisma
Rassen:
1 Mensch
Für den Mensch wurde ausserdem der Minimalwert 3 bei dem Attribut "Stärke" definiert.
--- Code: ---#include <iostream>
#include <Random.hpp>
#include <OpenRPG.hpp>
int main(int argc, char** argv)
{
unsigned int used_points = 0;
OpenRPG::System System;
OpenRPG::Character MyChar = System.createCharacter();
MyChar.setName("Klaus");
used_points = MyChar.setRace(System.getRace(1));
while(used_points != System.getStartingPoints())
{
used_points += MyChar.increaseAttribute(Random(1,3));
}
return 0;
}
--- Ende Code ---
Schritt 1:
Das System wird mit der Erstellung des Objekts OpenRPG initialisiert, dabei werden die oben beschrieben Daten aus den den XML-Dateien geladen.
Schritt 2:
createCharacter() erstellt uns einen neuen Charakter und setzt die Attribut-Werte auf 1 (da wir den minimalen Wert für Attribute ja auch auf 1 gesetzt haben)
Schritt 3:
setName() setzt den Wert des Charakters, unser Held braucht ja auch einen Namen
Schritt 4:
SetRace() setzt die Rasse. Sytem.getRace() gibt uns dazu das passende Objekt der gewählten Rasse zurück. Da wir als Rasse mit Id 1 "Mensch" definiert haben ist unser Held also ein Mensch. Hier kommt das erste Mal auch unser Regelwerk so richtig zum Zug, denn wir haben beim "Mensch" einen minimalen Stärke-Wert von 3 festgelegt. Da unser Held nun ein Mensch ist muss er auch die Stärke 3 haben, was er nun auch hat, denn das System setzt diese Werte automatisch sobald einem Charakter eine Rasse zugewiesen wird. Um festzustellen wieviele weitere Punkte wir noch selbst vergeben können gibt uns setRace() zurück wieviele Punkte die Funktion dazu verwendet hat die Minimalanforderungen der Rasse zu erreichen (in unserem Fall sind das 2).
Schritt 5:
Zum Schluss verteilen wir die übrigen Punkte zufällig auf die Attribute. increaseAttribut() prüft zuerst ob es nach den Regeln erlaubt ist dass Attribut um 1 zu erhöhen, ist dass der Fall wird das Attribut um 1 erhöht und gibt uns dann 1 zurück (da die Funktion ja ein Attribut-Punkt verwendet hat). Dies passiert solange bis die uns noch zur Verfügung stehenden Attributspunkte vergeben haben.
Der Charakter ist nun erstellt, da aber noch kein Abenteuer auf ihn wartet schicken wir ihn sofort wieder in Rente.
PS: Bei der Rasse kann ebenfalls ein Maximum für ein Attribut angegeben werden, wollte man in unserer kleinen Rollenspielwelt eine praktisch intelligenzlose Rasse erstellen stellt man das Maximum bei "Intelligenz" einfach auf 1. Im Falle unseres kleinen Testprogramms wäre dann eine Erhöhung des Attributs "Intelligenz" nie erlaubt und es könnten nur die restlichen Attribute erhöht werden.
Ich hoffe das Ganze hier ist einigermassen verständlich... ansonsten einfach fragen!
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln