Anmerkung: Diese Zusammenfassung besteht im Grunde aus dem alten Bericht, jedoch erweitert und überarbeitet.
Noch was wichtiges vorweg :
R-PG ist der Name des Teams .
R-PG ist ein allgemeiner Sammelbegriff für alles was das Projekt betrifft.
Der Editor selber heisst NICHT R-PG !
Der Editor trägt momentan den Codenamen „MINERVA“
Erstmal wieder eine kleine Zusammenfassung :
Das R-PG Team hat sich vor ca 1 1/2 Jahren das Ziel gesetzt , unabhängig von bestehenden Standarts ein RPG zu entwickeln. Daraus entstand mit der Zeit ein gut eingespieltes Team das bis heute versucht dieses Ziel zu verwirklichen.
Das R-PG Projekt besteht mitlerweile aus zwei Teilen.
Der eine ist unser eigenes Spiel für wir seit Anfang des Projekts Content entwerfen.
Der andere sind das komplette Editorsystem und das Spielsystem an sich.
Die R-PG Engine die beim Spielsystem und beim Editor benutzt wird besteht aus einer komplett selbstentwickelten DirectX 8 Engine und sehr vielen Untersystemen (auf die ich gleich noch weiter eingehen werde), alles geschrieben in Visual Basic.
Der aktuelle Status :
Zuletzt konnte man den Editor noch als eine Art Studio bestaunen , diese Idee wurde aber
Wieder verworfen da sie auf Dauer zu umständlich zu entwickeln und zu unhandlich zu benutzen gewesen wäre.
Nach einem kompletten Recode zeigt sich der Editor nun wieder in einem gewohnt einfachen und übersichtlichen Design.
![]()
Was bei uns auch noch Hauptthema für Verbesserungen war in den letzten Monaten war der Rm2K Support.
Zuerst dachten wir noch das solche Features gar nicht oder zumindest nur in geringen Maß umsetzbar gewesen wären, DFYX und DreadKnight konnten uns aber eines besseren belehren,
und so sind jetzt alle RPG-Maker 2000 Animationen , Das komplette Rm2k – Tilesetsystem (Pfad und Animationssysteme) und sogar ein eingeschrenkter Map Import in Minerva vorhanden.
![]()
Zudem kamen noch einige Recodes, verbesserte Tools, und erweiterungen/Verbesserungen am bisherigen Code
Allgemeine Informationen zur Grafikengine :
Hier möchte ich auf die Grundfunktionen unserer Grafikengine eingehen, alle Funktionen die hier genannt werden gelten genauso auch für den Editor und für die Gameengine.
• Als Grafikformat kann jedes von DX verstandene Format verwendet werden, dazu gehören z.B. : .bmp ; .jpg ; .gif ; .png usw
Es können bei Formaten die Alphamaps unterstützen (wie png) auch solche verwendet werden.
Ausserdem lassen sich noch einige von uns entwickelte Grafikformate direkt als Bild in der Engine benutzen, dazu gehören z.B. unsere 2 Animationsengines :
AniQ , Zum erstellen von Bildfolgen mit extra Effekten, keinerlei Begrenzungen usw . mit dieser Engine sind alle RM2K Animationen 100% kompatibel.
Mit dem AniQ Editor lassen sich auch animierte Gifs umwandeln!
![]()
Rani , Ähnlich dem Flash Format zum erstellen kompletter animierter Scenen.
![]()
Die Verwendung von Bibliotheken wurde zwar minimiert, auf eine können bzw. wollen wir nicht verzichten , diese Bibliothek ist „Fmod“ . Über Fmod lassen sich im Projekt z.B. Mp3’s oder Ogg’s ohne Probleme mit schönen Fade Effekten abspielen.
Da wir uns aber ungern nur auf andere verlassen gehört dazu noch unsere eigene 3D Sound Engine:
• Spielt alle gängigen Formate wie .mid ; .wav ; .mp3 usw ab
Soundquellen lassen sich überall auf der Map verteilen und werden je nach Entfernung auf die einzelnen Boxen verteilt .
So ist es z.B. möglich ohne einen Wahrnehmbaren Wechsel zwichen 2 Musikstücken zu wechseln.
Um die Engine ein wenig flotter zu gestalten sollen sehr CPU intensive Berechnungen auf externe in Maschinencode geschriebene DLL’s ausgelagert werden.
Bisher ist dies nur bei der Kollisionsabfrage der Fall , so verfügen wir jedoch über eine Pixelperfekte Abfrage die sich überall einsetzen lässt und dem Benutzer ganz andere Möglichkeiten bietet als eine simple Bounding-Rect Abfrage wie im RPG-Maker.
Soweit es uns möglich war versucht die Engine vor dem starten selber herauszufinden was für ein System der Benutzer besitzt und sich darauf einzustellen , dieses Verfahren nennt man „Enumeration“.
Die Engine verfügt über eine Vollbild und Fenster Funktion, so kann man also auch den Editor im Vollbild oder das Game im Fenster darstellen.
Der Editor :
Als erstes möchte ich hier noch mal genau auf den Editor und seinen aktuellen Status eingehn.
Da der Editor einem kompletten Recode unterlag, sind noch nicht alle Features wieder in das Programm integriert, sollte dem so sein werde ich an der entsprechenden Stelle genauer darauf eingehn.
Fangen wir mal mit dem Prinzip an auf dem die Maps in Minerva aufbauen.
• Maps
Eine Map besteht aus mindestens einem (Höhen-)Level , das Höhensystem selber ist jedoch komplett optional und bleibt für den Benutzer unsichtbar wenn er es nicht benötigt.
Die Anzahl der Höhenlevel ist unbegrenzt.
Ein solcher Level besteht aus einer ebenfalls nicht begrenzten Anzahl an Layern.
Ein Layer ist das was man später als eigentliche map sieht, zumindest eine Ebene davon.
Auf einem Layer lassen sich einzelne Tiles aus dem Tileset platzieren.
• Einzelne Layer
Layer lassen sich in vielerlei Hinsicht bearbeiten, dafür steht dem Benutzer in Minerva eine Auswahl an Werkzeugen zur Verfügung auf die ich gleich genauer eingehen werde.
Es lassen sich auf jedem Layer unbegrenzt viele Tilesets gleichzeitig einsetzen, für die Tilesets selber gibt es ebenfalls keinerlei Begrenzung was z.B. die Größe oder ähnliches angeht.
Das Bearbeiten der einzelnen Layer fällt in Minerva ebenfalls sehr leicht.
Sollte man aus dem RM2K umsteigen und auf dessen Resourcen zurückgreifen so stehen einem alle aus dem RM2K bekannten Tools zur Verfügung, einschließlich dem RM2K Pfadsystem und den Tile-Animationen.
Es stehen dem Benutzer folgende Tools zur Verfügung:
1. Das Standart Pen Tool, überträgt eine Auswahl aus dem Tileset 1:1 auf das aktuelle Layer.
2. Das Random Pen Tool, überträgt per Zufall eines der Tiles aus der aktuellen Auswahl auf das Layer.
3. Das Rect Tool, füllt mit der aktuellen Auswahl im Tileset einen rechteckigen Bereich auf dem Layer.
4. Das Path Tool, ähnlich dem RM2K Pfadsystem können damit einfach Wege erstellt werden um Zeit zu sparen.
5. Die Pipette, markiert das im Layer ausgewählte Tile im Tileset.
6. Der Radiergummi, löscht ein Feld auf dem aktuellen Layer.
7. 16*16 zu 32*32, schaltet zwischen kleinen RM2K Tiles und normalgroßen 32*32 Tiles um
Ok, dann gehe ich mal weiter auf die einzelnen Features des Editors ein:
• Komplette Projektverwaltung direkt im Editor, Maps können in Ordnern sortiert werden damit auch bei einer grossen Mapanzahl die Übersicht nicht verloren geht.
• Layer können entweder mit Alphablending oder durch anpassen der Helligkeit hervorgehoben werden, so weiss man immer auf welchem Layer man sich momentan befindet.
• Transparenz wird wie in Photoshop durch Grau-Weiße Kästchen dargestellt, trägt ebenfalls zur Übersicht bei.
Ein besonderes Feature möchte ich an dieser Stelle natürlich auch nicht auslassen^^
Das ist unser RM2K – Map Import … OK komplette Maps können wir nicht importieren , sprich , der Eventlayer fehlt . aber das wichtigste ist schon da , Maps werden komplett eingelesen und Upper und Lower Layer in unser Format übertragen.
![]()
Das Scriptsystem
Das Scriptsystem basiert komplett auf der Sprache „VBScript“.
Diese Sprache ist ohne grosse Schwierigkeiten zu erlernen und auch im Netz finden sich bereits Unmengen an Tutorials.
Der Vorteil von VBScript ist das man Objektorientiert arbeiten kann.
Scripts werden direkt im Editor im Scripteditor geschrieben und einem Npc auf der Map zugewiesen. Die sogenannten Trigger (Auslöser) werden direkt in den Code eingebaut.
Nahezu jeder Part am Game lässt sich per Script beinflussen, für komplexe Dinge wie ein Menusystem wird es Wizards geben.
Die GameEngine:
Die Gameengine , oder auch der Player interpretiert die vom Editor erstellten Pakete und spielt sie ab.
Diese Pakete werden mit einem von uns entwickelten PAK Format in eine Datei gepackt und auf Wunsch verschlüsselt , so ist es nicht mehr möglich Ressourcen einfach zu entnehmen.
Das Hauptfeature was unseren Player von dem den Rpg-Makers unterscheidet ist wohl das Höhensystem. So kann eine Map aus unendlich vielen Höhenleveln bestehen die der Player begehen/bespringen kann. Mit diesem System lassen sich ohne Probleme schnelle Action Rpgs wie z.b. Alundra umsetzen.
Noch ein paar weitere besondere Features :
• Überblendeffekte
Solche Effekte können überall eingesetzt werden , z.B. beim Mapwechsel oder beim schalten in das Menu , der Bildschirm verschwimmt , wird Kästchenweise abgebaut usw.
• Die Menuengine , Menus lassen sich komplett scripten , sind frei skinnbar und in keiner Weise irgentwie beschränkt . Dazu gibt es einen Menu Editor mit dem man seine Menus einfach per Drag & Drop zusammen basteln kann. Dieser Editor exportiert dann ein Script das man direkt im Game anwenden kann.
![]()
![]()
• Das Frameskip System. Damit die Engine auch auf den ältesten Rechnern läuft haben wir ein kleines Frameskip System entwickelt, man kann die Engine so bei theoretisch 1200 FPS auf einem 2200+ Amd laufen lassen ohne das man erkennt das da getrickst wird.
• Das Messagesystem ist auch besonders ausgeklügelt , so lassen sich so viele Messages gleichzeitig anzeigen wie gewünscht wird , Messages können getimed werden , auto. Abgespielt oder vom Benutzer gesteuert werden.
• Die Particle engine , damit lassen sich ohne Probleme dinge wie Wettereffekte ,Feuer usw darstellen (siehe Dungeon Video). In verbindung mit einer Animation lassen sich besonders interessante Effekte erzielen.
![]()
Funktionen und Programme die momentan keine Verwendung im Projekt finden :
Zu diesen leider momentan nicht gebrauchten Funktionen gehört leider auch eine komplette GUI Engine die alle Controls auf einer Form per DX komplett übermalt , so erhält man eine schöne gerenderte GUI die sehr einfach zu erstellen und zu warten ist.
Evtl findet diese Engine jedoch wieder Verwendung bei einigen InGame Menus oder einigen Tools.
Abschliessende Worte :
Ich bin mir wie immer sicher das ich die Hälfte vergessen hab …aber was solls….wer Fragen hat :
mail@smokingfish.de
Internetauftritt des R-PG Teams , mit noch mehr Screenshots, Videos, Musik und Informationen