PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : In wie weit kann man sagen, dass man mit dem Maker "programmiert"?



FF I Weißmagier
16.01.2005, 14:24
---

Geiu
16.01.2005, 14:28
Eine Programmiersprache ist es auf keinen Fall, denn Programmiersprachen werden immer kompiliert. Ich persönlich würd die "Programmierung" mit dem Maker als sripten bezeichnen.
Skriptsprachen werden nämlich im Gegensatz zu Programmiersprachen direkt ausgeführt, wie man sie erzeugt und in welchem Format sie vorliegen spielt aber afaik keine Rolle.

Squall-Leonhart
16.01.2005, 14:31
Jepp... quasi sowas wie ne Engine...
Denn programmiersprachen werden compiliert (oder interpretiert (Interpreter))...
man könnte zwar sagen, dass man programmiert, doch nicht mit einer Programmiersprache!

Rinober
16.01.2005, 14:38
ein programm, mit dem man ein spiel programmiert xD
eine Programmiersprache ist es mit sicherheit nicht
gruß
Jason

Stefan Seibert
16.01.2005, 14:54
Das merkt man ja auch, wenn man den Maker mit, sagen wir mal "Dark Basic" vergleicht. Beim Maker klickst du auf Schaltflächen, und gibst ab und zu mal einen Text ein. Aber die Hauptbeschäftigung ist das Klicken. Bei "Dark Basic" hingegen musst du alles mit der Hand eingeben. Da musst du ja auch erst einmal die Programmier-Sprache beherrschen.

Übrigens, nicht umsonst steht beim Rpg-Maker: "Für dieses Programm werden keine Programmier-Kenntnisse benötigt." ;)

Nun ja, etwas Ähnliches, wie der Maker ist der 3D-Game-Maker, bei dem benötigt man ja auch keine Programmier-Sprache. :)

Lukas
16.01.2005, 14:55
Ich sage makern oder scripten (obwohl Scriptsprachen wieder was anderes sind (ich nehme an, du meinst nicht den XP, der unterstützt ja Ruby)).
Wäre lustig, wenn der Maker einige Eigenschaften von Programmier- oder Scriptsprachen hätte (Klassen, Arrays, Funktionen mit lokalen Variablen, beliebig erweiterbar). Dann könnte man damit noch ganz andere Sachen anstellen.

Wischmop
16.01.2005, 15:00
Die richtige Antwort lautet Ja und Nein.
Hat damit zu tun, dass man per Klick bestimmte Befehle in eine Reihenfolge bringt, also indirektes Programmieren, andererseits kompiliert man aber nicht
Den Rest kann Ineluki am besten erklären. Wobei er das schon x-mal gesagt hat, und ich auch mehr weiß, zum wievielten Mal diese Frage schon gekommen ist. -_-

Ynnus
16.01.2005, 15:04
Eine Programmiersprache ist es auf keinen Fall, denn Programmiersprachen werden immer kompiliert.
Es gibt aber auch etliche Programmiersprachen welche nicht kompiliert werden sondern interpretiert. ;)

Das andere Thema hatten wir auch schonmal. Es gibt ein paar grundliegende gleiche Elemente wie IF-Abfragen, Variablen und sowas. Aber da hörst dann schon auf. Denn es gibt nichtmal verschiedenen Variablentypen. Genausowenig gibt es Speichermanagement, also keine Pointer oder Speicherbuffer welche man verwalten könnte. Auch bleibt einem die Hauptschleife des Programms gänzlich verborgen. Welche Events arbeitet der Maker wann ab? Kann keiner so genau sagen. Also, welches der 20 Parallel Processes ist wann dran und welches wird zuerst abgearbeitet. Denkt doch bitte nicht, ach, das ist nen Parallel Process, das geht alles parallel. Irdgendwo muss da ne Schleife sein welche das abarbeitet. Es bleiben somit auch die Frames verborgen. Es gibt begrenzte Variableanzahlen, was weiterhin ziemlich untypisch für Programmiersprachen ist. Außerdem fehlen etliche Elemente wie Structuren, Arrays, Linked Lists, OOP, Anständige Rechenarten (Geometrie, Wurzeln, Logarithmen, komplexere Gleichungen, Boolsche Ausdrücke...) Das alles ist nicht gegeben und noch dazu schreibt man nicht sondern klickt sich den Text zusammen. Nicht nur wesentlich umständlicher sondern auch sehr Zugriffseingeschränkt.
Also mit der Komplexität einer Programmiersprache kann der Maker lange nicht mithalten. Es fehlt der Einblick in viele details. Ja nichtmal die Hauptschleife hat man. Und einen Einstiegspunkt auch nicht. Demnach lässt sich das Scripten oder makern keinesfalls mit Programmieren gleichsetzen, auch nicht entfernt, nein. Der Maker ist im Grunde genommen eine Grafikengine welche sich über simple Befehle wie move event oder show message steuern lässt. Also Anweisungen an Befehle welche in der Engine interpretiert und ausgeführt werden.

Kelven
16.01.2005, 17:41
Ich bleib dabei daß jede Sprache die ein Programm ( also eine Abfolge von Befehlen ) beschreibt auch eine Programmiersprache ist. Deswegen meiner Meinung nach auch Scriptsprachen. ^^

Jesus_666
16.01.2005, 18:43
Sunny hat an sich recht: Die Maker-Skriptsprache ist extrem einfach und allenfalls noch mit einem auf das Ansteuern einer Grafikengine spezialisierten Assembler vergleichbar. Sie bietet zwar Eigenschaften wie globale Funktionen oder Pointer (beides sehr eingeschränkt), leidet aber andererseits an ihren (teilweise willkürlichen) Einschränkungen.

Man kann mit dem Maker skripten, allerdings ist die Maker-Sriptsprache praktisch jeder beliebigen anderen Skriptsprache unterlegen.

Squall-Leonhart
16.01.2005, 19:47
Der Maker ist ja auch so gemacht, dass jeder Noob nach kurzer Einarbeitungsphase fast alle Funktionen in einfachen Zusammenhängen verwenden kann!

Meine Tendenz:

Eindeutig keine Programmiersprache!

Programmiersprache:


Eine Programmiersprache ist eine formale Sprache, mit der Programme geschrieben werden können. Ein Programm ist das Artefakt einer Verfügung eines Programmierers an einen Ausführer zur Durchführung eines Vorgangs.

Einige in der voranstehenden Definition verwendete Begriffe seien nun kurz erklärt:

Eine formale Sprache ist eine Sprache, deren Gebilde (syntaktische Einheiten) als bestimmte Mengen (z.B. Mengen von Texten) genau und unveränderlich definiert sind. Sie unterscheidet sich dadurch von einer natürlichen Sprache (wie Deutsch), in der es Grenz- und Zweifelsfälle gibt.

Ein Artefakt einer Erklärung ist eine Ausfertigung dieser Erklärung auf einem Speichermedium, hierbei kann es sich beispielsweise um eine Urkunde oder eine Datei handeln.

Eine Verfügung ist eine Willenserklärung, die Aspekte festlegt, die bei der Erledigung bestimmter zukünftiger Vorgänge zu beachten sind. Es ist möglich, darin nicht nur zu erledigende Aufträge festzulegen, wie bei einer einfachen Verfügung, sondern die Ausführung (Umsetzung) auch von Umständen abhängig zu machen, die erst nach Ausfertigung der Verfügung bekannt werden könnten, etwa erst während der Ausführung. Wenn diese Möglichkeit betont werden soll, so spricht man von einer Vorausverfügung.

Der Ausführer ist das System, welches sicherstellt, daß die Verfügung verwirklicht wird, also sich so auswirkt, wie dies nach dem im Programm erklärten Willen des Programmierers geschehen soll.

Ein Vorgang (Prozeß) ist ein Ablauf bei dem ein System verschiedene Zustände durchlaufen kann, dabei kann es in seine Umgebung hinein wirken oder durch seine Umgebung beeinflußt werden


ODER auf gut Deutsch:

Eine Programmiersprache ist eine Sprache, deren Grammatik und Styl genau festgelegt sind, und mit der ein Programm erstellt wird, wobei Programm ein beliebiges Artefakt (Datei, bild, Ausführung...) ist, das durch ein System (z.b.Computer) , das die Befehler vom Programmierer erhält, erstellt und ausgeführt wird!

Nun: der RPG-Maker erzeugt zwar ein solches Artefakt, mithilfe des Systems nach willen des Programmierers (insofern er skillig genug ist), und führt es aus, doch bestreite ich, dass es eine Programmiersprache ist, da der RPG-maker präzise gesehen nicht das Artefakt nach den Eingaben des Benutzers erzeugt, sondern selber das Artefakt einer Programmiersprache ist, und durch die indirekte eingabe der Befehle eher selber zum Ausführer wird, denn:
Bei einer Programmiersprache sind die Befehle (oder einfach der satzbau) fest vorgeschrieben und werden in ihrer Quellform, wie sie vom Benutzer eingegeben wurde interpretiert oder compiliert, und so direkt in die Sprache des Systems verwandelt, der dann das artefakt ausführt, doch der rpg-Maker ein artefakt oder eine Ausführung ist, die erst diesen Quellbefehl erzeugt und damit eine Engine ist!

Also: Der direkte Quellbefehl ist für den user(benutzer) nicht zugänglich, womit der maker der der programmierer (Im Definitionssinne des Programms) und nicht der User, deswegen ist es keine Programmiersprache, da es der Programmierer ist!

Ich weiss, etwas umständlich ausgedrückt, aber ich kann es nicht besser Formulieren!


PS: ich untermaure das noch durch die definition von engine, die auf den RPG-Maker zutrifft!


Game Engine
Eine Game Engine ist eine Programmbibliothek, die Entwicklern von Computerspielen häufig benutzte Werkzeuge zur Verfügung stellt.

Typische Werkzeuge einer Game Engine sind:

Schnelle, optimierte Klassen für Vektoren, Matrizen, Ebenen, Farben (inklusive Operatoren und Hilfsfunktionen)
Funktionen zum Laden einer Textur oder eines 3D-Modells
Einfache und schnelle Darstellung von 3D-Objekten
Effekte wie Feuer, Explosionen, Wasser, Schnee, Nebel
Textausgabe
Einfacher Zugriff auf Eingabegeräte wie Tastatur, Maus und Joystick
Einfaches Abspielen von Musik und 3D-Sounds
Laden von Dateien aus größeren Datenpaketen (z.B. verschlüsselte ZIP-Dateien)
Diverse Helferfunktionen für immer wieder benutzte Abläufe in Spielen (z.B. Kollisionserkennung, BSP)
Speichermanagement (um Speicherlecks zu verhindern)



Ihr seht, die definition von engine stimmt mit dem RPG-maker überein!

Gute nacht!

Ynnus
17.01.2005, 15:12
@Sunny
Du hast mich doch etwas zum Nachdenken gebracht. Bis lang habe ich mir über parallele Prozesse keine Gedanken gemacht, da sie wirklich fast parallel ablaufen, aber das was du sagst, macht Sinn.
Allerdings müssten die Events ja in Bruchteilen von Sekunden nacheinander ablaufen.
Wäre bestimmt mal interessant, wenn man den Maker mal auseinander nehmen könnte um zu sehen, was da so passiert.
Vielleicht könnte man davon ausgehen dass die Events alle ihrer ID nach durchlaufen werden. Und da dann gefragt werden, welche Startbedingung vor liegt. Bei PP oder Autostart ohne Switches (oder wenn diese erfüllt sind) wird dann der Eventtext abgearbeitet, andernfalls läuft er weiter und geht die nächsten IDs der Events ab. Wo da allerdings Probleme auftreten in dieser Logik ist diese, dass ein Event auch Waits haben kann und somit anhält. Würde jetzt dort die Lesemarke eine Wartepause einlegen, würden ja alle anderen PP-Events auch stillstehen. Dem ist aber nicht so. Demnach würde ich eher darauf tippen dass die Lesemarke schnell durch die Befehle zieht, sich merkt was in welcher Reihnfolge passieren soll, und dies dann abarbeitet. Sind dann Timer wie dieses Wait an der Reihe, läuft der Code anderer PPs nebenher weiter und die Zeilen des Events mit dem Wait werden aufgeschoben. So ähnlich stell ich mir das vor, keine Ahnung wie genau der Maker das macht.

Sakow
17.01.2005, 15:17
Also man kann allerhöchstens sagen ICH habe dieses Spiel gemacht. Programmiert ist villeicht dann am falschen Platz, was ich aber denke nicht heißt das man nichts kann. Auch wenn mann ihn nur macht kann man dabei das beste aus sich rausholen!

Squall-Leonhart
17.01.2005, 15:17
Es ist aber auch möglich, dass der Maker, wie bei C++ mehrere Parralele Programme (Prozeduren) gleichzeitig laufen lassen kann...
Ich weiss ja nicht, worauf der Maker programmiert wurde,,,(PHP?)

Lukas
17.01.2005, 15:19
Ich weiss ja nicht, worauf der Maker programmiert wurde,,,(PHP?)
Wahrscheinlich C oder C++.
In Php garantiert nicht. Php ist eine Interpretersprache, und man kann den Maker auch ohne Php auf dem Rechner laufen lassen.

Kelven
17.01.2005, 17:38
Ich denke mal der Maker wird bei den PP's genauso vorgehen wie andere Programme mit mehreren Threads. Im Detail erläutern kann ich es aber nicht dafür sind die Vorlesungen schon zu lange her. ^^ Jedenfalls gibt es bei Ein-Prozessor-Systemen nie wirklich Paralellität sondern nur eine Pseudoform davon und so wird es sicherlich auch im Maker sein.

Jesus_666
17.01.2005, 18:11
Ich habe mir auch gedacht, daß der Maker Multithreading benutzen könnte; das würde die Programmierung von parallel ablaufenden Ereignissen relativ leicht machen.