Project Nitro [ Node | TypeScript | TypeORM | WebSockets ]

  • Background

    Project Nitro wurde im November 2018 ursprünglich in Java geschrieben gestartet. Nachdem ich ein paar Monate lang mit Java gespielt hatte, bekam ich den Drang, alles, was ich getan habe, in Node verschieben zu wollen. Die Node-Community fehlte und wir hatten bereits ein paar Java-Projekte und ich wollte etwas anderes machen.

    Project Nitro wurde im November 2018 ursprünglich in Java geschrieben gestartet. Nachdem ich ein paar Monate lang mit Java gespielt hatte, bekam ich den Drang, alles, was ich getan habe, in Node verschieben zu wollen. Die Node-Community fehlte und wir hatten bereits ein paar Java-Projekte und ich wollte etwas anderes machen.

    Das Projekt ist stark und hat sehr aktive Entwicklung für die letzten 6 Monate, Ich habe keinen einzigen Tag gegangen, ohne eine Zeile code in sie zu schreiben.

    Ohne die Gemeinschaft hätte ich das nicht machen können. Dieses Projekt ist von Kepler & Arcturus inspiriert.

    Goal

    Project Nitro zielt darauf ab, ein voll ausgestatteter Emulator zu sein. Das Endziel besteht darin, jedes einzelne Feature im SWF verfügbar zu haben.

    Technologies

    • NodeJS
    • TypeScript
    • TypeORM
    • MySQL
    • WebSockets (ws)

    Information


    Obwohl es noch viele Funktionen gibt, die noch nicht abgeschlossen sind, habe ich große Fortschritte gemacht und habe viele der Kernfunktionen, die funktionieren und richtig implementiert sind. Ich schätze, dass es weitere 3-6 Monate oder bis ende des Jahres dauern wird, um die meisten verfügbaren Funktionen abzuschließen.

    Ein eindeutiges Feature, das standardmäßig in diesem Emulator enthalten ist, ist WebSockets. Meine Socket-Implementierung ist, würde ich sagen, sehr einzigartig im Vergleich zu anderen Möglichkeiten, die ich gesehen habe, es zu tun. Es wird ein enthaltenes CMS geben, das vollständig über Websockets mit dem Emulator kommuniziert. Das CMS verwendet Pakete aus dem Emulator, um seine Daten zu rendern. Dies ermöglicht sofortige Aktualisierungen und das Hinzufügen einer benutzerdefinierten Funktion, die ein beliebiges Paket aus dem Emulator verwendet.

    Sie fragen sich wahrscheinlich (nicht) wie die Sitzungsverwaltung funktioniert. Was ich getan habe, ist Ihre CMS-Sitzung und Spielsitzung sind genau die gleiche Sitzung, genau das gleiche Objekt und teilen Die genau die gleichen Daten. Dies bedeutet, dass Pakete leicht hin und her geleitet werden können. Der Emulator steuert, welcher Client die Sitzung letztendlich beendet. Wenn Sie sich beim CMS anmelden, erscheinen Sie Online zu Ihren Freunden, können chatten, Inventar anzeigen und alles andere, was für die SWF verfügbar ist (muss auch im CMS codiert werden).

    Current Features:



    Session Management
    Hotel View
    Rooms/Rendering

    • Multi Unit
    • Wall & Floor Items [ Placement, Movement, & Rotation ]
    • Settings
    • Public Rooms
    • Give & Remove Rights
    • Chat [ Whisper, Shout, Normal ] with radius
      Pathfinding
    • Doorbell / Password / Hidden States
    • Users
      • Dance
      • Actions [ Sit, Wave, Laugh, Blow Kiss, Idle ]
      • Signs
      • Respect


    • A lot more


    Catalog

    • Purchasing
    • LTD Purchases


    Pets

    • Have only started horses
    • Pick Up


    Bots

    • Change Name
    • Copy Looks
    • Relax
    • Dance
    • Pick Up


    Messenger

    • Add
    • Delete
    • Search
    • Chat
    • Categories


    Item Interactions

    • Dice
    • Exchange
    • Gate
    • Multi Height
    • Pet Jump
    • Stack Helper
    • Teleport
    • Vending Machine


    Wired

    • Very early development on wired
    • Triggers
      • Enter Room
      • Says Something
      • State Changed
      • Walk on Furni
    • Effects
      • Teleport

    Es gibt viele andere Dinge, die ich mir nicht vorstellen kann

    Diese Version kann für Ihr Hotel ausgefüllt werden

    Problematisch:

    Ich musste nur die Schnittstellen neu erstellen - Typescript

    scss variable missing for build -

    scss-Variable fehlt für Build

    Download: https://github.com/HazedDev/nitro-client/tree/main/Nitro

    Rechte:

    -Nitro

    -Billsonn [Nitro Creator]

    -Jason[Teilens]

  • Was hat es eigentlich mit diesem Trend auf sich, irgendwelche Begriffe in den Titel zu packen?

    Langsam kommt mir das so vor, als würde man damit stolz präsentieren wollen, was für ein cooler Entwickler man doch ist und so viel drauf hat.

    Vielleicht sollte ich das nächste Mal eine einfache .NET Konsolenanwendung folgendermaßen vermarkten:

    Project xy [C# | .NET Core 3.1 | Roslyn | JIT | MongoDB | LINQ | EF Core | BSON | Windows | x86, x86-64 | Linux | macOS | ARM ]

    Irgendwo noch OOP dazwischen klatschen, damit auch jeder weiß, dass man OOP (zumindest halb) beherrscht.

    Es ist ja okay, wenn man kurz den Stack zusammenfasst, aber doch nicht jede kleinste Scheiße?

    TypeORM? WebSockets? Sind das wirklich die wichtigsten Features für deinen Emulator?

    Das soll jetzt kein Hate an das Projekt gerichtet sein, dient eher als generelle Aussage.

    Jeder, der sein Titel bis dato so gestaltet hat, kann sich angesprochen fühlen.

    Je weniger Komplexität, desto besser.

    Stattdessen könnte man doch einfach den Stack im Post formulieren und dann wie man Lust hat genauer drauf eingehen, dann können diejenigen, die es interessiert, die Sektion durchlesen und die User den Part einfach überspringen.

    Ich denke aber, dass du dich wirklich von diesen ganzen Posts beeinflussen lassen hasst und deswegen einfach mitmachen wolltest.

    Selbst ich habe diesen behinderten Trend früher als Scriptkid mitgemacht (oh nein..)

    Herrlich, habe ich da einfach paar Klassen und schreibe deswegen mit voller Stolz "OOP" in den Titel und habe dabei das Konzept am wenigsten verstanden.

    Naja. Viel Glück, whatever, spricht mich nicht so wirklich an.

    Die README.md hätte man vielleicht auch noch schnell selbst schreiben können.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!