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

cFx

Frischling

  • »cFx« ist der Autor dieses Themas
  • Private Nachricht senden

1

15.11.2015, 20:24

Einstieg in die Spieleentwicklung

Hey zusammen,
Ich beschäftige mich schon seit längerer Zeit mit dem Programmieren und wusste leider bis dato noch nie so richtig in welcher Schiene ich eigentlich landen möchte,nach längerem hin und her habe ich mich aber doch für die Spielentwicklung entschieden.Nun hab ich dazu ein paar Fragen, da ich momentan auch vor der Entscheidung stehe,mit welcher Engine/Bibliothek ich in die Spielentwicklung einsteige. Ich hole zZ mein Abitur nach und strebe danach auch an, berufsmäßig in die Spielentwicklung zu gehen und möchte mir vorab aber schon selbst was beibringen und auf die Beine stellen, und wenn es nur kleinere Projekte sind =>
Die letzten Monate habe ich mich mit C# theoretisch beschäftigt und möchte dies nun an kleineren Projekten umsetzen und verbessern können, da Unity C# unterstützt und für Anfänger empfohlen wird (macht jedenfalls durchs Googlen den Eindruck) wäre das momentan die Engine, mit der ich mich beschäftigen würde.

Welche Bibliotheken/Engines könnt ihr Anfängern empfehlen, die in erster Linie entwickeln wollen um dabei effektiv die Programmier Kenntnisse zu verbessern?
Ist C# eine gute Basis für die Spielentwicklung als Anfänger? Oder sollte man doch lieber mit C++ seine ersten Projekte realisieren? Sollte man erstmal die Basics im 2D-Bereich erlernen oder würde man die gleiche Lern-Kurve im 3D-Bereich erreichen?Welche Seiten könnt ihr für Asset-Downloads empfehlen? (Sprites, 3D-Assets)

Da ich auch neben dem Programmieren gerne erlernen möchte Assets zu erstellen, wäre meine nächste Frage ... sollte man das Zeichnen/Artwork erlernen bevor man sich mit dem 3D Modelling beschäftigt? Oder direkt mit 3D Modelling durchstarten? Ich denke, dass Design/Kunst eigentlich einen guten Ausgleich zum Programmieren darstellt =)


Und meine letzte Frage:


Was sollte man für Spiele programmieren können, bzw. welche Kenntnisse sollte man haben, um sich an erste Community-Projekte ran zu wagen? Also was muss ich können um mein erstes Projekt mit einem anderen Entwickler/3D Artist anzufangen und auf welchen Seiten kann man Gleichgesinnte für gemeinsame Non-Profit-Projekte finden?

Ich würde mich über ein paar Antworten freuen
mfg

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

15.11.2015, 20:45

Wenn du wirklich berufsmäßig in die Spieleentwicklung willst, solltest du imo unbedingt C++ lernen. Ich würde sogar so weit gehen, zu sagen, dass jeder, der berufsmäßig generell irgendwas mit Programmieren zu tun haben will, C++ beherrschen sollte (und ich meine wirklich beherrschen und nicht nur einmal ein klein wenig was damit gemacht zu haben). Für alles weitere verlinke ich dich einfach mal nach hier: https://www.spieleprogrammierer.de/wiki/…ammieren_lernen

Was sollte man für Spiele programmieren können, bzw. welche Kenntnisse sollte man haben [...]

Ich weiß es klingt offensichtlich, aber ein Punkt, der oft unterschätzt wird (und ich meine das ernst), ist, dass man für's Spielepogrammieren erstmal zumindest grundlegend Programmieren können sollte... ;)

cFx

Frischling

  • »cFx« ist der Autor dieses Themas
  • Private Nachricht senden

3

16.11.2015, 10:15

Hey,

erstmal vielen Dank für deine Antwort. Habe auch leider erst heute die FAQ bei euch entdeckt. Auch die Wiki-Seite war so zentral, das ich sie irgendwie übersehen habe. Vielen Dank dafür, liest sich gut und ist recht informativ.

Ich war am überlegen, ob ich erstmal mit meinen C#-Kenntnissen hobbymäßig paar Sachen auf die Beine stelle, da ich ja hoffentlich im Studium dann C++ vernünftig "beigebracht" kriegen werde. C++ wird ja oft als anspruchsvolle und komplexe Sprache dargestellt. Wenn ich deine Aussage aber richtig interpretiere, sollte man sich als Spielentwickler so früh wie möglich mit C++ beschäftigen und es richtig beherrschen lernen, und das dauert ja gewiss.

Das man Programmieren können sollte ist mir bewusst, nur wächst man ja mit seinen Projekten und Erfahrungen und ich glaube eine eigene Physik-Engine zu entwickeln ist bestimmt schwer und herausfordernd, aber nicht unbedingt nötig, um in einem kleineren Team Hobby-Projekte zu realisieren. Also muss ich ja auch bei C++ eine gewisse Must-Know-Grenze geben, aber das werd ich mit der Zeit wohl selbst heraus finden =>

Habe mir gestern Abend dann noch fix "C++ für Spielentwickler" bestellt, das wird ja des öfteren empfohlen.

Also wäre mein aktueller Weg:

- "C++ für Spielentwickler" lesen und verstehen
- Übungen vernünftig abarbeiten
- sich richtig mit SDL auseinander setzen
- C++ mit SDL üben, üben, üben und dabei mehrere kleinere Projekte umsetzen

Das sollte dann genug Stoff bis zu meinem Studium bieten, um meine Freizeit vollzupumpen =>

Also Unity und andere Konsorten erstmal vergessen und die Basics vernünftig pauken.

mfg

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

4

16.11.2015, 10:31

Wenn du wirklich berufsmäßig in die Spieleentwicklung willst, solltest du imo unbedingt C++ lernen. Ich würde sogar so weit gehen, zu sagen, dass jeder, der berufsmäßig generell irgendwas mit Programmieren zu tun haben will, C++ beherrschen sollte (und ich meine wirklich beherrschen und nicht nur einmal ein klein wenig was damit gemacht zu haben).
Und ich würde in beiden Punkten widersprechen. Was man am Ende braucht kommt ganz darauf an, was man womit machen wird. Es gibt in der Spieleentwicklung genug Unternehmen, die Spiele mit Unity entwickeln und in der normalen Softwareentwicklung gibt es auch genug, die sich auf Webtechnologien oder .Net spezialisiert haben, von Java im Enterprise-Umfeld mal ganz abgesehen.
Es ist zwar durchaus von Vorteil, sich andere Sprachen die anders funktionieren mal angeschaut zu haben, das stellt meines Erachtens aber keinen ausreichenden Grund dafür dar, dass man sich gerade C++ nicht nur mal angesehen haben, sondern dieses auch beherrschen sollte. Genauso könnte man für viele andere Sprachparadigmen argumentieren und sagen, ein Programmierer sollte unbedingt LISP oder Haskell beherrschen.
Man sollte als Programmierer aber keine Scheu davor haben, sich neue Programmiersprachen anzueignen. Am Anfang wird man sehr viel mit einer einzigen Sprache zu tun haben, weil man erst das Programmieren selbst erlernen muss, aber später sollte einem Programmierer das Erlernen weiterer Sprachen kein zu großes Problem darstellen. Das heißt: sollte man in seiner Tätigkeit nur mit bspw. C# zu tun haben und sich irgendwann ein Problem auftun, welches die Verwendung einer anderen Sprache zwingend erfordert (C++, JavaScript, ...), dann sollte man sich in diese einarbeiten können.

Was sollte man für Spiele programmieren können, bzw. welche Kenntnisse sollte man haben [...]

Ich weiß es klingt offensichtlich, aber ein Punkt, der oft unterschätzt wird (und ich meine das ernst), ist, dass man für's Spielepogrammieren erstmal zumindest grundlegend Programmieren können sollte... ;)
Dem kann ich nur zustimmen. Ob man diese Dinge nur außerhalb der Spieleentwicklung lernen kann ist eine andere Sache.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

5

16.11.2015, 10:33

Eine kleine Ergänzung:


Mit entsprechenden Quellen ist es möglich, C++ auch bereits vor dem Studium vernünftig zu lernen. Das Einsteigerbuch ist schonmal eine solide Grundlage. Du bist allerdings nicht gezwungen, mit der SDL weiterzuarbeiten - es lohnt sich natürlich. Aber du musst dir die ernsthafte Frage stellen, was du erreichen möchtest.

Ich persönlich würde dir allerdings zu einem allgemeinen C++ Buch raten, das du nach dem von Kalista durcharbeitest, und dann zu etwas , was dir Spaß macht, damit du am Ball bleibst. Du könntest beispielsweise auch in der Unreal Engine arbeiten, in der man auch in C++ entwickelt.

Zum Thema Modelling/3D:

Mit dem Zeichnen lernen ist es nicht getan. Du kannst natürlich 3D Modellierung direkt starten und versuchen, aber es wird entsprechend aussehen. Wirklich gut wirst du aber auch hier nur durch jahrelange Übung in den verschiedensten Bereichen, sei es grundlegende Anatomie / Verständnis der Welt oder eben handwerkliche Grundsätze wie dem eigenen Zeichnen von Concepts.
WIP Website: kevinheese.de

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

6

16.11.2015, 10:37

Spiele kannst du in C# genauso schreiben wie in C++ (Mono und Unity bilden hier eine solide Umgebung) aber wie oben geschrieben, wenn du ohnehin C++ verwenden wirst müssen, schadet es nicht schon mal damit anzufangen. (Kenne aber die professionelle "Spieleprogrammiererbranche" zu wenig)

Kommt aber auch drauf an welchen Bereich du in der Entwicklung belegen willst. An einem Spiel arbeiten ja viele Leute. Klassische Programmierer, Modelierer, Storywriter und und und. Nicht jeder der ein Spiel (mit)entwickelt ist ein C++ Guru ;)

cFx

Frischling

  • »cFx« ist der Autor dieses Themas
  • Private Nachricht senden

7

16.11.2015, 11:23

Zum Thema Modelling/3D:

Mit dem Zeichnen lernen ist es nicht getan. Du kannst natürlich 3D Modellierung direkt starten und versuchen, aber es wird entsprechend aussehen. Wirklich gut wirst du aber auch hier nur durch jahrelange Übung in den verschiedensten Bereichen, sei es grundlegende Anatomie / Verständnis der Welt oder eben handwerkliche Grundsätze wie dem eigenen Zeichnen von Concepts.
Das ist mir durchaus bewusst. Es geht mir momentan darum mich "sinnvoll" aufzustellen und mich für diese Branche "vorzubereiten". Ich weiß, dass man sowohl das Programmieren, als auch das Modelling nicht an einem Tag lernt und für einsetzbare Assets schon seine paar Jahre brauchen wird. Aber es ist mir lieber mich mit dem Modelling/Zeichnen nebenbei zu beschäftigen, als Abends sinnlos vor der Glotze zu sitzen =P Also beim Modelling ist der empfohlene Weg Zeichnen -> Concept -> 3D/Animation -> Assets ? Dann mach ich ja alles richtig =>

Es ist so, dass ich das ganze 3D/Concept auf einem Hobby-Level anstrebe ... um später dann in der Lage zu sein meine Ideen auch vernünftig visualisieren zu können. Ich finde nichts schlimmer, als die Vorstellung diese eine simple Idee zu haben und dann keine vernünftigen Assets zu finden, die passen =>

Das ich mit SDL nicht weiterarbeiten muss ist mir bewusst, nur denke ich über Bibliotheken lernt man wesentlich mehr, als wenn man sich zu früh an Unity/Unreal dran zu setzen. Man kann seine Probleme direkter angehen und das denke ich ist in der Lern-Phase der entscheidende Punkt. Wenn ich mir denke, das mir da ein Button/Regler Stundenlange Arbeit abnimmt, dann werde ich mir nie das nötige Know-How hinter diesem Regler aneignen können.
Ich wollte mich erstmal also spezifisch auf eine Bibliothek/Engine konzentrieren, als ständig hin und her zu hüpfen und nichts zustande zu bringen .. weil man alle paar Stunden ne tolle Funktion in einer anderen Engine findet, anstatt diese Funktion "nachzubauen". Hab das bei der Web-Entwicklung(html,css --> LESS/SASS, php, node, .NET, MySQL/Mongo/Redis) gemerkt und das gaaaaanz schlimm =D Den Fehler wollte ich eigentlich nicht wiederholen^^

Mein Ziel ist es erstmal mich vernünftig in eine Sprache einzulesen und einzuarbeiten und dann mit dieser Sprache meine Projekte anzugehen und meine Probleme zu lösen, ohne zwischen den Technologien hin und herzuspringen. Das verwirrt mehr, als es was nützt. Also denke ich ist C++ ziemlich sinnvoll, wenn ich mir das so recht überlege. Herausfordernd und schwierig bestimmt, aber sinnvoll.

Ich hab mir schon vorgenommen in die Spielentwicklung zu gehen (100% weiß man es ja erst, wenn man paar Projekte realisiert hat), speziell in den Indie-Bereich. Meine Traum-Plattformen in paar Jahren wären dann Hololens/Occulus/Xbox/PC und dafür würde ich mich jetzt am liebsten schon vorbereiten um mich sinnvoll dafür aufzustellen. Flash, Browser und Mobile Games finde ich momentan jetzt nicht so interessant und würde jetzt dafür nicht anfangen eine spezielle Sprache zu lernen(die Zukunft ist aber ungewiss, wer weiß ...).

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

8

16.11.2015, 11:32

Meine Traum-Plattformen in paar Jahren wären dann Hololens/Occulus/Xbox/PC und dafür würde ich mich jetzt am liebsten schon vorbereiten um mich sinnvoll dafür aufzustellen


Ich will dir nicht gleich den Wind aus den Segeln nehmen, aber weil du es extra erwähnst, in C++ für die XBox entwickeln zu wollen. Das ist ohne eigener developer lizenz nicht möglich. C# ist kein Problem aber bei C++ wirst du zur Kassa gebeten, und das nicht so wenig. Angeblich um low level programming zu verhindern (Sicherheit und so).

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

9

16.11.2015, 11:49

Zitat

Es ist so, dass ich das ganze 3D/Concept auf einem Hobby-Level anstrebe ... um später dann in der Lage zu sein meine Ideen auch vernünftig visualisieren zu können. Ich finde nichts schlimmer, als die Vorstellung diese eine simple Idee zu haben und dann keine vernünftigen Assets zu finden, die passen =>


Hobby-Level kann halt alles heißen. Ich kann auch "hobbytechnisch" modellieren, aber wenn ich die in den Projekten anbieten würde, an denen ich sitze, würde ich ausgelacht werden. Einfach weil Programmierung/Design schon viel zu viel Zeit in Anspruch nimmt und die Zeit nicht ausreicht, zufriedenstellend zu modellieren.
Aus Spaß kannst du das natürlich machen (so wie grundsätzlich alles), ich wollte nur verdeutlichen, dass es nicht ganz so einfach ist. Es fängt ja schon bei dem Programm an. Die meisten scheitern ja bereits an Blender selbst(hatten wir erst vor 2 Tagen jemanden), obwohl das gerade mal der Einstieg ist.

Also ich möchte dich nicht entmutigen! Ich finde es nur wichtig, zu erwähnen, dass das wirklich ein verdammt großer Haufen Arbeit ist und ein "Intensivstudium" für sich rechtfertigt, selbst für kleine Projekte Assets anzufertigen.


Zitat

Wenn ich mir denke, das mir da ein Button/Regler Stundenlange Arbeit abnimmt, dann werde ich mir nie das nötige Know-How hinter diesem Regler aneignen können.


Grundsätzlich ist der Gedanke nicht verkehrt. Aber auch hier geht es um Perspektive. Du könntest zur SDL auch sagen, dass du lieber direkt in OpenGL arbeiten sollst, sonst verstehst du die SDL nicht richtig. Und statt OpenGL solltest du lieber deine eigene Grafik-API schreiben, weil du die nicht komplett verstehst.

Die SDL ist eine großartige Lib die echt Spaß machen kann. Aber wenn du dir insgeheim sagst "Ach, eigentlich möchte ich doch lieber direkt in Unreal einsteigen" - dann mach das! Die SDL wird nicht wegrennen.
Wenn du dir entsprechende Bücher(z.B. vom Stroustrup für C++) besorgst und nicht aufhörst dich weiterzubilden spricht überhaupt nichts dagegen, mit etwas anzufangen, was man vielleicht noch nicht 100% versteht - und den Entwickler möchte ich sehen, der diese Engine wirklich zu 100% durchschaut und versteht.

Worauf ich hinausmöchte:
In deinem ersten Post steht, dass du dich monatelang theoretisch mit C# beschäftigt hast.
Das klingt für mich so, als hättest du zu viel Respekt davor. Mach das, worauf du Bock hast, aber machs! ;) Jede praktische Anwendung ist besser als reines Theoriegedöhns.
WIP Website: kevinheese.de

cFx

Frischling

  • »cFx« ist der Autor dieses Themas
  • Private Nachricht senden

10

16.11.2015, 12:30

In deinem ersten Post steht, dass du dich monatelang theoretisch mit C# beschäftigt hast.
Das klingt für mich so, als hättest du zu viel Respekt davor. Mach das, worauf du Bock hast, aber machs! Jede praktische Anwendung ist besser als reines Theoriegedöhns.
Ist eher so, dass ich bis dato wusste, das mir programmieren Spaß macht und ich es auch beruflich machen will/möchte, jedoch zu viel zwischen den Themengebieten hin- und her gesprungen bin und kein klares Ziel hatte, was ich denn eigentlich programmeirne möchte. Fing damit an eine "kleine" Datenbank-App entwickeln zu wollen, dann festgestellt ... ja doof, ich brauch ne Web-Api für die Datenbankanbindung, also mich dann mit Webdesign/Datenbanken beschäftigt und letzten Endes war das dann alles viel zu viel, was ich wissen wollte und die Ideenflut nahm ja leider auch nicht ab =P Programmiert hab ich zwar schon und hat auch funktioniert, nur bin ich in viel zu viele kleine Teilbereiche gesackt und habe mich dort festgefahren. Bei den Datenbanken mich über Mongodb und Redis informiert, nachdem ich mit MySQL rumgespielt habe, anstatt mich intensiv mit MySQL zu beschäftigen und sämtliche Foren zu meiden, wo die anderen gehyped und als "must-know" dargestellt wurden.
Ich wollte mit der Zeit gehen und deshalb natürlich bei den neusten Technologien einspringen und das wurde mir dann irgendwie zum Verhängnis.

Und nach intensiven Recherchen und Nachdenken hab ich dann doch festgestellt, das Gamedevelopment eher was für mich ist und bin jetzt hier gelandet, um es diesmal "anders und vernünftig" anzugehen. Denn auf noch so einen Wissens-Overkill-Durst hab ich nicht nochmal Lust =P Das wurde dann schon zur Sucht^^
Also lieber kleine, langsame Schritte in einem Bereich anstatt hin-und herzuhüpfen. Die Konzepte verstehen, anstatt nur anzuschneiden, weil mein Problem ja gelöst ist. Deshalb auch lieber Projekte meinem Wissenstand entsprechend durchzuführen, anstatt zu versuchen einem Ziel hinterherzujagen, und sich das nötige Wissen nur zielorientiert anzueignen.

Daher wäre meine Vorstellung auch lieber sich mit einer Sprache intensiv zu beschäftigen und mit einer Bibliothek erstmals zu arbeiten (ohne zu wechseln). Ich sehe nämlich sonst wieder kommen, das ich bei einer Hilfestellung auf zahlreiche weitere Bibliotheken verwiesen werde, mit denen ich mich dann auseinandersetzen würde, anstatt das Problem bei der Wurzel zu packen. Und da "C++ für Spielentwickler" mit SDL arbeitet und erklärt, dachte ich mir ist das eine rster sinnvoller Schritt um überhaupt mal ein PRojekt anzufangen und fertig zu stellen. Und dieses Projekt kann man dann ja innerhalb SDL immer weiter ausbauen.


Welches C++ Zusatzbuch könnte man denn noch nehmen später? Bzw. welches könnt ihr noch empfehlen?

Hobby-Level kann halt alles heißen. Ich kann auch "hobbytechnisch" modellieren, aber wenn ich die in den Projekten anbieten würde, an denen ich sitze, würde ich ausgelacht werden. Einfach weil Programmierung/Design schon viel zu viel Zeit in Anspruch nimmt und die Zeit nicht ausreicht, zufriedenstellend zu modellieren.
Das weiß ich mittlerweile =) Ist eher so, dass ich solche Assets nur für den persönlichen Gebrauch erstellen können möchte. Also um später mit meinen Scripts rumprobieren kann und bestimmte Boss-Mechaniken abstrakt testen kann. Dafür sollte man ja in der Lage sein, simple Assets erstellen zu können. (z.B. eine Höhle zu erstellen, wo a lá Indiana Jones ein ausgeklügeltes Fallensystem greift) Jetzt brauch ich ja für einen solchen Fall keine AAA Assets, sondern es reichen ja einfachste texturierte "Platzhalter" (Speere, Steinkugeln, Pfeile, etc. ). Und anstatt auf die große Google-Suche zu gehen und Assets zu finden, die dann evtl. nicht so ganz in meine Szene passen, würde ich mir diese dann lieber selber basteln. Und mit der Zeit verbessert man sich ja schließlich auch.

Erstmal vielen Dank für eure Antworten.

mfg

Werbeanzeige