Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

06.04.2016, 20:50

Projektvorstellung Jurassic Cat ! Rogue-like Platformer mit Dinosauriern.

Hallo zusammen :-)

Mein Name ist Michael ich bin mittlerweile 28 Jahre alt und Hobby Entwickler, bzw. jemand der das gerne werden möchte.

Ich habe jetzt ca. 2 Monate an diesem Projekt gearbeitet und würde es nun gerne vorstellen.

Jurassic Cat

Worum geht es in Jurassic Cat? Jurassic Cat ist ein Rogue-Like Platformer wo man als Katze gegen Dinosaurier in procedural generierten Leveln kämpft.
Dabei kann man von jedem Dinosaurier Karten sammeln die einem bestimmte Fähigkeiten geben zb. Double Jump, Slow Motion, Fly, Shield um mal ein paar zu nenne.

Diese Karten gehören dann auch zu dem Meta Game das heißt selbst wenn man stirbt war nicht alles umsonst sondern man hat am Anfang eine höhere Karten auswahl womit man sich dann theoretisch seine "Klasse" zusammenbasteln kann.

Als Ziel gilt es natürlich solange wie möglich zu überleben und alle Karten zu sammeln.

Hier ist wie versprochen das erste Video, ich werde euch ab sofort auf dem laufenden halten.



Das ganze wurde mit C# und Monogame umgesetzt, und wie schon im Video erwähnt würde ich mich über Unterstützung freuen also wenn Ihr schon etwas programmier Erfahrung habt könnt Ihr mich gerne kontaktieren und wir überlegen uns wie wir eine zusammenarbeit organisieren.

Bei weiteren Fragen könnt Ihr mich gerne kontaktieren !

Viele Grüße

CreatingDreams

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

2

06.04.2016, 21:48

Das sieht ja richtig nett aus :thumbup:
Wo hast du die Grafiken her? Selber gemacht?
Hast du vor das auch auf mobilen Plattformen zu veröffentlichen?

Leider zu wenig Zeit um mit zu machen, aber viel Erfolg bei deinem Projekt :)

3

06.04.2016, 21:57

Dank dir Wirago.

Ich wünschte es wäre so, dann könnte ich einen einheitlichen Grafikstil umsetzen.
Momentan sind alle Grafiken von Banner / Logo Generatoren, zusätzlich habe ich mir beide Kenney Sets gekauft.

Momentan wird das Spiel nur für den PC(Windows) entwickelt, mobile Platformen möchte ich aber dennoch nicht ausschließen.

Kein Problem, vielen Dank ich hoffe ich werde gut voran kommen :-)

Viele Grüße

CreatingDreams

-edit- Zur Vollständigkeit --> http://kenney.nl/assets

@zimmer

Alter Hase

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

4

06.04.2016, 22:34

Hi CreatingDreams,

Die von Dir ausgesuchten Grafiken und die Farbwahl bei den Buttons sehen schön aus, ich finde Du hast Geschmack :)
Auch der Name "Jurassic Cat" ist taff(sagt man das heute noch?) und ich hoffe Du hast schon viele Ideen rund um das Thema.

Die Bewegungen der Katze sehen sehr nach dem standard Collider von Unity aus, das Projekt ist bestimmt das Richtige zum Einstieg, Hauptsache Du hältst durch :)

P.S. nächste Woche wollte ich mich wieder etwas in 2D Bereich skillen, vielleich probiere ich auch was in dem von Dir ausgesuchtem Style, dann schreib ich Dich an.

5

07.04.2016, 11:37

Das Projekt finde ich interessant, vor allem da du Monogame verwendest. Monogame wollte ich mir sowiso mal anschauen.

Was mir im Video seltsam vorkam ist die Kameraführung. Sah so aus als wäre diese unabhängig vom Spieler.

Habe dir eine Nachricht geschickt.

6

11.04.2016, 05:46

Hallo zusammen :-)

Danke für eure netten Kommentare, mir macht das Projekt bisher auch sehr viel Spaß und habe schon ein kleines Update für euch :-)

Ich habe nicht soviel neuen "Content" aber ich habe den vorherigen Code etwas mehr abstrahiert und aufgeräumt.
Vorher hat die Map einzelne Tiles zusammengesetzt und darauf dann Platformen erstellt. Jetzt hab ich mir eine Plattform Klasse geschrieben und diese setzt je nach länge die Tiles logisch zusammen.
Damit war ich aber auch noch nicht ganz zufrieden und habe nun einen PlatformManager erstellt der alle Platformen lädt, updatet und zeichnet.

Somit kann ich nun so neue Plattformen erzeugen -->

Quellcode

1
platformManager.CreatePlatform(new Vector2(0, 250), platformWidth, platformHeight);

Ich denke so kann man sehr gut damit arbeiten. Desweiteren habe ich wie ihr auf diesem GIF sehen könnt nun auch Moving Platforms eingebaut diese kann ich Vertikal oder Horizontal bewegen lassen.

Quellcode

1
platformManager.CreateMovingPlatform(new Vector2(platformManager.furthestPositionX + 5 * tileWidth, 300), platformWidth, platformHeight, speed, distance, IsMoving.vertical);



(Link)


Der Raptor ist noch ungefährlich somit kann die Katze gechillt ihn angucken und Grimassen ziehen. Das wird sich aber natürlich ändern :S

@Enguerrand das ist richtig ich habe die Kamera noch nicht auf den Player zentriert und sie mit WASD bewegt. Das steht auch auf meiner TODO List danke an MasterQ32 der mir dieses Visual Studio Feature näher gebracht hat.

Ich würde gerne hier in diesem Thread auch noch meine Ideen äußern wie ich evtl. gewisse Sachen angehen will und gerne eure Meinung dazu hören. Ich werde glaube ich demnächst wirklich die Gegner Klasse implementieren.
Und da ich auf jeden Fall keine next-Generation AI schreiben werde und es einfach halten muss. Ich hab mir gedacht als erste Implementierung der AI würde ich es so angehen das ich eine Art WaypointManager hab der das Ende und den Anfang einer Platform findet und dort unsichtbare Rechtecke erstellt. Wenn dann ein Gegner so einen Waypoint berührt soll er entweder Springen(Falls seine Sprungkraft ausreicht) oder eben seine WalkDirection ändern.

Desweiteren soll der Gegner noch seine eine Art Radius bekommen und wenn der Spieler zu nah kommt dann in seine Richtung läuft. Ist es normal das man so eine Art Waypoints macht?

Viele Grüße

CreatingDreams

@zimmer

Alter Hase

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

7

11.04.2016, 13:40

Es gibt mehrere Möglichkeiten wie Du ohne Pfade deinen Raptor bewegen kannst.
Du könntest seine Position mit der aus dem letztem Frame vergleichen und wenn er sich nicht bewegt, er also vor ein Hindernis läuft, dann könnte eine Richtung Drehung aktiviert werden.
Oder er könnte die vor ihm liegenden Objekte auf Kollusion überprüfen und wenn er zu nah an eines gegangen ist, kehrt er wieder um.
Oder er läuft immer in die Richtung der Katze und wenn sie noch ausser Reichweite ist, läuft er z.B. 200 steps in x Richtung und dann -200 steps in X Richtung.
Vermutlich gibt es noch weitere

8

11.04.2016, 20:13

AInfach

Ich hab mir gedacht als erste Implementierung der AI würde ich es so angehen das ich eine Art WaypointManager hab der das Ende und den Anfang einer Platform findet und dort unsichtbare Rechtecke erstellt. Wenn dann ein Gegner so einen Waypoint berührt soll er entweder Springen(Falls seine Sprungkraft ausreicht) oder eben seine WalkDirection ändern.

[....] Ist es normal das man so eine Art Waypoints macht?


Für mich hört sich der Ansatz mit dem WaypointManager und den unsichtbaren Rechtecken unnötig teuer an. Ich weiß jetzt aber auch nicht was der Hintergrund ist und wie du darauf gekommen bist.
Mit dem was ich bisher über das Projekt weiß würde ich sagen führe zyklisch für jeden NPC mit seiner aktuellen Gehrichtung die von dir vorgesehene Prüfung durch. Damit hättest du den WaypointManager und die Rechtecke schon mal eingespart.

Die "unsichtbaren Rechtecke" unabhängig von den NPC zu berechnen um diese dann für mehrere NPC und mehrere Zeitpunkte verwenden zu können wäre eine Maßnahme um geringere Laufzeitkosten zu erkaufen. Warum sich so ein Investment in diesem Fall lohnen würde habe ich noch nicht gesehen.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Enguerrand« (11.04.2016, 20:21)


9

18.04.2016, 03:47

Guten Abend zusammen :-)

danke für eure Antworten @Zimmer und Enguerrand ich musste mein mein verändern und ich denke diese Woche kann ich mich an die AI machen.

Ich konnte die AI noch nicht implementieren da mir ein Fehler aufgefallen ist der auf jeden Fall vorher behoben werden musste. Beim Spiegeln der Raptor Animation ist mir aufgefallen das dieser seltsame "Sprünge" macht.
Das lag daran das der Sprite nicht 100 % mittig war wie es bei der Katze der Fall ist. Somit musste ich eine Art Spiegel Punkt zu jeder Animation hinzufügen um den gespiegelt wird.

Jetzt dreht er sich genau mittig auf der gleichen Stelle. Zusätzlich habe ich nun ein System eingebaut womit ich sehr einfach an die wichtigen State Daten der Animation komme:

C#-Quelltext

1
protected Dictionary<AnimationStatus, Tuple<Animation, BoundingBox>> stateData { get; set; }


Somit kann ich nun sagen:

C#-Quelltext

1
currentAnimation = stateData[animation.dead].Item1;

Und im gleichen Zug auch die Bounding Box ändern -->


C#-Quelltext

1
boundingBox = stateData[animation.dead].Item2;


Auch wenn es nur eine kleine Änderung ist kann ich jetzt auch jede Animation nur 1 x abspielen lassen was natürlich wichtig ist das der Dino nicht einfach wieder aufsteht wie man hier schön sieht:


(Link)


Die Katze hat immer noch gut Lachen(warum auch nicht wenn man einfach nur STRG drücken muss und der Dino liegt einem zu Füßen). Da kann man sogar mal höhnisch lachen

Ansonsten habe ich mir mal endlich Zeit genommen einen Debug Font zu erstellen da es Probleme mit der Kollision nach der Spiegelung gab.
Jetzt kann ich relativ einfach alle wichtigen Daten rendern lassen.

Das war es auch schon danke fürs mitlesen bis nächste Woche :-)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »CreatingDreams« (18.04.2016, 05:22)


10

20.04.2016, 10:18

Hallo zusammen :-)

Da ich die letzten Tage sehr gut voran gekommen bin möchte ich nochmal ein kleines Update posten.

Die Raptoren haben dazugelernt und wissen nun wie sie auf Plattformen gehen können ohne sich selbst umzubringen, die Evolution hat dafür das ISmart Interface erfunden jeder Raptor der das implementiert ist schlauer als vorher :D Außerdem hab ich noch eine weitere Raptor Art hinzugefügt wenn der Raptor erstellt wird, entscheidet die Methode DecideVariant(); die Farbe des Raptors.

Ich habe mich erst mal für die Waypoint Methode entschieden die ich mir ausgedacht habe, ihr könnt diese gut am Anfang des Gifs sehen(Kleine schwarze Quadrate) diese werden alle wichtigen Informationen für die Gegner bereithalten. Desweiteren habe ich nochmal mein Debug View verbessert, ich kann nun auf Knopfdruck alle wichtigen Werte rendern und die Collisions Box anzeigen lassen.


(Link)


Was euch sicher auch aufgefallen ist, ist das eine zweite Katze sich beschützend vor die andere stellt ! Genau ich habe gestern Nacht meinen GameObject Manager erstellt um es mir zu vereinfachen Gegner und Spieler hinzuzufügen.

Vorher musste ich jeden Gegner einzeln deklarieren, updaten und zeichen. Nun kann ich einfach sagen wo und was und schon wird der Gegner geladen, geupdated und gerendert:

C#-Quelltext

1
gameObjectManager.AddEnemy(EnemyType.raptor, Vector2.Zero);


Das wird mir in der Zukunft auf jeden Fall sehr helfen. Da der Player auch ein GameObject ist habe ich gestern einfach mal eine zweite Katze hinzugefügt und da konnte ich einfach nicht widerstehen und musste einfach auch Controller Support hinzufügen. Auf jeden Fall ist es nun möglich beide Katzen im Local-Coop zu steuern. Das ist auf jeden Fall noch sehr im Anfangsstadium, aber es funktioniert und die Katzen scheinen sich in Gesellschaft besser zu fühlen :-)

Nächste Aufgabe ist es ein IFocus Interface zu implementieren um die Camera auf Knopfdruck auf einen bestimmten Spieler oder Gegner oder Projektil zu setzen. Danach werde ich wohl Player mit Gegner Kollision hinzfügen und der Animations Klasse noch eine Farbe das heißt wenn der Spieler einen Raptor berührt bekommt er einen kleinen Knockback und wird kurze Zeit rot.

Danke fürs lesen und verfolgen ! Euch einen schönen Tag.

Viele Grüße

CreatingDreams

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »CreatingDreams« (20.04.2016, 11:02)


Werbeanzeige