Du bist nicht angemeldet.

Werbeanzeige

1

31.01.2017, 16:01

Einsteiger Unity oder auch nicht?

Moin!

So wo fange ich an, ich studiere seit 4 Semestern Informatik, und habe gelernt mit Java zu programmieren.
Nun fleucht mir schon seit Jahren der Wunsch im Kopf umher mein eigenes Spiel zu programmieren. Ideen habe ich zu Hauf, die meisten werden aber noch ein paar Jährchen auf sich warten lassen, da sie schlicht zu komplex sind um sie als Einstieg zu nutzen ^^

Nun habe ich gerade wieder Semesterferien vor mir und daher etwas zeit mich mal in ein eigene Projekt zu stürzen. Promt kamen einige meiner Freunde auf die Idee, mir Ideen für Spiele an den Kopf zu werfen (die nun auch nicht sonderlich Einsteiger freundlich waren..)
Auf meine Reaktion, das das noch zu groß für mich wäre folgte oft eine Aussage, die Fragen in mir aufwirft und diese Fragen will ich nun versuchen hier zu klären, da ich um ehrlich zu sein keine Ahnung habe, wo ich sie sonst klären sollte...

Mir wurde fast jedes Mal geraten "programmier dein Spiel einfach mit Unity". Das ist einfach, und du kannst sofort mit 3D loslegen! (oder 2D)

Ich hab mich daraufhin mit dem Thema befasst, stoße aber immer nur auf halbe Erklärungen. So habe ich erfahren das Unity geskriptet wird und nicht programmiert ( diese Aussage kam häufiger vor)
Nun ist die erste Frage, wird in Unity NUR geskriptet? oder basiert das spätere Spiel trotzdem auf einem "normal" und selbst programmierten Grundgerüst?
Die Nebenfrage die mir gerade beim schreiben durch den Kopf schießt, wo genau ist der unterschied zwischen skripten und Programmieren?

Die zweite Frage, die wohl eigentlich die erste sein sollte, ist es sinnvoll mit Unity einzusteigen?
Ich habe bisher mit Java nur grafische Oberflächen gebaut und mir wird oft gesagt das man bei Spiele Programmierung eigentlich sofort ne engine braucht ( ich halte diese Aussage für Käse, bin mir aber doch unsicher genug da doch mal nach zu haken^^)

so,.. ich liebe Foren,.. ich hab nie Ahnung wie ich meine Frage verständlich formulieren soll,.. ich hoffe ihr könnt mit meinen Fragen etwas anfangen und mir helfen :)

mfg Fogel

Wirago

Alter Hase

Beiträge: 1 077

Wohnort: Stockerau

Beruf: IT - Online Sevices

  • Private Nachricht senden

2

31.01.2017, 16:27

Hallo und herzlich willkommen und der (scheinbar) unübersichtlichen Welt der Spieleprogrammierung ^^

1) Wenn du schon Java kannst, dann bietet sich an bei Java zu bleiben. Auch für Java gibt es passende Frameworks um Spiele zu programmieren. Die bekanntesten dürften LWJGL, libgdx und die jMonkeyEngine sein. Google hilft dir hier weiter.
2) Unity bedient sich C# und JavaScript. C# und Java sind an sich sehr ähnlich, aber wie gesagt, wenn du schon Java kannst, wieso nicht nutzen?
3) Ja, in Unity wird hauptsächlich (nicht nur) geskriptet. Vieles, das man sonst selber programmieren muss (oder darf/kann), nimmt einem Unity ab. Spart viel Zeit, ja, ob man das aber will, bleibt jedem selber zu entscheiden.

Unter dem Strich gibt es für jede Sprache (C#, Java, C++) passende Frameworks mit denen sich Spiele programmieren lassen. Unity wird deshalb so oft empfohlen weil es einem viel Arbeit abnimmt und man schneller zum Ergebnis kommt. Wer aber wirklich von Grund auf sein Spiel schreiben will, der wird mit Unity nicht glücklich.
kleincodiert.at
Deine Seite für den schnellen Einstieg in C++, C# und Java

Superwayne

Treue Seele

Beiträge: 246

Beruf: Student & App Entwickler (Xamarin)

  • Private Nachricht senden

3

31.01.2017, 16:49

Moin und willkommen im Forum!

Also in Unity brauchst du kein eigenes Grundgerüst. Meistens schreibst du nur Skripte, die dann an ein GameObject "drangehängt" werden. Im Skript werden bestimmte Methoden vom System automatisch aufgerufen (z.B. Update in jedem Frame oder OnCollisionEnter wenn zwei Objekte zusammenstoßen). Du brauchst also z.B. keine Physikberechnungen selbst machen, das nimmt die Engine dir ab.
Du bist allerdings nicht auf Skripte beschränkt, du kannst auch ganz normal Klassen erstellen und von deinen Skripten aus aufrufen.

Ob es sinnvoll ist, musst du für dich selbst entscheiden. Wenn es dir darum geht, deine Spieleidee selbst oder im kleinen Team in annehmbarer Zeit umzusetzen, dann ist eine Engine wie Unity oder Unreal gut geeignet. In deinem Fall besonders Unity, da der Umstieg von Java auf C# leichter ist als auf C++. Wenn es dir um den Lernprozess geht, wirst du ohne Engine vermutlich mehr davon haben, aber dafür brauchst du für das gleiche Ergebnis dann (sehr?) viel länger.

Eine Engine ist nicht zwingend erforderlich, besonders nicht für kleine Spiele. Z.B. findet bei uns in der Hochschule jedes Semester eine GameDevWeek statt. Dort wird innerhalb einer Woche ohne Engine mit 10-20 Leuten ein Spiel in Java entwickelt. Dabei wird eine existierende Codebase verwendet, die bereits grundlegene Logic für ein Entity-Component-System enthält. Es ist also, wie Wirago bereits schrieb, auch kein Problem mit Java ein Spiel zu entwickeln.

Renegade

Treue Seele

Beiträge: 385

Wohnort: Berlin

Beruf: Certified Unity Developer

  • Private Nachricht senden

4

31.01.2017, 16:49

Hey Fogel,

Willkommen im Forum!

1. Unity verwendet eine reguläre Programmiersprache (C#, typisiert und objektorientiert) womit der Anwender Skripte erzeugen kann. (JavaScript wird aufgrund der geringen Verwendung in Unity stetig aber konstant weg rationalisiert.) Die Aussage das "einfach nur geskripted wird" ist also nicht richtig. Die Engine bietet viele nette, vorgefertierte Stilmittel, begrenzt dich jedoch aber nicht, solltest du gewisse komplexe Probleme anders lösen wollen. Mit regulären Klassen, Schnittstellen, Properties, Delegate und so weiter. Die Annahme man benötige kein Grundgerüst im Sinne einer sinnvollen Architektur/Aufbau führt in vielen Unity Projekten leider zum heillosen Chaos. Nicht minder aufgrund von Unwissen und dem Defizit an professionellen Quellen und Ressourcen (Auch von offizieller Seite imo, obwohl Unity eine ausgezeichnete Dokumentation besitzt).
2. Verwende was dir Spaß macht und dich voran bringt. Wenn du im Studium viel mit Java arbeiten musst, lohnt es sich sicherlich auch dort sein Wissen mit bestehenden Engines zu vertiefen. Ein Blick über den Horizont lohnt sich aber dennoch alle mal, denn Unity ist aktuell die führende Engine am Markt. So oder so, es gibt kein "richtigen" Weg. Fang einfach an und hab Spaß :)

PS: Ich weiß klingt doof, aber: Wir haben solche und ähnliche Fragen hier eigentlich im wöchentlichen Kanon. Wenn du die Suchfunktion verwendest, wirst du zu diesem Thema reichlich Infos finden.
Liebe Grüße,
René

Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von »Renegade« (31.01.2017, 17:15)


5

31.01.2017, 17:22

hah! also ersma, danke für die nette Begrüßung und die vielen Antworten in so kurzer Zeit :D

Ich bin vom Studium nicht an Java gebunden, das hab ich nur erwähnt um zu zeigen das ich wenigstens vom Programmieren an sich schon ein ganz kleines bisschen Plan habe^^
C# habe ich mir bereits angesehen und kann mir gut vorstellen das zu lernen, im Endeffekt geht es mir nur darum Routine im programmieren zu bekommen und irgendwann auch meine größeren Ideen umzusetzen!
Wenn ich mir die Antworten so ansehe ist es aber wohl relativ egal ob ich mit Unity anfange oder mit c# von Grund auf etwas aufbaue, Routine im Programmieren werde ich so oder so sammeln.

Mein aktueller Plan wäre es, mit einem Sidescroller anzufangen und diesen in c# zu schreiben. Ob ich den allerdings mit Unity baue oder komplett selbst bin ich mir noch nicht sicher, darüber muss ich nochmal schlafen :D

Aber hier schönmal ein riesen Danke, ich denke man liest sich sicher noch öfter :)
Mfg Fogel

Werbeanzeige