PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [RGSS] Online Funktionen nutzen?



TheByteRaper
28.05.2007, 12:38
Nein, das hier ist kein Standard "WIE MACHE ICH EIN ONLIEN GAME WIE WORDL OF WARKRAFT IM XPP??!"-Thread :D

Ich habe mal einige Seiten zurate gezogen, und bin dann letztendlich hier in diesem Forum auf diesen Thread gestoßen: MySQL per Ruby (http://www.multimediaxis.de/showthread.php?t=92011&highlight=mysql).
Mir ist die Quintessenz vollkommen klar: MySQL direkt ist nur erschwert möglich (es gibt da vor allem in den englischen Foren ein, nennen wirs "Metaskript" namens Netplay+, eine Art Backendsystem, das Multiplayer-Spiele aufm XP ermöglicht; es stellt Skripte zur Verfügung, die manuell Sockets öffnet und so Verbindungen zu MySQL oder zentralen Servern aufmacht etc... viel zu kompliziert :D), der Hauptgrund ist halt auch die Geheimhaltung der eigenen Serverdaten, die ja irgendwo in den Skripts verankert sein müssen.

Was aber vorgeschlagen wurde, interessiert mich mehr: auf eine PHP-Seite zugreifen, die dann bestimmte Daten aus der aufgerufenen URL (inklusive Kodierung, versteht sich) herausliest und dann das irgendwie online verarbeiten. Mehr bräuchte ich eigentlich nicht, denn theoretisch kann man an eine PHP-Seite vercodet genügend Informationen in einem String schicken (zumindest bilde ich mir das ein, in Form von "yayness.php?code=.......").

Aber aus Text kann ich nicht lernen. Meine Frage wäre nun: Wie geht das direkt mit RGSS, wenn überhaupt und ich das richtig verstanden habe? Also Befehle und so weiter ^^ Ich weiss da noch nicht so genau, wie man eine URL vom XP aus aufrufen _könnte_, und es wurde in dem Thread die stdlib erwähnt,.. aber ich glaube nicht, dass diese im Maker vollkommen vorhanden ist o.o

Jo, weitere Fragen folgen, wenn es Hoffnung am Himmel gibt ^^

malu
28.05.2007, 14:59
Auf deine Frage kann ich dir zwar keine Antwort geben, aber deine Methode hat ein Problem:
Wenn du diesen String, der zur PHP-Datei als GET geschickt wird, verschlüsseln willst, muss das schließlich auch irgendwo in deinem Projekt verankert sein, also könnte man wieder gefake Daten dorthin schicken.

TheByteRaper
28.05.2007, 15:24
Daran hab ich auch gedacht, aber gehen wir mal davon aus, dass wir nicht in einer vollkommen schlechten Welt leben, und man nicht sofort sowas h4xx0rn und manipulieren muss. :D Ich werde da vielleicht schon einen Weg finden, wie man die Information sinnvoll verschleiern kann ^^... wenns nicht funktioniert, lass ichs bleiben! *g*
Vielleicht kann man das in ne DLL auslagern,... obwohl ich bezweifle, dass der Maker imstande ist, ne DLL-Prozedur aufzurufen, und ich sowieso nicht weiss, wie man ne DLL macht x)

Das Problem hat sich eigentlich doch schon wieder erledigt, ich habe auf rmxp.org ein Skript gefunden, das mir aus der Registry (soweit ich verstanden habe, eh per Win32API) den Default-Browser rausfindet und öffnet, und ich dann per Call Script den Browser mit gewollter Adresse aufmacht.

malu
28.05.2007, 15:28
Mit der DLL gibts das selbe Problem, jeder kann diese DLL in ein anderes Programm einbinden und damit dann wieder gefakte Daten abschicken. Außer natürlich, ich verstehe hier irgendwas falsch... ;)

TheByteRaper
28.05.2007, 17:41
Also soweit ich informiert bin, steht in DLLs (meist?) Maschinencode drin. Und da bringts Mister "Isch-fak0r-alles!" relativ wenig, eine Schnittstelle zu kennen, wenn er nicht weiss, was in der "Black-Box DLL-File" mit den Daten passiert. Ich glaube, das wäre relativ "sicher".

Aber vielleicht kann das jemand mit mehr Erfahrung darin beantworten ^^ Also jemand, der weiss, was in einer DLL nun wirklich drinsteht, und ob man diese auch in den XP einbinden könnte ;)

Lukas
30.05.2007, 20:16
Wenn du deine Verschluesselung in DLLs auslagerst, ist das Knacken (sofern der Algorithmus nicht stinksimpel ist) nicht wirklich trivial (machbar, aber nicht fuer das durchschnittliche Scriptkiddie. Da ist Maschinencode drin, und den kann man zwar reverse engineeren, aber es ist recht kompliziert). DLLs kannst du aus dem Maker nur ueber das win32api-Zeugs ansteuern, wie das genau funktioniert, weiss ich leider nicht. Echte Ruby-Extensions kann man damit leider nicht laden.
malu hat allerdings an sich recht, wenn du eine DLL schreibst, koennen auch andere Programme diese DLL laden und die Verschluesselungsfunktionen benutzen, aber vollstaendig kann man sich gegen sowas eh nicht absichern. Cheating-Praevention sollte man bei Online-Games eh so weit wie moeglich auf dem Server abwickeln.

Zu der Sache mit der Uebermittlung an ein PHP-Script: da sollte man auch direkt ueber Sockets (also "normale" Netzwerkprogrammierung) gehen koennen (i.e. ohne Browser und du kannst den Output des PHP-Scripts direkt in Ruby auslesen), was vermutlich eher das ist, was du willst. Dummerweise hat Enterbrain Rubys Socket-Library nicht in den RMXP mit reingepackt, sprich, man muss wieder ueber die WinAPI gehen, aber den entsprechenden Code kann man vermutlich aus Netplay o.Ae. klauen leihen. Falls du da Interesse hast, kann ich da demnaechst mal versuchen, was zu basteln.

Und: schoen, dich mal wieder im Forum zu sehen :)

TheByteRaper
30.05.2007, 22:12
Hehe, danke für die Hilfe, aber das ist bisher noch nicht notwendig. ;) Ich habe mich lediglich informiert und bin einigermassen froh darüber, dass es zumindest um einige Ecken möglich ist, gewisse "Pseudo-Online"-Strukturen zu nutzen, die Spielaspekte interessant machen könnten (wie eben Highscore-Verhalten oder Ähnliches).
Ich arbeite da gerade an etwas, und ich habe damit erst angefangen, und ich wollte mich einfach informieren und geistig absichern, dass gewisse Sachen, die ich im Hinterkopf habe und vielleicht realisieren will, möglich sein KÖNNTEN, und es ist schön, Recht behalten zu haben ^^

Wenns mal soweit sein sollte mit Skripten, Win32API oder DLLs, werd ich mich einfach wieder hier melden :D