[Hobby-Projekt] MMORPG "Fantasy of Eldoria" sucht Verstärkung!

There are 26 replies in this Thread which has previously been viewed 1,402 times. The latest Post (January 3, 2026 at 12:33 AM) was by GearByte.

  • Hallo liebe Community,

    ich heiße Marcel, bin 27 Jahre alt, gelernter Anwendungsentwickler und möchte euch mein Herzensprojekt vorstellen: Fantasy of Eldoria.

    "Fantasy of Eldoria" ist ein klassisches 3D-MMORPG, das von Grund auf in C# entwickelt wird (Unity für den Client, C#-Konsolenanwendung als Server).
    Ich arbeite nun schon eine ganze Weile an der Kernarchitektur und habe jetzt ein stabiles Grundgerüst geschaffen.

    Jetzt ist es an der Zeit, aus dem technischen Gerüst eine lebendige Welt zu machen – und dafür suche ich Mitstreiter!

    Das Wichtigste zuerst:

    Dies ist ein 100%iges Hobby-Projekt.

    Es gibt keinerlei kommerzielle Absichten, keinen Zeitdruck und keinen Businessplan. Der einzige Zweck dieses Projekts ist der Spaß am Erschaffen, das gemeinsame Lernen und das Ziel, irgendwann ein Spiel zu haben, das wir selbst gerne spielen würden.

    Das bedeutet für dich:

    • Keine Deadlines: Du arbeitest, wann du Zeit und Lust hast.
    • Keine Verpflichtungen: Das reale Leben (Job, Familie, Uni) geht IMMER vor.
    • Volle Freiheit: Ein Austritt ist jederzeit möglich, wenn du keine Zeit mehr hast.

    Das technisches Grundgerüst

    Für alle, die sich für die Technik interessieren: Mein Fokus lag auf einer sauberen, skalierbaren und sicheren Server-Architektur.

    • Autoritärer Server: Der Client ist "dumm". Jede Aktion (Bewegung, Zauber, Klick) wird auf dem Server validiert. Cheating wird so im Kern unterbunden.
    • C# Headless Server: Der Server läuft als eigene Konsolenanwendung und ist nicht auf Unity angewiesen. Er berechnet das Pathfinding um den Hauptserver zu entlasten. Die Berechnung von Positionen und NPC Bewegungen wird somit Serverseitig durchgeführt.
    • Multi-Prozessor-Architektur: Das Pathfinding (Wegfindung der NPCs) ist in einen eigenen C++ Headless-Client ausgelagert. Dadurch kann die Last auf mehrere CPU-Kerne verteilt werden (z.B. 1 Kern für die Welt, 1 Kern für Pathfinding).
    • Dynamisches Grid-System: Die Welt ist in Zonen (Grids) unterteilt. NPCs und Spieler werden nur aktualisiert (Tick Culling), wenn Spieler in der Nähe sind.
    • Spielerzahlen: Die Architektur ist auf Skalierbarkeit ausgelegt. Aktuelle Tests auf dem V-Server zeigen das bereits 800-1.200 Spieler gleichzeitig flüssig spielen können. Vorausgesetzt die Spieler sind auf der Map verteilt und nicht an einem einzigen fleck! Das ganze bei einer Welt mit ca. 800 NPCs. (Die Theoretische Obergrenze liegt noch viel höher.)
    • Datenbank-gesteuert: Alles ist dynamisch. Spells, Items, NPCs, Quests und Buffs werden aus der Datenbank geladen. Nichts ist im Server hardcoded.

    Aktueller Status: Was funktioniert bereits?

    Das "Gerüst" steht und viele Kern-Features sind voll funktionsfähig:

    • Server-Autoritatives Kampfsystem:
      • Zauber wirken (Spells), Auto-Attacks und Projektile.
      • Alle Cast-Zeiten und Cooldowns (sowohl globale als auch individuelle) werden zu 100% vom Server verwaltet.
      • Persistente Cooldowns: Deine Abklingzeiten laufen auch weiter, wenn du offline bist, und sind nach einem Relog korrekt wieder verfügbar.
      • Jede Klasse hat andere Spells.
    • Zaubertränke
    • Friedhofsystem
    • Handel zwischen Spielern
    • Charakterstats (z.B. Ausdauer erhöht die HP. Zauberkraft erhöht die Heilung etc.). Wird ebenfalls durch den Server berechnet.
    • Verschiedene Klassen und Ressourcen:
      • Aktuell gibt es bereits vier Klassen. Magier, Heiliger, Ritter und Paladin.
      • Abhängig von der Klasse existieren als benötigte Ressource zum wirken von Zaubern und Angriffen entweder Mana (Blauer Balken) oder Energie (Grüner Balken).
    • Tiefes Buff- & Debuff-System:
      • Ein komplexes Aura-System ist implementiert:
      • Stat-Buffs (z.B. +Ausdauer)
      • DoTs & HoTs (Schaden/Heilung über Zeit)
      • Absorb-Schilde (z.B. Manaschild, das Schaden "frisst")
      • Crit-Logik: Ticks von DoTs/HoTs können critten (basierend auf den Stats des Casters zum Zeitpunkt des Castens).
      • Stacking-Logik: Buffs können "exklusiv" sein (nur der stärkste wirkt) oder "pro Caster" stapeln (5 Priester = 5 DoTs auf dem Boss).
    • Dynamisches Loot-System:
      • Server-Autoritär: Loot wird beim Tod eines NPCs komplett serverseitig generiert (kein Client-Exploit möglich).
      • Loot-Container: Der Loot wird in einem temporären LootContainer auf der Leiche gespeichert.
      • Loot-Berechtigung: Standardmäßig kann nur der Spieler (oder später die Gruppe) plündern, der den Kill errungen hat (auch wenn der Kill durch einen DoT eines Offline-Spielers ausgelöst wurde, wird dies korrekt gehandhabt, um Abstürze zu verhindern).
      • Datenbankgesteuerte Drop-Chancen: Jede Loot-Tabelle kann in der DB präzise eingestellt werden (z.B. "Graues Item" 100%, "Blaues Item" 1.5%).
      • Intelligentes Quest-Loot: Das System prüft, ob der Spieler eine Quest aktiv hat (z.B. "Sammle 5 Wolfspelze") und lässt das Quest-Item nur dann droppen.
    • NPC-KI & Verhalten:
      • NPCs nutzen eine State-Machine und können über die Datenbank gesteuert werden:
      • Bewegung: Stationär, Herumwandern (Wandering) oder feste Patrouillen (Patrolling).
      • Aggro-Typen: Freundlich (ignoriert Kampf), Defensiv (greift nur bei Angriff an) und Hostil (greift bei Sichtkontakt an).
    • Fraktions- & Interaktionssystem:
      • Das Spiel unterstützt mehrere Fraktionen (Menschen vs. Lichtmenschen).
      • Chat-Verschlüsselung: Sprichst du in der Nähe eines Spielers der gegnerischen Fraktion, sieht dieser nur "kauderwelsch" (z.B. "Lok'tar!").
      • Whisper-Restriktion: Das Anflüstern (/w) funktioniert nur innerhalb der eigenen Fraktion.
      • (Game Master können natürlich fraktionsübergreifend kommunizieren).
    • Quest-System:
      • Vollständige Annahme, Fortschritt (Kill & Collect) und Abgabe von Quests.
      • Questreihen: Quests können über die Datenbank Voraussetzungen haben (z.B. "Quest A muss abgeschlossen sein, um B zu starten"), was komplexe Storylines ermöglicht.
      • Die Quest-UI löst NPC-IDs automatisch zu den korrekten Namen auf (z.B. "Töte 5 Goblins" statt "Töte 5x ID:2002").
    • GameMaster-System:
      • Ein flexibles Berechtigungssystem (GM-Level 1-4) schaltet Befehle frei.
      • GameMaster Befehle können sowohl auf online, als auch auf offline Spieler gewirkt werden. z.B. Teleportieren, bannen etc.
      • Umfangreiche Befehle sind implementiert, hier ein Auszug aus der Hilfe:

    Wen suche ich?

    Du musst kein Profi sein! Wenn du motiviert bist, etwas lernen möchtest oder einfach nur Lust hast, Ideen beizusteuern, bist du hier richtig.

    • GameMaster & Tester:
      Du bist die erste Anlaufstelle im Spiel. Du testest neue Features, versuchst, das Spiel kaputt zu machen (Bugs finden!) und hilfst später anderen Spielern. Ein V-Server für eine 24/7-Testumgebung ist bereits gemietet und wartet darauf, von dir geprüft zu werden!


    • Sound Artist (Musik & SFX):
      Vom epischen Main-Theme in der Stadt bis zum "Wusch" eines Feuerballs – wir brauchen alles, um die Welt lebendig zu machen.


    • 3D Artist (Modellierung & Animation):
      Unser Ziel ist ein ansprechender "Fantasy Stylized"-Look (ähnlich WoW, Torchlight oder Darksiders). Wir suchen Unterstützung für alle Arten von GameObjects (Gebäude, Bäume, Waffen, Rüstungen, Kreaturen).


    • Game & Quest Designer (Kreative Köpfe):
      Du hast Lust, dir spannende Questreihen auszudenken? Du willst neue Spells erfinden und über das Balancing von Klassen philosophieren? Dann ist das deine Rolle! Gerne auch auf deutsch, ich übernehme die Übersetzung in Englisch.


    Selbstverständlich erhalten alle Mitglieder (egal ob Tester oder Game & Quest Designer etc.) eine entsprechende GameMaster Berechtigung und eine Erwähnung als Teammitglied. Ein V-Server für die Entwicklungsumgebung ist bereits gemietet und eingerichtet.


    Grobe Konzeptrichtung:

    Wie ihr in meinen Screenshots erahnen könnt, bin ich ein "World of Warcraft" Fan. Ich möchte mein Projekt im gleichen "stylized fantasy Style" weiterführen und habe mir bereits folgende "Fahrrichtung" für dieses Projekt überlegt:

    • Zwei Fraktionen. Aktuell Menschen & Lichtmenschen.
    • Maximales Level ist Stufe 40.
    • 4 Klassen. (drei basieren auf Mana / eine auf Energie).
    • 6 Gebiete: Eldoria (Gesamtbezeichnung der Welt), Aetheria(Neutrale Hauptstadt für beide Fraktionen), Grünkamm (Waldgebiet) (Lv 1–6), Nebelmoor (Nebeliges Insel-Dorf) (Lv 7–14), Luminara (Wald mit riesigen und leuchtenden Pilzen) (Lv 31–40), Dornwacht (Bergdorf) (Lv 15–22), Solstice-Ebenen (schwebende Insellandschaft) (Lv 23–30).
    • Das Spiel sollte zunächst in englischer Sprache entwickelt / herausgegeben werden, um die mögliche Spielerreichweite zu erhöhen.

    Aktuelle Screenshots

    (Die Welt ist bewusst so leer, da ich aktuell nur das Grundgerüst teste / entwickele)



    Interesse?

    Wenn du Lust hast, unverbindlich Teil eines klassischen, stressfreien MMO-Projekts zu werden, melde dich einfach per PM oder antworte hier!

    Ich freu mich über jede Rückmeldung.

    Grüße,

    Marcel

    Edited 6 times, last by GearByte (December 15, 2025 at 5:46 PM).

  • Update: NPC-KI

    1. Das "Brain"-System

    Das bedeutet, dass ich jedem NPC individuell über die Datenbank ein "Gehirn" zuweisen kann, das sein Verhalten bestimmt:

    • TrashMob Brain: Standard-Gegner, die eine Mischung aus Zaubern und Nahkampf nutzen.
    • Passive Brain: Zivilisten oder Tiere, die fliehen oder friedlich ihre Kreise ziehen.
    • Boss Brains: Komplexe Skripte für Bosse (wie der Green Ghoul), die Phasen haben, Ultimates zünden und auf HP-Schwellen reagieren (z.B. Heilung bei < 40% HP).
    • Es lassen sich unbegrenzt weitere "Brain-Scripte" anlegen und über die Datenbank zuweisen.

    2. Intelligentes Ressourcen-Management

    Gegner haben nun echte Ressourcen (Mana oder Energie), genau wie Spieler. NPCs regenerieren ihre Ressourcen im Kampf basierend auf ihrem Level. Energie-NPCs regenerieren dabei deutlich schneller als Mana-NPCs.

    3. Verbessertes Pathfinding & Bewegung

    Ich habe die Art und Weise, wie NPCs sich bewegen, komplett überarbeitet, um das "Schweben" oder "Clipping" an Hügeln zu verhindern.

    • Ground Snapping: Der Server berechnet nun präzise die Bodenhöhe zwischen den Wegpunkten. Egal wie steil der Hügel ist, der NPC läuft sauber auf dem Boden.
    • Patrouillen: Wachen laufen nun definierte Routen ab und warten an Wegpunkten, was die Städte lebendiger macht.

    4. "On-Pull" "OnDeath" etc. -Events

    • Boss-Intros/Outtros: Besondere Gegner reagieren auf den ersten Kontakt ("Pull") mit individuellen Shouts, Animationen und Sounds.
    • 3D-Sound: Kampfschreie und Zauber-Effekte werden nun korrekt im 3D-Raum abgespielt. Ihr hört also, aus welcher Richtung die NPC kommt.

    5. Performance (Tick Culling)

    Damit Tausende von NPCs gleichzeitig in der Welt sein können, ohne dass der Server in die Knie geht, habe ich ein Culling-System eingeführt.

    • NPCs, die weit weg von Spielern sind, schalten in einen "Schlafmodus" um CPU zu sparen.
    • Wichtige Timer (Respawn, Cooldowns) laufen im Hintergrund weiter, sodass die Welt konsistent bleibt, auch wenn niemand hinsieht.

    Anbei noch ein paar aktuelle Screenshots:


  • Update: Es gibt ab sofort Waffen!

    Gesamte Waffentypen:
    - Einhandschwerter
    - Einhandaxt
    - Zweihandstab
    - Buch (Offhand)
    - Schild (Offhand)
    - Zweihandschwert
    - Zweihandaxt
    - Einhandhammer
    - Zweihandhammer
    - Dolche

    Klassen Regeln:

    KlasseErlaubte RüstungErlaubte WaffenKlassen Rolle
    MageStoffStab (2H), Buch (OH), Dolch (1H)Klassischer DD
    SaintStoff, LederStab (2H), Buch (OH), Hammer (1H), DolchHeiler
    ShadowwalkerStoff, LederSchwert (1H), Dolch (1H), Axt (1H)Schneller Nahkämpfer.
    FighterAlle (Stoff bis Kette)Schwerter, Äxte, Hämmer (1H & 2H), SchildeTank

    Allgemeine Waffenregeln:

    • Zweihandwaffen (2H): Wenn eine 2H-Waffe angelegt wird, muss der Offhand-Slot (Schild/Buch) leer sein.
    • Offhand/Schild: Kann nicht angelegt werden, wenn eine 2H-Waffe getragen wird.

    Bei allen Spells/Attacken wird zwischen Zauberschaden und Physischen Schaden unterschieden.

    Die Schadensberechnung (Magisch)

    Magie ignoriert Waffenschaden und Rüstung, skaliert aber mit SpellPower (Intelligenz/Zaubermacht).

    Magie Schaden = SpellBaseDmg + (SpellPower x Faktor)

    • Schadens-Zauber: Faktor 0.5 (50% der SpellPower wird addiert).
    • Heil-Zauber: Faktor 0.7 (70% der SpellPower wird addiert).
    • Crit: Auch Magie kann critten (Schaden/Heilung wird x2 genommen).
    • Ressource: Kostet Mana (oder Energie), kann nicht gewirkt werden, wenn leer.

    Die Schadensberechnung (Physisch)

    Wenn ein physischer Zauber oder Auto-Attack gewirkt wird:

    1. Würfeln: Der Server würfelt eine Zahl zwischen MinWeaponDamage und MaxWeaponDamage. (Roll)
    2. Skill-Berechnung:
      • Auto-Attack: Schaden = Roll
      • Physischer Skill: Schaden = SkillBaseDmg + (Roll x 1.2)

        (Skills skalieren also mit 120% des Waffenschadens).

    3. Kritischer Treffer:
      • Chance = CriticalStrike Stat (z.B. 0.05 für 5%).
      • Effekt = Schaden verdoppelt (x2).
    4. Rüstung (Mitigation):
      • Der Schaden wird durch die Rüstung des Ziels reduziert.
      • Reduktion = Rüstung / (Rüstung + 500)




    Ich würde mich immer noch sehr über Unterstützung jeder Art freuen. Am Meisten jedoch über Tester!

    Grüße

  • Das nimmt alles immer mehr Gestalt an, der Look gefällt mir bisher sehr :thumbup:

    Hi schadowdong, danke für deine Antwort ^^


    Aktuell arbeite ich ebenfalls an einer Webseite:


    Fantasy of Eldoria - Join the Adventure
    Enter a world torn apart by ancient magic. Choose your class and fight for the soul of Eldoria in this open-world MMORPG.
    www.fantasyofeldoria.com


    Außerdem kann der Webserver die Anzahl der aktuellen Spieler aufrufen und auf der Webseite anzeigen:

    Server Status - Eldoria

    Später ist auch noch ein Control Panel geplant, indem die Spieler sich anmelden können.

    Hier schon ein Konzeptscreen:

  • GearByte November 30, 2025 at 12:36 PM

    Changed the title of the thread from “[Hobby-Projekt] MMORPG "World of Eldoria" sucht Verstärkung!” to “[Hobby-Projekt] MMORPG "Fantasy of Eldoria" sucht Verstärkung!”.
  • Hi,

    das Handelssystem ist in 4 Sicherheitsebenen unterteilt:

    1. Atomare Transaktionen (Schutz gegen Item-Duping durch Server-Crashes oder Lags).
    Beispiel: In schlechten Systemen wird erst dem Spieler A das Item weggenommen (Datenbank Update) und dann Spieler B das Item gegeben (Datenbank Insert). Wenn der Server dazwischen abstürzt, ist das Item weg (oder bei umgekehrter Reihenfolge verdoppelt).
    Lösung in meinem Code: Der Handel wird im RAM in einem einzigen "lock" Block ausgeführt, damit der Tausch in einem einzigen CPU-Takt passiert. Außerdem lösche ich die alte Iteminstanz aus der Datenbank und erstelle direkt eine neue. Selbst wenn das Speichern bei Spieler B fehlschlägt, hat Spieler A das Item im RAM nicht mehr.

    2. Globales Locking
    Das Spielerinventar wird gesperrt, wenn der Spieler handelt. Er kann also nichts an NPCs verkaufen oder aus dem Inventar löschen.

    3. Validierung "Last Second" (Anti-Quick-Switch)
    Beispiel: Spieler A legt ein Item rein. Spieler B klickt "Trade". Im letzten Millisekunden-Moment tauscht Spieler A das Item gegen Müll aus oder entfernt es komplett und klickt auch "Trade".
    Lösung: Jede Änderung am Handel (Item rein/raus, Geld ändern) setzt IsAccepted bei beiden sofort auf false.

    4. Umwelt-Faktoren (Anti-Lag-Switch & Distance)
    Distanz-Check: Der Server prüft bei jedem Schritt (Update-Loop im TradeManager) und bei jeder Aktion (PlayerAccept), ob die Spieler weiter als 6 Meter entfernt sind. Falls ja wird der Handel automatisch abgebrochen.
    Disconnect-Handler: Wer offline geht (auch durch Crash/Alt+F4/Connection lost etc...), bricht den Handel ab. Items bleiben beim Besitzer.


    Falls ihr noch mehr Fragen habt oder testen möchtet, könnt ihr mir gerne schreiben! Ein Testsystem ist 24/7 online.

  • Update: Einsammelbare Game Objekte.

    Ab sofort können Ressourcen oder Questitems eingesammelt werden.

    Jedes GameObjekt kann ganz einfach in der Datenbank angelegt werden. Hierzu gibt es folgende Einstellungen die man wählen kann:

    Typ-Unterscheidung:

    • Shared: Das Objekt verschwindet für alle nach Benutzung (perfekt für Wirtschaft/Ressourcen).
    • Personal: Das Objekt verschwindet nur für den Benutzer (perfekt für Quests).

    Loot-Logik:

    Jedes Objekt ist mit einer Loot-Table verknüpft. Es kann feste Quest-Items droppen oder (bei Erzen) zufällige Edelsteine mit Wahrscheinlichkeiten.

    Respawn-Timer:
    Es gibt eine Min- und Max-Zeit. Ein Erzvorkommen kommt also nicht stur nach 5 Minuten wieder, sondern zufällig zwischen z.B. 10 und 20 Minuten, um Campen zu erschweren.

    Cast-Zeit & Animation:
    Wie lange dauert das Abbauen? Welche Animation spielt der Charakter dabei ab (mining, gathering, opening, etc.)?

    Sichtbarkeit und Bedingungen:

    • Benötigt der Spieler ein bestimmtes Item im Inventar? (z.B. Spitzhake für Erze)
    • Benötigt der Spieler eine aktive Quest?

      Performance:
      Die Objekte werden – genau wie NPCs und Spieler – über das Grid-System verwaltet. Der Client lädt sie erst, wenn er in die Nähe kommt, was die Performance hoch hält.

    Es wurde außerdem die Webseite geupdated: http://www.fantasyofeldoria.com
    und eine komplett neue Beta Seite erstellt. http://www.fantasyofeldoria.com/beta

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!