[Hobbyprojekt/MMORPG] Heimatlos - Überleben auf Asphalt

Hier könnt ihr nach Mitstreitern für eure Projekte suchen, euer Können anbieten, Jobs anbieten und suchen sowie einfach Gleichgesinnte finden...
Forumsregeln
Bitte die gewünschte Art von Rückmeldung angeben und beachten!

Bitte bei Gesuchen für Hobbyprojekte sofern möglich die Vorlage für Mitarbeitergesuche benutzen.

Bitte (nur) für kommerzielle Angebote/Gesuche das Beitragssymbol Bild wählen.

Wenn Rückmeldung nicht direkt im Forum erfolgen soll, kann das Thema selbstständig gesperrt werden: Bild Zum Entsperren muss momentan leider noch ein Moderator informiert werden.

Wenn innerhalb eines Monats mehr als eine Stellenanzeige veröffentlicht werden soll, sind diese in einem Thema zusammenzufassen.

Siehe auch Wichtige Hinweise für das Forum Zusammenarbeit.
Antworten
Heimatlos
Beiträge: 2
Registriert: 09.10.2025, 15:21

[Hobbyprojekt/MMORPG] Heimatlos - Überleben auf Asphalt

Beitrag von Heimatlos »

Hallo Community!

Seit ein paar Wochen arbeite ich an meinem MMORPG mit dem Namen "Heimatlos - Überleben auf Asphalt". Ich bin noch am Anfang der Entwicklung, möchte euch aber schon jetzt mein Projekt vorstellen und freue mich auf euer Feedback.

Handlung
Im Grunde geht es darum, in einer fiktiven, düsteren Stadt – online mit hunderten anderen – als Obdachloser zu überleben.

Ihr startet ohne Besitz in einer Open-World-Karte und müsst euch euren Platz erkämpfen. Euer Überleben hängt von zwei Werten ab: Gesundheit und Hunger. Der Hunger fällt kontinuierlich und führt bei Null zu stetigem Lebensverlust. Ihr müsst also neben dem Erfüllen von Quests auch aufmerksam eure Umgebung nach Essbarem oder Pfandflaschen absuchen, um bei Händlern Nahrung zu kaufen. Aber Achtung! Welt-Items sind nicht instanziert – findet ihr etwas, ist es für andere Spieler erstmal weg, bis es respawnt.

Durch das Erfüllen von Quests und das Besiegen feindseliger NPCs sammelt ihr EXP, steigt im Level auf (aktuelles Max-Level: 40) und verbessert so eure Überlebenschancen.

Bei der Charaktererstellung könnt ihr nicht nur euer Aussehen wählen, sondern erfahrt auch eine von mehreren Hintergrundgeschichten, die den tragischen Weg eures Charakters in die Obdachlosigkeit beschreibt.

Bei dem Konzept bin ich noch völlig offen - ich habe einfach Lust ein MMORPG zu erstellen! Falls ihr Ideen habt könnt ihr euch gerne mit einbringen.

Verwendete Engines/Programmiersprachen:
Datenbank: MySQL/MariaDB.
Server: Eine komplett selbst geschriebene Konsolenanwendung in C# .NET 8.0 mit der performanten Riptide Networking Library.
Pathfinder: Ein ausgelagerter C#-Server, der ausschließlich für die asynchrone Berechnung von NPC-Laufwegen zuständig ist, um den Hauptserver zu entlasten.
Client: Entwickelt mit Unity 3D (2023) und C#.

Bisherige Features (Architektur):
Hier möchte ich euch einen Einblick in das technische Fundament geben, auf das ich besonders Wert gelegt habe:

Vollständig Autoritativer Server:
Der Client ist ein reines Anzeige- und Eingabegerät. Sämtliche Spiellogik – von der Treffererkennung im Kampf, über Würfe für Loot-Drops bis hin zur Validierung von Interaktionsdistanzen – wird ausschließlich auf dem Server berechnet. Das macht das Spiel robust gegen Cheating.

Performantes & Threadsicheres Networking:
Der Server nutzt die multithreaded I/O-Features von Riptide. Auf dem Client werden alle ankommenden Netzwerk-Nachrichten in eine Warteschlange gepackt und im Main-Thread von Unity sicher verarbeitet, um Race Conditions zu vermeiden.

Effizientes Speichermanagement:
Der Server ist darauf ausgelegt, den Druck auf den Garbage Collector (GC) zu minimieren. Kritische Listen und Datenstrukturen im Game-Loop werden wiederverwendet statt pro Tick neu erstellt, um Lags durch GC-Spikes zu verhindern.

Skalierbare Server-Struktur:
Durch die Auslagerung der Wegfindungs-KI in einen separaten Pathfinder-Service ist die Architektur darauf vorbereitet, auch bei vielen NPCs performant zu bleiben.

Spatial Partitioning (Area of Interest / AOI):
Die Spielwelt ist serverseitig in ein Grid-System unterteilt. Jedem Spieler werden nur die Daten (Positionen, Aktionen etc.) von Entitäten gesendet, die sich in seiner unmittelbaren Umgebung befinden. Das reduziert die Netzwerklast und die clientseitige Verarbeitung drastisch und ist die Grundlage für eine Welt mit hunderten Spielern.

Aktuell können 100+ Spieler ohne Probleme auf dem Server gleichzeitig spielen (bei ca. 70-80 NPC's).
Ein V-Server zum testen ist bereits gemietet.


Bisherige Features (Spielmechanik):

Viele Kernsysteme eines MMORPGs sind bereits implementiert:

Charakter-System:
Level-System (1-40) mit exponentiell ansteigenden EXP-Anforderungen.
Stat-Progression: Mit jedem Level-Up erhöht sich die maximale Gesundheit.

Tod & Respawn:
Bei Tod verliert man EXP, zahlt eine kleine Krankenhausgebühr und respawnt an einem festen Punkt.

Lebendige Spielwelt & NPC-Verhalten:
Die NPCs folgen einem serverseitigen KI-System, das verschiedene Verhaltensweisen kombiniert, um die Welt dynamischer zu gestalten:
- Aggressions-Typen:
Freundlich: Questgeber, Händler und Zivilisten, die nicht angegriffen werden können und die sicheren Zonen der Welt bevölkern.
Defensiv: Neutrale Charaktere, die nur zurückschlagen, wenn sie provoziert werden.
Feindselig: Gegner, die Spieler innerhalb ihres Sichtradius (Aggro-Radius) sofort angreifen und Jagd auf sie machen.

- Bewegungs-Typen:
Statisch: NPCs, die an einem festen Punkt bleiben, ideal für Händler oder Wachen. Sie können dennoch durch spezielle Idle-Animationen (z.B. sich unterhalten, rauchen) lebendig wirken.

Umherwandernd (Wander): NPCs bewegen sich zufällig innerhalb eines festgelegten Radius um ihren Spawnpunkt, was Gebiete organischer und weniger vorhersehbar macht.

Patrouillierend (Patrol): NPCs folgen einer fest definierten Route von Wegpunkten. Das erzeugt dynamische Hindernisse und glaubwürdige Wachen.

Survival-System:
Hunger: Sinkt über Zeit, verursacht bei Null Schaden.
Energie: Ressource für Kampfaktionen (Schlagen, Treten, Blocken), die sich außerhalb des Kampfes schneller regeneriert als im Kampf.

Echtzeit-Kampfsystem:

Zwei grundlegende Nahkampf-Angriffe (schneller Schlag, langsamer Tritt) mit unterschiedlichen Energiekosten und Cooldowns.
Aktives Blocken: Spieler können Angriffe blocken. Die Erfolgschance hängt vom Level-Unterschied zum Gegner und der verbleibenden Energie ab.

Stun-Effekte:
Der Tritt hat eine Chance, das Ziel kurzzeitig zu betäuben und kampfunfähig zu machen.

Inventar- & Item-System:
Slot-basiertes Inventar mit Hotbar.
Drag-and-Drop zum Verschieben, Stapeln und Zerstören (mit Bestätigungsdialog) von Items.
Item-Nutzung mit serverseitig validierten Cooldowns, die auch einen Logout überdauern.
Item-Qualitätssystem (Gewöhnlich, Selten etc.), das sich in der UI durch Farben widerspiegelt.
Welt-Items, die in der Welt aufgesammelt werden können und nach einer festen Zeit respawnen.

Wirtschaftssystem:
NPCs können als Händler fungieren und bieten ein festes Sortiment an Waren an.
Spieler können Items an Händler verkaufen (Verkaufspreis ist ein prozentualer Anteil des Item-Wertes).
Der Server trackt globale Wirtschaftsstatistiken wie die gesamte Geldmenge im Umlauf.

Umfangreiches Quest-System:
Questgeber mit dynamischen Icons (!, ? in grau/gelb), die sich je nach Spielerfortschritt, Level und abgeschlossenen Vor-Quests in Echtzeit ändern.
Verschiedene Quest-Ziel-Typen sind implementiert: Töte X, Sammle Y (von NPCs oder aus der Welt), Benutze Item Z.
Unterstützung für Quest-Reihen (eine Quest wird erst verfügbar, nachdem eine andere abgeschlossen wurde).

Soziale Features:
Diese Befehle sind für jeden Spieler im Spiel verfügbar.

**/help**
Zeigt die Liste der verfügbaren Befehle im Chat an.

**/w <Spielername> <Nachricht>** (oder **/whisper**)
Sendet eine private Nachricht (Flüstern) an einen anderen Spieler, der online ist.

**/r <Nachricht>** (oder **/reply**)
Antwortet auf die zuletzt erhaltene oder gesendete Flüsternachricht.

**/who**
Zeigt die Anzahl der aktuell online befindlichen Spieler an.

**/ignore <Spielername>**
Fügt einen Spieler zur eigenen Ignorier-Liste hinzu. Man empfängt keine Chat- oder Flüsternachrichten mehr von diesem Spieler.

**/unignore <Spielername>**
Entfernt einen Spieler von der Ignorier-Liste.

**/roll**
Würfelt eine zufällige Zahl zwischen 1 und 100 und zeigt das Ergebnis allen Spielern in der Nähe an.

**/played**
Zeigt die gesamte Spielzeit mit dem aktuellen Charakter an.

Admin- & GM-System:
GM-Befehle (Level 1+)
Diese Befehle sind für GMs mit Level 1 oder höher verfügbar.

**/g <Nachricht>**
Sendet eine Nachricht in den privaten GM-Chat, die nur andere online befindliche GMs sehen können.

**.mute <Spielername> <Minuten>**
Schaltet einen Spieler für die angegebene Anzahl an Minuten stumm.

**.unmute <Spielername>**
Hebt die Stummschaltung eines Spielers sofort auf.

**.who <Spielername>**
Zeigt detaillierte Informationen über einen Spieler an (Account-ID, Position, Status etc.).

**.kick <Spielername>**
Wirft einen Spieler vom Server.

**.gm ON/OFF**
Aktiviert oder deaktiviert den GM-Modus (Unsterblichkeit, keine Kosten etc.).

**.gm i**
Listet alle GMs auf, die aktuell online sind.

**.announcement <Text>**
Sendet eine globale Server-Ankündigung an alle Spieler.

**.server <info|save>**
Zeigt Server-Informationen an oder löst das Speichern aller Spieler-Daten aus.

**.kill <Spielername>**
Tötet den Charakter eines Spielers.

**.appear <Spielername>**
Teleportiert einen Spieler zur aktuellen Position des GMs.

**.recall <Spielername>**
Schickt einen Spieler, der zuvor mit .appear herbeigeholt wurde, an seine ursprüngliche Position zurück.

**.goto <Name|spawn>**
Teleportiert den GM zur Position eines Spielers oder zum globalen Spawnpunkt.

GM-Befehle (Level 2+)
Zusätzliche Befehle für GMs mit Level 2 oder höher.

**.ban <Spielername> <Tage>**
Bannt den Account eines Spielers für die angegebene Anzahl an Tagen. -1 für einen permanenten Bann.

**.levelup <Spielername> <Anzahl>**
Erhöht das Level eines Spielers um die angegebene Anzahl.

**.showitems <Spielername>**
Zeigt das Inventar eines Spielers im Chat des GMs an.

**.sethealth <Spielername> <Wert>**
Setzt die aktuellen Lebenspunkte eines Spielers auf einen bestimmten Wert.

**.sethunger <Spielername> <Wert>**
Setzt den aktuellen Hunger eines Spielers auf einen bestimmten Wert.

**.givemoney <Spielername> <Betrag>**
Gibt einem Spieler Geld (in Cents). Eine negative Zahl zieht Geld ab.

GM-Befehle (Level 3+)
Mächtigste Befehle, reserviert für die höchsten GM-Level.

**.additem <Spielername> <ItemID> <Anzahl>**
Fügt einem Spieler Items hinzu. Eine negative Anzahl entfernt Items.

**.unban <Spielername>**
Entbannt den Account eines Spielers.

**.shutdown <Minuten> <Grund>**
Fährt den Server nach einer festgelegten Zeitspanne kontrolliert herunter und informiert die Spieler darüber.

Ich freue mich riesig auf eure Gedanken, Ideen und euer Feedback! Was haltet ihr von der Grundidee und dem Setting?

Ich suche noch motivierte Tester oder Modellierer für 3d-Objekte/Models.
Meldet euch gerne wenn ihr Mitwirken möchtet. Ihr bekommt selbstverständlich als Teil des Teams GM-Rechte.
Schreibt mir bei Interesse einfach eine PM oder kommentiert unter meinem Beitrag.


Dieses Projekt ist reines Hobby und soll keinerlei Profit erzeugen.
screen_1.png
bild_2.png
bild_1.png
screen_2.png
NytroX
Establishment
Beiträge: 419
Registriert: 03.10.2003, 12:47

Re: [Hobbyprojekt/MMORPG] Heimatlos - Überleben auf Asphalt

Beitrag von NytroX »

Hi, da habt ihr ja schon einiges aufgebaut.
Alleine das Framework zu bauen - was ihr bisher habt ist ja schon ein gutes Stück Arbeit, Glückwunsch dazu.
Das Setting ist auf jeden Fall mal was neues., und technisch scheint ihr auch schon gute Ideen zu haben.

Was ich mir noch nicht so gut vorstellen kann ist der Game-Loop.
Also was würden/sollten die Spieler tun, wie läuft das ab und was ist der spaßige Teil dabei?
Wie interagieren die Spieler (außer sich die Items gegenseitig wegzusammeln), warum braucht es dafür ein MMO?
Da ist denke ich noch einiges zu überlegen damit aus dem Spiel ein Spiel wird - auch die "Sandbox" bietet anscheinend noch nicht so viel.
Was sind da deine/eure Ideen?
Heimatlos
Beiträge: 2
Registriert: 09.10.2025, 15:21

Re: [Hobbyprojekt/MMORPG] Heimatlos - Überleben auf Asphalt

Beitrag von Heimatlos »

Hi,

danke für deine ehrliche Antwort.
„Ihr“ ist gut. Aktuell bin ich alleine. Das ist auch der Grund warum das allgemeine Setting (meiner Meinung nach) noch nicht gut aussieht. Leider kann ich überhaupt keine 3D-Modelle selber erstellen und alles ist zusammen gekauft. Hier brauche ich noch tatkräftige Unterstützung, damit das starke Framework auch stark aussieht.

Mein aktueller Game-Loop ist wie folgt:

Der Kern-Loop: Überleben (Der kurzfristige Kreislauf)

Dieser Loop ist das, was der Spieler in den ersten Minuten permanent tut, um nicht zu sterben.

Zustand prüfen: Der Spieler startet in der Welt und bemerkt sofort seine Statusanzeigen: Gesundheit und vor allem Hunger.

Bedürfnis erkennen: Der Hunger sinkt kontinuierlich. Der Spieler lernt schnell: Wenn der Hunger auf Null fällt, verliert er Leben und stirbt. Das erzeugt den primären Handlungsdruck.

Ressourcen suchen (Exploration): Der Spieler beginnt, die unmittelbare Umgebung abzusuchen. Er sucht nach aufhebbaren Gegenständen in der Welt (WorldItem), wie deiner "Konservendose".

Ressourcen beschaffen: Er sammelt diese Items auf. Da sie nicht instanziert sind, entsteht ein Gefühl von Dringlichkeit und Konkurrenz.

Bedürfnis befriedigen: Der Spieler konsumiert das gefundene Essen, um seinen Hunger-Balken wieder aufzufüllen und den Lebensverlust zu stoppen.

Wiederholung: Der Kreislauf beginnt von vorn. Der Spieler ist ständig auf der Suche nach der nächsten Mahlzeit, was das Kernthema "Überleben" perfekt widerspiegelt.

Der Progressions-Loop: Besser werden (Der mittelfristige Kreislauf)

Dieser Loop motiviert den Spieler, über das reine Überleben hinauszuwachsen und seinen Charakter zu verbessern. Er läuft parallel zum Überlebens-Loop.

Orientierung & Interaktion: Während der Spieler nach Ressourcen sucht, trifft er auf freundliche NPCs. Die Quest-Icons (!, ?) signalisieren ihm, dass es hier mehr zu tun gibt.

Zielsetzung (Quests): Der Spieler nimmt eine Quest an. Diese gibt ihm ein klares, mittelfristiges Ziel, z.B. "Töte 5 Stadtwachen" oder "Sammle 3 Kanister Benzin".

Herausforderung (Kampf & Sammeln):

Der Spieler muss nun aktiv werden: Er sucht die Ziel-NPCs und kämpft gegen sie. Dabei muss er seine Energie für Angriffe und Blocken managen.

Er besiegt die NPCs, was ihn Erfahrungspunkte (ExperienceReward) und möglicherweise Quest-Items (LootTable) einbringt.

Belohnung: Der Spieler kehrt zum Questgeber zurück und schließt die Quest ab. Er wird belohnt mit:

Erfahrungspunkten (EXP): Füllt den Erfahrungsbalken.

Geld (Money): Gibt ihm neue Handlungsmöglichkeiten.

Investition (Upgrade): Mit dem verdienten Geld kann der Spieler zu einem Händler-NPC gehen und bessere Nahrung oder seine erste Waffe kaufen. Dies verbessert seine Effizienz im Überlebens- und Kampf-Loop.

Level Up: Genug EXP führen zum Levelaufstieg. Das ist eine große Belohnung:

Die maximale Gesundheit steigt.

Der verursachte Schaden wird höher.

Neue Quests werden verfügbar, da der Spieler nun das RequiredLevel erfüllt.

Bessere Ausrüstung kann getragen werden.

Der Ausrüstungs-Loop: Macht erlangen (Der langfristige Kreislauf)

Dieser Loop ist eng mit dem Progressions-Loop verknüpft und wird zum Hauptantrieb im Mid- bis Endgame.

Loot-Motivation: Der Spieler besiegt einen Gegner und dieser lässt eine Waffe fallen (z.B. dein "Rostiges Brecheisen").

Vergleich & Entscheidung: Der Spieler öffnet sein Inventar und vergleicht die neue Waffe mit seiner Faust (oder einer älteren Waffe). Der Tooltip zeigt ihm sofort die Vorteile: mehr Schaden, besondere Effekte (Proc-Chance), etc.

Machtzuwachs (Ausrüsten): Der Spieler rüstet die Waffe aus. Er sieht sie nicht nur in seinem Charakter-Fenster, sondern auch direkt an seinem 3D-Modell. Sein angezeigter Schadenswert in der UI steigt.

Anwendung: Im nächsten Kampf spürt der Spieler den Unterschied direkt: Gegner sterben schneller, er verbraucht vielleicht anders Energie.

Wiederholung & Optimierung: Die Suche nach immer besseren Waffen (und bald Rüstungen) wird zu einem zentralen Ziel. Der Spieler ist motiviert, schwierigere Gegner für besseren Loot zu suchen, um seinen Charakter kontinuierlich zu optimieren.

Allerdings möchte ich anmerken das ich komplett offen bin für Ideen und Konzepte. Mir macht das programmieren Spaß und ich will unbedingt ein Multiplayer Spiel erstellen.

Grüße
Benutzeravatar
woodsmoke
Establishment
Beiträge: 170
Registriert: 30.06.2023, 14:05
Wohnort: Ludwigshafen
Kontaktdaten:

Re: [Hobbyprojekt/MMORPG] Heimatlos - Überleben auf Asphalt

Beitrag von woodsmoke »

Bin etwas überrascht dass man Gegner tötet. Fände es besser wenn es eher nur Prügel und KO gäbe. Da kann man auch looten. Oder ist das Setting eher apokalyptisch, da würde Todschlag passen.

Wie sieht es mit Rauschmittel aus, ist da was geplant?
Vielleicht noch als Idee: einen Einkaufswagen für Gegenstände und Bergabfahrten(/rennen! :D).

Weitere Ideen:
Hund als Begleiter (benötigt zusätzlichliche Nahrung, aber als Wachhund passt er Nachts auf deine Sachen auf, hilft beim kämpfen)

Kälte hätte ich neben Hunger als zentrale Gefahr erwartet. Ist gameplaytechnisch wahrscheinlich aber nicht so spannend, bzw könnte man später einführen (wenn der Winter kommt)

Geldbeschaffung: Taschendiebstahl oder als Musiker (Musik-Minigame)
Antworten