Danke soweit für die Beteiligung, ich versuche einmal auf die genannten Punkte einzugehen so gut ich kann:
Zitat von Kelven
Unbedingt:
- eine höhere Programmiersprache hinter dem Klick-Editor, damit man nicht auf den Event-Code angewiesen ist (also so wie auf den neuen Makern)
...
Soetwas würde ich persönlich nicht gut finden.
Der Grund dafür klingt vielleicht ein wenig esoterisch, aber meiner Meinung nach spaltet soetwas nur die Community.
Die einen bleiben beim GUI-Code und wollen keine Programmiersprache lernen um das Programm zu verwenden; die anderen stürzen sich nur auf die Programmiersprache, da der GUI-Code unnötig wird sobald man eine Sprache im Hintergrund bedienen kann.
Dadurch entstehen zwei Lager, und beide bringen Resourcen und Systeme raus, welche zueinander nur bedingt, oder garnicht kompatibel sind.
Anstatt dessen würde ich persönlich eher versuchen den GUI-Code so ausgiebig und mächtig zu machen wie möglich, und dennoch leicht damit zu arbeiten.
Falls jemand wirklich bereit ist eine höhere Programmiersprache zu lernen, dann braucht er auch keinen Maker mehr, das ist für solch eine Person nur eine Zeitverschwendung.
Zitat von Kelven
- Unterstützung gängiger Musikformate wie MP3 und OGG
OGG ist jedoch ein super Format; perfekt geeignet für soetwas wie Videospiele.
Auch Wave und Midi sind leicht umzusetzen.
Zitat von Kelven
- 24-bit Farben + Alphatransparenz
...
Das ist vollkommen außer Frage. Das wäre das mindeste auf das ich mich einlassen würde.
Zitat von Kelven
- ein Map-Editor, der mindestens so viele Layer hat wie auf dem XP
...
Es ist absolut kein Problem beliebig viele Layer zu erlauben. Es ist nur so, dass man die Performance des ganzen opimieren kann, wenn man eine feste Obergrenze an Layern hat.
Ich würde aber schon sagen, dass 3 - 5 Layer für so ziemlich jedes Spiel mehr als ausreichend sein sollten.
Zitat von Kelven
- die Charsets bewegen sich Pixel für Pixel, anstelle von Tile für Tile
...
Das ist auch kein Problem, benötigt jedoch ein Kollisionssystem, welches für den Entwickler leicht zu verwenden und zu bearbeiten ist. Eine Pixel genaue Bewegung mit dem Tile-basierten Kollisionssystem ist nicht sehr schön anzusehen.
Zitat von Kelven
- der Maker sollte nicht zu stark auf die alten SNES-RPGs ausgerichtet sein, es sollte auch möglich sein, Action-Adventures und -Rollenspiele zu entwickeln
...
Ich dachte auch daran 2D Spiele allgemein damit erstellen zu können, nicht nur RPG's.
Also ganz besonders auch Strategiespiele, Dungeon-Crawler, Tower Defense Games, Jump-n-Runs, etc.
Zitat von Kelven
- unterschiedliche Auflösungen, Wahl zwischen 16x16 und 32x32 Tiles
...
Ich denke ich würde absolut beliebige Tilegrößen erlauben. Auch 13 x 17 oder dergleichen. Technisch gesehen macht das überhaupt keinen Unterschied.
Zitat von Kelven
- Pathfinding bei "Step toward hero"-Kommando
...
Das ist eine recht komplizierte Sache. Bei einfacher Tile-basierter Bewegung und Kollision ist Pathfinding sehr simpel und schnell implementiert.
Wenn nun aber kompliziertere Bewegungssysteme und Kollisionsabfragen dazu kommen wird das Pathfinding entsprechend auch schwieriger.
Wenn nun alle Charaktere beliebige Kollisionsboxen haben können, und sich Pixel genau bewegen, wird dieses relativ simple Problem sehr schnell zu einem schwierigen Problem.
Zitat von Kelven
- das Standardsystem (also Menü, Charakter-Management und KS) sollte variabler sein
...
Dafür bin ich auch; es ist nur nicht so einfach sich ein gutes System zu überlegen, welches erstens flexibel genug ist, aber zweitens simpel genug, damit man sich schnell und einfach einarbeiten kann.
Zitat von Corti
Objektorientierung. Furchtbar ist es, Charsets zu kopieren und für Posen den Grafik wechseln zu müssen und mit Eventseiten und dann jedes mal das Event wieder aus der Liste suchen.
Geil wären "Charakter X"-Objekte und enen gibt man dann die Möglichkeit Posen anzunehmen, Animationen abzuspielen, sie hinlaufen zu lassen etc.
...
Ja, es war auch meine Idee alles sehr "objektorientiert" zu halten.
Vor allem was Animationen angeht, so würde ich wahrscheinlich versuchen das 3D Modell Prinzip zu verwenden. Also, dass der Entwickler beliebig viele Animationen in ein Set zusammenpacken kann; dann einem Sprite solch ein Set zuweist, und diesen Sprite dann Animationen aus dem Set abspielen lassen kann.
Wie kompliziert oder simpel man soetwas dann implementiert ist noch etwas schwammig, von der groben Idee her finde ich dies aber simpel genug um es schnell verstehen zu können, und flexibel genug um auch kompliziertere Spiele einfach erstellen zu können.
Danke soweit für die Beteiligung, ich hoffe es finden sich noch einige weitere Meinungen.
Generell alles nice to have, aber vmtl is das meiste schwer nachträglich einzubauen, da es doch recht tief ins System geht.
Hauptproblem ist, dassder Maker leider kaum Dynamikeinstellungen zulässt, welche jedoch für jedes Spiel fürs Gefühl von äußerster Wichtigkeit sind (wie man das Spiel steuert und sich die Figur bewegt sind das A und O für jedes Spiel und würden auch dementsprechende Einstellungen in jeder Art von 2D-Engine vertragen).
Ich versuch das ganze so gut wie möglich auf den Punkt zu bringen. Wie mans letztendlich dann alles zusammenbaut und obs machbar ist, weiß ich nicht (Hoff es ist zumindest verständlich).
Bzgl. Grafik und Animation kann ich dir mit Sicherheit ziemlich viele Fragen beantworten, da ich dort auch meist imme rauf die selben Probleme stoße
Generelle Grafische Darstellung
Einstellung für Auflösung/Pixel-Zoom/Tilegrößen
Auflösung (nativ) heißt dass man ne Auswahl hat um die gängisten Auflösungen auszuwählen
Zoom (ob man die grafiken mit 100%, 200%, 300% usw. scharf darstellen lässt)
Tilegrößen, würde 8x8, 16x16, 32x32, 48x48 und 64x64 als grundeinstellung vorgeben... kaum wer verwendet andere Tilegrößen, es sei denn für iso Grafiken.
(z.B. 640x360 300% 32x32 Tile Einstellung und man kommt auf ne State-of-the-art HD Aufösung, bzw. mit 200% kommt man auf 720p)
Z-Sortierung von sprites anhand grundfläche/unterkante (wenn man sprites hat die größer als ein tile sind, bzw. höher stehen, unter tiefer stehenden sprites angezeigt werden - eliminirt ziemlich viel clipping)
Zoom (um bei gewissen Events näher ins Geschehen zu Zoomen) Screenshake (Um bei gewissen Events den Screen schütteln zu lassen)
Hauptcharakterbewegung:
Einstellung für die Zentrierung des Hauptcharakters (um bei größeren Figuren/Missbrauch des Programms bezüglich Genre mehr Kontrolle zu geben)
Feinabstimmung für Geh/Laufgeschwindigkeiten (Frameanzahl & Schrittgeschwindigkeit)
Standardmäßige 8-Richtungsunterstützung für Chars oder zumindest für den Hauptcharakter, für NPCs macht mans meistens aufwandtechnisch eh nicht (für gehen/laufen, 4 richtungen sind für ne Basis OK, fürn Hauptchar isses vor allem bei Action RPGs hakelig, falls nur 4 Richtungen vorhanden sind)
Animationseditor für jegliche Spritesheets (mit Angabe der ms/frame):
bestenfalls zum selber einstellen welche Frames für welche Animationen verwendet werden können - quasi dass man jede Animation für jede RIchtung programmieren kann und dann darauf zugreifen
Gut wäre hierbei jede Animation mit nem Sound verknüpfen zu können, für den man auch nen Offset einstellen kann, wann er abgespielt wird (würd ne gewisse Standard-Sounddynamik bringen)
Bewegung losgelöst vom Tilegrid
Pixelmovement ist nett, im Normalfall ist es für ein RPG allerdings genug 1/2 oder 1/4 Tile Größen für Bewegungen zu haben.
Heißt ne einstellung für schrittweiten wär optimal
Für gehen/Rennen braucht man vmtl verschiedene Schrittweiten (Rennschritte sind weiter und das muss auch in der Engine so vorgesehen werden um die Geschwindigkeit rüberzubringen)
Vor allem wenn man die Frameanzahl fürs und die Relativbewegung des Charakters abstimmt, würden schrittweiten helfen.
Beispiele aus der Praxis:
tilegröße 16x16
ich hab ne schrittweit von 8 pixel und 8 frames für den char, heißt jeden pixel wird n eigener frame angezeigt -> superflüssige Animation, gute kontrolle
beim rennen: selbe schrittweite 16 pixel, 8 frames (4 frames linker fuß, 4 frames rechter fuß) char nimmt immer 2 schritte, falls nur ein schritt möglich ist, wird nur die erste hälfte der frames angezeigt)
ich hab ne schrittweit von 16 pixel und 3 frames für den char -> superhakelige Animation, wenig kontrolle
ich hab ne schrittweite von 8 pixel und 3 frames für den char -> hakelige animation, jedoch noch verschmerzbar, gute kontrolle
Mapping:
Kollisionsmaps:
Passierbarkeit einstellbar via mapbarer Kollisionsmaps, statt Kolisionsabfrage im Tileset
Warum?
Man kann erstmal ne map bauen, ohne sich über Kollision Gedanken zu machen
die Kollision kann nachträglich über die Map gezeichnet werden
Sämtliche Begehbarkeitsfehler gehören der Vergangenheit an
(Für plattformen und dergleichen muss die kollisionsmap natürlich irgendwie ansteuerbar sein, damit man kollisionsblöcke sozusagen ändern kann)
Müsste natürlich verschiedene Kollisionstiles geben von welcher seite man gewisse tiles betreten kann und von welcher seite nicht (ganz praktisch, wenn man eher 3D angehauchte levels bauen will)
Beliebig große Tilesets
bzw. Falls eine standardgröße per tileset, beliebig viele tilesets verwendbar
Animationstiles mit beliebig vielen Frames (losgelöst vom standardtileset) und mit globaler Ansteuerung vom timing
Quasi, dass man Tileanimationen vorher zusammenbauen kann und dann setzt man so ein Animationstileobjekt. Alle laufen exakt gleich, wobei man selbe rnen Zeit/Frameoffset einstellen kann.
Einzeltiles/Meta Tiles
Mappingmäßig wäre es gut wenn man ein tileset auf einzeltiles und Meta-Objekte einstellen könnte.
Meta objekte sind einfach aus mehreren tiles zusammengesetzt.
Wenn ich jetzt nen Baum oder ein Teil Klippe im Tileset habe, will ich meistens alles hinsetzen, mit ner Einstellung diesbezüglich im Vorfeld kann man die Mappingeffizienz stark erhöhen (da ich im Tileset nur irgendwo af nen baum klicken muss und ein klick setzt alles hin, ist vor allem bei nicht Maker-Standardisierten Tilesets (sprich solche die den Grid verstecken und viele unterschiedliche tileansammlungen verwenden) von enomen Vorteil
Advanced Auto Tile System:
Automatisierte Texturtiles fürn Boden wie sie der Maker hat sind ja ganz nice, ist aber sehr basic
z.B. Fehlt die Möglichkeit Variationen für Ecken und gerade Tiles vom Programm automatisch stezen zu lassen.
Stell dir mal vor du hast fürn Autotile verschiedene Stücke für gerade tiles und Ecken und das Programm setzt diese Automatisch per Zufall - Mappingeffizienz und Mappinggeschwindigkeit sowie Mapstruktur werden mit ner kleinen Änderung am programm besser
Riesenvorteil für das System wäre auch eigene Autotile Einstellungen für Klippen, da Klippen immer sehr Zeitintensiv zum Mappen sind
Ebenfalls nice wäre es, wenn man größere Ecken für gewisse Texturen setzen könnte
Hat alles sehr viel mit know-how wie man organische Tilesets baut zum tun und relativ wenig mit Maker Standards.
Makerautotiles würden mit dem System vmtl noch funktionieren, wenn mans gut programmiert.
Dass Makermaps generell "scheiße" und "blockig" aussehen, hat halt mal mit der Tilestruktur und der inflexibilität des Makers diesbezüglich zum tun
Mehrere Layer
Optimal wären:
Layer unter sprites (x2)
Layer über sprites (x2)
Layer mit ner z-sortierung (teilweise überlappung, hohes Gras z.B.)
Mit ner durchdachten Kollisionsmap und so ner Layer-einstellung kommt man grafisch recht weit
Steuerung:
Frei einstellbare Tasten
Standardeinstellungen um gewisse Aktionen/Menüs anzusteuern
Kommt drauf an was man hat, mit nem Maker ist es allerdings derzeit recht schwer mit shift in nen Rennmodus zu wechseln und mit nem Druck auf I das Inventar zu öffnen.
Die Sachen sind Gamedesgintechnisch so ziemlich 0815, aber essentiell um ne gute Kontrolle zu ermöglichen
Natürlich muss es ne Möglichkeit geben das abzuschalten bzw. DInge gut ansteuerbar zu machen.
Sonstiges:
Zufallsgenerator für Items:
KA ob umsetzbar, hängt. vmtl stark von der Datenbankstruktur ab, aber das Feature wär (wenn man ne gute idee hat wie mans umsetzbar macht) für jegliches RPG echt nice
Okay, da ist eine Menge dabei, aber ich versuche einmal zu allem was zu sagen.
Zitat von Cyangmou
Einstellung für Auflösung/Pixel-Zoom/Tilegrößen
Auflösung (nativ) heißt dass man ne Auswahl hat um die gängisten Auflösungen auszuwählen
Zoom (ob man die grafiken mit 100%, 200%, 300% usw. scharf darstellen lässt)
Tilegrößen, würde 8x8, 16x16, 32x32, 48x48 und 64x64 als grundeinstellung vorgeben... kaum wer verwendet andere Tilegrößen, es sei denn für iso Grafiken.
(z.B. 640x360 300% 32x32 Tile Einstellung und man kommt auf ne State-of-the-art HD Aufösung, bzw. mit 200% kommt man auf 720p)
...
Ich persönlich würde es dem Entwickler erlauben jede beliebige Fenstergröße zu verwenden. Man kann auch gerne 777x123 benutzen wenn man es wirklich mag.
Allerdings muss eine gängige Fenstergröße benutzt werden wenn das Spiel im Fullscreen gespielt werden soll, andernfalls macht die Grafikkarte das nicht mit.
Zoomen soll sowieso generell möglich sein. Ich denke im Moment an eine Art von Viewports, welche der Entwickler definieren kann. Zum Beispiel 1 Viewport für die Karte mit den Kartenobjekten (Held, NPC's, Bäume, etc), ein Viewport für das Interface, vielleicht ein weiterer Viewport für Dialogfenster oder ähnliches.
Jeder von diesen Viewports könnte separat gezoomt, gescrollt, rotiert oder andersweitig beeinflusst werden.
Zitat von Cyangmou
Z-Sortierung von sprites anhand grundfläche/unterkante
...
Zitat von Cyangmou
(wenn man sprites hat die größer als ein tile sind, bzw. höher stehen, unter tiefer stehenden sprites angezeigt werden - eliminirt ziemlich viel clipping)
...
Das verwende ich in meiner RPG-Engine derzeit sowieso.
Allerdings würde ich dem Entwickler wohl auch die Möglichkeit geben auf die Sortierung Einfluss zu nehmen. Auch wenn ich derzeit noch keine genaue Vorstellung habe, wie es im Detail aussehen könnte.
Zitat von Cyangmou
Zoom (um bei gewissen Events näher ins Geschehen zu Zoomen) Screenshake (Um bei gewissen Events den Screen schütteln zu lassen)
...
Lässt sich leicht machen, wie ich schon vorher angesprochen habe. Einen Screenshake-Effekt man durch schnelles scrollen eines Viewports nach Links und Rechts.
Zitat von Cyangmou
Einstellung für die Zentrierung des Hauptcharakters (um bei größeren Figuren/Missbrauch des Programms bezüglich Genre mehr Kontrolle zu geben)
...
Ich glaube mal eine Programmierbare Kamera wäre sowieso ganz förderlich.
Immerhin sollten auch andere Genres als nur RPG's möglich sein.
Zitat von Cyangmou
Feinabstimmung für Geh/Laufgeschwindigkeiten
...
Zitat von Cyangmou
(Frameanzahl & Schrittgeschwindigkeit)
Standardmäßige 8-Richtungsunterstützung für Chars oder zumindest für den Hauptcharakter, für NPCs macht mans meistens aufwandtechnisch eh nicht (für gehen/laufen, 4 richtungen sind für ne Basis OK, fürn Hauptchar isses vor allem bei Action RPGs hakelig, falls nur 4 Richtungen vorhanden sind)
...
Derzeit tendiere ich zu freier 360° Bewegung von Objekten mit Geschwindigkeitsangabe als Gleitkommazahl. Sprich: Die Bewegung setzt sich aus einem Winkel und einer Geschwindigkeit zusammen.
Dieses Bewegungssystem funktioniert allerdings nur bedingt, je nachdem wie das Kollisionssystem aufgebaut.
Zitat von Cyangmou
Animationseditor
...
Zitat von Cyangmou
für jegliche Spritesheets (mit Angabe der ms/frame):
bestenfalls zum selber einstellen welche Frames für welche Animationen verwendet werden können - quasi dass man jede Animation für jede RIchtung programmieren kann und dann darauf zugreifen
Gut wäre hierbei jede Animation mit nem Sound verknüpfen zu können, für den man auch nen Offset einstellen kann, wann er abgespielt wird (würd ne gewisse Standard-Sounddynamik bringen)
...
Ich kann einmal ansprechen wie ich Animationen derzeit in meiner RPG-Engine löse (in Java programmiert).
Eine Animation ist eine Hintereinanderreihung von Kommandos. Zwischen jedem Kommando kann eine Wartezeit definiert werden bis das nächste Kommando ausgeführt wird. Mögliche Kommandos sind das setzen des Ausschnitts von der Textur, das setzen eines Ankerpunktes für den Ausschnitt (eine Bewegung des Sprites relativ zur Position des Objektes); das Skalieren, Rotieren und Färben des Sprites; das Abspielen von Sounds, das Wechseln der verwendeten Textur / dem verwendeten Shader; horizontale und vertikale Spiegelung des Bildausschnitts aktivieren / deaktivieren, und noch einige weitere kleine Spielereien.
Soetwas ermöglicht sehr flexible und mächtige Animationen; bedeutet allerdings auch ein klein wenig Aufwand für den Entwickler beim Erstellen von Animationen.
Um ein Beispiel zu nennen, in Pseudo-Code könnte eine Animation wie folgt aussehen:
Das könnte zum Beispiel eine simple Laufanimation mit 4 Einzelbildern sein. Es wird jeweils 5 Frames zwischen jedem Einzelbild gewartet, bis das nächste angezeigt wird.
Aber das ist natürlich nur das System, welches ich derzeit in meinem eigenen Hauptprojekt verwende. (Es ist sogar noch ein wenig komplexer als das, aber lassen wir es ersteinmal dabei)
Für einen Maker wäre dies vielleicht sogar schon ein wenig zu kompliziert. Man muss dabei bedenken, dass die Zielgruppe nicht ausgebildete Programmierer oder studierte Informatiker sind, es soll von jedem einfachen Ottonormalverbraucher verstanden und benutzt werden können.
Es muss simpel, und dennoch mächtig sein.
Was ich dachte, war vielleicht gewisse, oft vorkommende, Animationstypen schon als Templates bereit zu stellen, aber auf der anderen Seite zu erlauben eigene Animationen zu definieren.
Aber darüber müsste ich mir noch viele weitere Gedanken machen, bis ich das konkretisieren könnte.
Zitat von Cyangmou
Bewegung losgelöst vom Tilegrid
...
Zitat von Cyangmou
Pixelmovement ist nett, im Normalfall ist es für ein RPG allerdings genug 1/2 oder 1/4 Tile Größen für Bewegungen zu haben.
Heißt ne einstellung für schrittweiten wär optimal
Für gehen/Rennen braucht man vmtl verschiedene Schrittweiten (Rennschritte sind weiter und das muss auch in der Engine so vorgesehen werden um die Geschwindigkeit rüberzubringen)
Vor allem wenn man die Frameanzahl fürs und die Relativbewegung des Charakters abstimmt, würden schrittweiten helfen.
Beispiele aus der Praxis:
tilegröße 16x16
ich hab ne schrittweit von 8 pixel und 8 frames für den char, heißt jeden pixel wird n eigener frame angezeigt -> superflüssige Animation, gute kontrolle
beim rennen: selbe schrittweite 16 pixel, 8 frames (4 frames linker fuß, 4 frames rechter fuß) char nimmt immer 2 schritte, falls nur ein schritt möglich ist, wird nur die erste hälfte der frames angezeigt)
ich hab ne schrittweit von 16 pixel und 3 frames für den char -> superhakelige Animation, wenig kontrolle
ich hab ne schrittweite von 8 pixel und 3 frames für den char -> hakelige animation, jedoch noch verschmerzbar, gute kontrolle
...
Vor allem bei anderen Genres wie einem Jump-n-Run würde ich eine Pixel genaue Bewegung schon befürworten.
Vielleicht kann man alternative "Modi" für die Bewegung einstellen.
Mapping:
Zitat von Cyangmou
Kollisionsmaps:
...
Zitat von Cyangmou
Passierbarkeit einstellbar via mapbarer Kollisionsmaps, statt Kolisionsabfrage im Tileset
Warum?
Man kann erstmal ne map bauen, ohne sich über Kollision Gedanken zu machen
die Kollision kann nachträglich über die Map gezeichnet werden
Sämtliche Begehbarkeitsfehler gehören der Vergangenheit an
(Für plattformen und dergleichen muss die kollisionsmap natürlich irgendwie ansteuerbar sein, damit man kollisionsblöcke sozusagen ändern kann)
Müsste natürlich verschiedene Kollisionstiles geben von welcher seite man gewisse tiles betreten kann und von welcher seite nicht (ganz praktisch, wenn man eher 3D angehauchte levels bauen will)
...
Ich persönlich würde eher einen Hybrid anstreben.
Natürlich ist es gut, wenn man Kollisionen per Hand eintragen kann um vollkommene Kontrolle zu besitzen. Bei einer gigantischen Karte mit 300 x 300 Tiles wäre das aber eine fürchterliche Arbeit.
Daher würde ich schon ein System vorschlagen, welches es erlaubt Kollisionen nach gewissen Regeln zu setzen.
Dann kann der Benutzer nocheinmal im Nachhinein von Hand dran gehen um Feinheit auszuarbeiten.
Zitat von Cyangmou
Beliebig große Tilesets
...
Zitat von Cyangmou
bzw. Falls eine standardgröße per tileset, beliebig viele tilesets verwendbar
...
Das ist so eine Sache. Grafikkarten vertragen nur Texturen bis zu einer gewissen Größe. Alles darüber hinaus wird schlichtweg nichtmehr unterstützt.
Und jede Generation von Grafikkarte verträgt eine andere maximalgröße.
Ein kleines Asus Netbook, ein Lenovo Gaming Laptop und ein selbst zusammen gestellter 2500€ Heimcomputer vertragen alle völlig unterschiedliche Maxima, dennoch würde man hoffen ein simples kleines 2D Spiel auf jedem dieser Geräte spielen zu können.
Daher würde ich eher dazu tendieren beliebig viele Tilesets gleichzeitig verwenden zu können anstatt beliebig große Sets.
Zitat von Cyangmou
Animationstiles mit beliebig vielen Frames (losgelöst vom standardtileset) und mit globaler Ansteuerung vom timing
Quasi, dass man Tileanimationen vorher zusammenbauen kann und dann setzt man so ein Animationstileobjekt. Alle laufen exakt gleich, wobei man selbe rnen Zeit/Frameoffset einstellen kann.
...
Könnte man wohl machen.
Zitat von Cyangmou
Einzeltiles/Meta Tiles
...
Zitat von Cyangmou
Mappingmäßig wäre es gut wenn man ein tileset auf einzeltiles und Meta-Objekte einstellen könnte.
Meta objekte sind einfach aus mehreren tiles zusammengesetzt.
Wenn ich jetzt nen Baum oder ein Teil Klippe im Tileset habe, will ich meistens alles hinsetzen, mit ner Einstellung diesbezüglich im Vorfeld kann man die Mappingeffizienz stark erhöhen (da ich im Tileset nur irgendwo af nen baum klicken muss und ein klick setzt alles hin, ist vor allem bei nicht Maker-Standardisierten Tilesets (sprich solche die den Grid verstecken und viele unterschiedliche tileansammlungen verwenden) von enomen Vorteil
...
Könnte man so machen, alternativ könnte man auch einfach zusammengehörige Gebilde nicht als Tileset, sondern als spezielle Kartenobjekte definieren.
Also ist ein Baum tatsächlich ein Baum. Nicht eine Ansammlung kleiner Einzeltiles.
Man könnte dann im Editor nach freiem Belieben, und ohne Bindung an das Tileraster Kartenobjekte verteilen.
Zitat von Cyangmou
Advanced Auto Tile System:
...
Zitat von Cyangmou
Automatisierte Texturtiles fürn Boden wie sie der Maker hat sind ja ganz nice, ist aber sehr basic
z.B. Fehlt die Möglichkeit Variationen für Ecken und gerade Tiles vom Programm automatisch stezen zu lassen.
Stell dir mal vor du hast fürn Autotile verschiedene Stücke für gerade tiles und Ecken und das Programm setzt diese Automatisch per Zufall - Mappingeffizienz und Mappinggeschwindigkeit sowie Mapstruktur werden mit ner kleinen Änderung am programm besser
...
Autotiles sind eine komplizierte Angelegenheit. Die Autotiles wie sie im Maker sind sind schon ein ganzes Stückchen Leistung. Immerhin besitzt jedes einzelne von ihnen 256 verschiedene Variationen.
Wenn du allerdings nur zufällig ausgewählte Versionen willst, so ist das kein Problem.
Wenn du aber kompliziertere Formen von Autotiles möchtest, zum Beispiel, welche die mehr als nur die 8 direkt umliegenden Tiles betrachten, dann wird das schon sehr aufwendig.
Zitat von Cyangmou
Riesenvorteil für das System wäre auch eigene Autotile Einstellungen für Klippen, da Klippen immer sehr Zeitintensiv zum Mappen sind
...
Ich weis nicht wie gut das aussehen würde.
Natürlich, bei Klippen wie im RPG-Maker RTP wäre das sehr simpel. Bei komplizierteren Grafikstilen könnte das aber möglicherweise nicht funktionieren.
Zitat von Cyangmou
Ebenfalls nice wäre es, wenn man größere Ecken für gewisse Texturen setzen könnte
...
Ich weis leider nicht ganz was du damit meinst.
Zitat von Cyangmou
Mehrere Layer
...
Zitat von Cyangmou
Optimal wären:
Layer unter sprites (x2)
Layer über sprites (x2)
Layer mit ner z-sortierung (teilweise überlappung, hohes Gras z.B.)
Mit ner durchdachten Kollisionsmap und so ner Layer-einstellung kommt man grafisch recht weit
...
Das würde dem Viewport-Konzept entsprechen was ich vorher angesprochen habe.
Mit beliebig vielen Viewports könnte man soetwas relativ leicht lösen.
Zitat von Cyangmou
Frei einstellbare Tasten
...
Zitat von Cyangmou
Standardeinstellungen um gewisse Aktionen/Menüs anzusteuern
Kommt drauf an was man hat, mit nem Maker ist es allerdings derzeit recht schwer mit shift in nen Rennmodus zu wechseln und mit nem Druck auf I das Inventar zu öffnen.
Die Sachen sind Gamedesgintechnisch so ziemlich 0815, aber essentiell um ne gute Kontrolle zu ermöglichen
Natürlich muss es ne Möglichkeit geben das abzuschalten bzw. DInge gut ansteuerbar zu machen.
...
Ich würde generell alle Tasten der Tastatur, die Maus und alle Arten von Joysticks und anderen Peripheriegeräten erlauben.
Zitat von Cyangmou
Zufallsgenerator für Items:
KA ob umsetzbar, hängt. vmtl stark von der Datenbankstruktur ab, aber das Feature wär (wenn man ne gute idee hat wie mans umsetzbar macht) für jegliches RPG echt nice
Einfach und mächtig ist immer gut, ja.
Ich kann z.B. nicht programmieren, ich hab nur ne theoretische Idee davon wies geht und was machbar ist.
Einfach und mächtig heißt fürn Programmierer meist enormer Designaufwand und extremes Know-How übers Subjekt vonnöten =)
Aber auch n paar zusätzliche Features die man einstellen kann, aber nicht muss, um das ganze dann noch interessanter für Bastler zu gestalten ist denk ich mal nicht verkehrt wenn alles soweit steht.
Zu den Autotiles...
ja der Maker macht viel richtig, wenns drum geht ne platte textur auf den Boden zu setzen.
Würd gern wissen wie du bei autotiles auf 256 Variationen kommst.
soweit ich weiß hast du ohne komplettes texturteil 4 innere Ecken, 4 äußere Ecken und 4 gerade, macht 12 tiles (14 mit positiv und negativ textur).
Aber die Anzahl tut eh nichts zur Sache.
Ich dacht mehr dran dass man für eine Tileart mehrere Varianten hinterlegen kann.
Heißt quasi, wenn man ne Bodentextur hat und von dieser 5 Varianten und man wählt dieses Tile aus und setzt es auf die Map dann wird einfach per Zufallsfaktor eines der hinterlegten Tiles gesetzt.
Perfekt wäre wenn man den Zufallsfaktor dann selber mit ner Prozentangabe einstellen könnte (und diese Einstellungen auch speichern und laden könnte)
Zum Beispiel mappen wir Gras, wir haben 5 16x16 Variationen, einige Texturen, einige Texturdetails
Gras V1, Gras V2, kleine Blumen V1, kleine Blumen V2, große Blumen
dann setzen wir hier % wie das Tile gesetzt wird
30%,30%, 15%, 15%, 10%
Und dann ziehen wir über n 10x10 Feld diese Textur, dann sollten wir eigentlich jedes Mal mit ner sehr detaillierten Textur ändern, die jedes mal anders aussieht, da der Zufallsfaktor viel Arbeit abnimmt.
Heißt in 10 Sekunden mappen wir etwas schönes und detailliertes für das wir sonst an die 5-10 Minuten sitzen.
Durch Einstellungen der Variationen können wir auch ne Wiese mit wenig Blumen und ne Wiese mit vielen Blumen relativ flott darstellen, da wir lediglich eine Einstellungändern müssen.
(Wird dann vmtl Einstellungsdateien oder sowas brauche, wo die Werte gespeichert werden)
Wir setzen noch einen drauf und arbeiten mit n paar zusätzlichen Metatiles (32x32 texturstücke, die nur in dieser Anordnung vorkommen - größere wie 48x48 gehen natürlich auch noch, aber man kann alles ausreizen...)
Heißt erstmal müssen wir bei einer Textur rausfinden wie viel Platz für Metatiles ist, und dann, sofern Platz ist und nach einer Eingabe für Häufigkeit werden random Metas gesetzt
sieht dann so aus:
Die dunkelgrauen sind dann Metas, sowohl für die normalen, als auch für die Metas sind Variationen vorgesehen.
Heißt wir kriegen noch mehr Variation rein gleichbleibendem Mappingaufwand,
Plus metas sind noch für ne andre sache wichtig (heißt das system bräuchten wir noch) - gleich mehr dazu
(Mach dir hie rden Anhang auf um mitzukommen)
Nun gehen wir nen Schritt weiter und arbeiten mit ner klassischen Autotile Textur (G1)
Für dieses Set gibt es wieder beliebig viele Variationen (G2)
Mappingschema ist das selbe wie beim Maker
Der Zufallsfaktor haut nur wieder zufällige Variationen rein
(Beispiel G3)
Nun packen wir wieder das meta Prinzip an - in diesem Falle große Ecken (G4)
Große Ecken für Texturen haben nebst Kantenvariation und Eckenvariation den Vorteil, dass sie das Raster komplett aufbrechen
heißt, dass der Zufallsgenerator random große Ecken verpflanzt, falls möglich und falls nicht zu viele andre große Ecken in der Nähe sind.
Mappingaufwand wär immer noch gleich wie mit nem normalen Maker.
Ein paar Adjustierungen in nem normalen Tilecode
Mit der Methode brauchen wir nur mehr Grafik, aber die macht man einmal und edits sind verhältnismäßig leicht anzufertigen.
Das Resultat sieht allerdings eher wie n großes Bild aus und nicht wie ne ständig kopierte Tileansammlung
Je mehr Variationen man hat, desto besser wird natürlich das Ergebnis.
Ha tman keine Variation, kann mans einstellen oder ne idente Textur einfach 5x abspeichern und iwann mal Variationen nachliefern
Wesentlich komplizierter wirds bei Klippen.
Wenn man ne Standardgrafik hat wie G5, sieht man schon dass die Höhe ausschlaggebend für die Anzahl der Ecken ist (G6, G7)
Ganz zu Schweigen von allen Verschnittvarianten von Tiles und Höhen
Heißt für ein Klippenautotile müssten wir nem Tile unbedingt ne Z-information mitgeben (trotz 2D Map)
Programmiert man allerdings 1x ne routine für alle Fälle für eine Höhe und geht davon aus, dass sich die dunkelgrauen Fronttiles bei ner höheren z-Höhe lediglich vermehren (Einstellung von Z) müsste das auch funktionieren.
Heißt man müsste eigentlich mit ner einzelnen Höhe schon gut mappen können
Als Zuckerguss:
Wenn wir nen schritt weiter und uns die Höheninformationen (z-werte) anschauen, dann müsste man eigenlich mit der Tileinformation (Ecke, Gerade, ...) und der Differenz genau errechnen können was für eine Art von Tile auf dem Raster gezeigt werden muss.
Heißt man könnte mit so einer Art von System in sekundenschnelle perspektivisch korrekte Klippen mappen, wenn man erst einmal ein tileset ausgearbeitet hat, dass alle Tilevarianten abdeckt.
Und ums zu perfektionieren:
(natürlich kann man dann auch nochmal nen Schritt weitergehen und große Klippenkanten bauen um ne perfekte Vielfalt zu haben =)
Und wenn man Texturen und Klippen schnell mappen kann, brauchts eig. eh nur noch Details
Die sind meist eh relativ schnell gesetzt
Dann baut man ma richtig geile Maps in 10 minuten, für die man sonst 2-3 Stunden sitzt.v
Wenn interessiert bist sowas für die Allgemeinheit oder grad mal testweise umzusetzen, würd ich mir vmtl sogar die Zeit nehmen und dafür Tiles fürn Testtileset bauen (oder von nem etablierten Stil z.B. Mack&Blue alle Varianten für ne Textur und ne Klippe zu editieren)
Kommen wir nochmal zurück aufs setzen von Objekten:
Objekte als quasi bild setzen funktioniert auch.
Wenn man allerdings Häuser mit Türen setzt usw. (Die pixelgenau am Teleport/Tileraster ausgerichtet sein sollten) sollte man zumindest nen Button für ne Rasterfunktion haben, die diese Grafiken am Tileset ausrichtet.
@Cornix
Wenn der GUI-Code mächtig genug ist, dann ist eine höhere Programmiersprache wohl wirklich nicht nötig, aber wie würdest du den Code denn gestalten, um diese Mächtigkeit zu erreichen?
Zitat
Falls jemand wirklich bereit ist eine höhere Programmiersprache zu lernen, dann braucht er auch keinen Maker mehr, das ist für solch eine Person nur eine Zeitverschwendung.
...
Das finde ich nicht, denn dieser jemand müsste ja Engine und Editor selbst schreiben. Dort fließt eine Menge Zeit rein, die mancher Entwickler lieber in das Spiel stecken möchte. Außerdem braucht man die Programmiersprache nicht komplett lernen. Eine "unsaubere" Lösung, bei der man die Sprache nur als Hilfsmittel benutzt, sieht für den Spieler von außen genauso wie eine "saubere" aus.
Von den Lizenzprobleme mit MP3s hab ich auch schon gehört. OGG ist ja eigentlich bei gleicher Qualität sowieso kleiner, meine ich, nur war das nicht so, dass die Datei erst komplett in den Speicher geladen werden muss? Ich meine, dass es beim XP Lags gibt, wenn eine OGG-Datei das erste Mal gespielt wird.
Mal abseits von Tilegrößen etc. ~ ich mag die Idee keine Scriptsprache zu geben, dafür umfangreichere Klickwerkzeuge.
ich hatte in meinem 2k3 - Spiel schon vor DynRPG viele Kampfmechaniken eingebaut, die ich vorher noch in keinem Makerspiel gesehen hatte. Das ging auch, war aber umständlich, dabei gibt es zwei Konzepte.
- DynRPG: Die Callbacks passieren oft, meine Lieblingscallbacks in jedem Frame, bzw. mehrere in jedem Frame, weil ich z.B. Helden- und Monsterfähigkeiten in ihrem Zeichenzyklus erledige, da dies der Callback ist, der genau zu ihnen gehört.
- MakerEventcode: Die EventPages im Kampf sind sehr grobschlächtig.Zuerst einmal muss man sich eine Art Framework basteln, um überhaupt Custommechaniken einbauen zu können. Dazu gehört eine Eventseitenstruktur in jeder Monstergroup und dann entsprechender Code, um aus "Welches Ziel wurde ausgewählt?" und "Wieviel Mana wurde verbraucht?" zu schlussfolgern, was im Kampf passiert ist. Schlussfolgern, ich will nicht schätzen müssen, was die Helden in meinem Spiel gemacht haben!
Hier mein Ansatz:
Events wenn Dinge passieren.
Betrete die Map -> OnMapEntered
Verlasse die Map -> OnMapLeft
Held greift an -> OnHeroAction
Held ist damit fertig -> OnHeroActionDone
Held plötzlich tot -> OnHeroDead
Und dann als Parameter, lokale Variable, sowas in der Art, Informationen was genau passiert ist. Wer hat angegriffen, wer wurde angegriffen und womit und hat es kritisch getroffen, hat es verfehlt?
Auf vielen Makermaps ist das Konstrukt ParallelProcess->tu was ->erase. Was der Entwickler will ist etwas beim Betreten der Map zu tun. Die Struktur wird jedes mal neu gebaut. Event an die Map anhängen, tatarataaa.
@Cornix
Wenn der GUI-Code mächtig genug ist, dann ist eine höhere Programmiersprache wohl wirklich nicht nötig, aber wie würdest du den Code denn gestalten, um diese Mächtigkeit zu erreichen?
...
Das steht noch in Frage ob >ich< dazu in der Lage wäre.
Ganz allgemein würde es bereits ausreichen alle Arten von Attributen mit Get- und Set-Methoden zur Verfügung zu stellen. Dazu einen Variablen-Manager mit dem man alle Arten von Objekten in Spiel referenzieren kann und dann einfache Datenstrukturen wie Arrays und Collections, vielleicht auch noch Sortierbare Listen und definitiv Hashtables die von dem Benutzer verwendet werden können.
Das ganze in einen freundlichen und dokumentierten GUI-Code eingebaut, welcher sich darum kümmert alle illegalen Eingaben von vornherein abzufangen.
Zitat von Kelven
Das finde ich nicht, denn dieser jemand müsste ja Engine und Editor selbst schreiben. Dort fließt eine Menge Zeit rein, die mancher Entwickler lieber in das Spiel stecken möchte. Außerdem braucht man die Programmiersprache nicht komplett lernen. Eine "unsaubere" Lösung, bei der man die Sprache nur als Hilfsmittel benutzt, sieht für den Spieler von außen genauso wie eine "saubere" aus.
...
Niemand ist heutzutage dazu gezwungen eine Engine zu bauen. Soetwas bekommt man inzwischen überall im Internet als Template.
Man kann auch immer die eigentliche Spielengine hinter dem Maker direkt als Bibliothek mit ausführlicher API veröffentlichen. Dann brauch sich niemand der wirklich programmieren kann mit etwas so klumpen wie dem Maker beschäftigen.
Zitat von Kelven
Von den Lizenzprobleme mit MP3s hab ich auch schon gehört. OGG ist ja eigentlich bei gleicher Qualität sowieso kleiner, meine ich, nur war das nicht so, dass die Datei erst komplett in den Speicher geladen werden muss? Ich meine, dass es beim XP Lags gibt, wenn eine OGG-Datei das erste Mal gespielt wird.
...
Wer sagt, dass man die Dateien erst laden sollte wenn man sie abspielen will? Wenn kommerzielle Spiele das tun würden wäre der Spielspaß gegen null.
Meine Welt wäre alleine durch eine "Suchen" und "Ersetzen"-Funktion schon ein ganzes Stück heller.
Aber Gerüchte besagen da ist was Großartiges in der Mache...! *Richtung Grufty schiel*
Der Grund dafür klingt vielleicht ein wenig esoterisch, aber meiner Meinung nach spaltet soetwas nur die Community.
Die einen bleiben beim GUI-Code und wollen keine Programmiersprache lernen um das Programm zu verwenden; die anderen stürzen sich nur auf die Programmiersprache, da der GUI-Code unnötig wird sobald man eine Sprache im Hintergrund bedienen kann.
Dadurch entstehen zwei Lager, und beide bringen Resourcen und Systeme raus, welche zueinander nur bedingt, oder garnicht kompatibel sind.
...
Sowas haben wir doch jetzt schon mit den verschiedenen Makerversionen und den Leuten die gegeneinander arbeiten. Ist eher ein Problem der Community. Glaube kaum, dass es in der englischsprachigen Community Probleme geben würde - da sind einfach viel mehr Leute, die englisch sprechen. Demnach auch mehr Resourcen.
Und Kelven hat ja als Grund auch noch genannt:
Zitat von Kelven
Das finde ich nicht, denn dieser jemand müsste ja Engine und Editor selbst schreiben. Dort fließt eine Menge Zeit rein, die mancher Entwickler lieber in das Spiel stecken möchte. Außerdem braucht man die Programmiersprache nicht komplett lernen. Eine "unsaubere" Lösung, bei der man die Sprache nur als Hilfsmittel benutzt, sieht für den Spieler von außen genauso wie eine "saubere" aus.
...
Es kann sicher auch vorkommen, dass es zwischen den zwei Extremen("komplett nur mit Programmiersprache, aber Maker, damit keine Engin und Editor selber geschrieben werden muss" vs. "komplett ohne Programmiersprache") auch Leute gibt, die sich vielleicht nur bestimmte Sachen verfeinern möchten und dazu sich ein Skript ziehen oder selber was schreiben(oder Skript ziehen + selber etwas verfeinern).
Denen würden natürlich Einschränkungen dann nicht helfen(gar keine Programmiersprache vs. sie sollen komplett alles in Programmiersprache machen).
Niemand ist heutzutage dazu gezwungen eine Engine zu bauen. Soetwas bekommt man inzwischen überall im Internet als Template.
...
Aber auch auf die speziellen Bedürfnisse eines typischen Makerspiels zugeschnitten? Weißt du, ich sehe das immer aus der Perspektive eines Entwicklers, der mehr Interesse an der Entwicklung als der Programmierung hat, aber trotzdem ein möglichst mächtiges Werkzeug haben möchte, bei dem ich nicht zu viele Umwege gehen muss, um ans Ziel zu kommen. Ein typisches Problem der alten Maker ist z. B. dass es keine richtigen Arrays gibt und dass man Pictures außer mit Cherrys Patch nicht direkt über eine Variable referenzieren kann. Beim XP kann man auch ohne tiefere Ruby-Kenntnisse die Methode show von Game_Pictures aufrufen und als ID eine Variable nehmen.
Zitat
Wer sagt, dass man die Dateien erst laden sollte wenn man sie abspielen will? Wenn kommerzielle Spiele das tun würden wäre der Spielspaß gegen null.
...
Das kann ich dir nicht sagen. Ich hab nur mal gehört, dass es beim XP Lags geben soll, wenn man eine OGG als Hintergrundmusik wählt. Was auch stimmt, hab es mal eben getestet. Ich weiß natürlich nicht, ob das am XP oder der OGG liegt.
Würd gern wissen wie du bei autotiles auf 256 Variationen kommst.
soweit ich weiß hast du ohne komplettes texturteil 4 innere Ecken, 4 äußere Ecken und 4 gerade, macht 12 tiles (14 mit positiv und negativ textur).
...
Wenn man ein Tile platziert wird dessen Grafik ermittelt anhand der 8 Tiles, welche es umgeben.
Je nachdem welche von den 8 Tiles drum herum den gleichen Tile-Typen hat haben wir eine andere Situation.
Ein benachbartes Tile kann entweder von dem gleichen Typen sein, oder von einem anderen.
Das bedeutet, dass wir für jedes Tile einen von zwei Zuständen haben (Gleich / Ungleich). Und außerdem 8 benachbarte Tiles.
Jede Kombination von Zuständen dieser acht Tiles ist eine andere Situation für unser zu bestimmendes Tile.
Dementsprechend berechnet sich die Anzahl der Situation als 2 ^ 8 == 256.
Es werden im Maker zwar keine 256 verschiedene Varianten benutzt (sondern nur 48) aber das Potential dafür ist da.
Zitat von Daen vom Clan
Meine Welt wäre alleine durch eine "Suchen" und "Ersetzen"-Funktion schon ein ganzes Stück heller. :)
Aber Gerüchte besagen da ist was Großartiges in der Mache...! *Richtung Grufty schiel*
...
Tut mir leid, aber ich verstehe nicht ganz worauf du hinaus willst.
Was genau würdest du gerne im Maker suchen und ersetzen? Textzeilen?
Zitat von Kelven
@Cornix
Aber auch auf die speziellen Bedürfnisse eines typischen Makerspiels zugeschnitten? Weißt du, ich sehe das immer aus der Perspektive eines Entwicklers, der mehr Interesse an der Entwicklung als der Programmierung hat, aber trotzdem ein möglichst mächtiges Werkzeug haben möchte, bei dem ich nicht zu viele Umwege gehen muss, um ans Ziel zu kommen. Ein typisches Problem der alten Maker ist z. B. dass es keine richtigen Arrays gibt und dass man Pictures außer mit Cherrys Patch nicht direkt über eine Variable referenzieren kann. Beim XP kann man auch ohne tiefere Ruby-Kenntnisse die Methode show von Game_Pictures aufrufen und als ID eine Variable nehmen.
...
Das ist alles eine Abwägung von: Flexibilität + Macht gegen Einfache Bedienung + Schnell zu lernen.
Ein Nutzer, welcher programmieren kann, braucht nicht solch eine kindische Software zu nutzen. Diese Personen sind garnicht Teil der Zielgruppe.
Sie können sich eine beliebige fertige Engine schnappen, ihre Resourcen dort einfügen, und dann an dem Code rumwerkeln bis das gewünschte Ergebnis erzielt wurde.
Der einfache Nutzer, welcher nicht programmieren kann, hat diese Möglichkeit nicht. Für ihn bedeuten die meisten Fachwörter auch nicht viel, oder nichts konkretes. Er möchte eine Software, welche leicht zu lernen und zu verstehen ist, aber ihm trotzdem viele Möglichkeiten bietet.
Sobald man als Entwickler erlaubt eine Programmiersprache in dem Maker zu verwenden verlässt man sich zu schnell darauf. Man verliert seine Zielgruppe aus den Augen. Features werden nichtmehr unterstützt, mit der Begründung, dass die Nutzer doch einfach ein Script selbst schreiben können. Soll sich die Community doch darum kümmern.
Das Ergebnis ist aber oftmals von minderer Qualität. Oder inkompatibel mit anderen Scripten. Außerdem für einige Mitglieder der Community schnell Teufelswerk.
Ich will dem Ganzen wenn möglich ausweichen. Die Zielgruppe der Software wäre klar definiert und für diese Menschen wird dann auch das Produkt zugeschnitten.
Zitat von Kelven
Das kann ich dir nicht sagen. Ich hab nur mal gehört, dass es beim XP Lags geben soll, wenn man eine OGG als Hintergrundmusik wählt. Was auch stimmt, hab es mal eben getestet. Ich weiß natürlich nicht, ob das am XP oder der OGG liegt.
...
Ich kann es dir sagen, denn genau so wird es im XP getan.
Erst sobald versucht wird die Musik ab zu spielen wird sie von der Festplatte geladen. Sofern man also vorher noch nicht versucht hat die Musik zu spielen wurde sie auch vorher noch nicht geladen.
Wenn du bedenkst, dass diese Ladezeit nur eine oder zwei Sekunden beträgt, oder vielleicht noch weniger, ist es hoffentlich ersichtlich, dass es kein großes Problem ausmachen würde die Musik einfach bereits im Vorfeld zu laden. Dann gäbe es auch keine Probleme während des Abspielens mehr.
@Cornix
Ich denke auch, dass sich der RPG Maker und ähnliche Werkzeuge vor allem an die Entwickler richten, die nicht programmieren wollen - unabhängig davon, ob sie es können oder nicht. Aber umgehen die Maker-Entwickler das Programmieren wirklich? Der Eventcode des Makers ist im Prinzip auch eine Programmiersprache und wenn man ein komplexeres Script schreibt, dann stecken dahinter ähnliche Überlegungen wie bei einer Funktion/Methode einer höheren Programmiersprache. Natürlich ist die Gruppe, die Custom-Menüs und -Kampfsysteme baut, nur eine von mehreren und viele aus ihr machen das nur, weil sie das Standardsystem für zu eingeschränkt oder zu langweilig halten. Trotzdem solltest du nicht vergessen, dass es diese Gruppe gibt - Entwickler, die zwar nicht richtig programmieren können/wollen, aber dennoch die höchstmögliche Flexibilität bevorzugen.
@Cornix
Ich denke auch, dass sich der RPG Maker und ähnliche Werkzeuge vor allem an die Entwickler richten, die nicht programmieren wollen - unabhängig davon, ob sie es können oder nicht. Aber umgehen die Maker-Entwickler das Programmieren wirklich? Der Eventcode des Makers ist im Prinzip auch eine Programmiersprache und wenn man ein komplexeres Script schreibt, dann stecken dahinter ähnliche Überlegungen wie bei einer Funktion/Methode einer höheren Programmiersprache. Natürlich ist die Gruppe, die Custom-Menüs und -Kampfsysteme baut, nur eine von mehreren und viele aus ihr machen das nur, weil sie das Standardsystem für zu eingeschränkt oder zu langweilig halten. Trotzdem solltest du nicht vergessen, dass es diese Gruppe gibt - Entwickler, die zwar nicht richtig programmieren können/wollen, aber dennoch die höchstmögliche Flexibilität bevorzugen.
...
Der GUI-Code ist selbstverständlich Turing-Vollständig und damit einer Programmiersprache ebenbürtig. Das stelle ich auch keinesfalls außer Frage.
Ich habe ja vor dem GUI-Code enorme Macht zu geben und ihn noch sehr viel weiter aus zu bauen als er im Maker vorkommt. Er würde einer richtigen Programmiersprache schon sehr ähnlich werden, mit globalen und lokalen Variablen, Datenstrukturen und einer objektorientierten Datenbank im Hintergrund.
Aber ich will dennoch keine richtige Programmiersprache zur freien Verfügung stellen. Alleine schon aus technischer Sicht wäre es mir persönlich ein zu großer Aufwand, vor allem auch die Sicherheits bedenkenfalls jemand die Möglichkeiten missbraucht.
"Alles!"
Also in markierten Scriptzeilen bestimmte Inhalte suchen und ersetzen, beispielsweise Variablen und auch Textzeilen.
...
suchen ist mit einem cherry-tool möglich, soweit ich verstehe, wie du das möchtest. ist äußerst praktisch, wenn man zB danach sucht, wo man einen befehl überall verwendet hat. ersetzen muss man dann trotzdem manuell.
Der einfache Nutzer, welcher nicht programmieren kann, hat diese Möglichkeit nicht. Für ihn bedeuten die meisten Fachwörter auch nicht viel, oder nichts konkretes. Er möchte eine Software, welche leicht zu lernen und zu verstehen ist, aber ihm trotzdem viele Möglichkeiten bietet.
...
Je mehr Möglichkeiten du dem Anwender gibst desto komplizierter wird das Programm. Der RPG Maker geht da schon einen guten Mittelweg.
Der Witz ist eigentlich das der Click-Code im Prinzip eine makereigene Programmiersprache darstellt. Das Ding hat Bedingungen, Schleifen, Variablen und diverse Befehle mit denen sich wer weiß was anstellen lässt. Der große Knackpunkt ist dass der Click-Code dem Anwender die Syntax abnimmt und ihm eine grafische Ansicht und Auswahl von Funktionsparametern ermöglicht.
Das Grundproblem, die Logik des Programmierens zu erlernen, bleibt aber bestehen. Je komplexer du die GUI also gestaltest, desto mehr komplizierte logische Abläufe erden möglich und desto schwieriger wird das ganze zu bedienen.
Daher ist die Lösung des XP und VX(Ace) sehr gut. Die einfache Bedienung des 2k/2k3 bleibt erhalten, aber dank Ruby hat man die Möglichkeit das Backend "dahinter" zu verändern, falls nötig.
Zitat
Features werden nichtmehr unterstützt, mit der Begründung, dass die Nutzer doch einfach ein Script selbst schreiben können. Soll sich die Community doch darum kümmern.
Das Ergebnis ist aber oftmals von minderer Qualität. Oder inkompatibel mit anderen Scripten. Außerdem für einige Mitglieder der Community schnell Teufelswerk.
...
Schon mal versucht im RM2k ein fremdes Menüscript einzubinden und anzupassen welches z.B. unendlich viele Itemslots bietet? Da kriegst du bedeutend mehr Inkompatiblitätsprobleme als mit einem Ruby-Script, vorallem wenn du mehrere Fremdscripte kombinieren möchtest. Das Argument zieht also eher schlecht.
Und eben da kann die Community helfen. Alleine schon wenn es darum geht zwei inkompatible Scripte zueinander kompatibel zu machen, was im RM2k per Definition, ohne das Zielprojekt selbst zu besitzen, nicht möglich ist.
Zitat
Ein Nutzer, welcher programmieren kann, braucht nicht solch eine kindische Software zu nutzen. Diese Personen sind garnicht Teil der Zielgruppe.
Sie können sich eine beliebige fertige Engine schnappen, ihre Resourcen dort einfügen, und dann an dem Code rumwerkeln bis das gewünschte Ergebnis erzielt wurde.
...
Das was du beschreibst, Grafiken reinkloppen und am Code rumwerkeln ist genau dass was XP und VX(Ace) einem Entwickler in der einfachen Form erst ermöglichen. Eine Grafikengine bietet da deutlich weniger, nämlich nur grundlegende Funktionen welche auf beispielsweiße OpenGL oder DirectDraw(Direct3D) aufsetzen welche dir die Möglichkeit geben "zeichne Würfel an Position X und rotiere mit Geschwindigkeit S um Achse Y mit Textur C", sodass du nicht mehr 6 einzelne Quadrate selber zeichnen, positionieren und rotieren musst oder gar 12 Dreiecke, sondern in einem Aufrund deinen ganzen Würfel hast. Da ist nichts mit "Ressourcen reinkloppen" weil die Engine nicht einmal weiß was "Ressourcen" wären und dies gar nicht wissen kann.
Der RPG Maker geht da deutlich weiter. Vom komplett vorhandenem Editor, welchen dir auch keine Grafikengine (Unreal-Engine mal außen vor gelassen) bietet, will ich gar nicht anfangen.
@Topic
- Variable Auflösung (entweder mit Highres-Grafiken oder eben einer Skalierung über den sichtbaren Bildschirmbereich)
- "Echtes" Pixelmovement mit allem was dazu gehört (Pixelgenaue Kollision z.B.).
- Erweiterung der Maker-GUI, z.B. um eigene Event-Befehle für selbstgeschriebene Scripte (Plugin-System?)
Halt die Dinge welche selbst mit RGSS3 nahezu unmöglich zu realisieren sind, da man die halbe Engine umschreiben müsste.
--
Aktuelles Projekt "Uns're Ordnung ist das Chaos!
Verändern heißt zerstör'n!
Je mehr Möglichkeiten du dem Anwender gibst desto komplizierter wird das Programm. Der RPG Maker geht da schon einen guten Mittelweg.
...
Leider kann ich nicht zustimmen.
Der Maker geht meiner Meinung nach keinen wirklichen Weg. Die meisten Features scheinen zufällig gewählt worden zu sein und lassen in meinen Augen nicht auf überhaupt irgendein Muster schließen.
Auf der einen Seite kann man Variablen als Indizes auf andere Variablen nutzen, ähnlich zu Pointern in Arrays. Auf der anderen Seite ist dieses Feature allerdings nur in wenigen Bereichen möglich, zum Beispiel nicht für Pictures oder dergleichen.
Es ist inkonsistent ohne ersichtlichen Grund. Der Aufwand zum Implementieren wäre minimal, komplexer würde das Ganze dadurch auch nicht werden.
Dann gibt es wiederum Event-Code mit gewissen Bedingungen und Aktionen, die allerdings bei weitem nicht alles abdecken, auch wenn es sehr einfach geworden wäre dies zu ermöglichen. Zum Beispiel die Event-Seiten für Kampfspezifische Events. Dort gibt es nichteinmal nahezu ausreichend Möglichkeiten Auslöser zu definieren.
Für mich schließt das alles auf Unentschlossenheit und keine ausgereifte Planung der Software.
Zitat von Caine Luveno
Das Grundproblem, die Logik des Programmierens zu erlernen, bleibt aber bestehen. Je komplexer du die GUI also gestaltest, desto mehr komplizierte logische Abläufe erden möglich und desto schwieriger wird das ganze zu bedienen.
Daher ist die Lösung des XP und VX(Ace) sehr gut. Die einfache Bedienung des 2k/2k3 bleibt erhalten, aber dank Ruby hat man die Möglichkeit das Backend "dahinter" zu verändern, falls nötig.
...
Das Interessante daran ist, dass das Programmieren sehr sehr simpel ist sobald man das Grundgerüst und die kryptische Syntax von Programmiersprachen ignoriert.
Wie du selbst festgestellt hast ist es schon sehr einfach, auch für jemand unerfahrenen, simple Abläufe im Maker umzusetzen. Das ist bereits Programmierung.
Die Idee hinter dem GUI-Code ist es, die komplizierten Gegebenheiten von Programmiersprachen sauber und ordentlich nach Außen an den Anwender zu bringen und die Hässlichkeiten zu verstecken. Außerdem werden alle Möglichkeiten aufgelistet und kategorisiert und direkt mit einer Beschreibung versehen.
Zudem wird die Möglichkeit für Programmfehler vermindert.
Wie leicht oder kompliziert das Endprodukt wird hängt stark davon ab wie viel Mühe man sich damit macht es "ordentlich" zu gestalten. Es sollte möglichst intuitiv und selbsterklärend sein. Dann können auch Anfänger sehr schnell lernen damit umzugehen.
Was die RPG-Maker machen ist es Features in Form von Event-Commands abzulösen und die Arbeit auf den Endnutzer zu überwälzen. Die Entwickler von Enterbrain sind nicht motiviert genug um tiefergehende Event-Commands zu implementieren und geben daher dem nutzer den Source-Code und sagen ihm "da, mach dir selbst.".
Das sieht auf den ersten Blick zwar nach einer tollen Möglichkeit aus um allerlei mächtige Funktionalität einzubauen, in Wirklichkeit ist es meiner Meinung nach aber eine schlechte Unternehmenspolitik, welche sich versucht zu verbergen.
Es ist wie eine Waage: Wie viel Arbeit macht sich der Software-Entwickler und wie viel Arbeit muss der Endnutzer letzten Endes übernehmen. Enterbrain ging mit dem XP den Weg so gut wie alles auf den Endnutzer ab zu wälzen.
Ich stimme dieser Taktik schlichtweg nicht zu.
Zitat von Caine Luveno
Schon mal versucht im RM2k ein fremdes Menüscript einzubinden und anzupassen welches z.B. unendlich viele Itemslots bietet? Da kriegst du bedeutend mehr Inkompatiblitätsprobleme als mit einem Ruby-Script, vorallem wenn du mehrere Fremdscripte kombinieren möchtest. Das Argument zieht also eher schlecht.
Und eben da kann die Community helfen. Alleine schon wenn es darum geht zwei inkompatible Scripte zueinander kompatibel zu machen, was im RM2k per Definition, ohne das Zielprojekt selbst zu besitzen, nicht möglich ist.
...
Die RPG Maker 2k und 2k3 sind, meiner Meinung nach, von grundauf schlecht designed. Kompliziertere Systeme sind nur dann möglich, wenn man bereit ist wie ein Sklave zu arbeiten, für ein Ergebnis, welches mit einer ordentlichen Programmierung nur wenige Minuten gedauert hätte.
Das hat nichts damit zu tun, weil eine Scriptsprache nicht zur Verfügung steht. Das hat damit zu tun, dass Enterbrain eine schlechte Arbeit geleistet hat.
Wenn man ordentliche, typisierte Variablen definieren könnte, und zwar lokal und global, dann würde das ganz anders aussehen.
Zitat von Caine Luveno
Das was du beschreibst, Grafiken reinkloppen und am Code rumwerkeln ist genau dass was XP und VX(Ace) einem Entwickler in der einfachen Form erst ermöglichen. Eine Grafikengine bietet da deutlich weniger, nämlich nur grundlegende Funktionen welche auf beispielsweiße OpenGL oder DirectDraw(Direct3D) aufsetzen welche dir die Möglichkeit geben "zeichne Würfel an Position X und rotiere mit Geschwindigkeit S um Achse Y mit Textur C", sodass du nicht mehr 6 einzelne Quadrate selber zeichnen, positionieren und rotieren musst oder gar 12 Dreiecke, sondern in einem Aufrund deinen ganzen Würfel hast. Da ist nichts mit "Ressourcen reinkloppen" weil die Engine nicht einmal weiß was "Ressourcen" wären und dies gar nicht wissen kann.
Der RPG Maker geht da deutlich weiter. Vom komplett vorhandenem Editor, welchen dir auch keine Grafikengine (Unreal-Engine mal außen vor gelassen) bietet, will ich gar nicht anfangen.
...
Ich habe nicht gesagt, dass ein Programmierer sich lediglich eine Grafikengine nehmen soll.
Es gibt sehr gute Spieleengines zur kostenlosen (und auch kostenpflichtigen) Nutzung im Internet.
Jeder dürfte sich jederzeit eine dieser Engines nehmen und sofort anfangen das Spiel zu programmieren.
und viele weitere bekannte Namen. Alles kostenlos zu nutzen.
Das sind nicht nur Grafikengines. Du hast bereits ein komplettes fertiges Spiel in manchen Fällen. Dieses kannst du dann ganz einfach mit neuen Resourcen und zusätzlichem Code bearbeiten.
Zitat von Caine Luveno
@Topic
- Variable Auflösung (entweder mit Highres-Grafiken oder eben einer Skalierung über den sichtbaren Bildschirmbereich)
- "Echtes" Pixelmovement mit allem was dazu gehört (Pixelgenaue Kollision z.B.).
- Erweiterung der Maker-GUI, z.B. um eigene Event-Befehle für selbstgeschriebene Scripte (Plugin-System?)
Halt die Dinge welche selbst mit RGSS3 nahezu unmöglich zu realisieren sind, da man die halbe Engine umschreiben müsste.
...
Ein Plugin-System wäre vielleicht ganz interessant, möglicherweise aber schwer umzusetzen. Darüber muss ich ein wenig nachdenken.
Bei den Beispiel-Engines fehlen jetzt natürlich gerade die für uns interessanten, nämlich die für 2D-Retro-RPGs. Vielleicht könnte man die mit dem GameMaker umsetzen, aber das stelle ich mir viel aufwändiger als mit dem Maker vor. Man müsste wirklich mal schauen, wer weniger Aufwand hat: Ein Programmierer mit Spiel-Engine oder der Maker-Entwickler.
guck dir mal Unity3D an. Das hat seit neustem nen 2D Modus. Wie gut der ist, keine Ahnung, aber Unity ist von Haus aus sehr mächtig (und bietet portiertungen von Haus aus an.)
Bei den Beispiel-Engines fehlen jetzt natürlich gerade die für uns interessanten, nämlich die für 2D-Retro-RPGs. Vielleicht könnte man die mit dem GameMaker umsetzen, aber das stelle ich mir viel aufwändiger als mit dem Maker vor. Man müsste wirklich mal schauen, wer weniger Aufwand hat: Ein Programmierer mit Spiel-Engine oder der Maker-Entwickler.
...
Was mehr oder weniger Arbeit bedeutet kann man, denke ich, nicht beantworten.
Wenn man sich auf die Grundfunktionalität des Makers beschränkt ist die Art von Spielen, welche man erstellen kann, sehr begrenzt. Wenn man sich innerhalb dieser Grenzen bewegen will ist der Maker wahrscheinlich einfacher. Immerhin ist er bereits dafür ausgelegt.
Sobald man aber ein klein wenig von der Norm abweichen wird, wird es wohl sehr schnell einfacher eine "professionellere" Engine zu verwenden.
Außerdem: Jede 3D Engine bietet auch 2D Grafikmöglichkeiten.
Immerhin haben auch 3D Spiele ein 2D overlay und/oder HUD.
Das ist nicht viel anders als Sprites anzuzeigen. Außerdem gibt es soetwas wie 2D-Grafik für eine Grafikkarte garnicht mehr. Dort wird alles nurnoch mit der gleichen Technik wie für 3D realisiert. Es wird halt einfach nur "flach" gezeichnet.