[Projekt] Shardcraft (MMO-RTS) - alpha released

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: [Projekt] Shardcraft (MMO-RTS)

Beitrag von xq »

Um eine art Erd-Textur über die Gras-Textur zu blenden, nach welchem Begriff muss ich da suchen? Hab von Grafikprogrammierung bisher nicht wirklich viel Ahnung ;)
Üblicherweise ist das Multitexturing oder Texture Blending

Die neue Textur sieht echt cool aus, ich mag den Look. Ich finde so nen Hex-Cursor unter der Maus auch ganz angenehm, dann hat man direktes Feedback
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS)

Beitrag von LONy »

Eigentlich wollte ich heute das Gebäude bauen fertig machen.
Wenn man ein neues Gebäude platziert wird jetzt zuerst ein "Bauplatz" angezeigt. Dafür gibt es jetzt für Gebäude eine neue Eigenschaft "Status". Da ich noch nicht genau weiß, wie ich jetzt das Ressourcen zum Bauplatz transportieren möglichst elegant umsetze hab ich angefangen mit Wolken herum zu Spielen... hier mal ein Screenshot um einen Eindruck zu vermitteln :)
2020_04_23_002.png
Theoretisch können die Inseln bei dem Wolken Asset auch in den Wolken sein. Damit das gut aus sieht ist aber wohl einiges an Fine tuning nötig :D
2020_04_23_004.png
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS)

Beitrag von LONy »

Ein kurzes Update :)
Neue Funktionen gibt es eigentlich nicht, dafür hab ich viel am Backend umgeschrieben und um Hilfsklassen erweitert, so dass es jetzt deutlich einfacher sein sollte das Backend um neue Funktionen zu erweitern:

Da ich schnell voran kommen wollte, war die Rohstoff Herstellung und das Berechnen der Arbeiter alles in einer einzigen riesigen Klasse mit Datenbank Abfragen mitten in der Statemachine usw. - ein schneller Prototyp. Das ganze ist jetzt aufgeräumt:

- Nun gibt es eigene Scripte zum verwalten der Rohstoffe (incl. Datenbankzugriff und einfache Berechnungen und Logik vergleiche, z.B. ob die erforderlichen Rohstoffe für ein Gebäude <= der vorhandenen Rohstoffe bei der "Baustelle" sind.)
- Alle Einheiten sind nun auch in einer eigenen Klasse, die nur für das Verwalten von Einheiten zuständig ist, mit Hilfsmethoden wie z.B. GetItem(Baum), hier sucht die Einheit automatisch nach dem nähstem Item (z.B. "Baum"), holt das Item und meldet dem Gebäude, für das die Einheit arbeitet, wenn sie zurück ist...
- Alle Gebäude oder allgemein statische (nicht bewegliche) Objekte sind jetzt in einer Klasse, mit einer extra Statemachine um ihren eigenen Zustand zu verwalten, z.B. dem zugewiesenen Arbeiter sagen, welche Rohstoffe sie brauchen um gebaut zu werden, oder wenn sie fertig gebaut sind, welche Rohstoffe sie zum Verarbeiten brauchen usw.

Das ganze gefällt mir inzwischen recht gut und sollte jetzt auch flexibel erweiterbar sein. Für die Klasse zum Verwalten der Ressourcen habe ich auch einen automatischen Test geschrieben, der mir die Klasse auf richtige Funktion testet... Ich denke hier muss ich in Zukunft noch mehr Energie rein stecken, weil einem doch viele kleine Fehler passieren und im Zusammenspiel von Backend mit Client sind diese sonst schwer zu finden.

Mit der Darstellung der Wolken bin ich auch schon recht zufrieden. Gebäude können nun gebaut werden (hier hab ich im Frontend noch einen Bug, dass mir die Darstellung der Baustelle nicht gelöscht wird ;) )

Zwei Bilder vom Aufbau einer neuen Insel:
2020_04_28_001.png
Mit dem Kran soll man später neue Inselteile an der Insel befestigen... Wenn der Kran das Inselteil eine Zeit lang in Position hält, verwächst es quasi mit der Insel. Wenn der Kran nicht mehr am Rand ist hat er keine Funktion mehr und kann zurück gebaut werden. Ein Kran ist recht teuer, um damit auch ein Stück die Erweiterung der Insel zu steuern - das muss ich aber alles noch implementieren:
2020_04_28_002.png
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS)

Beitrag von LONy »

Gerade haben wir gut drei Stunden zu dritt gespielt... mein Cousin, mein Bruder und ich, v0.0.3 war ganz lustig im Teamspeak ;)
Es gibt noch ein paar blöde Bugs, z.B. bauen auf anderen Inseln, aber das sind Kleinigkeiten.

Ich habe eine Todo Liste mit 10 Punkten, wenn ich die abgearbeitet habe werden wir v0.0.4 testen und wenn das Ganze so weit läuft, werde ich auch hier einen Link teilen.

Der Server ist dabei recht entspannt geblieben. Das Balancing und die Erstellung von neuen Inselteilen hat für uns 3 ganz gut gepasst, aber ich muss es linear mit der Anzahl der eingeloggten Spieler steigern, sonst sind es wohl viel zu wenig...

Hier ein Screenshot meiner Insel:
2020_05_01_006.png
u.a. steht auf der Todo Liste, dass man Gebäude (die nicht mehr gebraucht werden) abreißen kann. Momentan gibt es als Rohstoffe nur Stein und Holz. Inselbewohner/Arbeiter werden mit jedem neuen Gebäude automatisch erstellt. Trotz des sehr einfachen Prinzips hats schon viel Spaß gemacht.

Leider wurden weder Wolken noch Schatten im Unity Build dargestellt... da muss ich noch mal schaun an was es liegt.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: [Projekt] Shardcraft (MMO-RTS)

Beitrag von Tiles »

xq hat geschrieben: 23.04.2020, 13:02
Um eine art Erd-Textur über die Gras-Textur zu blenden, nach welchem Begriff muss ich da suchen? Hab von Grafikprogrammierung bisher nicht wirklich viel Ahnung ;)
Üblicherweise ist das Multitexturing oder Texture Blending
Ergänzenderweis, der Fachbegriff heisst Texture Splatting https://en.wikipedia.org/wiki/Texture_splatting

Ich mag den Grafikstil. Weitermachen! :)
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS)

Beitrag von LONy »

Danke! Ich hab mich mal versucht im Texture splatting... hier das erste Ergebnis von der Baustelle :)
2020_05_02_002.png
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS)

Beitrag von LONy »

Nachdem sich gestern Shardcraft richtig nach einem Spiel angefühlt hat, obwohl es noch in einer so frühen Version ist, war ich heute total motiviert und hab ein kleines Video erstellt :D



Ich hab auch angefangen mich mit Audio zu beschäftigen, mir gleich mal ein Asset mit der epischen Musik vom Video gekauft und auch angefangen in Unity ein wenig Hintergrundmusik einzubauen und die Einheit spricht jetzt, wenn man ihr einen Befehl gibt ;)
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: [Projekt] Shardcraft (MMO-RTS)

Beitrag von Tiles »

Immer weiter machen, wir lurken mit :)
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS)

Beitrag von LONy »

Version 0.0.4 ist fast fertig, so dass ich sie wohl auch auf itch.io veröffentlichen werde.
Unsere kleine Runde vor gut einer Woche zu dritt war mit der Client Version 0.0.3, die doch einige offensichtliche Schönheitsfehler hatte...

Neuerungen die bereits für die neue Version umgesetzt sind (im Vergleich zu v 0.0.3):
- Sound (Hintergrundmusik und Einheiten)
- kleines Optionsmenü zum Einstellen der Lautstärke
- Login Daten können gespeichert werden
- der node.js Server läuft jetzt als selbständiger "Task" - ich muss ihn nicht extra über SSH starten
- Anzeige Bugs beim hinzufügen von Inselteilen behoben
- Bug, dass auf Inseln anderer Spieler oder auf leeren Inseln Bauaufträge gestartet werden können wurde beseitigt
- Wolken werden nun dargestellt
- hübschere Baustellen
- Baustellen verschwinden nach Fertigstellung
- Bäume und Felsen ohne Rohstoffe werden nun als Baumstumpf bzw. kleiner Steinhaufen dargestellt
- Der Kran kann nicht mehr die eigene Insel an den Haken nehmen
- man kann ein leeres Inselteil auch wieder los lassen
- Fortschrittsanzeige für alle Baustellen (= Anzahl der Rohstoffe bei der Baustelle... z.B. sah man nicht, wie viel Holz schon beim Kran ist und konnte so nur raten, wie lange es noch bis zur Fertigstellung dauert. Ein Kran kostet 20 Holz, und das dauert eine Weile, bis es der Arbeiter hin getragen hat)
- Man kann auf Tiles mit abgeernteten Rohstoffen (z.B. Baumstumpf) nun ein neues Gebäude bauen
- Meldungen werden nur 1x generiert (z.B. wurde vorher eine Fehlermeldung mehrmals generiert, so dass man sie auch häufig weg klicken musste)
- neues Gebäude "Wohnhaus"
-...

Die Veröffentlichung des Youtube Videos ist ernüchternd, nur 20 Views (ich würde sagen 90% davon waren Freunde) und auf itch.io war seit über einer Woche keiner mehr auf der Seite. Aber gleichzeitig ist es auch gut, weil so kann ich mit einer Veröffentlichung einer sehr frühen Version nichts falsch machen... es spielen zuerst eh geschätzt max. 10-20 Personen, das reicht leicht um Feedback zu bekommen, die Stabilität zu testen und weitere Spielinhalte hinzu zu fügen.

Ich überlege noch, ob ich in v 0.0.4 noch "Inselbewohner" richtig einführe - momentan wird einfach je Gebäude ein Bewohner generiert, der dann dort als Arbeiter ist... Ich möchte es so haben, dass man am Anfang mit einer gewissen Anzahl an Bewohnern startet und dann Wohnhäuser bauen muss, um zusätzliche Bewohner zu bekommen. Das ganze greift schon mehr in die Spielmechanik ein, aber wahrscheinlich hebe ich mir das trotzdem für die v 0.0.5 auf :)

Hier noch ein Screenshot vom neuen Gebäude und einem abgeholztem Baum ;)
2020_05_11_001.png
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS)

Beitrag von LONy »

Moin,
da die Einheiten auf der Insel entscheidend beim Aufbau Einfluss nehmen, habe ich mich dazu entschieden für den ersten öffentlichen Release für Version 0.0.4 die Inseleinheiten noch zu implementieren. Aber wie so oft, unterschätzt man den Aufwand doch gewaltig und es dauert alles etwas länger ;)

Wenn man sich neu Anmeldet, werden 3 neue Inselbewohner generiert. Das hat sich aber schon als zuwenig heraus gestellt - gerade zu Beginn ist das Spiel noch viel zu zäh. Beim Bauen eines Wohnhauses gibts auch 3 neue Einheiten. Eine Einheit bekommt einen zufälligen, aus rund 200 Namen ausgewählten Namen und es gibt insgesamt 12 verschiedene Darstellungsformen.

Bei der Bewegung gibt es momentan noch einen Fehler, dass der AnimationController immer in die Richtung des Vektors von Start- zu Zielposition läuft (vom Server übertragene Positionen) unabhängig davon, wo sich die Einheit gerade tatsächlich befindet. Bisher hab ich nämlich nur den AnimationController für die Animation der Bewegung genutzt, die eigentliche Bewegung aber einfach zeitlich zwischen Start und Zielposition interpoliert, weshalb das immer gepasst hat, aber die Bewegungen weniger natürlich ausgesehen haben...

Hier noch ein Bild mit 3 Einheiten, die gerade aus dem Wohnhaus gekommen sind + Arbeiterin, die das Haus gebaut hat:
2020_05_16_003.png
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft - Alpha released!

Beitrag von LONy »

Shardcraft v0.0.4 ist released! :)

Eben habe ich die erste öffentliche Alpha Version auf itch.io hochgeladen:
https://lonytoon.itch.io/shardcraft

Es hat jetzt doch noch viel länger gedauert ein paar nervige Bugs zu beseitigen. Jetzt sollte es aber mal so weit stabil laufen, dass man seine Insel mit Bewohnern bevölkern kann und mit neuen Inselteilen ausbauen kann.

Meine Liste, was ich noch alles implementieren möchte ist sehr lang... Aber ich habe mich dazu entschlossen eine frühe Veröffentlichung einer spielbaren Version zu versuchen. Die Wesentlichen Elemente sind Implementiert, so dass es keinen "Reset" des Spiels geben muss, wenn ich weitere Funktionen in den kommenden Wochen hinzu füge.

Wer mag, kann sich gerne die Zip-Datei runter laden, entpacken und Shardcraft ausprobieren :) Wenn irgend etwas hacken sollte, im Notfall einfach den Client neu starten...
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von LONy »

Drei weitere (reallife) Freunde haben sich angemeldet und sind schon fleißig am Zocken. Es gab noch einen kleine Bug mit dem Wohngebäude, den ich aber schnell beheben konnte.

Momentan mache ich mir Gedanken, wie ich das Inselwachstum im späteren Spielverlauf begrenzen kann. Mir schwebt so eine art Gravitationsmaschine vor, die die Inselteile zusammen hält aber gleichzeitig der Energiebedarf mit der Anzahl der Inselteile (exponentiell) steigt. Da es natürlich mehr Spaß macht eine Gravitationsmaschien zu entwickeln, als an der Narungsmittelproduktion für die Inselbewohner zu arbeiten, hab ich erst mal da etwas rum gespielt :D

Den Kran könnte man dann zu Gravitationsmaschinen ausbauen (der Drehkranz vom Kran ist übrig geblieben). In einem ersten Schritt wird man sich wohl einfach einen Gravitationsstein bei einem Händler kaufen (Ausbaustufe 1) und später dann noch mit Energie die Wirkung des Gravitationssteins verstärken. Hier ein Bild der Maschine:
2020_05_26_001.png
Benutzeravatar
Thoran
Establishment
Beiträge: 224
Registriert: 15.05.2009, 12:51
Wohnort: Stuttgart
Kontaktdaten:

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von Thoran »

Glückwunsch zur Veröffentlichung. Deine 3D-Modelle sind hübsch.
Wer Rechtschreibfehler findet, darf diese gerne behalten.
Mein Entwicklertagebuch
Aktuelle Projekte: Universum: Domination (ehemalig AlphaOmega),Universum: Sternenjäger, PixelWars: Highscore-based Top-Down-Spaceshooter
Spieleengine Unreal 5
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von LONy »

Danke Thoran :) Die ganzen Modelle sind allerdings Prefabs die ich entsprechend kombiniere... das Lob hat also jemand anderes verdient ;)

Ich arbeite an v0.0.5, vielleicht werde ich heute fertig. Damit es mehr Spielinhalte gibt, habe ich mich dazu entschlossen als nächstes die Nahrungsmittelproduktion zu implementieren.

Es wird 5 neue Gebäude geben, wovon 3 fertig sind:
1.) Karottenfarm, 2. )Sonnenblumenfarm und 3.) Feld. Karotten stellen Nahrung für die Inselbewohner dar. Da es nicht von Anfang an Essen gibt, müssen Bewohner die Nahrung zu sich nehmen irgend einen Bonus bekommen, z.B. schnelleres laufen. Mal sehen wie ich das ins Gameplay einbinde...
Jeder Farm muss (mindestens) ein Feld zugewiesen werden, an dem die Pflanzen angebaut werden. Dabei kann ein Feld nur eine maximale Anzahl an Früchten tragen.
Sonnenblumen sind nicht als Nahrung gedacht, sondern werden zu Öl weiter verarbeitet (4. Gebäude), dass dann mit einer art Rakete (5. Gebäude) die Insel bewegt werden kann. Das Sonnenblumenöl wird dann später auch für weitere "Industriegebäude" benötigt.

Somit konkurriert die Nahrungsmittelproduktion mit der Ölproduktion - evtl. ergibt es dadurch im späteren Spielverlauf eine Spezialisierung, ob man eher mit Muskelkraft die Rohstoffproduktion usw. ablaufen lässt oder durch Industrialisierung.

Rakete und Ölpresse existieren noch nicht, aber die anderen 3 Gebäude sind fertig und man kann schon den Karotten und Sonnenblumen beim Wachsen zu sehen :) Die Farm wird einfach durch einen Blumenkasten am Balkon unterschieden, welche Früchte produziert werden können...
2020_05_30_001.png
2020_05_30_002.png
Wenn man ein Gebäude anklickt, werden nun die zugewiesenen Arbeiter angezeigt. Man kann nicht mehr alle Gebäude von Anfang an bauen, sondern es gibt einen Techtree und die Gebäude hängen voneinander ab.
Es ist nämlich passiert, dass Spieler zuerst ein Wohnhaus (benötigt viel Stein) gebaut haben, bevor sie einen Steinmetz gebaut haben. Der Steinmetz benötigt aber auch etwas Stein und so ist es vorgekommen, dass man allen Stein verbaut hatte, bevor man einen Steinmetz hatte.
Techtree: Erst wenn man einen Steinmetz hat, kann man ein Wohnhaus bauen ;)
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von LONy »

Shardcraft v0.0.5 ist released :)

Es gibt vom Gameplay her eigentlich nur eine kleine Neuerung: Die Insel kann jetzt bewegt werden... aber das hat mehr Arbeit gemacht als gedacht. Um die Insel zu bewegen braucht man Steinturbinen. Diese werden mit Öl betrieben. Wenn das Öl aus geht, schaltet sich die Turbine ab. Wenn neues Öl durch einen Arbeiter gebracht wird, schaltet sich die Turbine wieder zu. Es können mehrere Turbinen gebaut werden und jede Turbine trägt zur Inselbewegung bei (wenn sie Öl hat). Hierdurch musste ich Eigenschaften etlicher Klassen verknüpfen und mit der Implementierung bin ich nicht so recht zufrieden, da hierdurch etliche Abhängigkeiten entstanden sind.
Zum Glück ist das alles im Backend, und ich kann ein Update einspielen und das etwas sauberer machen ohne dass ein neuer Client herunter geladen werden muss. Nur ich weiß nicht recht wie ich das besser / sauberer in meinem Quellcode organisieren soll.

Hier noch ein Screenshot der Steinturbine in Aktion. Weitere Details zu den neuen Funktionen gibts auf itch.io. Hier will ich mehr auf das Programmiertechnische eingehen.
2020_06_09_001.png
Grüße,
LONy
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von marcgfx »

Der Steinmetz benötigt aber auch etwas Stein und so ist es vorgekommen, dass man allen Stein verbaut hatte, bevor man einen Steinmetz hatte.
Das würde ich ganz schnell ändern. Es sollte nicht möglich sein, dass der Spieler festhängt weil er keine Möglichkeit mehr hat an Ressourcen zu kommen die eigentlich vorhanden sind. Macht doch wenig Sinn, der Steinmetz sollte seine Hütte doch selber bauen können oder nicht? :) Kannst es ja evtl. so lösen, dass es länger dauert, wenn man keinen Stein auf Vorrat hat?

edit: Ich gehe davon aus, dass man seine Gebäude auch verlieren kann. Wenn das nicht so ist und man auch nur einen einzigen Steinmetz braucht, dann geht deine Lösung absolut. Sonst könnte ja sein, dass man den Steinmetz verliert und zu wenig Stein hat um einen neuen zu bauen.
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von LONy »

Eine der nächsten Punkte auf meiner Todo Liste sind NPC-Händler bei denen man Wahren kaufen/verkaufen kann... so könnte man aus einer Sackgasse wieder heraus kommen.
Momentan gibt es keinen Kampf. Somit reicht momentan ein Steinmetz, und den Bau des Steinmetzes muss man auf jeden Fall starten, bevor man andere Gebäude bauen kann, die Viel Stein benötigen
Wie ich den Kampf mal umsetze weiß ich noch nicht. Das Spiel läuft ja ständig weiter. Ich habe mir überlegt, es langsam angehen zu lassen... z.B. wilde Tiere auf neuen Inselteilen. Man muss dann das Tier töten, bevor man das Inselteil an die Insel anfügt, sonst würde es die Inselbewohner anfallen (ähnlich wie die wilden Tiere in Age of Empires).
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von LONy »

Ich arbeite an der Begrenzung des "Noob Gebiets". Hier wird es keine oder nur eingeschränkte Kämpfe gegen leichte NPCs geben (um sich mit dem Kampfsystem vertraut zu machen). So kann sich jeder in Ruhe aufbauen. Zur Begrenzung gibt es eine Felsformation und in der Mitte jeweils ein großes Tor. Im späteren Spielverlauf sollen die Spieler durch lösen von Aufgabe die Tore öffnen können um dann eine größere Spielwelt erkunden zu können mit neuen Rohstoffen und Gebäuden.

Momentan will ich nur vermeiden, dass ein Spieler mit seinem Schiff irgend wo hin fliegt, wo es keine Inselteile gibt. Ist mir selbst schon beim Testen passiert und ich hab schon einen Bug im Shard Generator vermutet :D

Hier noch ein Screenshot von einem Tor (von außen):
2020_06_12_001.png
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von LONy »

Shardcraft 0.1.0 ist released.
https://lonytoon.itch.io/shardcraft/dev ... 10-release

Mit der neuen Version gibts ne neue Versionsprüfung auf Seite des Servers. Die Revisionsnummer spielt jetzt keine Rolle mehr. So kann ich kleine Updates einführen, ohne dass sich alle Spieler einen neuen Client herunterladen müssen.

Man kann nun einige Gebäude abreißen (momentan den Kran und das Lager) und bekommt 30% der Baukosten zurück. Es gibt ein neues Gebäude, den Kundschafter. Dieses Gebäude schaltet die Weltkarte frei.
Wenn man mit seinem Schiff oder der Insel herum fliegt, werden alle statischen NPC Objekte dauerhaft gespeichert (z.B. Grenze des Anfangsgebiets). Inseln anderer Spieler werden auch angezeigt, allerdings nur so lange diese in Sichtweite sind:
2020_06_21_001.png
Einige Spieler waren schon fleißig und haben schon recht große Inseln gebaut:
2020_06_21_002.png
Es gibt einen kleinen Chat, wodurch man mit allen Spielern die gerade auf dem Server online sind chatten kann.

Als nächstes möchte ich ein Gebäude "Diplomat" hinzu fügen. Mit dem Diplomanten soll es dann möglich sein zuerst einmal "Freundschaften" mit anderen Spielern zu schließen (Deren Inseln sind dann auf der Weltkarte dauerhaft sichtbar) und später auch das Beitreten in Allianzen bzw. das Gründen von Allianzen.
Ich möchte anfangen kleine Kämpfe gegen NPCs zu ermöglichen, die Zufällig am Rand der bisherigen Spielwelt auftauchen.
Auf der Todo Liste stehen auch weiterhin, dass man mit anderen Spielern und NPCs handeln kann und es soll ein Quest System geben, das am Anfang als Leitfaden gilt und später auch Coop Missionen enthält für kleine Teams von spielern...
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von LONy »

Ein kleines großes Update:
Da es sehr mühselig war die Nahrungsmittelaufnahme für die Inselbewohner einzubauen (etliche Statemachines die voneinander abhängen in verschiedenen Klassen z.B. die Gebäude für das der Arbeiter gerade arbeitet, den zustand wie viel Hunger der Arbeiter hat, die Verwaltung der Inselrohstoffe (Nahrung vorhanden?), was passiert wenn der Arbeite auf dem Weg ist etwas zu essen aber ein anderer Arbeiter kurz vorher die "letzte Mahlzeit" verspeist usw.) bin ich gerade dabei die Serverarchitektur grundlegend neu zu schreiben.

Prinzipiell ist die aktuelle Architektur nicht so schlecht und ich könnte wohl meine Klassen entrümpeln, sauberer trennen und versuchen Statemachines zusammen zu fassen (teilweise verhacken sie sich, Arbeiter bleiben stehen und tun nichts mehr). Aber wenn ich weitere Funktionen einbau, komm ich trozdem früher oder Später wieder an den Punkt, wo ich jetzt bin, dass ich sehr lange brauche um Kleinigkeiten zu Implementieren, weil ich viel zu viel Quellcode lesen muss um alle Abhängigkeiten zu berücksichtigen.

Also will ich jetzt ein Entity Component System implementieren. Momentan hab ich schon ne art Hybrid System. Server und Client kommunizieren ja komplett über Events. Nur meine klassen Untereinander kommunizieren ähm naja über Spagetticode - quick & dirty schnell zum Ziel ;)

Ich hab ein paar Speedtests gemacht und kann richtig schnell über Maps in Javascript meine Daten als Components der Entities organisieren. Es ist gerade dabei "klick" zu machen, wie ich meine Daten (Components) und Funktionen (Systems) organisieren muss und wie der Datenaustausch (Events) statt findet und welche Sprachmittel mir Javascript dafür bereit stellt damit das alles gut läuft :)

Die 10 Spieler warten zwar dringend auf neue Inhalte und sind hungrig nach mehr, aber da es sich komplett um Leute aus meinem Freundeskreis handelt müssen die sich jetzt etwas gedulden^^

Ich halte euch weiter auf dem Laufenden...
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von LONy »

Ich wollte mal wieder neben dem passiv im Forum mit lesen ein Lebenszeichen von mir geben ;)

In den letzten Wochen hab ich weiter am bzw. mit dem neuen Entity Component System gearbeitet. Momentan schreibe ich die Inselbewohner KI neu und mir gefällt der Code jetzt viel besser. Wahrscheinlich währe es auch ohne ECS möglich gewesen die Statemachine für die Inselbewohner aufzuräumen, mit fällt es mir aber einfacher. Evtl. denkt man über Problemstellungen anders nach.

Was ist neu unter der Haube?
Bisher hatte ein Inselbewohner einfach für jede Tätigkeit einen anderen State z.B.:
- zu Rohstoff laufen
- Rohstoff aufnehmen
- zurück zu Gebäude laufen
- Rohstoff verarbeiten
- ...

Jetzt gibt es nur noch 3 States: etwas tun / idle / laufen
Alles andere wird situationsabhängig der äußeren Umstände entschieden (hat der Arbeiter was in der Hand, wird das Gebäude gerade Gebaut,...).

Hier die momentane Logik eines Inselbewohners (wobei die sicherlich noch größer wird ;) )
Erstellt mit Microsoft Code...
Dateianhänge
2020_10_31_001.PNG
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von LONy »

Da es gerade im Unity Asset Store viele Angebote gibt hab ich ein wenig eingekauft. Später soll das mal in Shardcraft integriert werden. Zum rumspielen habe ich allerdings erst mal eine kleine Demo Szene erstellt, die es auch als WebGL App gibt :)

u.A. habe ich einen Vogelschwarm implementiert. Wenn man in Shardcraft zwischen den Inseln umher fliegt, sollen immer wieder mal Vögel auftauchen. Ein paar neue Prefabs wie Bäume waren auch auf der Einkaufsliste. Hier das Ergebnis von einem Tag rumspielen ;)

Mit WASD kann man umher laufen, mit der Maus die Kamera steuern. Achtung: Ich hab auch mit 3D Sound etwas rum gespielt. Der kleine Tornado gibt nervige Töne von sich.

https://www.shardcraft.com/test/dev01/
2020_12_23_001.png
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von LONy »

Zum neuen Jahr mal wieder ein kleines Update :)

Den riesigen Programmablaufplan, den ich in dem Bildchen vom vorletzten Post hatte, habe ich schon wieder über den Haufen geworfen. Meine CreatureAI hatte mit über 1000 Zeilen Code, den Meisten in einer großen Funktion, schon wieder recht unübersichtlichen und schwer wartbaren Code. Mit dem Ablaufplan konnte man sich zwar recht schnell zurecht finden und die richtige Stelle im Code finden, um neue Funktionen hinzu zu fügen, aber alles recht wenig intuitiv :(

Prinzipiell ist das Steuern der Inselbewohner ja recht einfach: Nehme ein Item, lauf von A nach B, leg das Item ab usw. aber im Detail gibt es doch recht viele Ausnahmen... Also hab ich mal wieder den Code neu geschrieben.

Ich bin jetzt aber inzwischen sehr zufrieden. Im Hintergrund arbeitet das Entity Component System, die Systeme tauschen sich über Nachrichten / Events aus und ich konnte das 1000 Zeilen Monster in mehrere kleine logische Systeme unterteilen.

Neu ist, dass die Arbeiter auch ein Werkzeug benötigen (z.B. Bauarbeiter = Hammer). An eine Baustelle werden inzwischen nur noch die benötigten Rohstoffe geliefert und nicht mehr ggf. zu viele geholt, so wie es bisher war wenn man mehrere Bewohner an einer Baustelle hat arbeiten lassen.

Aktuell arbeite ich an der Visualisierung von Rohstoffen bei Gebäuden. Das ganze funktioniert schon gut, sieht aber noch etwas chaotisch aus ;)
2021_01_09_001.png
2021_01_09_002.png
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von LONy »

Zum Gameplay hab ich mir auch Gedanken gemacht:

Da es kein unendliches Wachstum geben kann, ist es in Shardcraft das Ziel so einer kleinen Insel Kolonie zur Selbständigkeit zu verhelfen. D.h. man startet mit der kleinen Insel, und wenn sie eine gewisse Größe erreicht hat und bestimmte Gebäude gebaut sind, kann man die Insel freigeben. Dadurch schwebt diese dann weg (man kann sie evtl. nachträglich noch in einer Hall of Fame betrachten). Für die freigegebene Insel gibt es dann verschiedene Bewertungen, wodurch man sich mit anderen Spielern messen kann:

- schnellste Zeit bis zur Inselfreigabe
- Insel mit größter Komplexität (Anzahl Tiles, Gebäude, Einheiten, Rohstoffe,...)
- Anzahl der am meisten freigegebenen Insel

Als Inselverwalter bekommt man für jede freigegebene Insel Erfahrungspunkte, so dass man mit einer bestimmten Erfahrung auch zwei (oder mehr) Inseln gleichzeitig verwalten kann. Mit der Inselfreigabe gehen alle Einheiten, Rohstoffe, Gebäude,.. verloren. Sein "Geld" behält man aber. Wenn es mal Forschung gibt, behält man diese ebenfalls...

Dadurch hoffe ich das Problem von normalen Echtzeit Aufbauspielen zu lösen, die im späten Spielverlauf (nach einigen Stunden / Tagen) sehr komplex sind und man den Überblick verliert wenn man mal ein paar Tage pausiert.
Zusätzlich soll es dennoch die Langzeitmotivation von klassischen Browsergames geben, die ja bekanntlich keine Einheiten usw. Darstellen sondern einfach immer mehr 0en an die Einheiten hängen.
-> Sozusagen eine Kombination aus beiden Welten.

Der Spieler kann sich dadurch für verschiedene Spielmodi entscheiden:
- möchte er mit wenig Aufwand ein wenig zum Zeitvertreib an seiner Insel bauen
- möchte er möglichst viele Inseln in der Highscore und versucht dies jeweils in möglichst kurzer Zeit
- liebt er die Komplexität und baut lieber seine Insel immer weiter aus
-> Später eine Kombination aus beidem möglich, wenn er zwei Inseln verwaltet, eine für die Komplexität, eine die er immer wieder freigibt,...

Was haltet ihr davon? Gibt es Ideen oder vor allem seht ihr in meinen Überlegungen irgendwo Probleme die ich gerade nicht sehe?
Konstruktive Kritik ist wie immer willkommen :)
Benutzeravatar
Jonathan
Establishment
Beiträge: 2353
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von Jonathan »

Ein Problem das ich an dieser Idee sehe ist, dass der Spieler scheinbar im Wesentlichen immer wieder das selbe tut? Ich könnte mir vorstellen, dass man irgendwann einfach raus hat, was man wie am besten bauen sollte und dann einfach seine feste Build-Order abspult und dann Punkte dafür bekommt. In einem Echtzeitstrategiespiel mag eine feste Build-Order ok sein, da geht es schließlich eher um die Kämpfe und außerdem kann man jederzeit im Prozess unterbrochen werden und muss improvisieren.
Außerdem geht glaube ich viel Motivation verloren wenn dem Spieler das meiste woran er gearbeitet hat einfach so weggenommen wird. Ich persönlich mag Grind ja schon in klassischen Rollenspielen nicht so, aber wenn ich mir jetzt überlege, dass ich nichtmal meinen Charakter behalte mit den coolen Waffen und so, sondern immer wieder von vorne Anfangen müsste und nur mein Gold behalte, dann kann ich mich mit dem Fortschritt doch viel weniger identifizieren.
In einem Echtzeitstrategiespiel wird auch zwischendurch vielleicht meine ganze Armee getötet. Aber ich habe immer noch meine Basis, oder aber ich erobere mir die Karte halt Stück für Stück und habe dann mehr Territorium.
In EgoShootern nimmt man von Runde zu Runde vielleicht auch nicht mehr mit, als seine gesteigerten Erfahrungspunkte, aber in so einem Spiel basiert der Spaß ja im Wesentlichen auf der Herausforderung deiner Geschicklichkeit. In einem Aufbauspiel hingegen ist doch die Motivation, dass man seine Siedlung sieht und weiß "die habe ich erschaffen".
Oder noch anders: Stell dir vor, man spielt eine Partie Anno im Endlosmodus und hat eine große Inselwelt gebaut. Durch irgendein 'Feature' werden jetzt alle Gebäude neu platziert, so dass alle Inseln noch genau so gut funktionieren wie zuvor, aber halt anders aussehen. Der Spieler hat dadurch (vom notwendigen Neuorientieren einmal abgesehen) keinerlei Nachteile. Aber ich würde das hassen, ich könnte mich überhaupt nicht mehr mit den Siedlungen identifizieren, sie wären nicht mehr 'meine' Siedlungen. Ich würde diesen Faktor nicht unterschätzen.

Kurzum: Ich glaube nicht, dass ich an sowas Freude hätte.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von LONy »

Hey Jonathan,

danke für die Rückmeldung und die Einwende. Hauptpunkt ist, dass ich das Wachstum der Insel beschränken will und das Spiel geschehen abwechslungsreich ist. Der Inselaufbau wäre zwar jedes mal anders, weil man die Inselteile in unterschiedlicher Reihenfolge entdecken wird, aber es stimmt schon, dass wenn man eine große Insel/Stadt aufgebaut hat man diese ja auch anderen Spielern zeigen möchte. In dem Moment, wo man mit einer neuen Insel beginnt, kann man nicht mehr präsentieren, was man geschaffen hat.

Das mit dem stören im Aufbauprozess ist ein guter Hinweis. Bei Anno gibt es ja immer irgend etwas wo es hackt und man muss sich um alles mögliche kümmern, da die Ressourcenkreisläufe sehr komplex sind. Bei Starcraft, C&C,... ist es eher der Feind der einen stört und die Herausforderung des Spiels aus macht.

Da Shardcraft ein MMO-RTS werden soll, soll der Coop Teil mit anderen Spielern nicht zu kurz kommen. In erster Linie durch Handel und lösen gemeinsamer Quests. Ich denke reiner Aufbau ist dann aber wohl doch zu langweilig, also eine Art PVP, aber so, dass dieser mehr oder weniger Freiwillig ist.

Ideen zur Limitierung der Inselgröße sind sehr willkommen. Ich möchte aber nicht eine feste Maximalzahl wie in Starcraft oder AoE (hier die Einheitenlimitierung), es muss nur irgendwie sehr teuer sein, sich eine große Insel zu leisten. Da man mit der Insel umherfliegen kann, verlangsamt die Inselgröße die Fluggeschwindigkeit. Aber das ist zu wenig Motivation die Insel nicht zu groß zu bauen.

Inzwischen werden die Rohstoffe der Gebäude angezeigt und die Inselbewohner brauchen z.B. eine Axt um einen Baum zu fällen oder einen Hammer um ein Gebäude zu bauen oder abzureißen. Damit man sich am Anfang nicht in eine Sackgasse baut, gibt es zu Beginn großzügig Rohstoffe. Dann kann man ein Gebäude auch wieder abreißen (wenn man z.B. den Kran vergessen hat um seine Insel zu vergrößern).

Aktuell arbeite ich an der Anlegestelle, dass diese auch gebaut werden kann und man dann darüber sein Schiff beladen / entladen kann:
2021_01_17_001.png
Benutzeravatar
Jonathan
Establishment
Beiträge: 2353
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von Jonathan »

LONy hat geschrieben: 17.01.2021, 11:46 Ideen zur Limitierung der Inselgröße sind sehr willkommen. Ich möchte aber nicht eine feste Maximalzahl wie in Starcraft oder AoE (hier die Einheitenlimitierung), es muss nur irgendwie sehr teuer sein, sich eine große Insel zu leisten. Da man mit der Insel umherfliegen kann, verlangsamt die Inselgröße die Fluggeschwindigkeit. Aber das ist zu wenig Motivation die Insel nicht zu groß zu bauen.
Hm, du könntest versuche, dass Prozesse mit zunehmender Größe immer ineffizienter werden. So könnte der Spieler zwar theoretisch immer weiter expandieren, aber das wird irgendwann so nervig, dass er es dann gar nicht mehr will. Wenn du ihm nicht das Gefühl geben willst, eingeschränkt zu werden, sollte diese Limitierung aber irgendwie tief verwurzelt sein so dass die Grenze für den Spieler recht natürlich erscheint. Ich kenne deine Spielmechanik nicht im Detail, aber da lässt sich gewiss etwas finden. Zum Beispiel gibt es in unserem Aufbauspiel ein Lagerhaus, dass alle Waren abholen muss. Sagen wir es sind nur begrenzt viele Karren verfügbar, dann funktioniert das ganz gut, solange es nicht zu viele Produzenten gibt. Ab einer gewissen Größe kommt das Lagerhaus dann aber mit dem Abholen nicht mehr hinterher und der Spieler hat nichts davon, wenn er noch mehr Ressourcen produziert, weil sie nur nutzlos rumliegen.
Du könntest zum Beispiel einbauen, dass Transportkosten von der Entfernung abhängen. Beispielsweise ein Bauer, der auf dem Feld arbeitet und dann seine Waren zum zentralen Lager trägt. Ist die Insel zu groß, muss er weiter gehen und hat somit weniger Zeit auf dem Feld zu arbeiten. Während er am Anfang vielleicht noch 60% der Zeit am Feld steht und arbeitet und 40% der Zeit Ware transportiert, muss er später vielleicht 80% der Zeit für den Transport verwenden. Wenn er dann aber genau so viel Nahrung pro Zeiteinheit verbraucht hast du einen ganz natürlichen Punkt ab dem die Nahrungsproduktion nicht mehr effizient genug ist, um weitere Bauern zu versorgen. Und das ganz ohne künstliches Limit, es fühlt sich für den Spieler komplett natürlich an.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4254
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von Chromanoid »

Wie wäre es mit einer "Auseinanderbrech"-Mechanik? Also, dass es aus physikalischen Gründen nicht möglich ist eine bestimmte Inselgröße zu halten. Entweder man kann es gar nicht oder es gibt ein Risiko, dass Teile abbrechen. Wenn Du daraus mehr machen willst, könntest Du auch irgendwas mit einer Art Physik-Minispiel a'la World of Goo einbauen. Dann macht es noch mehr Sinn die Inseln "freizugeben". Vielleicht auch mal, weil es einfach eine schöne aufwendig konstruierte Insel ist. Die Bauern auf der Insel leben zwar von der Hand in den Mund, aber sie haben so schöne Blümchenfelder in einer wirklich interessanten Anordnung zu bewirtschaften :)

BTW vielleicht gibt's hier auch nette frische Mechaniken, die zu Deinem Setting passen: https://www.rockpapershotgun.com/2021/0 ... e-delight/
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Shardcraft (MMO-RTS) - alpha released

Beitrag von LONy »

Danke für die weiteren Anregungen :)

Da die Inselbewohner recht gemütlich durch die Gegend laufen ist hier die Entfernung automatisch ein Hindernis. Da das Spiel aber 24/7 läuft, auch wenn der Spieler nicht online ist, werden die Lager so oder so voll sein. Da muss ich mir aber auch noch was überlegen.

Die Idee mit der Physik im Hintergrund gefällt mir sehr gut. Hab hier selbst World of Goo auf CD ;) Ich hab mir jetzt überlegt, dass die Insel große Treibwerke haben könnte, die die Insel auf höhe halten. Das ist der Fixpunkt von wo aus die Kräfte wirken. Um neue Inselteile anzubauen muss man vorher eine Unterkonstruktion aus Holz errichten. Wenn man weiter von einem Triebwerk weg die Insel vergrößern will, muss die Unterkonstruktion entsprechend stabiler gebaut werden.
Die Materialen für die Triebwerke könnte ich stark limitieren, dass sie nur über NPC Shops verfügbar sind oder wenn man bestimmte Quests löst.

Hab mal in Unity ein bisschen herum gespielt, wie das Ganze aussehen könnte:
2021_01_20_001.png
2021_01_20_004.png
Antworten