[Projekt] Universe (Spiel)

KingofKingzZ

Software-Overclocker(in)
Ich möchte euch hier mein aktuelles Projekt vorstellen, es ist ein RTS, welches ich auf Basis meiner kleinen Game Engine mithilfe der SFML in C++ entwickle. Das Game wird im Universum spielen und nach meiner derzeitigen Planung auch einige Wirtschaftselemente enthalten. Es wird z.B. möglich sein auf fremden Planeten zu siedeln und sich so ein Imperium aufzubauen. Damit das ganze für mich machbar bleibt und nicht den Rahmen sprengt ist es allerdings in 2D gehalten. Dadurch kann ich mich mehr dem Content widmen, aber trotzdem eine ansehnliche Grafik erreichen, denn das Ganze wird mit einigen Shader- und Partikeleffekten sowie einer Physiksimulation aufgewertet. Bis jetzt habe ich mich hauptsächlich der Engine gewidmet und nur relativ wenig am Spiel selbst gearbeitet. Allerdings ist diese nun beinahe fertig und so konnte ich heute mit dem Spiel beginnen. Im Moment ist das Hauptmenü grob fertig und ich werden morgen mit meinem Milestone 1 beginnen: Der Generierung eines zufälligen Universums und der Gravitation. Ich habe mein Projekt bewusst relativ früh vorgestellt, da ich auf Erfahrung sagen kann, dass man einfach viel motivierter ist weiter zu machen, wenn man weiß es freut sich evtl. jemand über neue Screens oder ähnliches :)
Damit ich trotzdem schon mal was gezeigt habe, ist im Anhang eine etwas ältere Version meines Partikelsystems, bei dem ich die Grundlegende Performance getestet habe.
Es kann max. 3 Kerne ausnutzen, meistens liegt die Auslastung bei mir bei ~ 55-65% (Quadcore) und die FPS bei 450-500. Da die FPS allerdings so hoch sind, können sehr leicht starke Schwankungen auftreten, z.B. durch Prozesse im Hintergrund. Das Ganze sind wenn ich mich recht erinnere 20.000 Partikel, je 10.000 auf einem Core, der 3. Core rendert. Die Unschärfe kommt von einem Gauss-Shader, den ich noch zusätzlich drüber lege.

2-jpg.459806


1-jpg.459805


Damit das ganze Projekt nicht an der Performance scheitert habe ich den Renderpart, sowie Partikelsimulation und Physik in jeweils einen Thread gepackt. Dadurch konnte ich in ersten Tests die Performance um bis zu 150% steigern. Außerdem wird das Universum in Chunks unterteilt, um weitere Rechenzeit zu sparen, indem z.B. nur Objekte innerhalb eines Chunks auf Kollision geprüft werden. Würde ich das mit allen Objekten machen, könnte man es grad vergessen :ugly:


Ich hoffe evtl. das Interesse einiger geweckt zu haben :D
Meinem Fortschritt werde ich dann hier immer wieder posten.

Ach ja das Projekt hat noch keinen richtigen Namen, falls jemandem was gutes zum Thema einfällt ... :)

MfG King

Edit:

Downloads

Erste Pre-Alpha Technik Demo in diesem Post zu finden.
Zweite Pre-Alpha Demo mit deutlich schönerer Grafik hier zu finden.
 

Anhänge

  • 1.jpg
    1.jpg
    152,8 KB · Aufrufe: 398
  • 2.jpg
    2.jpg
    107,4 KB · Aufrufe: 353
  • Dynamics.zip
    1,1 MB · Aufrufe: 44
Zuletzt bearbeitet:
So, ich hab hier jetzt mal einige Infos worum es in dem Spiel überhaupt gehen wird, dazu hatte ich gestern ja relativ wenig gesagt. Die Idee zum Spiel kam übrigens daher, dass ich solche Weltraum-RTS generell interessant finde, allerdings wird man (meiner Meinung nach) von vielen solchen kommerziellen Spielen schier an den Möglichkeiten, die sich einem bieten erschlagen :ugly:
Wenn man weiß was zu tun ist, machen diese sicherlich vieel und vor allem lange Spaß, aber für Einsteiger wie mich war es zu viel^^

Also, mein Spiel wird wie gesagt in einem völlig zufällig generierten Universum spielen in dem es Sterne, Planeten, Asteroiden, Monde sowie schwarze Löcher gibt (die man meiden sollte ;)).
Ursprünglich wollte ich das ganze Universum mit Physik-Effekten versehen, wie z.B. Gravitation, allerdings wäre das bei einem Strategiespiel fast unmöglich geworden, da das iwie schon bisschen kacke kommt, wenn man nach 5 oder 10 Minuten plötzlich sein Heimatsystem nicht mehr findet weil es durch die Gravitation an einem anderen Ort ist und man es erst wieder suchen muss :ugly: Bei einem Action/Arcadespiel würden solche Physikeffekte aber sicher gut passen, wenn man nicht darauf angewiesen ist Objekte wiederzufinden.

Jedenfalls habe ich jetzt beschlossen dass Sterne und schwarze Löcher feste Standpunkte haben und die Planeten und Monde feste Umlaufbahnen (können also nicht einfach abhauen). Die Asteroiden bekommen allerdings das komplette Paket. Sie werden vollständig simuliert und können mit allen Objekten kollidieren (was man bei seinen Planeten z.B. vermeiden sollte ;)). Ich denke gegen die Asteroiden wird es einige Mittelchen geben wie z.B. Abschusstationen die man dann auf seinen Planeten bauen kann, aber über die Details hab ich mir noch keine Gedanken gemacht.

Außerdem wird es verschiedene Rohstoffe geben, die z.B. zum Bau von Gebäuden oder Raumschiffen notwendig sein werden und auf verschiedenen Planeten vorkommen. Damit in Größeren Reichen nicht unerträglich viel Logistik für den Spieler beim umherschicken von Rohstoffen entsteht, wird es automatische "Handelsrouten" geben. Die Raumschiffe können z.B. auch nur eine bestimmte Strecke zurücklegen und benötigen hierfür Wasserstoff. Über die anderen Rohstoffe habe ich mir noch nicht so viele Gedanken gemacht, wenn jemand Vorschläge hat, nur her damit :D

@aLbErT_94: Den Source Code werde ich höchst wahrscheinlich freigeben, denn es ist ein reines Hobbyprojekt.

So, das wars erstmal. Ich mach jetzt mit dem Mapgenerator weiter :)

lg King
 
Ich machs als Hobby, allerdings schon etwas länger. Ich kann nicht sagen dass ich alles auswendig weiß, aber wenn mal was fehlt (was relativ selten vorkommt, da ich alles kann, was ich brauche) schau ich halt schnell nach und weiß dann eigentlich wie was geht.

MfG
 
Teilweise. Sehen dann aber nicht sooo mega toll aus, aber es geht, finde ich. Ansonsten schau ich was im Internet so frei verfügbar ist (also nicht Google-Bilder oder sowas, sondern nur, wenn es die Lizenz bzw. der Autor erlaubt). Für das Projekt hier brauch ich aber noch die meisten Dinge. Ich hab zwar schon ein paar, aber wenn die alle von verschiedenen Grafikern gemacht wurden etc. unterscheidet sich der Stil teilweise sichtbar, was dann schon bisschen komisch aussehen kann. Also falls jemand gute Grafiken zum Thema hat oder selbst Grafiken erstellen kann und will ist er herzlich willkommen :D

MfG King
 
ui ui ui .... sieht aus wie Space Rangers 2 :daumen:
also damit das klar ist, du machst den Nachfolger Space Rangers 3? :D :ugly:
 
Ehrlich gesagt kenne ich Space Rangers 2 gar nicht^^ *Das Spiel schnell anschau*

Mhmm so wie ich das jetzt gelesen habe spielt man da nen Charakter und kann Beruf etc. wählen.
Hier wird es eher in Richtung Strategie gehen, man befehligt sein Imperium praktisch "von Oben".
 
Sag mal, bei den Asteroiden, kann man da einfach eine Klasse erstellen und ihr Physik Effekte als " Attribute " geben?

PS: Verdammt gut so ein Projekt, freu mich drüber :)
 
Physikeffekte im Sinne von Zerstörungsphysik würden micch auch mal interessieren :D
Ich saß dort letztes Jahr mal dran und hatte als Beispielobjekt einen dreidimensionalen(!) Würfel. dann an einem Punkt des Objektes wird der "Zerstörungsimpuls" mit einer bestimmten Kraft gestartet und von da an wird das objekt "zerstückelt" gravitation fängt an zu wirken und dann wusst ich nicht mehr weiter :ugly:
Also wenn du iwwi ideen, vorschläge hast immer her damit ^^



Ehrlich gesagt kenne ich Space Rangers 2 gar nicht^^ *Das Spiel schnell anschau*

Mhmm so wie ich das jetzt gelesen habe spielt man da nen Charakter und kann Beruf etc. wählen.
Hier wird es eher in Richtung Strategie gehen, man befehligt sein Imperium praktisch "von Oben".
Jo so in der Tat ... man schaut von oben auf eine Universum und kann mit der Maus wie bei nem Strategiespiel hat sein Schiff steuern, Bedienelemente anklicken und Aktionen ausführen. Die Objekte an sich sind dann aber glaub ich schon richtig 3D gewesen; jedenfalls gab es dann einen richtigen 3D-Modus, wenn man eine Mission mit einem Kampf auf nem planeten angenommen hat. da war es dann sowas wie meine roboter gegen die anderen, wobei man da richtig im geschehen war
das spielprinzip an sich hat mir sehr gefallen (allerdings war ich da auch noch sehr viel jünger :) )
 
@ Crymes: Naja ganz so einfach ist es nicht ^^
Ich habe eine Klasse SpaceObjects, welche u.a. auch einen Asteroiden darstellt. Diese Klasse hat dann Member wie "Masse", "Geschwindigkeit", "Position" usw..
All diese Dinge werden dann letztendlich dazu verwendet um in der "Update" Funktion die neue Position zu berechnen, denn das ist ja eigentlich das was man will: wissen wo ich den Asteroiden als nächstes hinzeichnen muss, sodass es physikalisch korrekt aussieht.

Im 2D Bereich, habe ich es da etwas einfacher und muss die Objekte nicht "zerteilen". Nehmen wir als Beispiel einfach mal die Kollision eines Asteroiden mit einem Planeten.
Sobald eine Kollision erkannt wurde, erstelle ich einen neuen Emitter für Partikeleffekte und füge ihn meinem Partikelsystem hinzu (eigener Thread). Dieser gibt dann 0.5-2 Sek lang Rauchpartikel oder ähnliches frei, welche mit der Zeit immer transparenter werden und so langsam verschwinden. In den ersten Frames nach der Kollision wird dann der eigentliche Asteroid gelöscht (man wird es nicht sehen, da er ja durch die Partikel verdeckt ist) und ggf. je nach Größe des Asteroiden/Objekts, falls nur Partikel nicht ausreichen, noch einige Kleinere Objekte zur Physikengine hinzugefügt, die letztentlich wie die Asteroiden behandelt werden, nur eben kleiner.

Hauptsächlich wird es in meinem Spiel an Physik Effekten also Gravitation und eben solche Physik Effekte geben.

lg KoK
 
Hört sich doch interessant an, viel Erfolg bei deinem Vorhaben. Ich spiele lieber da ich von solchen sachen die du da macht überhaupt keinen Plan habe :D
 
Frischer Work in Progress Screen: Jetzt mit Planeten die unterschiedlich schnell um ihren Stern sowie sich selbst rotieren. Morgen sind dann Monde dran.

Screen.jpg

Leider kann ich noch nicht mehr Zeigen, da das meiste im Moment unter der Haube passiert ;)

MfG King
 
So, heute wie gesagt mit Monden. Außerdem hab ich nen Hintergrund (der noch nicht soo gut aussieht) samt Scrolling (Der Hintergrund bewegt sich langsamer als der Vordergrund, wenn man die Kamera bewegt) eingefügt. Morgen mach ich mich dann an die Asteroiden und anderen Kleinobjekte die da so rumschwirren und damit gibts auch die ersten richtigen Physikeffekte -> Gravitation.
Wenn das dann alles fertig ist wirds auch mal ne kleine Demo geben um die Perfomance und allgemeine Funktionsfähigkeit auf verschiedenen Systemen zu testen (falls ihr denn mitmacht :D). Außerdem gibts in der Demo etwas Interaktion für euch (lasst euch überraschen, hat voraussichtlich nichts mit den richtigen Spiel zu tun ;)), damit die Demo auch wenigstens etwas interessant ist.

Hier der heutige Abschluss-screen:

Screen.jpg

MfG King
 
Zurück