Jump to content
Unity Insider Forum
Sign in to follow this  
Elowan

Suche Lösungsansätze zur Umsetzung eines RTS

Recommended Posts

Hallo (Comm)Unity,

 

kurz zu mir und meinem Vorhaben:

 

Ich bin halbwegs firm im Umgang mit Blender, PS und habe Erfahrungen im Webdesign, Datenbanken und kann recht gut die „Logik“ ersinnen, nach der ein Programm arbeiten soll.

Auch fertige scripts anzupassen, stellt mich vor kein großes Problem.

 

Nur „von null an“ zu programmieren fällt mir momentan noch schwer, da ich keine dazu nötige Sprache beherrsche.

 

Daher möchte ich hier einmal anfragen, ob mir jemand Starthilfe zu einigen Aufgaben geben kann, Tutorials kennt, die meine Fragen beantworten oder mich ans Ziel führen können.

 

Ich habe den Prototyp für ein space-RTS im Kopf und einige der Spielmechaniken und Lösungsansätze sind bereits ausgearbeitet – eben diese möchte ich nun versuchen (mit Hilfe dieses Forums) so umzusetzen, dass sie in Unity funktionieren.

 

Ich weiß nicht, ob es überhaupt möglich sein wird, dies mit Hilfe von euch zu erreichen.

 

Jedenfalls habe ich konkrete Vorstellungen, was ich umsetzen möchte und wage mal einen Versuch, damit ihr ggf. beurteilen könnt, ob das machbar sein wird oder eben nicht.

 

Aus meiner Sicht sind das jetzt nicht so sehr ausgefallene Dinge, aber leider beziehen sich die Tutorials, die ich bisher finden konnte auf FPS, MMORPG oder 2.5D Konzepte.

 

Gut, genug der Vorrede, ich werfe mal ein paar der Dinge in den Raum, zu denen ich Lösungsansätze, fertige Assets oder Tutorials suche. Falls wer für ein paar Euro meinen Space-RTS Prototypen umsetzen möchte, einfach per PM bei mir melden.

 

Das ganze soll zunächst mal singleplayer sein, später dann ein 4 Player VS Modus bekomen.

 

 

 

Universum und Dimensionen

 

Um den Eindruck eines großen Universums zu vermitteln, habe ich mir folgendes überlegt:

 

Um jedes Raumschiff herum könnte man eine Art unsichtbare „Kugel“ erzeugen und nur Objekte innerhalb dieser Kugel sind als 3-D Objekte sichtbar. Objekte außerhalb von diesem Radius werden nur als 2-D Symbol angezeigt.

 

Damit man mit Objekten außerhalb dieser Kugel interagieren kann, muss man sich dorthin „warpen“. Dazu kann man diese 2-D Symbole zunächst mit der linken Maustaste auswählen und dann mit der rechten Maustaste ein Kontextmenu aufrufen, u.a. mit einer „wap-to-Funktion“. Wählt man diese aus, so richtet sich das Raumschiff in Richtung des Objektes aus und mit einem kleinen warp-Effekt springt es in die Nähe des Objektes.

 

Die Dauer eines Wap-Fluges ist abhängig von der max. Warpgeschwindigkeit eines Schiffes und der Entfernung eines Objektes, zu dem man warpen möchte.

 

 

 

 

GUI

 

Alle Objekte eines Universums werden in einem Overview der Entfernung und oder Typ nach aufgelistet und sind wie eine Excel Tabelle sortierbar.

 

 

 

 

Kamera und Maus Aktionen

 

 

Doppelklick auf ein Objekt im Overview oder im Spielbildschirm lässt die Kamera zu diesem Objekt springen (zentriert)

 

Linksklick wählt ein Objekt aus (es werden dann auch Lebenspunkte in Form eines Balkens über dem Objekt angezeigt)

 

Linksklick + gedrückte ALT Taste zentriert die Kamera auf das Objekt unter dem Mauszeiger. Sollte sich dieses Objekt in Bewegung befinden, folgt ihm die Kamera, so dass dieses Objekt immer in der Bildschirmmitte ist.

 

Linke Maustaste + shift (beides gedrückt halten) zieht einen Rahmen auf, um mehrere Objekte gleichzeitig auszuwählen.

 

Mausrad = Zoom in/out

Mausrad gedrückt halten = Kamera wird um alle Achsen rotier-/ drehbar

 

 

 

Schiffe definieren

 

Es soll verschiedene Klassen/Typen von Raumschiffen geben.

Wie könnte eine Definition eines Raumschiffs-Typ aussehen?

 

Enthalten sein sollen Angaben wie:

 

Hat Bewaffnung (ja/nein), kann Dinge transportieren (Ja/nein), Ladevolumen, kann übernommen werden (ja/nein), kann Drohen zur Verteidigung besizen (ja/nein/Anzahl)

, Trägheit, Geschwindigkeit, hinterlässt Trümmer (ja/nein/Anzahl), Reichweite der Waffen, Feuerrate, …

 

 

Ressourcen definieren

 

Typ der Ressource könnte z.B. Erz oder Gas sein.

Nur bestimmte Schifftypen können Ressourcen abbauen. Ressourcen haben ein bestimmtes

Volumen, das sich erschöpft, …

 

 

Techtree

 

Es soll die Möglichkeit geben, bei erreichen von bestimmten Mengen an Ressourcen Dinge zu produzieren und/oder zu erforschen. Wie setzt man z.B. eine „Basis“ um, zu der die abgebauten Ressourcen geliefert und gelagert werden?

 

 

Das waren jetzt mal ein paar (wenige) Dinge, zu deren Umsetzung ich Ansätz suche.

 

Zusammengefasst:

 

Wie definiere ich ein Objekt-Typ „Raumschiff“?

Wie definiere ich eine Ressource?

 

Wie lege ich global die möglichen Maus-Aktionen und Verhalten der Kamera fest?

Share this post


Link to post
Share on other sites

Ich tu mir leider schwer deinen Thread ernst zu nehmen,

und das meine ich nicht böse.

 

Unterm Strich willst du sagen:

"Ich versteh Programmlogik, aber kann nicht wirklich Programmieren, was muss ich machen damit das Spiel so wird wie ich will"

 

so funktioniert das nicht.

 

Klar ist Unity eine Engine die Designer und Programmierer viel Arbeit abnimmt, aber übrig bleibt dennoch: Arbeit.

Gerade RTS sind mmn. sehr schwierig zu realisieren, bzw. etwas komplexer.

 

Ich würde mich an deiner Stelle in die Doku einlesen. Sämtliche Arten von Tutorials durchstöbern, daraus lernen und selbst probieren. Das sind jetzt wahrscheinlich nicht die gewünschten konkreten Tipps, aber ich denke, die vernünftigsten.

Share this post


Link to post
Share on other sites

Hmmm, also ich bitte schon darum, meinen post ernst zu nehmen.

 

Ich habe das Problem, dass ich zwar gut "durchdenken" kann, wie man das ganze umsetzen könnte, bzw. was man beachten und abfangen muss, etc.

 

Nur brauche ich einen konkreten Ansatz dafür, da ich mich noch nicht in C# oder Unityscript auskenne.

Ich möchte versuchen, einen Prototypen umzusetzen ( ganze Mechanik mit cubes) ohne jetzt die komplette

Doku zu lernen oder zu lesen, um dann festzustellen, dass ich davon vielleicht nur 40% brauchen kann.

 

Mir wäre es lieber, ich schaue mir konkret die Funktionen und Befehle an, die ich zur Umsetzung von genau

meinem Vorhaben benötige.

 

Etwas wie:

 

"Also, einen game-Objekt mit Eigenschafften/Attributen definierst du so:"

 

"Die Kamera- und Maussteuerung legst du mit den xy-Befehlen fest:"

 

"Die Funktion für den warp-to könnte im Ansatz so aussehen:"

 

...wäre sehr hilfreich, dann habe ich etwas, auf dem ich aufbauen kann.

Share this post


Link to post
Share on other sites

"Also, einen game-Objekt mit Eigenschafften/Attributen definierst du so:"

http://answers.unity3d.com/questions/22030/create-game-object-on-the-fly.html

http://docs.unity3d.com/Documentation/ScriptReference/GameObject-ctor.html

http://docs.unity3d.com/Documentation/ScriptReference/GameObject.AddComponent.html

 

"Die Kamera- und Maussteuerung legst du mit den xy-Befehlen fest:"

http://docs.unity3d.com/Documentation/ScriptReference/Camera.html

http://docs.unity3d.com/Documentation/Components/class-Camera.html

http://docs.unity3d.com/Documentation/ScriptReference/Input.html

http://docs.unity3d.com/Documentation/ScriptReference/Input.GetAxis.html

 

"Die Funktion für den warp-to könnte im Ansatz so aussehen:"

http://docs.unity3d.com/Documentation/ScriptReference/Vector3.Lerp.html

http://docs.unity3d.com/Documentation/ScriptReference/Transform-position.html

http://docs.unity3d.com/Documentation/ScriptReference/Rigidbody.MovePosition.html

 

 

Versuche deine Metafrage in kleinere Fragen, am besten in separaten Threads, zu unterteilen.

Wenn du dich in US oder C# nichtz auskennst bzw die Unity API nicht kennst, ist daws ebensowenig unsere Verfehlung und du solltest dir daher die Zeit nehmen diese kennen zu lernen. Wir sind alles, nur keine Vorschreiber.

Share this post


Link to post
Share on other sites

So wird das nichts, sorry. Du musst am Anfang anfangen. Nicht am Ende. Gerade weil du gar nicht wissen kannst was du an Wissen wirklich brauchst ist es nötig dass du eben erst mal die Grundlagen lernst, und ganz unten anfängst. Du musst einfach mal ein kleines Spiel von Null bis Fertig aufbauen und durchentwickeln um deine Entwicklungsumgebung mitsamt seinen Macken kennen zu lernen. Und das macht man am Besten mit ganz kleinen Games. Pong, Space Invader, Pac Man, etc. . Das habe ich auch nicht anders gehalten als ich auf Unity gewechselt bin. Erst mal was kleines zum reinfuchsen. Und da hatte ich schon 10 Jahre Entwicklungserfahrung auf dem Buckel.

 

Wenn du wirklich so ein As bist wie du von dir denkst sollte es dich umso weniger Zeit kosten die Minidinger mal eben rauszuhauen. Verlieren tust du da gar nichts. Pong zeigt dir die grundlegende Arbeitsweise. Wie baue ich in Unity ein Spiel. Space Invader ist schon mal ein guter Ansatz um sich ein wenig mit AI zu beschäftigen. Pac Man ist die Mutter allen Pathfindings. Und so weiter. Alles Sachen die du für dein RTS später eh brauchst.

 

Mal davon abgesehen: Ein RTS ist schon dicht dran am MMO. Und beide sind für Hobbyisten eigentlich nicht zu schaffen. Weil es so verflucht viel Abeit ist, so verflucht viel Fachwissen voraussetzt, und sich über mehrere Jahre erstreckt. Aber das musst natürlich du wissen ob du die Zeit hast mal eben mehrere Jahre Arbeit in den Sand zu setzen. Nur, den Shortcut den du dir da vorstellst gibts halt nicht. Das heisst, wenn du gar nicht programmieren lernen willst gibts natürlich noch den Playmaker :)

  • Like 2

Share this post


Link to post
Share on other sites

Vielen Dank für eure Antworten, besonders an Marrrk. So etwas schwebte mir vor, eben ein Anhaltspunkt.

 

Natürlich bin ich gewillt, entsprechend programmieren zu lernen. Es ist nämlich recht frustrierend, alles genau vor Augen zu haben, aber eben nicht die nötigen Vokabeln zu kennen, es einer engine, bzw. einem Computer begreiflich zu machen ;)

 

Aber auch meine Zeit ist begrenzt, daher hatte ich zunächst die Idee, möglichst erstmal nur genau die Dinge mir anzusehen und mich damit zu beschäftigen, die zur Umsetzung meines Vorhabens nötig sind.

 

So wie Marrrk das schon vorgeschlagen hat, Metafragen in kleinere Abschnitte zu unterteilen, dazu Hinweise zu erhalten, diese dann zu programmieren, usw.

 

Natürlich möchte ich mir alles nötige gern selbst erarbeiten... nur habe ich natürlich nach dem kürzesten Weg gesucht ;)

 

Es ist nicht so sehr mein Ding, das Rad neu zu erfinden. Bin davon ausgegangen, es gibt schon fertige Prototypen oder scripts, die die von mir aufgezählten Ansprüche erfüllen. Dem scheint aber nicht so zu sein, ok - verstanden.

 

Da es hier nur um ein Hobby-Projekt geht, 4 fun, muss ich jetzt mal in mich gehen, ob sich das ganze nicht doch als (für mich) unrealistisch und nicht machbar herausstellt...

 

Wie gesagt, bin davon ausgegangen, es gibt für viele Dinge schon fertige scripts, da so ein RTS ja nun nix völlig neues ist und sicher schon ganz viele andere genau die Dinge umgesetzt haben sollten, die ich benötige.

Share this post


Link to post
Share on other sites

als Ergänzung:

falls du evtl. englischfaul bist, kann ich dir die Seite von Carsten (ebenfalls im Forum aktiv) empfehlen,

er hat einige sehr gute Tutorials, inkl. Videos und Deutsch!

 

http://www.hummelwal...wareentwickler/

 

und ja, es gibt einiges an fertigen Scripts, Frameworks oder Mechaniken für RTS Games,

aber das meiste kostet halt:

 

https://www.assetsto...om/#/search/rts

 

 

edit:

marrrk war wohl schneller mit dem assetstore link ^^

Share this post


Link to post
Share on other sites

Das sieht doch schon mal gut aus, was der Asset Store da zu bieten hat. Die Preise sind auch sehr human, finde ich.

 

Und nein, ich bin absolut nicht englisch-faul, im Gegenteil. Also nur zu, immer her mit den englischen Tutorial-links zum thema RTS mit Unity, falls wer noch etwas brauchbares dazu verlinken kann!

Share this post


Link to post
Share on other sites

Eine Anmerkung hätt ich noch: Kümmer dich am besten zuerst ums Pathfinding. Das ist beim RTS das A und O. Du hast es vlt bisschen leichter da im Weltraum generell nur 2 Ebenen betrachtet werden (XZ), aber ohne richtiges Pathfinding läuft nix ;)

Share this post


Link to post
Share on other sites
Ich möchte versuchen, einen Prototypen umzusetzen ( ganze Mechanik mit cubes) ohne jetzt die komplette

Doku zu lernen oder zu lesen, um dann festzustellen, dass ich davon vielleicht nur 40% brauchen kann.

Im Vorfeld möchte ich mich entschuldigen falls mein Feedback etwas krass ausfällt:

Mir geht ein es bischen wie reppiz. Dieses Zitat find ich schon sehr Krass.

 

Mit anderen worten willst du Programmieren eigenlich nix lernen sondern du willst das man dir das sagt was du wissen musst.

WOher willst du wissen was für dein Projekt brauchst oder kennst du vorher schon jede Zeile auswenig ?

 

Du hast keinen Bock Programmieren zu lernen oder zumindest alles zu lernen du hast aber lust einen Teil davon zu lernen.

 

Mal im ernst entweder du lernst alles oder lässt es. Aber mit der Einstellung wirst du nicht weit kommen.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...