Dienstag, 24. Januar 2012

Space Opera Gedanken - Der Weltraum

Meine Ur-Vorstellung des Weltraums von Space Opera war eine Tilebasierende 2D Karte, klickte man dann auf einen Tile, sollte zu einer 3D Sektorsicht gewechselt. Dort sollte dann das Kämpfen , Ressourcen abbauen etc. ablaufen.

Nach einem schnellen Testlauf in Sachen 3D, entschied ich mich dann um und Space Opera sollte komplett 3D werden. Natürlich sollte das dann keine Einfache 3D Welt werden. Ich wollte komplette Sonnensysteme bis hin zu Asteroidengürteln mit einzelnen Felsbrocken erschaffen. Natürlich sollte dann jeder X-beliebige Punkt an fliegbar sein. Auch wenn das bedeuten würden 100 000 000km lang auf gar nichts zu treffen. Der Weltraum ist eben größtenteils leer.

Nachdem dann mein Größenwahn sich etwas gelegt hat, meldete sich mein Verstand und machte mir sehr schnell klar wie unendlich viel Arbeit hinter dieser Idee steckt. Also war das im Endeffekt Zeitlich nicht um zusetzten.

Ich gebe ohne weiteres zu das ich mich bei der Lösung vom MMO "EVE Online" habe inspirieren lassen. Die aktuelle Lösung sieht so aus: Von jedem Sonnensystem wird eine 2D Karte erstellt, auf der Planten, Asteroidenfelder und sonstige Orte bequem und schnell erreicht werden können. Allerdings werde ich hier kein vollständiges Sonnensystem erstellen. Fliege ich zu einem Planten, so lande ich im Beispielsweise in einem Orbit von 10 000km. Man hat also als Hintergrund einen schönen Planeten und dann wird quasi die "Bühne" befühlt. Hier schlage ich den Bogen zur X Reihe von Egosoft. Dort kennt auch jeder die verschiedenen Sektoren. Da hier allerdings keine Sprungtore an den "Grenzen" des Sektors stehen, sollen diese viel offener wirken.

Damit aber auch etwas Abwechslung gegeben ist, überlege ich eine Art Erkundgssystem einzubauen. Man scannt ein Sonnensystem ab und kann dann im System weitere unerforschte Punkte finden. Das kann zum Beispiel ein weiteres Asteroidenfeld sein, das Wrack eines Raumschiffes oder aber eine Piratenbasis, vielleicht aber auch nur ein Schmugglerzentrum.

Natürlich soll der Spieler nicht nur in einem Sonnensystem feststecken. Sonnensysteme sollen untereinander durch Sprungtore verbunden sein. Eventuell wird man auch über einen eigenen Sprungantrieb verfügen oder auch eigene Sprungtore errichten können. Durch das verbinden verschiedener Sonnensysteme könnte sich ein Lokaler Cluster aufbauen, der wiederum in einer größeren Ansammlung von Clustern angehört, und so weiter und so weiter.

Ich denke ich kann mit diesem System 2 Fliegen mit einer Klappe schlagen:
1. Der Programmieraufwand dieser "Raumsektoren" hält sich deutlich in grenzen als etwa ein Komplett Simuliertes Sonnensystem
2. Theoretisch könnte ich mit jedem Zukünftigen update mehr "Weltraum" einbauen.

Montag, 23. Januar 2012

Space Opera Gedanken - Der Spieler

Ich möchte einen neue Reihe von Post´s in meinem Blog aufmachen. Die SO Gedanken.

Diejenigen die mein Blog regelmässig Lesen, haben vieleicht eine grobe ahnung wo ich mit SO hin will. Die grobe Ahnung will ich durch eine Konkrete vorstellung ersetzten.
Das erste was ihr - Hoffentlich irgendwann einmal ;) - sehen werdet ist euer Schiff. Wie ihr zu diesem Schiff gekommen seid? Naja man euch eingebaut. Ihr seid nichts anderes als die Schiffseigene Künstliche Intelligenz. Das einzige andere organische Leben an Bord werden wohl ein paar hartnäkige Einzeller sein.

Über die genauere Geschichte werde ich wohl noch schreiben. Für den Moment reicht es aber wenn ich sage das Ihr, vollkommen alleine und auf euch selbst gestellt seit - zu anfang ...

Ich habe auch im Blog mehmals ewähnt das daß Schiff eine Fregatte ist. Soweit auch korrekt. Ich sollte aber auch sagen das diese Fregatte eine von sehr wenigen Sonderkonstruktionen der KI´s war. Sie wurde extra für Erkundungsmissionen im Tiefenraum modifiziert.

Das bedeutet das ihr alle grundsätzliche ausrüstung zum überleben an Bord habt. Das umfasst das Sammeln und verarbeiten von Rohstoffen ebenso, wie das produzieren von Bauteilen und Hilfsschiffen.
Ihr könnt also an Bord dinge bauen, man wird aber auch in der Lage sein sein eigenes Schiff zu modifizieren. Mir fallen da auf anhieb zig Dinge ein die ich hier als Beispiele hinschreiben könnte, aber soweit ist es noch nicht.
Nur soviel: es wird für euer Schiff einige Interne Verbesserungen die eine starke Wirkung, aber auch enorme Kosten haben. Es wird aber auch externe verbesserungen geben, diese werde recht Preisgünsig aber in ihrer Wirkung nicht so stark sein. Zudem können die Externen verbesserungen im Kampf zerstört werden. Immerhin werden diese nicht durch eure Schiffspanzerung geschützt.

Ob man auch Forschen kann, im sinne eines Techtree, da bin ich noch am überlegen. Mir sind einige Gedanken über eine art Modulsystem für Schiffsbauten gekommen.

Sonntag, 22. Januar 2012

Schilde, Schaden und Modelle II

Vor genau einer Woche habe ich den ersten Post mit dem Titel "Schilde, Schaden und Modelle" geschrieben. Dort habe ich grob umrissen was mir so vorschwebt.

Heute, nach einer durchgetippten Wochenende, kann ich sagen das ich nun ein Schritt weiter bin.

Hier ist der aktuelle Spielschirm. Das Dummymodell ist eingefügt, und nachdem es mir auch gelungen ist ein Problem mit dem Deepbuffer zu lösen auch ohne Artefakte.

Das ist aber nicht das alles, ich habe mich auch mit dem angekündigten System für Schilde, Panzerung und Struktur befasst. Nach etwas Grübelei und Tüftelei steht auch dieses System zumindest soweit, das ich weiter darauf aufbauen kann.

Das System funktioniert nun soweit, das ein Simulierter Schaden zuerst die Schildstärke / Schildstruktur (Ich brauch da dringend ne Abkürzung für ;-) ) reduziert, dann die Panzerung angreift und als letztes die Struktur angefressen wird.

Ein paar kleine Fehler sind noch drin. Beispielsweise ist es derzeit noch möglich das es einen Schildwert von -0,2% geben kann. Das gleiche bei der Panzerung. Da muss ich mir noch was einfallen lassen wie ich das beseitige. Außerdem muss ich noch den Code aufräumen, und das ganze sauber auskommentieren. Sonst finde ich mich in 4 Wochen da drin nicht mehr zurecht.

Zur Erklärung der verschiedenen Balken:
Oben Links ist die Schildstärke, Oben rechts ist die Schildstruktur.
Die Mittlere Zeile Zeigt die Schiffspanzerung und darunter die Schiffsstruktur.

Die Bildchen stammen aus einem uralten Projekt das ich mal begonnen habe. Wie alles im Moment, nicht gerade Grafische Highlights. Darum kümmere ich mich wenn es soweit ist.

Nichts desto trotz gefallen mir die Balkenfarbe für Panzerung und Struktur nicht. Jemand Vorschläge für später?

Ich bin mir auch noch nicht so ganz sicher wie ich das mit der Reparatur der Schäden machen soll. Sollen sich Schild & Co über die Zeit selbst Instand setzten? Soll der Spieler ein extra Kommando dazu geben? Soll das Reparieren irgend eine art von Ressource benötigen?

Allgemein muss ich sagen das ich gerade eine sehr hohe Motivation zum Programmieren habe. Wenn man nicht bei jedem kleinsten Problem in ein Forum rennen muss, fühlt man sich nicht mehr ganz so Hilflos.

Das nächste was ich jetzt angehen werde - und auch lange vor mich her geschoben habe - ist das Laden und Speichern. Vieleicht kann ich ja nächstes Wochenende ja schon von einem Teilerfolg berichten :-) . Ich habe mich erstmal dafür entschlossen die Daten als XML zu speichern, und da ich es hasse wenn Software seine Daten wild im System streut, will ich es so schreiben das die XML-Save Dateien schön brav im Spielverzeichnis bleiben. Okay letzteres wird sicherlich das einfachere sein :D

Für diejenigen die es Interresiert, ich werde auf diesem Tutorial von Microsoft aufbauen:

Saving Data to a Save Game File


PS: Warum bringt mir das Demo beim Kompilieren einen Fehler ??? O_o

Sonntag, 15. Januar 2012

Schilde, Schaden und Modelle

Nach dem durcharbeiten einiger Tutorials, arbeite ich wieder an Space Opera weiter. Aktuell beschäftigte ich mich mit der Player Klasse. Also alles was direkt mit dem Spieler und seinem Schiff zu tun hat.

Zum Beispiel ist das 3D Model aus früheren Bildern ist jetzt in diese Klasse gewandert.
Eine Steuerung des Models habe ich jetzt noch nicht geschrieben.

Vorzugsweise soll die über W,A,S,D realisiert werden, dann noch 2 Tasten für Schub und Bremsen, eventuell kommt noch das Rollen hinzu. Also so ähnlich wie bei der X Serie von Egosoft. Wobei ich hier überlege ob ich die Steuerung, zusammen mit der Kamerakontrolle nicht auf eine eigene Klasse verschiebe.

Ein anderer Punkte der dazu kommt sind die Hitpoints.

Schiffe, Station etc. sollen über 3 Werte Verfügung:

Schilde:
Schilde stellen die erste Barriere gegen einkommen Schaden da. Wobei sich das Schild wieder in 2 Punkte gliedert. Die Schildstärke und die Schildstruktur, beides wird separat angezeigt. Die Schildstärke gibt schlicht an, wie viel Schaden das Schild insgesamt verkraften kann. Die Schildstruktur, wie stabil das ganze ist. Solange die Schildstruktur auf 100% ist, fängt das Schild allen Schaden ab bis es aufgebraucht ist. Sinkt aber die Struktur des Schilds auf 50%, durchschlagen z.B. 5 von 10 Geschossen das Schild, und die Panzerung muss diesen Schaden auffangen. Ob das Schild nun mehr an Stärke oder an Struktur einbüsst, wird von Gegner und dessen Waffen abhängen.

Ein Schiffsgeschütz wird tendenziell eher die Schildstruktur schwächen. Eine Rakete senkte eher die Schildstärke. Vereinfacht gesagt: Eine Waffe mit Flächenwirkung schwächt das Schild als ganzes, eine Waffe ohne Flächenwirkung die Struktur.

Panzerung:
Die Schiffspanzerung ist genau das wonach es sich anhört. Massive mehrschichtige Panzerplatten. Zusammen mit dem Schutzschild ist es der Primäre Schutz.

Schiffsstruktur:
Die Struktur ist das, was das ganze Schiff zusammen hält, und wo alle Geräte, Aggregate etc. verbaut sind. Schäden an der Struktur sind ungesund. Oder wollt ihr in einem zusammen geschossen Raumschiff sitzen und dann Meldung bekommen das gerade das Heck mit eurem Antrieb und Lebenserhalten abreist ?

Naja das sind mal die groben Ideen wohin das ganze gehen soll. Bis man aber das ganze Live erleben kann wie das eigene Schiff schaden austeilt und wegstecken muss, das wird wohl noch dauern ;)

Montag, 9. Januar 2012

Lebenszeichen

Auch wenn es wohl den Anschein erweckt hat, ich Lebe noch.

Ebenso lebt mein Projekt noch. Es hat nur so etwas wie Winterschlaf gehalten.

Meine Motivation in den letzten Monaten hatte unter mehrern Punkten gelitten.
  1. Unklare Situatution über die Zukunft von XNA
  2. Mein unvermögen die Delta Engine zu nutzen
  3. Durch das Vorweinachtliche Arbeitspensum geringe Freizeit
  4. Einige umbauten an meinem PC
Zu Punkt 1. wirklich etwas neue gibt es hier von Seiten Microsoft nicht - schade - oder es ist einfach keine Information an mich gedrungen.

Zu Punkt 2. mag sein das es daran liegt das dieses Projekt noch im Beta Status ist, aber ich bin offensichtlich unfähig damit umzugehen. Ich schaffe es einfach nicht dort auch nur ein simples "Hello World" zum laufen zu bekommen. Hauptproblem ist: Das ich wohl der Contentmanager nicht wirklich funktioniert hat. Was man nicht laden kann, kann man auch nicht verwenden. Ob jetzt der Fehler bei mir, oder der Software lag. Keine Ahnung. Im zweifel gehe ich eher auf einen Fehler von meiner Seite, mangels Fähigkeiten aus.

Zu Punkt 3. Tja ... Arbeitszeit. Augen auf bei der Berufswahl kann ich da nur sagen...

Zu Punkt 4. Es ist wirklich lästig seinen PC wegen einiger defekt ständig neu auf zu setzten... Zum Glück liegt mein Projekt sicher auf einem NAS. 

Daran arbeite ich aktuell:
Das ist das aktuelle Hauptmenu, neu daran ist, das ich nun eine Funktion geschrieben habe welche das Bild der Buttons austauscht. Von Blau zu Rot. Erst als ich die Funktion dann drin hatte, ist mir aufgegangen das ich auch ein Shader hätte dazu schreiben können.

Naja vieleicht später...




Ansonsten arbeite ich gerade das Buch durch: C# von Kopf bis Fuß. Ich finde es auf eine recht interresante Art und weiße geschrieben.