Banner left   Banner center   Banner right

Germanenglish Home · News · Diary · Screenshots · Documentation (Wiki) · Downloads · Guestbook · Forum

Home · Benutzer registrieren · Suchen · Statistik · FAQ · Benutzerliste

Zur Zeit online: keiner ausser dir

 X-Force - Fight For Destiny - Forum —› X-Skript / Developer-Pack —› XScript Lehrkurs

Autor Mitteilung
verfasst am: 17.07.2011, 11:52
Registrierdatum: 22.08.2008, 15:51

 Beiträge: 403
Nachdem mehrfach nach einem XScript Kurs gefragt wurde, möchte ich hier mal ansetzen, und schauen wo die Problem sind, damit auch das Tutorial aufgebessert werden kann. Vieleicht ist ja auch nur ein Programmiergrundkurs von nöten.

Posted hier bitte genau, was ihr wissen wollt, bzw wo das Tutorial unzureichend ist oder schwer verständlich.
verfasst am: 17.07.2011, 12:09
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Mich würder erstmal interessieren, ob jemand wirklich das Tutorial Schritt für Schritt durcharbeiten will. Wenn es jemand ernst meint, wird er auch von unserer Seite Unterstützung finden.

Zum Tutorial - eventuell könnte mal jemand die Skripte anschauen, ob die so noch 100% mit der aktuellen Version (917a02)kompatibel sind.
verfasst am: 17.07.2011, 12:17
Registrierdatum: 22.08.2008, 15:51

 Beiträge: 403
Mir gehts darum, um heraus zu finden, wo die Schwierigkeit ist, wo man nachbessern kann oder ob es eines Programmiergrundkurs braucht.
verfasst am: 17.07.2011, 12:27
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Das ist mir schon klar. Bin da nur aus der Vergangenheit heraus etwas skeptisch geworden. Wir haben schon mehrmals probiert herauszufinden, wo denn genau die Probleme liegen - nur um dann festzustellen, dass die Kritiker sich ganz offensichtlich nicht wirklich mit dem Tutorial beschäftigt haben. Ohne Programmiererfahrung kann man aber eine Skriptsprache nicht mal so nebenbei in einer Stunde lernen. Übrigens richtet sich das Tutorial auch an Programmieranfänger. Wenn es irgendwo Schwierigkeiten mit dem Tutorial gibt, sollte das also nicht über einen extra Programmiergrundkurs gelöst werden, sondern direkt im Tutorial.
verfasst am: 17.07.2011, 12:52
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
Ich muss Natter da zustimmen.
Wann immer wir bei Beschwerden über das X-Skript nachgehakt haben, lautete die Hauptbeschwerde (sofern wir überhaupt eine Antwort bekommen haben) immer: "Ich kann das X-Skript-Tutorial nicht innerhalb von zwei Stunden durcharbeiten, und mehr Zeit will ich nicht dafür aufwenden..."

Und auf der anderen Seite haben wir von denjenigen Leuten, die wirklich bereit waren sich ins X-Skript einzuarbeiten und mehrere Tage (oder ein paar Wochen) dafür einzusetzen, noch nie irgendwelche Rückmeldungen über größere Probleme mit dem Tutorial bekommen. Vereinzelte Nachfragen oder Kommentare ja, aber nie etwas aufwendigeres.

Und X-Skript ist nunmal eine richtige Programmiersprache, kein einfaches "Klick hier und alles ist fertig"-System für Skript-Kiddies. Das können wir auch nicht ändern, ohne viele der Optionen und Möglichkeiten zu verlieren.

Ich gehe davon aus, dass Du (wie wir früher auch immer) keinerlei Antwort auf die Frage "Wo liegen die Probleme" bekommen wirst, weil niemand bereit ist zu antworten "das Tutorial hat zuviel Text und ist zu zeitaufwendig, deshalb habe ich das nie gelesen".

Und falls jemand doch andere (und echte) Probleme hat, dann hoffe ich das ich mit dieser provokanten These denjenigen doch dazu bringe, diese mal öffentlich zu posten - denn an konkreten Problemen können wir arbeiten und sie beheben, nur an der fehlenden Arbeits- und Zeitbereitschaft von Möchtegern-Skriptern scheitern wir immer ;-)
verfasst am: 17.07.2011, 13:18
Registrierdatum: 08.11.2006, 06:23

 Beiträge: 430
Okay, ich als einer, der das einmal mehrere Tage versucht hat, versuche, mich die nächste Zeit mal da ranzusetzen und genau zu versthen und auch zu "kritisieren", also wo ich etwas nicht verstehe und warum nicht.

Meine "Programmierkenntnisse":
ganz früher in der Schule mal Cobol,
Zuahsue Basic und Pascal (zu MS-DOS-Zeiten) und etwas BATCH.
Später dann einmel ein paar Zeilen C++ und auch etwas Jaca (L2-Freeserver aber da auch nur sehr wenig verstanden).
PHP/HTML verstehe ich am meisten, SQL nicht direkt aber Datenbankverwaltung über phpmyadmin Problemlos.
Aurora Toolset NWN1 die Skriptsprache viel.
Netzwerktechiker.

Mein "Problem" ist vermutlich, daß das X-Skript so "anders" ist, als die mir bekannten Systeme und ich da vieles wohl nicht ganz verstehe.

Auch ein "Grundproblem" - ich habe nie jemanden gefunden, der mir irgendwie belegen konte, daß "Objektorientiertes Programmieren" ein Vorteil und kein Nachteil ist, denn bisher sah ich nur mehr Ressourcenaufwand dabei und keinen "Vorteil" geschweige denn, wie es genau fonktioniert (in PHP)

Werde mich aber mal dransetzen und gucken, was und wo da für mich "Fragwürdig" ist.

Dann werde ich auch genau "dokumentieren", welche Probleme ich wo habe, da ich mich als "Dau" sehe, was X-Skript und programmieren betrifft.
Wird aber ein paar Tage dauern, bis ich richtig anfangen kann, weil ich hier nebenbei noch viel Gartenarbeit habe und bei gutem Wetter dann abends recht kaputt bin..


...DX
verfasst am: 17.07.2011, 13:20
Registrierdatum: 06.06.2011, 12:20

 Beiträge: 50
Ich habe eben das Tutorial überflogen. Mir ist dabei ein Fehler aufgefallen: Kapitel 6 arbeitet noch mit TAlien und TAlienModel. Da es nur noch TUnits gibt, sollte es überarbeitet werden.

Betroffen sind:
Kapitel 6.1 unten in der Beschreibung
Kapitel 6.2 ganz unten im Script und in der Beschreibung
Kapitel 6.4 fast überall


Das Tutorial selbst finde ich so ganz in Ordnung. Ich würde nur gerne wissen, was außerhalb des Tutorials sonst noch geht. (Ausrüstung mit Script-Effekte, UFO-AIs, Ground-AIs, ...)
verfasst am: 17.07.2011, 13:42
Registrierdatum: 23.09.2008, 00:25

 Beiträge: 67
Also ich sehe mehrere Vorteile in der objektorientierten Programmierung (z.B. in Java oder C++):
- Der Code ist durch die Verwendung von Klassen oft besser strukturiert und man findet deswegen bestimmte Funktionen einfacher. Außerdem sind dadurch Funktionen, die zusammenhängen, oft in derselben Klasse oder man sieht zumindest sofort, in welcher Klasse die anderen Funktionen stehen.
- Man kann leichter Daten kapseln und Zugriffsberechtigungen geben (d.h. wer alles auf die Daten in der Klasse zugreifen darf oder sie sogar ändern darf).
- Klassen können ihre Eigenschaften vererben, d.h. man kann eine andere Klasse definieren, die bestimmte Teile oder alle Funktionen der Oberklasse übernimmt, aber ein paar Teile verändert oder hinzufügt.

Bei PHP kenne ich mich leider nicht aus, deswegen kann ich nicht sagen, inwieweit Objektorientierung dort umgesetzt ist.

Ich hab zwar nun schon eine Weile nicht mehr mit X-Script gearbeitet, aber ich denke, wenn es Fragen gibt, kann ich da schon was beantworten.
verfasst am: 17.07.2011, 13:47
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
Zitat: DareliusXurax
Mein "Problem" ist vermutlich, daß das X-Skript so "anders" ist, als die mir bekannten Systeme und ich da vieles wohl nicht ganz verstehe.

X-Skript ist eine Modifikation von Pascal-Skript und benutzt dieselben formalen Grundstrukturen wie Pascal.
Wenn Du früher schon mit Pascal gearbeitet hast, sollte es also mit den Grundstrukturen keine Probleme geben.

Ich kann deshalb nur vermuten, was Du als "anders" ansiehst - meinst Du damit das es viele spezifische Befehle für die Spielmechanismn gibt?
Daran kann man nichts ändern, aber sowas sollte man eher als eine "Zusatzbibliothek" an Befehlen zusätzlich zur Pascal-Basis betrachten, und sowas schlägt man eher in der Referenz nach als es auswendig zu lernen.

Zitat: DareliusXurax
Auch ein "Grundproblem" - ich habe nie jemanden gefunden, der mir irgendwie belegen konte, daß "Objektorientiertes Programmieren" ein Vorteil und kein Nachteil ist,

Bei X-Skript kannst Du genau genommen auch nicht selber objektorientiert programmieren, sondern nur einzelne (bestehende) Komponenten einer objektorientierten Programmierung nutzen - meistens in ganz normalen prozeduralen Programmen.

Mein Kommentar zur Objektorientierten Programmierung allgemein gesehen:
Man kann den Mehraufwand einer OOP nur dann in einen Vorteil umsetzen, wenn man die selbst definierten Klassen und Objekte passend wählen kann. Bei einer schlechten Objektaufteilung bleibt man ohne Vorteil auf dem Mehraufwand sitzen, und nicht jedes Programmkonzept ist gut aufzuteilen.
Für eine gute OOP muss man vor der ersten Programmzeile schon einiges an Abstraktionsfähigkeit auf das Problem anwenden können, und so etwas lohnt nur bei großen Projekten - wer für kleinste Programme die OOP benutzt, der hat in der Regel immer nur Nachteile.

Zitat: Aropretim
Ich würde nur gerne wissen, was außerhalb des Tutorials sonst noch geht.

Eine Menge - Du kannst ja mal nach den Beispielskripten (*.XMS) im X-Force-Verzeichnis suchen. Außerdem sind im GalWar und im Smirkovic auch viele Skripte, die aufwendigere Funktionen nutzen (leider funktionieren im GalWar ein paar Sachen nicht richtig, weil es unvollständige Neuerungen gegeben hat)
verfasst am: 17.07.2011, 14:06 · Edited by: Natter
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Zitat: Aropretim
Ich würde nur gerne wissen, was außerhalb des Tutorials sonst noch geht. (Ausrüstung mit Script-Effekte, UFO-AIs, Ground-AIs, ...)

Für diesen Zweck gibts eine andere Quelle. DirkF hat ja schon auf die Beispielskripte verwiesen. Die helfen imho aber nur bedingt. Sinnvoller ist da schon der Demonstrationsspielsatz, weil der mehr oder weniger systematisch die einzelnen api's abarbeitet, und man direkt im Spiel sehen kann, was alles geht, um dann anschließend direkt in den Skripten nachzuschauen, wie es im Code umgesetzt wurde. Kann allerdings sein, dass der Spielsatz mit der 0.917 nicht mitgeliefert wurde. In der 0.915 sollte er aber dabei sein, oder nicht? Ist sicher noch ausbaufähig, aber weil ich bisher dazu kein Feedback bekommen habe, war die Lust nicht sehr groß, den weiter auszubauen.
Darüber hinaus war ja auch der Smirkovich als eine Art Tech-Demo gedacht - allerdings sollten mit dem vor allem die in einer Version neu hinzugekommenen Möglichkeiten gezeigt werden (z.B. erstellen eigener Seiten; Folgebodenmissionen...).

Und zum Thema objektorientiert. Ein sinnvolles Beispiel findet ihr imho bei den neuen Tileformaten (schaut einfach mal in die TileSetTypes.pas).
Nur mal als konkretes Beispiel: es können z.B. allgemeine Eigensachaften in TCostumTile angelegt werden, während man sich dann bei den verschiedenen Tilearten nur auf die speziefischen Eigenschaften konzentrieren muss (schaut euch mal das Laden/Speichern der XML-Daten an, oder das Erstellen der Grafik-Objekte; ohne Objekte und Vererbung würde der Quellcode um ein vielfaches länger werden, und bei grundlegenden Änderungen müsste man immer bei allen Tiletypen gesondert nachbessern - so geht das einfach über TCustomTile an zentraler Stelle).
verfasst am: 17.07.2011, 17:13
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Kapitel 3.2:
Zitat: "Da ein UFO recht langweilig ist, möchten wir jetzt zufällig bis zu 5 UFOs erstellen."

Danach folgt ein Codebeispiel, bei dem allerdings erstmal nur die Zufallszahl ermittelt wird. Darauf wird allerdings erst mehrere Abschnitte weiter unten hingwiesen (Thema Schleifen).
verfasst am: 17.07.2011, 17:21 · Edited by: Natter
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Die Beispiele in Kapitel 3.2 zu komplexen Ausdrücken stimmen nicht mehr. Die Verwendung von / führt zu Typemissmatch. Bevor das im Wiki angepasst wird, müsste man imho erstmal schauen, warum sich das Verhalten geändert hat, und ob man das so will. Momentan muss man für Divisionen auf div zurückgreifen, falls man das Ergebnis an eine Integervariable zuweisen will.
verfasst am: 17.07.2011, 17:28
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Kapitel 3.2 - Thema Schleifen
Zitat: 'Die Zählvariable darf allerdings nicht innerhalb der Schleife geändert werden.'
Diese Aussage stimmt so nicht.
verfasst am: 17.07.2011, 17:54 · Edited by: sujin
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Zitat: Natter
Kapitel 3.2 - Thema Schleifen
Zitat: 'Die Zählvariable darf allerdings nicht innerhalb der Schleife geändert werden.'
Diese Aussage stimmt so nicht.

Aus dem darf könnte man ein sollte machen, um fachlich korrekt zu sein, aber solche Trickserei muss man nicht wirklich lehren.

Bzgl. OOP: Nun, es ist sicher nicht der Messiahs. Hat seine Vorteile, wie schon gepredigt, grade und hauptsächlich bei großen dezentralisierten Programmen (Dinge wie information hiding hat's aber nicht gepachtet, ratet mal wozu header und incomplete types in C gut sind ;)). Schlecht angewendet oder in sehr kleinen Programmen ist's wie gesagt relativ witzlos (wobei ich auch schon Programme mit weniger als 1000 Zeilen geschrieben habe, in denen Polymorphismus sehr gute Dienste leistete). Das ist aber auch nicht relevant für X-Script:
- Die API für's Manipulieren des Spiels ist jetzt wie sie ist und ändert sich auch nicht mehr, da muss man sich so oder so mit abfinden
- In X-Script können wir eh kein OOP benutzen, nur records und wenn wir ganz mutig sind Variants für ein kleines bisschen Polymorphism (leidergottes keine tagged unions, aber das ist ein anderes Thema) - da benutzen wir eh nur prozedurale Programmieung.
verfasst am: 17.07.2011, 17:59 · Edited by: Natter
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
So, habs gerade auch nochmal durchgeschaut, und bis einschließlich Kapitel 5 sollte das Tutorial jetzt mit der 0.917a02 verträglich sein, wenn man mal von den oben genannten Problemen absieht (Typemissmatch bei / bzw. Änderung der Zählvariable in Schleifen). Musste nur einige kleine Änderungen vornehmen (z.B. TRaumschiff ist jetzt TAircraft). Kapitel 6 muss aber noch angepasst werden.

Zitat: sujin

Aus dem darf könnte man ein sollte machen, um fachlich korrekt zu sein, aber solche Trickserei muss man nicht wirklich lehren.

Deswegen hab ichs nicht gleich geändert. Man sollte schon auf die damit verbundenen Probleme hinweisen.
verfasst am: 19.07.2011, 18:05
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Das Tutorial sollte jetzt auf dem Stand der 917a02 sein.



Du musst dich registrieren um auf dieses Thema zu antworten.
Login :: » Name » Passwort

Ladezeit (sec.): 0.017 · Powered by miniBB 1.6 with parts of 1.7 © 2001-2003