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

1

09.03.2014, 15:45

Bin in einer Sackgasse in Sachen Spieleentwicklung

Hallo liebe Forenmitglieder! Ich muss hier mal meine Sorgen ausleeren... vielleicht bringen mich eure Antworten auf frische Gedanken :)

Nach vielen Jahren, indem ich dieses und jenes in der Spieleentwicklung ausprobiert habe, beschleicht mich irgendwie das Gefühl, dass ich nie ein Spiel auf die Beine bekommen werde.

Warum? Ich vermute einfach die Verunsicherung, welche Plattform mit längerfristig erhalten und erfolgreich bleibt, das Fehlen von wirklich guten Tutorials zu bestimmten Technologien und auch mein im Endeffekt benachteiligender Einstieg in die Spieleentwicklung mit Blitz3D.

1. Die Verunsicherung
Welche Plattform ist in 5 Jahren noch erfolgreich? Ich will nicht heute anfangen zu entwickeln, in 2 Jahren fertig werden, und dann kann es niemand mehr spielen. 2003 hat man lange Zeit auf DX9 und Windows setzen können. Da war der Markt aber im Gegensatz zu heute unglaublich langweilig.
Windows und DirectX missfallen mir schon aus dem Grund, dass sie absolut unportabel sind (Spielereien wie WINE mal ausgeschlossen). Die Entwicklung von Microsoft macht mir auch Angst. Herumgeschwampel bei Windows, merkwürdige Deals mit Nokia. Fühlt sich so an als ob ich auf einem Jenga-Turm baue. Aktuell wird XP irrelevant und damit wohl auch DX9 immer mehr (zumal technisch auch schon veraltet).
Von allen Plattformen scheint mir Android noch am zukunftssichersten zu sein. Java ist "high-levellig" genug, sodass ich nicht mehr mit Pointern rumhantieren muss. OpenGL ES 2 wird unterstützt. Damit bin ich näher an der Portabilität als mit DirectX-COM. Die Stores sind eine super Veröffentlichungsplattform. Sicherlich binde ich mich da an Google. Aber das ist mir noch lieber als good old Microsoft mit seinen unabsehbaren Kurswechseln in Sachen Entwicklungstechnik.

2. Gute Tutorials fehlen - oder ich bin zu blöd
Ich habe jetzt schon einige Tutorials durchgelesen. Viele sind schnell hingeschmiert, schreiben sich schnell eine nicht weiter erläuterte Hilfsklasse ("die macht das dann automatisch" ist meist das einzige was man dazu liest) und benutzen die durchgehend. Ich möchte aber lernen, wie ich es selber hinbekomme, from Scratch. Und diese Hilfsklassen will ich garnicht benutzen, sondern im Laufe der Entwicklung selber sehen, wo ich was wie auslagere. Ich habe sicherlich meine eigenen Vorstellungen von einer Engine.
Bei anderen habe ich ständig den Eindruck, dass die Vorgehensweise ineffizient ist. Es werden zumindest Code-Abschnitte überhaupt nicht vernünftig erklärt, sondern nur drumherum gesagt, was zu machen ist, was ich eh schon weiß. Aber der Code selber wirft immer wieder Fragen auf, warum dies und das und jenes so gemacht wird und nicht anders. Muss ich z.B. alle Devices durchlaufen und deren Auflösungen wie es Tutorials ja gerne in Lektion 1 machen oder reicht es heute nicht einfach die Auto-Parameter zu nutzen und den Rechner diese Arbeit zu überlassen?

3. Dummer Start in die Spieleentwicklung
Ich hab vor 10 Jahren mal mit Blitz3D angefangen, schnell Spiele zu schreiben. Das ist eine simple Basic-Sprache, nicht objekt-orientiert, die mit eigenem Compiler ruckzuck ein DirectX 7 basiertes Spiel zusammenbastelt. Die meisten meiner Spiele sind nie ganz fertig geworden, aber im Gegensatz zu meinen anderen Versuchen selber eine Engine zu basteln, sah ich (deutlich!) mehr als nur ein Dreieck mit unterschiedlich farbigen Vektoren.
Natürlich ist B3D technisch völlig überrundet und ich wollte auch meine vielen Kenntnisse und Erfahrungen in einer "echten" Programmiersprache wie C# nutzen um Spiele besser zu strukturieren (OOP!!!) und zu verwirklichen. Nur wie gesagt haben mich die Techniken die mit C# möglich sind, nie überzeugt. Deswegen blieb nur Java als Ausweg.
Ganz schrecklich finde ich, mich an andere Entwickler und Engines zu heften, vor allem Unity. Das ist zwar alles schön, gut und beeindruckend was die Engine kann. Aber ich will selber programmieren und allerhöchstens von der darunterliegenden Technik abhängig sein, aber nicht von Software-Engines.

Fazit für mich?
Blitz3D - maßlos veraltet. War ein netter Einstieg für'n Kind, aber mehr auch nicht
Windows - vertraue ich nicht mehr, zu unkomfortabel, unportabel, altmodisch, nicht zukunftssicher (höchstens im Desktop-Bereich).
mobile Entwicklung - sicher das Target für die nächsten 5 Jahre. Gute Veröffentlichungsmethoden über Stores. Android hat Java als hübsche Programmiersprache. Mir fehlt nur ein vernünftiges Tutorial. Hat da jemand was?

MitgliedXYZ

Alter Hase

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

2

09.03.2014, 16:45

Nimm doch eine Engine wie Unity, Spiele die du damit programmierst laufen auf den verschiedensten Systemen, ich gehe davon aus, dass dieses Programm auch weiterhin fleißig aktualisiert wird. Unity ist ja zurzeit sehr verbreitet, sollte sich bald eine komplett neue Plattform eröffnen, denke ich, dass dann dafür jedenfalls auch Exportmöglichkeiten bestehen werden.

3

09.03.2014, 20:26

Mir scheint Du steckst in einer Paralyse durch Analyse/"analysis paralysis". Ich fürchte dagegen hilft nur sich dessen gewahr werden und einfach anzufangen. Dieser Artikel hier http://gamasutra.com/blogs/AdrielWallick…Many_Things.php könnte Dir auch einige gute Anstöße geben.

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

4

09.03.2014, 20:51

Ich würde mir an deiner Stelle weniger Gedanken um den Markt machen. Programmiere einfach das Spiel, das du machen willst, auf der Plattform und mit der Sprache, mit der du dich am wohlsten fühlst. Du bist ja keine große Firma, die langfristig darauf schauen muss, wie sich der Markt entwickeln könnte und ob Windows für Spieler relevant bleibt. Deine Spiele werden vmtl. sowieso erst einmal nur sehr wenige Leute spielen. Die Wahrscheinlichkeit dass ein großer Hit vom Himmel fällt ist sehr gering.

Unity bietet dir denke ich gute Möglichkeiten dich schnell mit C# vertraut zu machen und gute Ergebnisse zu erzielen. Daher würde ich es auch empfehlen. Vor allem wirst du damit auch ruck zuck mehr als ein Dreieck sehen und vllt. sogar ein Spiel fertig bekommen. Tutorials (häufig aber leider nur Video-Tutorials) gibt es zu Unity auch wie Sand am Meer.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

5

10.03.2014, 23:04

Wie bereits geschrieben wurde, machst du dir bei weitem zu viele Gedanken um die Plattform, als um dein eigentliches Spiel. Wenn du dein Spiel nicht mal fertig bekommst, ist es vollkommen egal, ob du es mit C#, Java, JavaScript, Python, C++, UnrealScript o. ä. nicht fertig gestellt hast.
Solltest du ein Spiel ausreichend weit entwickelt haben und sich dann erst rausstellen, dass die verwendete Technologie schlechter als eine bestimmte andere ist, hat eine Portierung i. d. R. einen deutlich geringeren Aufwand zur Folge, als wenn das Spiel von 0 auf mit dieser Technologie begonnen wurde. Statt also zu viel Energie in die Suche einer zukunftssicheren Technologie zu investieren, solltest du diese lieber in das Spiel stecken.

An der Stelle könnte juice it or lose it ganz interessant sein:

Vielleicht wäre es ganz gut, statt eines 2 Jahre dauernden Projekts ein Projekt zu starten, welches nur 1 oder 2 Monate dauert, entsprechend kleiner ist, dafür aber auch ein enormes Polishing (wie im Video demonstriert) erhält.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

11.03.2014, 07:23

Ich möchte aber lernen, wie ich es selber hinbekomme, from Scratch.
Löblich, aber mit diesem Ansatz wirst Du in der heutigen Zeit einfach nicht mehr fertig. Das war früher vielleicht noch ok, da war die erforderliche Komplexität von Spielen aber auch eine ganz andere. Sei froh darüber, dass es heute schon vieles vorgefertigt gibt und benutze das. Wenn das Spiel fertig ist, kannst Du Dir immer noch mal anschauen, wie man gewisse Dinge "selber macht". Bis dahin: Make games, not engines.
Einfache Beispiele:
XML-Bibliothek. Jeder weiß, wie XML aussieht. Wozu eine Lib schreiben, die XML parsen kann, wenn es schon tausende Libs gibt, die das besser und sicherer schon können.
HTTP-Bibliothek. Siehe oben. Klar ist es nett zu wissen, wie HTTP funktioniert. Alle Enden aber richtig abdecken zu wollen ist Quatsch. Vernünftige Libs in der Richtung entstehen über Jahre hinweg. Den Overhead sollte man sich sparen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BlueCobold« (11.03.2014, 07:32)


7

12.03.2014, 22:22

Heyho, danke für die vielen Antworten.

Okay, ich hab mir jetzt doch ein DX11 Tutorial rausgesucht, was mir wirklich umfassender und dennoch nicht unnötig langatmig in unwichtigen Teilen (die man größtenteils ja eh schon kennt) und zu kurzatmig in komplizierten Teilen geworden ist. Auch wenn manchmal ein paar Schreibfehler drin sind, ist es ganz gut. Vielleicht liest man auch wegen der Schreibfehler genauer, denn die kann man mit einfacher Logik selber korrigieren (sind aber auch nicht so viel): http://www.braynzarsoft.net/index.php?p=DX11Lessons
Musste mir nur erstmal ein vernünftiges Stylish-Design für die Seite basteln... warum die DX-Tutorial-Websites immer alle schwarz mit Bananenfont sein müssen, verstehe niemand :)

Es stimmt schon dass eine Engine mehr als nur _ein_ Arsch voll Arbeit wäre. Aber ich fühle mich (fast schon wie bei der Benutzung von XML-Libs die einem das Parsen übernehmen) immer unzufrieden, selbst wenn am Ende was tolles rauskommt. Bin mehr derjenige, der Spaß unter der Haube findet, und wenn dabei ein Spiel am Ende bei rauskommt, ist dass doch ein nettes i-Tüpfelchen und die Bezeugung davon dass man was unter der Haube verstanden hat.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

8

12.03.2014, 22:25

Die Frage ist einfach ob du damit Geld verdienen möchtest. Wenn ja solltest du dir dieses Vorgehen aus den Kopf schlagen. Wenn nicht kannst du das machen was dir Spaß macht.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

XxXRichiXxX

Frischling

Beiträge: 44

Wohnort: Sachsen

  • Private Nachricht senden

9

12.03.2014, 22:52

Hey, ich kann dir für Java thenewboston empfehlen. Habe damit selber den einstieg in Java eig. ganz leicht hinbekommen und bin später dann zu LibGDX gewechselt.

10

17.03.2014, 22:54

Nachdem ich nun schon fast die Hälfte der Tutorials von braynzar gelesen habe, kann ich sie nur weiterempfehlen.

Nebenbei übersetze ich sie auch in C# mit SharpDX, was erstaunlich einfach ist. Und wenn mir C++ am Ende doch noch zu Kopf steigt (wobei ich das nicht mehr glaube, da ich doch sicherer drin bin als selbst eingeschätzt), kann ich immer noch bei C# weitermachen ;)

Performance-technisch ist C# bei den Schrulli-Tutorial-Apps zwar so ca. 12% langsamer auf meinem Rechner (7000 Frames zu 6000), aber das ist absolut verkraftbar, und bei den Lehr-Tutorials auch kein wirklich ernst nehmbares Maß :D (Zumal man im Normalbetrieb seine Grafikkarte sowieso nicht mit fehlender Frame-Limitierung grillen sollte ;) )

Werbeanzeige