Author: LieutenantMarky
Last changed: 25.11.2014 18:40
Completion: Alpha (playable)
Date of publication: Scheibchenweise
User niveau: Excellent
Translate to english
Um was geht's?
Mit RPG Library soll man mit relativ wenig Aufwand RPGs für Clonk Rage erstellen können. Ähnlich wie bei Ritter, Western, etc. gibt es ein Grundpack, welches die ganze Infrastruktur enthält. Wer ein RPG erstellt braucht sich dann nicht mehr darum kümmern, solche Sachen wie Skills, Levelanstiege, Quest- und Dialogsysteme zu programmieren, sondern baut auf dem Objektpaket auf und personalisiert es.

Aber man kann es doch nicht jedem Recht machen!
Stimmt. Deshalb ist das Grundpaket recht offen. Es stellt die Grundfunktionalität für gängige RPG-Konzepte zur Verfügung:
Beispielsweise ein Skill steht für einen Wert, der gesteigert werden kann. Im Script geht man mit allen Scripts gleich um - man kann sie abfragen und verändern. Welche Skills es geben soll ist erstmal egal - jedes Szenario kann eigene Skills haben, die durch ein simples Array definiert werden.

Was kann RPG Library bis jetzt?
Eine kleine Aufzählung der Features.

Dialoge

- Es gibt ein dynamisches System für Dialoge. Anstelle von mehreren Funktionen und Menus schreibt man ein Array, welches den Dialogbaum darstellt und ist fertig.
- Dialogoptionen können problemlos auch das Inventar des Spielers verändern oder nur unter bestimmten Voraussetzungen verfügbar werden.

Quests

- Quests können kooperativ gelöst werden.
- Quests haben verschiedene Stufen, die als Array dargestellt werden, ähnlich wie bei den Dialogen.
- Quests werden in ein Questlog geschrieben. Der Programmierer kann selbst einstellen, was er in das Log schreibt.
- Mehrspielerunterstützung: Quests können entweder kooperativ gelöst werden, oder jeweils nur von bestimmten Spielern. Der Fortschritt wird je Spieler separat verfolgt.  

Filmsequenzen

Filmsequenzen sind möglich und benötigen nicht einmal einen eigenen Mechanismus: Sie fügen sich ganz einfach in das Quest-System ein.

Tagesabläufe

Spätestens seit Gothic gehören Tagesabläufe für NPCs zum guten Ton bei RPGs. Sowas darf natürlich auch in Clonk nicht fehlen.
- Tagesabläufe können als Funktion definiert werden. Diese werden an NPCs angehängt und können auch von mehreren NPCs benutzt werden


Geplante Features
Diese Dinge sind geplant, aber noch nicht umgesetzt.
NPC-Missionen

Zur KI gehört das System Tagesablauf-Mission-Aufgabe: Jeder NPC kann einen Tagesablauf haben. Dieser wird überschrieben durch Missionen, die wiederum durch Aufgaben überschrieben werden.
NPCs können miteinander interagieren, indem sie Aufgaben oder Missionen tauschen.

Dokumentation

RPG Library benötigt eine Doku und einige Tutorials, damit das Objektpaket leicht zugänglich ist.

Dekoration

Es gibt viele gute Deko-Objekte aus bestehenden RPGs und Adventures. Diese werden in der RPG Library enthalten sein, um die Objekte nicht immer wieder kopieren zu müssen.


Gibt es auch was zu sehen?
Ja. Einfach so Funktionen bereitstellen ist langweilig, deshalb gibt es parallel zu RPG Library noch ein Szenario :)

Wie kann ich helfen?
Momentan brauche ich Feedback zur aktuellen Version. Ich denke, dass mir klarer ist, wie man am besten damit entwickelt.

Was wird gerade bearbeitet?
Aktuell wird gearbeitet an:
- Verhalten, mit welchen die KI Randrians Deko-Objekte als Teil des Tagesablaufs benutzen kann.

In Release v0.1.5 ist enthalten:
- Umstrukturierung des Objektordners. Die Objekte werden nach Teilsystemen sortiert, sodass Abhängigkeiten besser erkennbar sind.
- Mehr Deko-Objekte und einheitlicheres Script für selbige.
- Schalter und abschließbare Objekte.
News
26.11.2014
* Beschreibung angepasst.
25.11.2014
* Release mit Verzögerung
27.07.2014
* Projektvorstellung
01.09.2014
* Dokumentation angefangen

Downloads
02.01.2015 20:20, ClonkAvenger voted +, Influence 1
Sieht sehr vielversprechend aus, da ich sowas total cool finde bin ich sehr gespannt. :D
16.12.2014 18:15, EnsignMax Payne voted +, Influence 1
Sehr tolles Projekt was wahrscheinlich in unserem Projekt Verwendung finden wird :)

Klares +.
14.12.2014 01:24, MajorWipfmagus voted +, Influence 1
Verallgemeinerte Bibliotheken sind toll. RPGs in Clonk sind toll. Von beidem sollte es mehr geben. Und die Featureliste sieht auch überzeugend aus.
13.08.2014 18:37, Lieutenantala voted +, Influence 1
Auja!

Find die Idee sowieso gut Ressourcen verschiedener Pakete mal zu sammeln und leicht zugeaenglich zu machen. Mit allem was es in Clonk Rage gibt kann man naemlich locker 10 verschiedene Adventures fuellen.
05.08.2014 20:51, LieutenantDeep voted +, Influence 1
Vielleicht ist es zu früh eine Bewertung mit einfließen zu lassen und es kann wahrscheinlich auch zu Änderungen kommen, je nach dem ob sich das ganze zum schlechten oder besseren entwickelt.

Abgesehen davon dass ich hier nur einige Informationen von dieser Seite weiß und ich auch nicht wissen kann ob es mit der Aktivität klappen wird schließe ich das erst ein mal aus und bewerte lediglich die genannten Konzepte / Ideen, die denke ich mal einfach zu RPGs in Clonk nicht fehlen dürfen. Bestimmt gibt es in dieser Richtung noch vieles mit einzuplanen was jedoch ein + Vote keinen Abbruch macht. Mal schauen ob es was wird.
29.07.2014 13:41, Lieutenant Colonelconstantin voted +, Influence 1
So etwas habe ich mir schon immer gewünscht und finde es klasse, dass es gemacht wird.
Die Frage die sich mir noch stellt ist, ob ein Kampfsystem integriert ist und wie es mit der Kleidung aussieht.



Showing 11-20 comments out of 22

17.09.2014 20:17 from LieutenantMarky  
Kleiner Zwischenstand. Das Schreiben der Dokumentation und polieren des Code, so dass ihn auch jemand außer mir versteht, dauert länger, als ich dachte. Für den ersten Release strebe ich deshalb folgendes an:

Fertige Features:
* Quests
* Dialoge
* rudimentärer Tag-Nacht-Zyklus

Unfertiges:
* Skill-System in Grundzügen vorhanden. Ist bei weitem nicht fertig, da in meinem Testszenario erstmal eine lebendige Spielwelt den Schwerpunkt bildet.
* Neuer Clonk mit Kampfanimationen ist ebenso nicht fertig.

Das heißt, dass Adventure-Szenarion wie das gleichnamige Adventure umsetzbar sind, aber der volle Umfang für das, was ich mir vorgestellt habe, ist noch nicht da.

27.08.2014 18:11 from LieutenantMarky  
>Sowas hätte ich bei bedarf gekapselt in "Unterbibliotheken" und nicht global , z.b.
Genau. Und dann mache ich sowas wie

In ParticleManager.c4d
Code:
global func ParticleManager()
{
var manager particlemanager = FindObject(PAMR);
if (!manager) manager = CreateObject(PAMR, 0, 0, -1);
    return manager;
}


dann kann ich überall verwenden:
Code:
ParticleManager()->ShootParticles("blar", 1, 2, 3);


Falls ich den ParticleManager mal lösche, dann fällt sofort auf, dass es "ParticleManager()" nicht mehr gibt. Wäre dieser Teil aber in System.c4g, dann gibt es die Funktion noch immer und sie versucht nur ein Objekt zu erzeugen, das es nicht mehr gibt. Vielleicht wird klarer, was ich gemeint habe?

27.08.2014 12:33 from FounderTyron  
> Wo ich noch unschlüssig bin: globale Funktionen. Wenn sie nur zur Interaktion mit einem Objekt gelten, dann schreibe ich sie in dessen Code. Wenn sie mehrere Objekte betreffen, dann in System.c4g. Gibt es hier ein sinnvolles Vorgehen?

Globale funcs in Objekte halte ich für keine gute Idee. Sowas hätte ich bei bedarf gekapselt in "Unterbibliotheken" und nicht global , z.b.
Code:
var particlemanager = FindObject(PAMR);
particlemanager->ShootParticles("blar", 1,2,3);

Es ist eine allgemeine Programmierer-Praxis, immer so wenig wie möglich in den globalen Namespace zu legen.
Last change: 27.08.2014 12:35

26.08.2014 18:24 from LieutenantMarky  
Ah, gut^^

Ich bereite mich gerade auf einen rudimentären Release vor. Dazu fehlt noch ein kleines Tutorial, das werde ich wohl hier ins Forum stellen. Codestyle geht vermutlich noch besser mit dem C4Script Plugin für Eclipse von Mortimer. Das habe ich leider noch nicht zum Laufen gebracht :/

Momentan behalte ich Einzeiler-Funktionen noch in einer Zeile, die Benennung von Konstanten ist recht uneinheitlich, dafür aber innerhalb eines Objekts einheitlich. Die restlichen Funktionen sind so weit wie möglich lesbar, keine Magic Numbers. Außerdem will ich noch Dokumentation vor die Funktionen schreiben. Bei richtig verwirrenden Sachen ist die bis jetzt auf Deutsch vorhanden, ich steige aber auf Englisch um. Praktisch wäre vor allem, wenn man die Entwicklerdoku direkt aus den Kommentaren über den Funktionen generieren könnte.

Wo ich noch unschlüssig bin: globale Funktionen. Wenn sie nur zur Interaktion mit einem Objekt gelten, dann schreibe ich sie in dessen Code. Wenn sie mehrere Objekte betreffen, dann in System.c4g. Gibt es hier ein sinnvolles Vorgehen?

26.08.2014 10:34 from MajorEnd  
Vieles. Allgemein Codestyle und unerklärbare Sachen und sowas. Oder auch, dass random globale Effekte gekillt werden, weil eine Check fehlt.

20.08.2014 21:05 from LieutenantMarky  
Hmm, was war bei Hazard inkonsistent? Ich mache eigtl. alles #strict 2

20.08.2014 20:22 from MajorEnd  
Bitte bleib im Gegensatz zu Hazard aber konsistent und behalte einen guten Codestil bei.

20.08.2014 19:03 from LieutenantMarky  
Gebäude wie in Harkon wird es geben, jap. Das war auch schon vor der Projektvorstellung implementiert, ist aber noch recht experimentell und momentan kümmere ich mich mehr um das Demo-Szenario.

Außerdem brauche ich eine Anleitung, wie man eine gute Doku schreibt wie z.b. für das Hazardpaket. Ohne die und ein paar Tutorials ist man erstmal verloren, denke ich ^^.

13.08.2014 19:07 from EnsignMupf  
Kann mich dem Rest nur anschließen, super Sache.
Generelles Problem in Clonk, dass man alles wieder und wieder schreibt wann immer man ein neues Projekt anfängt.
Ich stelle mir deine Idee ähnlich Modular wie z.B. das neue Hazardpack vor.

Die Harkongebäude sind sowieso das beste was Clonk seit Jahren gesehen hat.
Ich find ja, so sollten Gebäude von nun an überall gehandelt werden!
OC, I'm waiting for you!

05.08.2014 20:46 from LieutenantDeep  
Hört sich wie so oft super an, dieses genannte Konzept jedoch gefällt mir umso mehr.

Weißt du was zu den meisten Rollenspielen in Clonk fehlen würde?  Das Gebäudesystem von Harkon! Wenn du so etwas ähnliches in dein Projekt miteinbauen würdest käme es dem ganzen Spielablauf umso mehr zugute. Du kennst denke ich mal das Gebäudesystem? Bei Betritt von Burgen / Häuser od. auch einfach Gebäude allerlei ist eine zweite 'Landschaft' integriert die sozusagen das Innenleben der Holzhütte / welche Gebäude zeigt die du zukünftig eben einbauen wirst. Das ganze ließe sich natürlich auch auf Luken / Uboote / irgendwelche Maschinerien oder auch für Tunnelwege wie beispielsweise den Caves mit einbauen. Ich schließe mich außerdem an den bereits erstellten Posts an.
Last change: 05.08.2014 20:54