Grundsätzlich Frage zum Skripten

Hier könnt ihr Unterstützung holen für euere Script Probleme, und Fragen rund um das Scripten.
Antworten
Nachricht
Autor
mungo

Grundsätzlich Frage zum Skripten

#1 Beitrag von mungo » 24 Nov 2008 14:57

Da ich neu bin und noch nicht wirklich den Überblick habe, was mit RunUO alles machbar ist und was nicht, folgende Frage:
Wie groß ist die Menge der Skripts, die RunUo zur Verfügung stellt? Muss ich für jede Standard.Aktion mir eigene Skripts "basteln", oder kann ich für Dinge wie Skills, Vendoren, Kampfsystem....auf vorgefertigte Skripts zurückgreifen und diese ohne allzugroßen Aufwand verwenden?

nazghul

#2 Beitrag von nazghul » 24 Nov 2008 15:52

Kein mir bekannter halbwegs verbreiteter Emulator kommt in einer Form daher, die es Dir nur erlauben würde, in der Welt herumzuwandern.

Kampf, Skills, Magie, Standard-Vendoren, Standard-Gegenstände (ja, auch dahinter liegen "Skripte" - wie sonst wäre zu erklären, dass Du eine Hose anziehen kannst, eine Banane aber nicht?) usw. sind überall dabei.

AFAIR liefert Dir RunUO (wie auch Sphere, UOX, Pol, ...) eine mehr oder weniger gelungene und aktuelle Kopie des OSI-Spielverhaltens out of the box. Ans Programmieren musst Du Dich erst dann machen, wenn Du daran etwas ändern willst. Was bei einem schon bei Herstellung lilafarbenen Schwertes anfängt und bei einem Environment-System, dessen Wetter und Helligkeit durch den Stand von 17 Monden bestimmt werden und Einfluss auf Char-gesundheit, Pflanzenwachstum und Magiewirkung haben, noch lange nicht aufhört; das EINBAUEN inbesondere komplexerer Sachen stellt dann, auch wenn man sie "fertig" geliefert bekommt, schon gewisse Anforderungen an die eigenen Fähigkeiten als Programmierer (bei RunUO IMO mehr als etwa bei Sphere, dafür kann man als "High End Programmierer" aber auch reichlich mehr machen)

mungo

#3 Beitrag von mungo » 24 Nov 2008 20:51

danke dir für die Info!

IthronNorui
Senior Mitglied
Beiträge: 142
Registriert: 24 Jun 2005 17:00
Wohnort: NRW
Kontaktdaten:

#4 Beitrag von IthronNorui » 11 Mär 2009 17:28

Naja, der Thread ist jetzt schon etwas älter, mich würde aber schon interessieren, was du (Nazghul) direkt meinst mit
dafür kann man als "High End Programmierer" aber auch reichlich mehr machen
Ich wüsste nicht wo die Grenzen bei RunUO gesetzt sind. Alleine schon weil RunUO OpenSource ist und eben mit einer Hochsprache programmiert wird, im Gegensatz zu Sphere wo man mit einer Scriptsprache scriptet und (soweit ich es weiß, mein Stand ist aber auch schon bisschen älter) keinen Zugriff auf den Server Code hat.

Kannst du mir genaue Systeme nennen die RunUO nicht erfüllen kann, wohl aber Sphere? Natürlich ohne einen Custom Client.

Irian
Gold Mitglied
Beiträge: 620
Registriert: 08 Apr 2004 14:28
Wohnort: Regensburg
Kontaktdaten:

#5 Beitrag von Irian » 11 Mär 2009 18:26

Ich glaube, du hast ihn falsch verstanden.
das EINBAUEN inbesondere komplexerer Sachen stellt dann, auch wenn man sie "fertig" geliefert bekommt, schon gewisse Anforderungen an die eigenen Fähigkeiten als Programmierer (bei RunUO IMO mehr als etwa bei Sphere, dafür kann man als "High End Programmierer" aber auch reichlich mehr machen)
1. Das Einbauen (...) stellt gewisse Anforderungen (...), bei RunUO etwas mehr.

2. Dafür kann man (bei RunUO) auch als "High End Programmierer" mehr machen.

Ich kann 1) bestätigen, C# erfordert mit Namespaces, etc. natürlich etwas mehr Formalismus als Sphere und macht es Einsteigern nicht ganz so leicht. Dafür kriegt man halt ne echte Programmiersprache. Zu 2) kann ich zumindest sagen, dass "High End" Sachen mit RunUO sauber zu programmieren sind, während man bei Sphere ne halbe Million Workarounds braucht.

IthronNorui
Senior Mitglied
Beiträge: 142
Registriert: 24 Jun 2005 17:00
Wohnort: NRW
Kontaktdaten:

#6 Beitrag von IthronNorui » 11 Mär 2009 20:41

Ah gut, dann habe ich das nur unglücklich verstanden ;-)

nazghul

#7 Beitrag von nazghul » 12 Mär 2009 00:43

Gefühlt 95 Prozent der "Skripte" für RunUO sind auch nur mehr oder weniger abenteuerliche Workarounds, mit denen der Core vergewaltigt wird :). Weil die allermeisten Leute den garnicht anfassen (was IMO auch eine gute Idee ist). Allerdings _kann_ man theoretisch zentral eingreifen. Mit der Folge dann, dass etwaige Updates genausowenig funktionieren wie viele §rd-Party-"Skripte", sofern man nicht alles mühsam und händisch anpasst. Letzten Endes entscheidet man sich mit Eingriffen in den Core für ein "Abkoppeln" des eigenen Projektes vom Vanilla-RunUO, also dafür, mehr oder weniger sein eigenes Ding zu machen.

Deshalb schrieb ich auch etwas euphemistisch von "High End Programmierern". Und natürlich spreche ich von komplexen "Skripten", nicht von so etwas Billigem wie einem Gilden-, Level- oder Wettersystem.

Jemand verglich letztens Sphere mit PHP und RunUO mit Java - ein IMO sehr passender Vergleich. Sowohl mit Java als auch PHP kann man Unmengen an Webapplikationen schreiben. Bei Java ist allerdings schon das Aufsetzen das Servers - vergleichsweise - eine pain in the ass, und selbst ein "hello_world.jsp" erfordert erheblich mehr Ahnung, Mühe und Kenntnisse als "hello_world.php". Dafür hat PHP andere Nachteile: Man gewöhnt sich einen grauslichen Programmierstil an, und weil jeder Depp und sein Hund in zehn Minuten etwas zusammenhacken können, das (u.a.) tut, was es soll (und eine Menge mehr, was es nicht soll), sind die Ergebnisse dann vielfach auch entsprechend. Und irgendwann ist einfach die Luft raus - wer gut genug ist, richtige Projekte ohne gravierende Fehler und Sicherheitslücken in PHP zu bauen, kann das i.d.R. in der Hälfte der Zeit mit Java erschlagen.

Nur zur Klarstellung: Ich bin Sphere-Entwickler und verabscheue C# (weshalb ich kaum etwas mit RunUO gemacht habe), und ich benutze PHP ebenso wie Java. Was aber auch bedeutet, dass ich die Einstiegshürden und Grenzen dieser Systeme recht genau kenne :)

IthronNorui
Senior Mitglied
Beiträge: 142
Registriert: 24 Jun 2005 17:00
Wohnort: NRW
Kontaktdaten:

#8 Beitrag von IthronNorui » 12 Mär 2009 00:55

Da kann ich dir eigentlich auch nur zustimmen. Mit Java mache ich nicht viel, habe aber die letzten Jahre aktiv als Webapplikationen Entwickler u.a. mit PHP gearbeitet.

Ich weiß nicht genau wie Sphere sich da verhält, weil es lange her ist als ich dafür gescriptet habe, jedoch bin ich mit den Möglichkeiten bei C# sehr zufrieden.
Ich habe halt immer noch den Satz im Hinterkopf der mir von irgendeiner Person vor relativ langer Zeit gesagt wurde: Da Sphere nicht OpenSource ist sind die Möglichkeiten dort eben nur beschränkt, unter RunUO kann man viel mehr machen.

Mich würde mal Interessieren.. was gibt es bei Sphere was wohl nicht mehr im machbaren Bereich wäre?

Und noch was. Was verstehst du unter richtig komplexe Scripts?

nazghul

#9 Beitrag von nazghul » 12 Mär 2009 07:23

IthronNorui hat geschrieben: Mich würde mal Interessieren.. was gibt es bei Sphere was wohl nicht mehr im machbaren Bereich wäre?
Dinge mit komplexen Datenstrukturen (Arrays, linked Lists usw.). Da kann man Workarounds scripten, aber die Geschwindigkeit ist irgendwann einfach inakzeptabel. Oder man benutzt MySQL (was IMO dann kein "Workaround" mehr ist, sondern ein ziemlich schräger "Hack").

Alles, was mit Manipulation der Packet-Responses durch den Server einhergeht: Du kannst nur entweder die server-generierten Packets benutzen, oder eingehende Packets filtern und mit handcrafted packets antworten - dazwischen gibt es nichts. Serveraktionen, die unaufgefordert Packets raussenden, kannst Du überhaupt nicht beeinflussen (ein Filter für outgoing packets ließe sich zwar im Src verankern (sic!), aber von Performance reden wir dann nicht mehr). Beispiel: Du möchtest die VisualRange ändern, also den Radius, innerhalb dessen ein Charakter Dinge wahrnehmen ("sehen") kann; bei jedem Update fasst der Server alle Objekte innerhalb dieser Range an und schickt dem Client ein Update-Packet. Taucht jemand, der nicht invis ist, am Bildschirmrand auf, bekommst Du dieses Packet, ohne jede Chance, es zu verhindern - sowas wie "einen Charakter blenden" ist damit unmöglich gewesen - bis ein entsprechender Tweak im Source eingebaut wurde (eben die Charakter-Property VisualRange)
Und noch was. Was verstehst du unter richtig komplexe Scripts?
Komplett neue Kampf- oder Magiesysteme, z.B. Es gibt da zwar gescriptete Ansätze, aber die sind IMO absolut abenteuerlich. Oder wirklich komplett neue/geänderte Skills (mein Hauptgrund dafür, bei Sphere mitzutun war, dass ich ein eigenes Kampfsystem wollte: Stackable Armor, targetted Hits, critical Hits, unterschiedliche Fightmodes ... das Eine oder andere davon hat seinen Weg in die Standard-Sphere gefunden, aber das meiste beisst sich so mit dem OSI-orientierten Kampfsystem, dass man es nicht aufpropfen kann. Per Script erzeugt man da ein Monster, weil man nicht nur alle eigenen Abfragen und Reaktionen machen, sondern auch die unabhängigen Standard-Aktionen des Servers rückgängig machen muss. Spherescript ist eine Interpretersprache ...)

Irian
Gold Mitglied
Beiträge: 620
Registriert: 08 Apr 2004 14:28
Wohnort: Regensburg
Kontaktdaten:

#10 Beitrag von Irian » 12 Mär 2009 08:53

nazghul hat geschrieben:Gefühlt 95 Prozent der "Skripte" für RunUO sind auch nur mehr oder weniger abenteuerliche Workarounds, mit denen der Core vergewaltigt wird :).
Halte ich jetzt ehrlich gesagt für unwahr. Der Core ist schon recht mächtig und für 95% der Scripte muß man ihn nicht anfassen.
nazghul hat geschrieben:Weil die allermeisten Leute den garnicht anfassen (was IMO auch eine gute Idee ist). Allerdings _kann_ man theoretisch zentral eingreifen. Mit der Folge dann, dass etwaige Updates genausowenig funktionieren wie viele §rd-Party-"Skripte", sofern man nicht alles mühsam und händisch anpasst. Letzten Endes entscheidet man sich mit Eingriffen in den Core für ein "Abkoppeln" des eigenen Projektes vom Vanilla-RunUO, also dafür, mehr oder weniger sein eigenes Ding zu machen.
Auch nicht wirklich korrekt. Solange man das Interface des Cores nicht ändert, sollte es mit ein wenig Vorsicht durchaus noch kompatibel zu neuen Scripten, etc. sein. Natürlich muß man die Änderungen vom Head dann in seinen eigenen Branch manuell einpflegen, ganz logisch, aber das liegt in der Natur eines Branches.
nazghul hat geschrieben:Nur zur Klarstellung: Ich bin Sphere-Entwickler und verabscheue C# (weshalb ich kaum etwas mit RunUO gemacht habe), und ich benutze PHP ebenso wie Java. Was aber auch bedeutet, dass ich die Einstiegshürden und Grenzen dieser Systeme recht genau kenne :)
Die Grenze von RunUO ist der Client. Der Grenze von Sphere ist irgendwo in der Sphere.exe, das ist halt der Unterschied :-) Der Einstieg in Sphere ist etwas schneller, weil man einfach besser copy&pasten kann, zweifelsohne. Aber wenn man einen richtigen Programmierer nimmt, wird der kaum Sphere bevorzugen, einfach weil C# halt eine echte OOP-Sprache ist, während das skripten in Sphere... Na ja, ich würde es nicht mit PHP vergleichen, das tut PHP unrecht, das ist imho weit besser als Sphere. Sogar VBA ist besser als Sphere...

Auf Dauer ist Coden in C# gegenüber Sphere wesentlich einfacher und sauberer und mit RunUO auch wesentlich mächtiger. Das kann ich sagen, weil ich beides ausprobiert habe :-)

DarkmorDerDunkle
Mitglied
Beiträge: 79
Registriert: 10 Mär 2008 17:43
Kontaktdaten:

#11 Beitrag von DarkmorDerDunkle » 12 Mär 2009 14:52

Nur ein Zwischenruf: Zugunsten des bislang gehobenen Niveaus sollte man auf solche flachen Urteile ala "ist besser" verzichten (bei dir steht noch ein IHMO davor, aber bevor der naechste daherkommt und es fuer bare Muenze nimmt und wir uns hier am Stammtisch wiedertreffen :-)). So ein Komparativ steht in einem konkreten Anforderungsuniversum - entweder man nennt dessen Parameter, damit man sich ueberhaupt ein Bild davon machen kann unter welchen Bedingungen etwas "besser" sein soll, oder man verzichtet einfach direkt auf solche Schlagwoerter.

Bier ist nicht pauschal besser als Wein, Strandurlaub nicht besser als Alpen und ein dreckiger hundsgemeiner Skript-Hack u.U. sehr viel "besser" als eine lehrbuchdruckreife Umsetzung in einer "echten OOP-Sprache"
Bild

nazghul

#12 Beitrag von nazghul » 12 Mär 2009 22:07

Irian hat geschrieben:
nazghul hat geschrieben:Gefühlt 95 Prozent der "Skripte" für RunUO sind auch nur mehr oder weniger abenteuerliche Workarounds, mit denen der Core vergewaltigt wird :).
Halte ich jetzt ehrlich gesagt für unwahr. Der Core ist schon recht mächtig und für 95% der Scripte muß man ihn nicht anfassen.
Das mit dem "verstehenden Lesen übe besser noch mal

["meiner ist länger als ..." entsorgt]

Wenn Du meinst, dass eine "OO-Sprache" schon deshalb besser und das Gelbe vom Ei sei, weil sie eben eine "OO-Sprache" ist (ist SphereScript in Ansätzen übrigens auch, und bei PHP ist das OO selbst in V5 nur ziemlich unglücklich angepappt - kein Vergleich z.B. mit Smalltalk oder Haskell) - nun ja. Wenn Du meinst ... Ich habe schon genug toughe "Softwareentwickler", frisch von der Uni ihren Dogmen frönend und die gerade aktuelle Sau durchs Dorf treibend, heulend vor den Trümmern ihrer Projekte sitzen sehen; weil sie nicht das Anforderungsprofil des Kunden, sondern ihre Programmier-Ästhetik zum Maß aller Dinge machten. Ist wahrscheinlich Teil des Lernprozesses.

Ob Du es glaubst oder nicht: Es gibt auch heute noch gute Gründe, in Cobol oder APL zu entwickeln :) - viel Spaß mit "OO-Sprachen" auf einem Mainframe *lacht*

Im Übrigen: Auch wenn Du mehrfach betonst mir zu widersprechen tust Du es kein einziges Mal :)

Irian
Gold Mitglied
Beiträge: 620
Registriert: 08 Apr 2004 14:28
Wohnort: Regensburg
Kontaktdaten:

#13 Beitrag von Irian » 12 Mär 2009 23:51

Sorry, aber du hast mich da falsch verstanden (war vielleicht etwas unklar): OOP ist nicht besser als irgendein anderes Paradigma. Für mich gilt: "Wessen Brot ich eß, dessen Lied ich sing.", anders formuliert, ich nehme das her, was passt und verlangt wird (d.h. wofür ich bezahlt werde). Für die meisten Sprachen gibt es Anwendungsfälle, wo sie geeignet sind, ich sehe nicht, wieso das in Frage stehen sollte. Zu Uni-Studenten kann ich leider nichts sagen, meine Erfahrung im FH-Studium war, dass man eher darauf vorbereitet wird, sich das problemlos aneignen zu können, was man braucht.
Am Rande bemerkt: Das ist nichtmal eine Grundsatzfrage, mir ist es nämlich wirklich zu 100% egal, was andere Leute für ihren Shard bevorzugen. Wer mit Sphere zufrieden ist, möge damit leben - ich wünsche ihm (oder ihr) ehrlich alles Glück dieser Welt und möge er (oder sie) tausende Spieler bekommen (oder, falls tausende nicht gewünscht sind, dann soviele, wie gewollt).

nazghul

#14 Beitrag von nazghul » 14 Mär 2009 01:38

Meine "Spitze" gegen Uni-Studenten bezog sich auch vornehmlich auf (angehende) BSc der Informatik, die im Studium irgendwelche coolen Konzepte hören und dann damit "herumprollen", dass das die einzige Weise wäre, Software zu entwickeln - ich habe so jemanden zuhause :) Und verbeisse mir jedesmal mannhaft das Lachen, wenn z.B. ich (ich bin kein Berufs-Programmierer) ein Projekt in der Hälfte der Zeit beende, und dann als Begründung höre "ja, aber DEIN Code entspricht ja auch nicht dem $INSERT_YOUR_FAVORITE-Konzept :) (was natürlich die Frage aufwirft, wofür - außer zur Arbeitszeitverbrennung, leichteren Vorführung beim Vorstand mit Powerpoint-Folien, oder TGI-Selbstbefriedigung - das Konzept denn dann gut ist)

Antworten