Zombie Game - Infect?

  • Hallo alle zusammen! [Blockierte Grafik: https://www.unrealengine4.de/wcf/images/smilies/grin.png]


    Wenn es ok ist will ich mich hier ein wenig austoben und etwas dev-progress posten - damit ich mich nicht so einsam fühle [Blockierte Grafik: https://www.unrealengine4.de/wcf/images/smilies/smile.png]


    Also im Grunde arbeite ich an einem Zombie Game, wo man nicht gegen Zombies kämpft, sondern mit Zombies.
    Ziel des Spiels ist es eine große Horde aufzubauen und alle Menschen infizieren.


    Damit es nicht monoton und langweilig wird, wird es eine Mutations-Mechanik geben, die etwas taktische Tiefe in das Spiel bringt.
    Z.B. kann man 3 normale Zombies zusammen zu einem Belagerungszombie mutieren um Barrikaden zu zerstören - ergo wird es verschiedene Typen von Zombies geben.


    Grafisch orientiert es sich eher an LowpolyArt, was ziemlich der Performance zugute kommt, wenn man dann eine Crowd von über 500 Units steuert.




    Zurzeit habe ich einen lauffähigen Prototyp der folgende Mechaniken realisiert(Das meiste ist noch garnicht grafisch ausgeschmückt, sondern nur Funktional):

    • Top-Down-Cam die sich der Horde dynamisch anpasst
    • Die Units(Pawns) - die aus performance technischen gründen leider kein Typ von Character sind und sich mit dem FloatPawnMovement component zufrieden geben müssen
    • Die Hordencontrolle durch den DetourCrowdController und deren Avoidance
    • Das Mutieren und spawnen von Zombietypen
    • Verschießen von Projektilen
    • Granatenexplosion und deren physikalische Wirkung
    • Gore durch Constraints
    • Destructible Meshes wie z.b. Sandbarrikaden
    • Und das Infizieren natürlich

    Es fehlt noch sehr viel, vorallem eine win-condition, aber das liegt daran, dass ich noch keine klare Vorstellung habe wie das Design genau sein wird, vorallem weil sehr oft die Engine-limitierung einen Strich durch die Rechnung macht.
    Da ist also noch kein Deckel drauf und ich bin offen für jede Idee [Blockierte Grafik: https://www.unrealengine4.de/wcf/images/smilies/smile.png]



    Es folgen jetzt so einige Video und Bilder dazu - einige sind von der Qualität wirklich grausam da letzte Woche meine geliebte 570gtx den Geist aufgegeben hat und ich mit einer 9500GT leben muss [Blockierte Grafik: https://www.unrealengine4.de/wcf/images/smilies/crying.png]

  • Nagut, überspringen wir paar Sachen und kommen zum Gore Teil :)
    Was tun Zombies wenn sie unter Beschuss genommen werden? richtig, Körperteile verlieren!
    Das ist ein Must-have für mich, deshalb habe ich mich in das gore Studium eingelesen ~ btw interessant was Valve da für L4D Lösungsvorschläge hatte, ziemlich complexes zeug.
    Ich hingegen habe mich für eine simple Break-Contraints Lösung entschieden, worin ich beim 3D Workflow nur aufpassen muss, dass die Körperteile nicht wirklich verbunden sind.


    Hier das Resultat, wo eine Granate den Kopf vom Körper trennt.

    Externer Inhalt youtu.be
    Inhalte 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.



    Hier noch die verwendete Granate in lowpolyart:

    Erwähnenswert ist wohl die 137Bytes große 2x2Textur

  • Hört sich schon einmal gut an. Bin gespannt was du zu Zeigen hast.
    Eine Frage hätte ich allerdings, von welcher Engine Limitierung sprichst du?

    Also damit meine ich im Grunde was mir die Engine aus performance gründen nicht erlaubt.
    Die Engine von Spielen wie Total War 2 kann z.B 10.000 Units mitsamt AI steuern, weil sie eben darauf ausgelegt ist.
    Die UE4 hingegen ist eine vielseitig einsetzbare Engine, die aber leider auch überall Abstriche macht.


    In meinen Fall muss ich mich also mit 500 Units zufrieden geben, was Einfluss auf das Gamedesign hat ~ dabei wäre es so cool gewesen mit 10.000 Zombies die Menschen zu überrennen hehe 8o

  • Moin allerseits und weiter gehts auch schon.


    Zweiter Gore-Test, BOOOM! 8o

    Externer Inhalt youtu.be
    Inhalte 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.

    Die Horde wurde mit dem AIController per SimpleMoveTo Node bewegt.
    Die Granate war zu den Zeitpunkt ein wenig zu leicht pushbar.




    1. Dynamische Top-Down-Cam: Man muss nurnoch ein wenig an den optimalen Settings arbeiten
    2. Performance Test: In diesem Video zwar nur 120 gezeigt aber offcam schaffe ich mit meinem i5 2500k ca. 500 Units ~ ich denke da geht noch mehr weil ich nen mid-range PC habe

    Externer Inhalt youtu.be
    Inhalte 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.



    So das wars erstmal, Heute Abend könnte ich dann mal den DetourCrowdController in action zeigen mitsamt der wundervollen Avoidance ^^

  • Die Horde mit dem DetourCrowdController.


    Externer Inhalt youtu.be
    Inhalte 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.


    Man betrachte den schönen Abstand den sie voneinander nehmen, das gibt einem das Gefühl von Schwarmverhalten.
    Gameplaytechnisch ist es auch von Vorteil, damit die Horde nicht so zusammenklumpt und man gut jagt auf Menschen machen kann :)



    Wichtig ist noch die Avoidance und die Gruppenzuteilung, die man vornehmen kann.
    Im Grunde kann ich versch Zombie Typen in AvoidanceGruppen einteilen und sagen welche andere Gruppen vermieden oder ignoriert werden.
    So kann ich z.B. den Zombies sagen, dass sie die Wegfindung von den Menschen ignorieren soll, damit das Jagen richtig funktioniert.
    Ich hatte nen Prototyp ohne AvoidanceGroups der Frustrierend war, weil ständig die Zombies nen Meter vor den zu jagenden Menschen abgebremst haben ~ das führte zur unendlichen Jagerei xd

    • Offizieller Beitrag

    Sieht schon sehr gut aus, ich bin aber skeptisch wie das dann mit Zombies aussieht. Zombies verhalten sich eher wie eine Herde und sind stroh doof. Deswegen finde ich brauchst du noch mehr Chaos wie beispielswiese einzelne Zombies die aus der Herde ausbrechen und später vielleicht auch wieder anschließen. -> Mehr Chaos

  • Erste Assets zum testen erstellt, darunter eine modulare Straße.


    An die Farbe muss noch gearbeitet werden, außerdem sieht man böse Ligthmap bleedings, aber ich denke das sollte kein Problem sein, weil ich auf full dynamic lightning umsteige



    Das ist jetzt der Zeitabschnitt wo meine Grafikkarte den Geist aufgegeben hat und ich nurnoch diese grausige Qualität bieten kann, sry dafür X/


    In diesem Video zu sehen(zwischendurch zombies manuell gespawnt):
    1. Zivilisten AI: Errechnet den Gefahrenpunkt und flüchtet davon weg
    2. HumanRange + AI: Der in Grün-Schwarz ist eine attackierende Einheit, die den nächstgelegenen Zombie mit Projektilen beschießt(Braucht 2 Schüsse als Test - balancing außen vor)
    3. Zombies können sterben d.h. sie deaktivieren ihr AI verhalten, Capsule wird gelöscht, Ragdoll aufs Mesh aktiviert und der Actor nach 3sec lifetime gelöscht.
    4. Zombie AI: Zombies jagen selbstständig und infizieren Humans


    Externer Inhalt youtu.be
    Inhalte 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.


    Sieht schon sehr gut aus, ich bin aber skeptisch wie das dann mit Zombies aussieht. Zombies verhalten sich eher wie eine Herde und sind stroh doof. Deswegen finde ich brauchst du noch mehr Chaos wie beispielswiese einzelne Zombies die aus der Herde ausbrechen und später vielleicht auch wieder anschließen. -> Mehr Chaos

    Danke, diese Idee habe ich auch direkt in den Prototyp implementiert, jedoch erscheint mir der Spaß beim Spielen vergangen zu sein, weil es sich eher wie eine Simulation anfühlt.
    Alleine beim Testen von anderen Dingen, sind mir nervige Verhalten der alleinstehenden AI aufgefallen z.B.
    1. Nicht erwünschtes Initiieren eines Kampfes.
    2. Auflösung der Horde bei wenigen Zombies.
    3. Gefühlsverlust der Kontrolle


    Als ich dann die automatische Suche und Jagt ausgeschaltet habe fühlte es sich Interaktiver an, weil ich nun nicht mehr in der nähe sein musste, sondern auch selber Jagen durfte.
    Ich hielt es Anfang auch für ein nettes Feature wenn die Zombies ihr Eigenleben haben und daran habe ich auch mehrere Tage gearbeitet, aber irgendwie hat es eher den Spaß genommen es selber zu tun.
    Manchmal muss man wohl einige Sachen streichen um Spielspaß zu bewahren. Gutes Beispiel ist das entfernen vom Realismus in Shootergames.
    Aber ich denke ein Kompromiss gefunden zu haben, indem ich das verhalten Aktiviere, sobald der Spieler AFK ist bzw IDELt - das würde das K.I. verhalten von RTS Games nahe kommen.

    • Offizieller Beitrag

    Manchmal muss man wohl einige Sachen streichen um Spielspaß zu bewahren. Gutes Beispiel ist das entfernen vom Realismus in Shootergames.

    Beim Realismus muss man sich ja nicht zwangsläufig an der Realität messen, sondern eher daran an einem gesunden Mittelmaß.
    Das Superman Fliegen kann finde ich beispielsweise realistisch den in der Geschichte ist er Superman, was ich aber unrealistisch finden würde wenn Superman einen ganzen Planeten wegschieben kann.
    Realistisch finde ich daher ein gesunder Rahmen zwischen Übertreiben und daran die Kirche im Dorf zu lassen.