Kamikaze Board



Zurück   Kamikaze Board > RPG Maker > RPG Maker Programme und Erweiterungen

RPG Maker Programme und Erweiterungen Ein Forum für Programme und Erweiterungen zum RPG Maker.

Antwort
 
Themen-Optionen
Alt 07.08.2009, 15:55   #1
Darkas Männlich
Anfänger
 
Registriert seit: 05.02.2006
Beiträge: 61
Standard Open Game Studio

Hi!

Ich möchte ein noch relativ junges Tool zu Spieleentwicklung vorstellen: Das Open Game Studio. Ich halte dieses Unterforum für angebrachter da es auch als "RPG Maker Programm" verwendet werden kann. Außerdem denke ich dass es im passenden Unterforum recht schnell verschwinden würde.

Das Open Game Studio schlägt einen etwas anderen Weg als der RPG Maker ein, indem es Wert auf sogenannte Low-Level Funktionen legt die die Möglichkeiten des Scriptings wesentlich erweitern (ähnlich wie RGSS). Diese sind zur Zeit schon relativ mächtig, es gibt schon ein Script um ein beliebiges Event (mit Animation) über eine Map laufen zu lassen (also quasi einen NPC). Leider mangelt es zur Zeit noch etwas an den vielen High-Level Funktionen die der RPG Maker besitzt. Ein paar gibt es bereits (Maps, Animationen), einige werden noch kommen (Menüs, Speichern, etc.).

Die wichtigste High-Level Funktion ist vermutlich das Mapping. Es existiert ein Map Editor, der in das Open Game Studio integriert ist (daneben gibt es noch einen Editor für die Konfigurationsdatei (in der man beispielsweise Auflösung und Framerate einstellen kann), einen Tileset Editor, einen Eventeditor und einen Animationseditor).

Als Scriptsprache wird Lua verwendet, eine in der Spieleentwicklung recht beliebte, leicht zu erlernende Sprache. Es gibt auch ein paar Scriptbeispiele (bzw. Tests). Lua macht die Engine auch extremst schnell, auf einer leeren Map (also keine Events) schafft sie bei mir ungefähr 175 FPS, auf einer vollen schwankt sie zwischen 70 und 140 FPS (ohne Debugausgabe bei voller CPU Auslastung). Die meisten werden aber vermutlich die Engine sowieso drossen wollen, da 150 FPS auch nicht anders aussehen als 50 FPS. Das ist natürlich auch kein Problem, da wird die CPU Auslastung natürlich geringer. Bei mir sind das mit ~50 FPS (nach oben hin begrenzt, nach unten schwankt es immer ein wenig, also 45 - 50 FPS) ~8% CPU Auslastung, bei einem Snake spiel. Dazu muss man noch sagen dass wir bezüglich der Geschwindigkeit noch sehr wenig optimiert haben

Es wird auch parallel an Testspielen gearbeitet. Ziel ist es ein paar Lua Scripte zur Verfügung zu stellen die fast jeder braucht und will. Wir haben da beispielsweise eine Textbox, ein Bewegungsscript und eine effiziente (wenn auch im ersten moment nicht ganz triviale) Möglichkeit Positionen auf der Map zu vergleichen. Auch ein pseudo KS existiert.

Zurzeit aktuell ist das 0.0.8.8 Release, an dem man die wichtigsten Features sehen kann. Allerdings ist es schon sehr alt und zu großen Teilen überholt, es ist allerdings noch nicht ganz sicher wann ein neues Release auftauchen wird.

Auf unserer Website finden sich alle wichtigen Links, sowohl zu unserer Wiki (die noch unvollständig ist, aber nützliche Informationen enthält), als auch zu den Downloads und auch zu unserem Forum. Außerdem haben wir einen sogenannten Idea Torrent, der dazu da ist Ideen zu sammeln, bewerten, kommentieren etc. Wenn ihr also eine größere Idee habt (etwas das in einer Minute erklärt ist, für sinnvoll befunden wird und in 5 Minuten programmiert wird braucht man da nicht zu posten ), immer rein damit. Leider leidet unsere gesamte Community derzeit unter Personenmangel.

Das Projekt ist auf sourceforge.net gehostet, es ist 100% freier Code den jeder ansehen und verändern kann (GPL bzw. LGPL lizenziert).

Ich beantworte gerne alle Fragen, entweder hier im Forum, in #opengamestudio IRC channel auf freenode (englisch) oder #opengamestudio.de (deutsch).

Links:
http://darkas.cherrytree.at/de/ (Unsere Website)
http://darkas.cherrytree.at/ (Englisch)
http://en.wikipedia.org/wiki/High_and_low_level (Erklärung zu High-Level und Low-Level, leider nicht auf deutsch )
http://de.wikipedia.org/wiki/GNU_General_Public_License (GPL lizenz)
http://de.wikipedia.org/wiki/GNU_Les...Public_License (LGPL lizenz)

Geändert von Darkas (21.11.2010 um 20:53 Uhr).
Darkas ist offline   Mit Zitat antworten
Alt 07.08.2009, 16:28   #2
derula Männlich
23
 
Benutzerbild von derula
 
Registriert seit: 03.02.2003
Alter: 29
Beiträge: 3.068
Blog-Einträge: 67
Standard

Zitat:
Zitat von Darkas Beitrag anzeigen
Als Scriptsprache wird Lua verwendet, eine in der Spieleentwicklung recht beliebte, leicht zu erlernende Sprache.
Soweit ich weiß ist sie auch ziemlich schnell (zumindest mal schneller als Ruby...)

Zitat:
Zitat von Darkas Beitrag anzeigen
Ich beantworte gerne alle Fragen, entweder hier im Forum, in #opengamestudio IRC channel auf freenode (englisch) oder #opengamestudio.de (deutsch).
Heißt das du bist einer der (Stamm-)Entwickler des Projekts?

Hmm, klingt sehr interessant. Alle anderen Spieleentwicklungsumgebungen, die ich bisher kennengelernt habe, waren proprietärer Quark, zumeist kostenpflichtig.

Du hast es stark in Relation zum RPG Maker gesetzt - ist das Ziel, eine ähnliche Umgebung zu schaffen? Du sprachst zum Beispiel von Events und Pages usw.
__________________
"So, und jetzt Schluss mit dem Lamentieren - lasst uns etwas Kunst machen!!!" - GS_Raphael
derula ist offline   Mit Zitat antworten
Alt 07.08.2009, 18:32   #3
Darkas Männlich
Anfänger
 
Registriert seit: 05.02.2006
Beiträge: 61
Standard

Zitat:
Zitat von derula Beitrag anzeigen
Soweit ich weiß ist sie auch ziemlich schnell (zumindest mal schneller als Ruby...)
Ja, es ist soweit ich weiß auch ein erklärtes Ziel dass es schnell sein soll (deswegen wird es auch von vielen Spieleengines verwendet)

Zitat:
Zitat von derula Beitrag anzeigen
Heißt das du bist einer der (Stamm-)Entwickler des Projekts?
Ja, genau genommen ist das ganze von der Idee bis zur Implementierung zu fast 100% auf meinem mist gewachsen (auch wenn sich mittlerweile auch ein paar andere Entwickler beteiligen)

Zitat:
Zitat von derula Beitrag anzeigen
Du hast es stark in Relation zum RPG Maker gesetzt - ist das Ziel, eine ähnliche Umgebung zu schaffen? Du sprachst zum Beispiel von Events und Pages usw.
Nicht direkt, nur hat sich der RPG Maker als bestes Vergleichsobjekt angeboten Außerdem wurde ich vom RPG Maker inspiriert (bzw. von dessen Grenzen)
Darkas ist offline   Mit Zitat antworten
Alt 08.08.2009, 13:42   #4
Veyrne Männlich
Administrator
 
Benutzerbild von Veyrne
 
Registriert seit: 24.04.2004
Ort: Blewth Castle
Alter: 30
Beiträge: 13.441
Blog-Einträge: 11
Standard

Sehr interessantes Projekt. Leider haben sich ähnliche und vergleichbare Projekt ja viel zu oft in Luft aufgelöst. Habt ihr, neben der Verwendung von Lua, auch schon andere Pläne für die Software?
__________________

Filehost - Regeln - EBook - Raccu - YouTube - RPGA.info
Secret of Monkey Island (PSP)
Veyrne ist offline   Mit Zitat antworten
Alt 08.08.2009, 19:43   #5
Darkas Männlich
Anfänger
 
Registriert seit: 05.02.2006
Beiträge: 61
Standard

Naja... kommt drauf an ob ich einen Roman erzählen soll

Also ich denke mal das wichtigste Feature ist eine sehr flexible Plugin Architektur (die leider noch nicht so wirklich existiert aber keine große Sache sein sollte, "Plugins" lassen sich wunderbar im Code einfügen). Zur Zeit gibt es drei fest eingebaute "Plugins": SDL für 2D Grafiken (und später vielleicht Sound), Maps und Lua (ja, auch das ist austauschbar, vielleicht will ja doch lieber jemand irgendwann mal ruby haben ). Für die Zukunft wird es garantiert noch ein Plugin für 3D Grafiken geben, etc.

Ansonsten eben die vielen Low-Level Funktionen mit denen auch schon viel möglich ist (mal ein einfaches Beispiel, jede Map ist ein Engine Objekt, jedes Bild ist auch ein Engine Objekt. Beide lassen sich mit genau den selben Funktionen bearbeiten).

Was vielleicht noch ein deutlicher Vorteil gegenüber dem RPG Maker ist, ist dass Unterstützung für richtige Scripts von Haus aus dabei ist und nicht über komplizierte Hintertürchen hergeholt werden muss.

Übrigens: auf der Projektseite ist ein erster Screenshot von der Engine zu sehen. Die Engine schafft auf meinem Rechner bis zu 200 FPS (höchstwert, meistens eher 150 - 170, wobei das alles errechnete Werte sind, also nicht gezählt), allerdings passiert ja bei 2D Grafiken auch nicht besonders viel, ich habe noch keine Möglichkeit gefunden die Grenzen zu erkunden.

Der Download von der aktuellen Testversion ist in Arbeit, ich denke mal bis das hier überhaupt jemand gelesen hat ist das ganze schon hochgeladen. Einfach mal auf der Projektseite nachschaun wen es interessiert. Der Map Editor hat noch einen kleinen Bug, er wird nicht laufen wenn die Map die er bearbeiten soll Events enthält (relativ einfach zu fixen, allerdings habe ich ein kleinen Code freeze verhängt und da hat es der Fix nicht mehr reingeschafft, vorallem weil der Bug zu spät entdeckt wurde), also Events einfach rausnehmen, speichern und danach wieder laden. Weitere Hinweise finden sich in einer Textdatei die dabei sein wird (auf Englisch), unter anderem zur bedienung des Map Editors (der ist noch relativ Spartanisch aber die Engine war einfach erstmal wichtiger).

PS: naja, also doch Roman :P
Darkas ist offline   Mit Zitat antworten
Alt 11.08.2009, 18:43   #6
Darkas Männlich
Anfänger
 
Registriert seit: 05.02.2006
Beiträge: 61
Standard

Wie man in den Statistiken sehen konnte haben ein paar leute mal reingeschaut aber keiner hat sich getraut mein Testpacket runterzuladen. Deswegen hab ich mir gedacht ich Liste einfach mal ein paar Features etc. auf mit denen man schon etwas Anfangen kann:

Maps:
Ebenen (bis zu 255 falls jemand so viele braucht )
Die vom RPG Maker bekannten autotiles
Transparenz
Blockierende Tiles (das Testscript zur Bewegung benutzt das auch)
Map wechseln ("Teleport", aber noch nicht mit Position)
Map verschieben (man kann die X und Y koordinaten der oberen linken ecke der map verändern)
Events... naja, Scripte zumindest

Scripte:
Verschiedene runlevel (einmal, einmal pro frame und so lange bis das script sich selbst löscht oder ein wait aufruft)
Objekte erstellen (beispielsweise Images oder Text)
Objekte verändern (verschieben, Objektspezifische sachen wie Bild ändern bei Images oder Text ändern bei Text Objekten und sogenannte context values ändern, dazu unten mehr)
Das volle Potential von Lua

Das ist nur ein kleiner Auszug, ich habe wahrscheinlich die Hälfte vergessen Auf jeden Fall war das das wichtigste.

Und hier noch ein kleines Script für alle die wissen wollen was ungefähr möglich ist:
Code:
time = 300
tilesize = 16

if object.exists("test") then
  o = object.getObject("test")

  if o:getValue("move", "dir") == 0 then
    if game.keyPressed("up") and game.callEngineFunction("map", "isWalkable", object.getObject("map"), o:getX() / tilesize, (o:getY() / tilesize) - 1) then
      o:setValue("move", "dir", 1)
    end

    if game.keyPressed("right") and game.callEngineFunction("map", "isWalkable", object.getObject("map"), (o:getX() / tilesize) + 1, o:getY() / tilesize) then
      o:setValue("move", "dir", 2)
    end

    if game.keyPressed("down") and game.callEngineFunction("map", "isWalkable", object.getObject("map"), o:getX() / tilesize, (o:getY() / tilesize) + 1) then
      o:setValue("move", "dir", 3)
    end

    if game.keyPressed("left") and game.callEngineFunction("map", "isWalkable", object.getObject("map"), (o:getX() / tilesize) - 1, o:getY() / tilesize) then
      o:setValue("move", "dir", 4)
    end
    o:setValue("move", "distance", 0)
    o:setValue("move", "oldX", o:getX())
    o:setValue("move", "oldY", o:getY())
  end

  if not (o:getValue("move", "dir") == 0) then
    distance = o:getValue("move", "distance") + game.getFrametime()
    o:setValue("move", "distance", distance)

    if distance > time then distance = time end

    if o:getValue("move", "dir") == 1 then
      o:setY(o:getValue("move", "oldY") - ((distance * tilesize) / time))
    end

    if o:getValue("move", "dir") == 2 then
      o:setX(o:getValue("move", "oldX") + ((distance * tilesize) / time))
    end

    if o:getValue("move", "dir") == 3 then
      o:setY(o:getValue("move", "oldY") + ((distance * tilesize) / time))
    end

    if o:getValue("move", "dir") == 4 then
      o:setX(o:getValue("move", "oldX") - ((distance * tilesize) / time))
    end

    if distance >= time then
      distance = 0 
      o:setValue("move", "dir", 0)
    end

    o:setValue("move", "distance", distance)
  end
else
  o = image.new()
  o:setX(0)
  o:setY(0)
  o:setValue("move", "dir", 0)
  o:setValue("move", "distance", 0)
  o:setImage("Bush")
  o:addToQueue("test")
end
Das Script prüft ob ein Objekt mit dem namen test vorhanden ist, wenn nicht erstellt es eins. Wenn es vorhanden ist prüft es ob sich das Objekt in eine Richtung bewegt (das ist ein beispiel für die context values: es prüft ob die variable dir im context move gleich 0 ist), wenn es sich nicht in eine Richtung bewegt wird geprüft ob eine der Pfeiltasten gedrückt wurde, falls ja und das entsprechende Tile begehbar ist wir die Bewegungsrichtung von dem Objekt gesetzt. Dann wird nochmal geprüft of immernoch keine Bewegungsrichtung vorhanden ist, falls doch wird das Objekt bewegt. Dabei werden wieder die context values verwendet. Außerdem ist dort auch noch die frametime verwendet. Die frametime ist die Zeit in millisekunden die gebraucht wurde bis das letzte Frame fertig war. Eine frametime von 1 wäre eine millisekunde pro frame also 1000/1 = 1000 FPS, eine frametime von 10 wäre 1000/10 = 100 FPS. Wer jetzt mehr lust hat sich damit zu beschäftigen: ein einfaches KS wäre beispielsweise cool. Ich denke die meisten Features dafür müssten auch schon vorhanden sein, wenn nicht dann sagt mir einfach was dafür noch notwendig wäre und ich kümmer mich drum.
Darkas ist offline   Mit Zitat antworten
Alt 11.08.2009, 22:21   #7
derula Männlich
23
 
Benutzerbild von derula
 
Registriert seit: 03.02.2003
Alter: 29
Beiträge: 3.068
Blog-Einträge: 67
Standard

Hmm, tut mir leid, das zu sagen, aber ich glaube du wirst hier eher weniger Leute finden, dir helfen können / wollen... die meisten hier haben panische Angst vorm Programmieren, und alle anderen sind schwer mit eigenen Projekten beschäftigt, soweit ich weiß :/

Mich persönlich interessiert das Projekt sehr; andererseits habe ich bewusst für mein Projekt den RMXP gewählt, da dort das meiste bereits vorgegeben ist... :/

Ist das Projekt plattformunabhängig? Auf der Webseite steht nix dazu. Das wäre schon ein großer Vorteil.
__________________
"So, und jetzt Schluss mit dem Lamentieren - lasst uns etwas Kunst machen!!!" - GS_Raphael
derula ist offline   Mit Zitat antworten
Alt 11.08.2009, 22:44   #8
Darkas Männlich
Anfänger
 
Registriert seit: 05.02.2006
Beiträge: 61
Standard

Ja, sowohl der Map Editor als auch die Engine laufen auf Windows und Linux (mit automake)

PS: Es ist ja nur scripten :P

Geändert von Darkas (11.08.2009 um 22:48 Uhr).
Darkas ist offline   Mit Zitat antworten
Alt 12.08.2009, 10:58   #9
Cherry Männlich
Kirscherator
 
Benutzerbild von Cherry
 
Registriert seit: 04.10.2007
Ort: Österreich/Salzburg/Pongau
Alter: 23
Beiträge: 1.183
Blog-Einträge: 1
Standard

Wenn ich nicht so wenig Zeit hätte, würde ich mich melden.

Aber es interessiert mich trotzdem sehr, ich würde gerne was näheres über die Interna erfahren, vllt kann ich ja doch helfen.

mfG Cherry

EDIT: Ich kriegt das gar nicht mal zum Laufen. Die Engine sowie der Map Editor, beide schließen sich, wenn ich keine Parameter angebe. Mit "map1.xml" bleibt die Engine offen, aber schwarz. Der Map Editor schließt sich dann aber auch sofort. In stdout.txt steht in beiden Fällen "Document: Map1.xmlcannot be load"... Du könntest btw dich erst mal auf die Engine konzentrieren und für Maps das FMP-Format benutzen, wo es schon einige leistungsfähige Editoren gibt. NPCs oder so könnte man weiterhin über XML machen.
__________________
Cherry ist offline   Mit Zitat antworten
Alt 12.08.2009, 11:28   #10
Darkas Männlich
Anfänger
 
Registriert seit: 05.02.2006
Beiträge: 61
Standard

Hmm... ganz einfach: ich habe vergessen die Font zu kopieren. Dann läuft die Engine wunderbar. Bzgl. des Map Editors hilft es unter umständen ein bisschen weiter oben hier im Thread zu lesen, er wird abstürzen wenn die Map events enthält. Diese finden sich ganz unten in der Map, leicht zu erkennen und zu löschen. Ich denke ich werde das ganze ein wenig updaten da ich ein paar neue wichtige Features hinzugefügt haben und diesen Bux gefixt habe.

Wegen den Interna wäre es vielleicht besser das ganze irgendwo anders zu diskutieren, die sind schon etwas komplizierter Eventuell im IRC wenn du sowas hast, oder per PM

PS: Ich habe die Font mal in den Anhang gepackt, einfach reinkopieren
Angehängte Dateien
Dateityp: zip FreeSans.zip (252,7 KB, 3x aufgerufen)
Darkas ist offline   Mit Zitat antworten
Alt 12.08.2009, 11:58   #11
Atharod Männlich
Abenteurer
 
Benutzerbild von Atharod
 
Registriert seit: 06.05.2003
Beiträge: 548
Blog-Einträge: 4
Standard

ich würde sehr gerne ein paar Screenshots hier haben wollen, amit man sich das Projekt schonmal ein kleinwenig begutachten kann.

Der eine Screenshot, der auch der Hauptseite ist kann man leider nicht viel absehen.
__________________
Möge die Kreativität mit euch sein.




Um zur benutzeroberfläche zu kommen Banner klicken!
Atharod ist offline   Mit Zitat antworten
Alt 12.08.2009, 12:17   #12
Darkas Männlich
Anfänger
 
Registriert seit: 05.02.2006
Beiträge: 61
Standard

Ähh..... naja, viel mehr gibts eigentlich nicht zu sehen... Es arbeiten derzeit 2 Leute an einem Menschenwürdigen GUI für den Map Editor, dann gibt es mehr interessantes. Die einzigsten anderen Screenshots würden dasselbe ein wenig verändert Zeigen, vielleicht auf einer anderen Map oder so

Wenn ich das Feature and dem ich grade Arbeite fertig habe mache ich wahrscheinlich ein kleines Textbox script und dann muss ich mal schaun ob ich schon ein anderes Objekt mit Aktionen einbaun kann wie ein Schild das man lesen kann.
Darkas ist offline   Mit Zitat antworten
Alt 12.08.2009, 12:54   #13
Cherry Männlich
Kirscherator
 
Benutzerbild von Cherry
 
Registriert seit: 04.10.2007
Ort: Österreich/Salzburg/Pongau
Alter: 23
Beiträge: 1.183
Blog-Einträge: 1
Standard

Du kannst mich über ICQ/MSN/Skype erreichen, Addys stehen im Profil.

Das mit FreeSans hat übrigens nichts geändert. Auch das Löschen der Events nicht.
__________________
Cherry ist offline   Mit Zitat antworten
Alt 12.08.2009, 17:48   #14
Darkas Männlich
Anfänger
 
Registriert seit: 05.02.2006
Beiträge: 61
Standard

Da das Problem jetzt gelöst ist: die FreeSans.ttf muss in das Projektverzeichnis, installieren Hilft nicht.

Da mehr Screenshots gewünscht wurden und ich auch endlich Transparenz und Color Keys (auch quasi transparenz, bei der eine Farbe unsichtbar wird) drin habe, gibts jetzt einen weiteren Screenshot (bei view more screenshots) auf der Website.

Mit einem kleinem neuen Feature ist es jetzt auch möglich ein kleines Textbox script zu schreiben (davor ging es auch aber jetzt wesentlich besser). Dazu ist jetzt auch ein Screenshot auf der Website. Wenn man sich die 3 Screenshots anschaut sieht man deutlich wie das ganze voranschreitet.

Um die ganzen neuen Features auch für alle zugänglich zu machen, habe ich ein weiteres Testrelease hochgeladen. Es behebt auch den Bug im Mapeditor. Leider ist das aber auch schon alles was beim Mapeditor passiert ist. Dieses release hat schon ziemlich viele Features und ich würde mal behaupten dass jeder der Ruby kann auch ohne große schwierigkeiten Lua lernen kann und mit dem Release wirklich schon einiges anstellen kann. Ein kleines Textbox script liegt bei, genauso wie das Bewegungsscript das nur ein klein wenig geändert wurde damit der Busch nicht mehr eckig ist

Geändert von Darkas (13.08.2009 um 14:08 Uhr).
Darkas ist offline   Mit Zitat antworten
Alt 17.08.2009, 16:28   #15
Darkas Männlich
Anfänger
 
Registriert seit: 05.02.2006
Beiträge: 61
Standard

Der Map Editor ist jetzt fast benutzbar, ein Bug muss noch weg und Tile und Ebenenauswahl fehlen noch und dann werde ich ein nächstes kleines Release machen, eventuell wird es auch eine Versionsnummer 0.0.X tragen, je nachdem wie viel noch fehlt.
Darkas ist offline   Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:45 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
RPGA.info