Warum legst du für jedes Packet ein neues Package an?
[PAUSIERT] Varoke Emulator - Einfach ein weiterer Emulator
-
Dario Miau -
9. Januar 2016 um 13:15 -
Geschlossen
-
-
-
Warum legst du für jedes Packet ein neues Package an?
Nimmt mich jetzt wunder woher du das entnehmen kannst
btw: tu ich nicht -
Nimmt mich jetzt wunder woher du das entnehmen kannst o.Obtw: tu ich nicht
-
Tu ich immer noch nicht.
-
Viel Erfolg bei der Entwicklung deines Emulators. Ich empfehle dir dich vorab über Programmierfehler und Sicherheitslecks zu informieren. Jedes Retro Hotel hat mindestens eine Lücke und das muss wirklich nicht sein
-
Viel Erfolg bei der Entwicklung deines Emulators. Ich empfehle dir dich vorab über Programmierfehler und Sicherheitslecks zu informieren. Jedes Retro Hotel hat mindestens eine Lücke und das muss wirklich nicht sein
Alpha Series hat aus ihm herausgesprochen.
Wünsche dir auch viel Glück mit deinem Projekt. Werde ab und zu mal im Thread vorbeischauen.
-
gefällt mir weiter so
-
Sieht gut aus! Weiter so. Hast du auch vor eigene Features einzubauen?
-
Sieht bis jetzt sehr gut aus. Weiter so & viel Erfolg dabei.
-
Hey,
leider konnte man deinen Snippets nicht wirklich viel entnehmen (.. hätte man eigentlich gleich weglassen können). Mich persönlich würde vor allem die Architektur des Servers (Verteilung der Räume / "Aufräumer" Tasks - Thread Pool?) interessieren sowie das Datenbankhandling (ORM?)
Da du jetzt noch weit am Anfang vom Projekt stehst wäre es außerdem sinnvoll jetzt noch einmal auf die letzte veröffentlichte Client-Version zu updaten (Wenn man das viel später macht, kommen immer irgendwelche Fehler mit rein, die man erst nach Monaten bemerkt).
Hier noch ein paar Sachen aus eigener Erfahrung:
* Das was mich bei IDK bis jetzt immer am meisten geärgert hat (war danach zu faul es zu ändern) war der Raum-Zyklus. Am Anfang beginnt alles noch relativ harmlos, doch dann, man schenkt dem Server einen Moment nicht seine komplette Aufmerksamkeit, kommen Sachen wie das Zurücksetzen von Carried Items, Roller, die Nutzer bewegen, etc.. die man dann einfach mal reinrotzt (Btw: Pass auf, dass in jedem Fall immer alle Daten synchron sind! - Hilft dir beim Aufrechterhalten der Stabilität des Emulators)
Spoiler anzeigen
Hatte später mal eine Idee, um diesen Messi-Zyklus zu verbessern:Externer Inhalt gist.github.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.Externer Inhalt gist.github.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.* Versuche deine Klassen so abstrakt und klein wie möglich (übertreibs aber auch nicht) zu halten. Damit meine ich, keine Raum-Klassen, die über 1.700 Zeilen groß sind.. Da verliert ja jeder den Überblick. Lieber alles aufteilen in Klassen wie "RoomEntityManager" oder derartiges. Es ist außerdem wichtig, Strukturen, die für mehrere Klassen gelten, immer miteinander kompatibel zu machen (Interfaces, abstrakte Klassen..), damit du sie irgendwann im Code wiederverwenden kannst.
Beispiel:
-> Jedes Objekt in einem Raum weiß von seinem Raum.
---> Jedes "Bodenobjekt" weiß von seinen Raum-Koordinaten
-----> Jedes Wesen weiß von einer Richtung, in welche es guckt.
-------> Jeder Spieler weiß von seiner Session
-------> Jeder Bot weiß von seinen Aufgaben (Auf Fragen antworten etc..)
---------> Jedes Tier weiß von seinen Statistiken (Erfahrungslevel etc..)
-----> Jedes Bodenmöbelstück weiß von seiner Rotation
---> Jedes "Wandobjekt" weiß von seinen Wand-Koordinaten
-----> WandmöbelstückMir persönlich gefällt deine Package-Struktur nicht. Trenne am besten die Logik vom Rest (Server-Client-Kommunikation) total ab, indem du die Parser und Composer für Nachrichten in ein Package wie z. B. "communication" packst mit den "Unterkategorien".. "parsers" und "composers" oder "incoming" und "outgoing". Stell dir einfach immer die Frage: Wäre ich jetzt kein Client-Nutzer, könnte ich die gleichen Aktionen für meinen Raum / User / Navigator (..) leicht über Programmcode bewirken?
Was die Sicherheit angeht: Neben dem Standardkram immer gucken, ob es denn für einen Nutzer eine Möglichkeit gibt, ein nicht gewollte Szenario herbeizurufen (Bspw. einen ungültigen Figure-Code.. etc.)
Es scheint als würdest du eine Verschlüsselung nutzen, zumindest hast du Klassen dafür. Wenn du keine RSA-Keys, die du nicht selbst generiert hast oder oft öffentlich zeigst, verwendest, kannst du eigentlich RC4 gleich deaktivieren und Konstanten für die Keys benutzen, damit der Client nicht abschmiert.
Cheers,
Steve Winfield -
hei, schaut gut aus. Viel Glück wird bestimmt was gutes raus kommen
-
[UPDATE 16. Februar 2016]
Einiges hat sich in der Zwischenzeit getan!
- Umgestiegen auf die neuste Habbo Version - PRODUCTION-201602082203-712976078
- Neuer Pfadfinder (A*)
- Update auf Netty 4.0 (Ja, hab immer noch Netty 3.5.9 verwendet..)
- Neue Package-Organisation
- Thread Pool (nachdem ich einen Timer für den Raum-Zyklus verwendet habe xD)
- Boden & Wandmöbelstücke kann man nun platzieren, bewegen und aufnehmen
- Bodenmöbelstücke kann man stapeln
- ein paar Optimierungen am Code -
[UPDATE 16. Februar 2016]
Einiges hat sich in der Zwischenzeit getan!
- Umgestiegen auf die neuste Habbo Version - PRODUCTION-201602082203-712976078
- Neuer Pfadfinder (A*)
- Update auf Netty 4.0 (Ja, hab immer noch Netty 3.5.9 verwendet..)
- Neue Package-Organisation
- Thread Pool (nachdem ich einen Timer für den Raum-Zyklus verwendet habe xD)
- Boden & Wandmöbelstücke kann man nun platzieren, bewegen und aufnehmen
- Bodenmöbelstücke kann man stapeln
- ein paar Optimierungen am CodeDein Essentials 5 ist schon ein super Build geworden, bin mal gespannt wie es bei diesem Projekt weiter geht.
Hast bisher eigentlich noch nie enttäuscht und viele Projekte auch beendet und released.Weiter so!
Freundliche Grüsse,
Forex -
Sieht super aus Dario.
Lass dir Zeit dabei. Und vorallem lass dein Privatleben/Ausbildung nicht dadurch beeinträchtigenEin Emulator in Java wäre sicher etwas, das der Szene mal wieder etwas Schwung verleiht.
Hast du das ganze schon einmal auf Linux probiert, wäre interessant ob es mit dort auch so smooth läuft wie auf OS X.Auf Github würde ich das ganze auch erst stellen, sobald man erkennt in welche Richtung der Emulator gehen soll, jetzt kommen ja erst die Basis-Features.
Wie bereits erwähnt würde ich auch immer darauf achten, die neusten Habbo Versionen zu verwenden, um später auftretene Bugs auszuschließen.Den Thread auf Ragezone würde ich auf alle Fälle erstellen, dort sammeln sich ja die Leute unserer Spezies Man kann dort sicher Rat bekommen, falls man mal nicht weiter weiß.
Und @__clok Das Java nicht umbedingt ressourcensparend ist, ist ja bekannt. Dafür läuft Java auf fast jeder noch so abgeranzten Plattform Und seine Codebase gammelt ja nicht vor sich rum, kann man ja wohl erkennen was er in dieser Zeit schon erledigt hat
Also, wie bereits erwähnt,
Viel Erfolg & motivation
-
-
Ist es jetzt offiziell schon releast worden?
Mit freundlichen grüßen,
Recton -
Ja / Nein.
Ich habe lediglich den Source Code auf GitHub hochgeladen (und commite ab und zu auch etwas, je nach Laune)
Hab die letzte Woche nicht wirklich viel am Projekt gearbeitet, weshalb ich es unnötig fand, den Thread zu pushen.Natürlich gehts weiter mit Varoke.
-
Habe mal ein pull request eingereicht. Beschreibung sollte genug aussagen, hab's bei mir im Emulator ähnlich gelöst.
Plus Emulator scheint den gleichen Fehler zu haben, zumindest passiert genau das selbe auch bei boon.pwMit freundlichen Grüßen
Edit; Ist nicht getestet, da ich am Schul PC bin und ich hier leider keine Java IDE habe. Das Grundkonzept dahinter sollte aber verständlich sein.
-
Viel Glück Dario vllt ist er ja bald eine neue Alternative ;)?
Hochachtungsvoll,
Senseless
-
[UPDATE 2. März 2016]
Hab mal wieder etwas commited:
- Würfel
- Teleporter
- Habe angefangen, den Emulator zu dokumentieren (kp ob ich das weiter so machen soll xD)Hier noch ein kleiner Screenshot:
Spoiler anzeigen
@ECB2 danke dafür, doch vielleicht hast du übersehen, dass das ein paar Zeilen weiter oben schon steht -
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!