Wie muss ich vorgehen, wenn ich eine Open-World in 2D programmieren will?

CarltonSmith  20.08.2020, 21:42

Was ist dein Vorwissen? In welchen Sprachen programmierst du und was habt ihr in der Vergangenheit im Unterricht gemacht bzw. was hast du schon so programmiert?

SamuelJob 
Fragesteller
 20.08.2020, 21:46

@CartlonSmith: Viel vorwissen habe ich nicht, ich habe ein bisschen mit HTML, CSS und ganz wenig mit Java gearbeitet, es ist eher für die nahe Zukunft gedacht.

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

1) Ziel definieren

Wie bei jeder guten Projektplanung sollte die Anforderungsanalyse einen der ersten Schritte darstellen. In der Spiele-Entwicklung redet man hier auch vom Anlegen des Game Concepts.

Du hast bisher nur ein grobes Ziel vorgegeben (2D Open World für PC, später für weitere Plattformen), aber das reicht ja noch lange nicht, um irgendwo konkreter eintauchen und Ressourcen suchen zu können.

Lies hier, denn ich habe nun schon etliche Male viel über dieses Thema geschrieben:

2) Ziel eingrenzen

Du weißt selbst, dass du nicht so viel Zeit für dieses Projekt hast und dir wage wohl noch einiges an Wissen fehlen wird. Das heißt, du wirst für vieles, was du umsetzen möchtest, lange brauchen und du wirst Fehler machen (das ist ganz normal). Das Gleiche gilt vermutlich für deinen Partner und generell die Teamarbeit zwischen euch. Bevor man gut miteinander arbeiten kann, bedarf es viel Abstimmung, hinzu kommen Meinungsverschiedenheiten, technische Probleme (eure Arbeit darf sich ja nicht überschneiden / gegenseitig behindern), etc..

In dem Sinne wäre es sehr sinnvoll, wenn ihr eurer Ziel zunächst eingrenzt. Im Hinblick auf das Spiel, auf Basisfunktionalitäten. Statt einer Open World würde ich zunächst nur einen Spielabschnitt erstellen (z.B. ein Dorf mit 3-4 Häusern, 4-5 Charakteren, 2-3 Quests; oder vielleicht ein roguelike-Spiel?). Bereits damit werdet ihr erst einmal genug zutun haben. Zielplattform Windows OS - völlig ausreichend.

Ein Problem, an dem Projekte oft scheitern, ist die Überforderung des Projektteams. Ideen lassen sich leicht finden, es muss aber umsetzbar sein. Priorisiert daher eure Ideenliste. Basisfunktionalitäten (key features) sind von größerer Bedeutung. Nicht alles muss sofort perfekt aussehen. Wenn ihr anfangs nur Blöcke (statt richtige Sprites) über die Karte schiebt, ist das vorerst ausreichend.

3) Ressourcenplanung

Ein paar gute Leitsätze: Baut auf dem, was ihr könnt und erfindet das Rad nicht neu.

Da du nach deinen Angaben mit HTML, CSS und Java schon etwas gemacht hast, wäre es sinnvoll, Tools (Game Engines/Frameworks) zu verwenden, die mit den selben Techniken arbeiten oder zumindest mit ähnlichen Techniken.

Mir fallen da bspw. folgende ein:

  • Eines dieser Java-Tools für die Spiele-Entwicklung (wobei ich in dem Fall wohl zu libGDX, FXGL, der LITIEngine oder der jMonkeyEngine raten würde)
  • Felgo (arbeitet mit QML, einer z.T. CSS-ähnlichen Sprache)
  • Unity (verwendet C#)

Ansonsten - ganz klar - gibt es noch etliche andere Lösungen, bei denen du aber unter Umständen dich mit neuen Sprachen beschäftigen müsstest (auch wenn es deswegen nicht unbedingt schwer ist). Browser-Spiele mit JavaScript wären da eine Möglichkeit (siehe Phaser, CraftyJS oder melonJS) oder ein Spiel mit Godot und GDScript.

Bei den meisten der genannten Tools sollte es später auch möglich sein, diese auf verschiedene Plattformen (wie Android oder iOS) zu bringen (was keine Selbstverständlichkeit ist!). Bei einem Browser-Spiel wäre es natürlich am einfachsten.

Schau sie dir einfach alle einmal an. Meist kannst du unter Gallery/Showcases bereits implementierte Beispielprojekte finden (die zudem als Inspiration dienen können?). Bedenke aber, dass ihr bei eurem Projekt für das Grafikdesign zuständig seid. Das heißt, auch wenn du Spiele mit extrem schönen Sprites siehst oder andersherum Spiele mit extrem hässlichen Assets, bedeutet das nicht, dass euer Spiel genauso aussehen muss.

Bezüglich der Erstellung von Grafiken fasse ich mich sehr kurz:

  • Mit Sprites und Tilemaps beschäftigen, Sprite Editor suchen oder Sprite Animationen mit Blender erstellen (Beispiel)
  • An einer Auswahl guter Bildbearbeitungssoftware wird es nicht mangeln: Adobe (Photoshop / Illustrator / After Effects), Gimp, Krita, o.a.
  • Auf einer Seite wie DeviantArt findest du auch Künstler, die bereits Sprites, individuelle Pinselmuster, Texturen, u.ä. erstellt haben. Sie können dir möglicherweise Tipps geben.

Auf Audio-, Leveldesign und Weiteres gehe ich nicht ein. Zu all solchen Themen kann man Bücher schreiben (und dementsprechend gibt es bereits Literatur).

4) Weitere Vorbereitung (nur auf die Programmierung bezogen)

Grundkenntnisse in Java/C#/JavaScript/... solltest du dir am besten zuerst aneignen, bevor du damit beginnst, drauflos zu spurten. Das heißt (grob mit dem Daumen gepeilt), du solltest wissen, wie man Arrays befüllt, wie sich Verzweigungen von Schleifen unterscheiden und wie man Code objektorientiert strukturieren kann.

Links zu Lernquellen und Tipps findest du bereits auf GF zuhauf, entsprechende Fragen werden gefühltermaßen fast jeden Tag gestellt und beantwortet.

Für das gemeinsame Arbeiten im Team solltet ihr euch noch überlegen, wie ihr vorgehen wollt. Lies dazu hier: Wie geht man an ein riesiges Projekt ran?

SamuelJob 
Fragesteller
 21.08.2020, 17:34

@regex9: Vielen Dank für diese sehr genaue Rückmeldung, ich weiß nun, was ich zu tun habe. Falls ich es mit meinem Partner mache, wird er glaube ich sich eher an mir richten und meine "Anweisungen" befolgen, da er fast keine Kenntnisse von gar nichts hat.

Ich wollte eigentlich ein Spiel erstellen, in der man in der freien Welt als Spartiat rumlaufen kann und Lager "looten" sowie Atchener bekämpfen. Als Bossfights wollte ich machen, dass man auf einem großem Schlachtfeld gegen die Athener kämpft, um das Land zu gewinnen, solange bis man die ganze Map hat und den Endfight "Athen" gemeistert hat. Man kann auch söldner einstellen, welche einem im Kampf dabei helfen.

Bogen und weiter Waffen wie Dolche, Schwerter, Speere ect. kann man durch Raids, looten oder bei Händlern und Schmieden erlangen.

Eine große Story wollte ich eigentlich nicht machen, da es nicht so dazu passt, denn ich will das man das Spiel ohne lange zwischensequenzen durchspielen kann.

Später wollte ich eine In-App-Payment funktion einbringen, wo man sich mit Geld verschiedenste Materialien, Waffen usw. kaufen kann. Dies wollte ich nur einbringen, um sich mit dem Geldsystem vertraut zu machen, denn ich möchte später eine Lehre als Informatiker Applikatioinsentwicklung machen, da wäre so ein Projekt doch was gutes dazu.

Ich danke dir nochmals für deine Antwort.

0

Um dir zu helfen, müssen wir wissen, ob du das Spiel für das Handy machen willst oder Computer ect. Dann geht drauf an, welche Sprache du lernst, bzw. lernen willst.

Willst du Android Spiel machen, dann benötigst du Java.

Oder du machst es in Unity 3D, da kannst du 2D und 3D Spiele machen, für jede Anwendungen(Handy/Computer/Ps4...) Dafür musst du C# lernen. geht drauf an, was du in zukunft noch machen willst. Würde mit Java machen, was etwas schwieriger ist, aber da kannst du noch andere Apps programmieren und sogar andere Programmiersprachen....

Woher ich das weiß:Berufserfahrung
codinghelp  20.08.2020, 22:00

Was hast du bloß mit deinem Java? Alles von dir beschriebene geht nicht nur mit Java, und für ein Spiel ist Java schon gar nicht die beste Wahl

1
wer113  20.08.2020, 22:04
@codinghelp

Mit Java kannst du auch Spiele programmieren für Handy und Destop. Wenn man Java beherscht, kann man nicht nur Spiele programmieren. Mit C# kann man in Unity 3 D 2d und 3d spiele programmieren, was einfacher ist, um spiele zu entwickeln. Das kann man gegensatz zu Java für alle Plattforme kompilieren....

0
codinghelp  20.08.2020, 22:06
@wer113

Wie schon gesagt, das geht nicht nur mit Java. Und wie du richtig erkannt hast würde hier Unity und C# mehr Sinn machen

0
wer113  20.08.2020, 22:12
@codinghelp

Das muss er entscheiden, mit Unity 3D kann man nur Spiele programmieren. Wenn er nur Spiele programmieren möchte, dann würde ich sagen, er bleibt dei Unity. Aber wenn er irgendwann Apps oder Programme programmieren möchte, dann empfehle ich Java. Damit lässt es auch programmieren. Jenachdem was er geplant hat. Man sollte nicht einmal so und dann mal so machen. Man muss sich entscheiden und seine Fähigkeit darinen auszubauen....

1
wer113  20.08.2020, 22:24
@codinghelp

Aber nicht für Android Apps. Was ist wenn er diese 2D open World für Android machen möchte und später normale Apps für Android, dann wird es nur mit Java oder Kotlin gehen. Wenn man Java kann, kann man Pc anwendungen programmieren, sowie 2d und 3d Spiele für Pc und Android. Kann man überhaubt mit c# Android programmieren? Davon habe ich nie gehört....

0

Wenn man noch nicht so viel Erfahrung hat sollte man sich an etwas einfacheres wagen...

SamuelJob 
Fragesteller
 20.08.2020, 21:42

@codinghelp: Du hast völlig recht, aber ich brauche erstmal einen Einstiegspunkt und möchte mich dann in diese Richtung wagen. Ich will es nur wissen wenn es dann so weit ist, denn ich beschäftige mich momentan immer mehr mit dem programmieren und will mich die nächsten Tage mit C++ oder C# vertraut machen. Welche Sprache wäre besser zu erlernen?

1
hanzzdieter  20.08.2020, 21:47
@codinghelp

Was ein Schwachsinn! C++ ist definitiv die überlegene Sprache.

Ich hoffe, ich konnte dir helfen. Beste Grüße

Hans Dieter

1
SamuelJob 
Fragesteller
 20.08.2020, 21:50
@hanzzdieter

Ist C# nicht einfacher als C++ für den Einstieg? Später dann aber doch C++.

1
codinghelp  20.08.2020, 21:51
@hanzzdieter
  1. Ist das wohl für jeden Anwendungszweck verschieden
  2. Ist C# einfacher zu lernen
  3. Ist Unity eine gute Engine für sein Vorhaben, und dafür braucht er C#
  4. Redest du hier einfach nur Schwachsinn
0
codinghelp  20.08.2020, 21:52
@SamuelJob

Doch, und die Sprache hat viel mehr Einsatzgebiete als C++ und ist für die Zukunft hilfreicher!

0
hanzzdieter  20.08.2020, 21:54
@SamuelJob

Sicherlich. Aber von Unity halte ich gelinde gesagt nicht viel. Außerdem lernst du in Kombination mit Unity nicht wirklich C# sondern tippst (vermutlich) nur unity-spezifische Befehle aus dem Internet ab.

Mit C++ kannst du von Grund auf arbeiten und es gibt viele Grafik- und Spielebibliotheken, die mehr auf einem 'programmierbasierten' Ansatz beruhen und nicht wie Unity größtenteils in einem grafischen Editor gearbeitet wird.

Aber du hast Recht, direkt mit C++ einzusteigen ist ambitioniert. Generell ist es wohl ambitioniert mit der Spieleprogrammierung einzusteigen. Ich empfehle, mindestens eine Woche kleine Kommandozeilenprogramme zu entwickeln (klassische Anfängeraufgaben eben) um einen Einstieg in die Sprache und die zugrundeliegenden Logiken zu bekommen.

Ich hoffe, ich konnte dir helfen. Beste Grüße

Hans Dieter

1
hanzzdieter  20.08.2020, 21:56
@codinghelp

Nun, auf Punkt 4 will ich gar nicht eingehen. Punkt 2 geht an dich, zu Punkt 1 muss man aber sagen, dass C++ die deutlich flexiblere Sprache ist.

Und zu Punkt 3: Naja, Unity würde ich für keinen Zweck als gute engine bezeichnen.

Ich hoffe, ich konnte dir helfen. Beste Grüße

Hans Dieter

0
codinghelp  20.08.2020, 21:59
@hanzzdieter

flexibel nützt hier aber nix... Schön, dass du C++ so toll findest, aber es ist nicht immer die beste Wahl. Und auch wenn es dafür Grafikbibliotheken gibt, ist es wohl immernoch wesentlich mehr Aufwand als eine Engine zu benutzen. Und ja, es gibt die Unreal Engine, aber die ist auch komplizierter als Unity.

0
hanzzdieter  20.08.2020, 22:02
@codinghelp

Es gibt viele weitere Engines. Und wie ich bereits sagte, ein Einstieg in die Programmierung mit Unity ist meiner Meinung nach zu vermeiden.

Ich hoffe, ich konnte dir helfen. Beste Grüße

Hans Dieter

0
regex9  21.08.2020, 02:05
@SamuelJob

Mit C++ brauchst du dich heutzutage nicht mehr beschäftigen, um ein Spiel zu entwickeln. Es sei denn, du legst es unbedingt darauf an, mit Tools arbeiten zu wollen, die mit C++ arbeiten (z.B. SFML). Wenn dein Interesse darin liegt, eigene Basistools entwickeln zu wollen (z.B. eine eigene Physics- oder Graphics Engine), würde sich C++ anbieten. Allerdings entfernst du dich so womöglich mehr von deinem Ziel. Der Aufwand bis zum Open World-Spiel würde jedenfalls nochmal gewaltig steigen.

An sich würde ich von C++ abraten, da diese Sprache ziemlich komplex und mit einer steilen Lernkurve gesegnet ist. Es wäre ein weiterer Mehraufwand.

Ich würde dir eher dazu raten, ein bereits vorhandenes Spiele-Framework / eine Game Engine herauszusuchen, die bestenfalls für die Formulierung der Spiellogik Scripting erlaubt (ein paar Beispiele habe ich in meiner Antwort ja bereits benannt). Die Programmiersprachen, die da also eingesetzt werden, sind leichter zu lernen und fokussieren sich mehr auf das Wesentliche.

Plane jedenfalls im Voraus, mit welchen Ressourcen du arbeiten möchtest, bevor du wild draufloslernst.

2
SamuelJob 
Fragesteller
 21.08.2020, 12:23
@hanzzdieter

Vielen Dank, ich werde mich mal mit den Grundaufgaben vertraut machen und später vielleicht mit einem einfachem Jump n' Run Spiel beginnen.

0
SamuelJob 
Fragesteller
 21.08.2020, 12:31
@regex9

@regex9: Vielen Dank für deine Hilfe. Aber eine Frage hätte ich noch; Unity ist ja so eine Engine in der ich nur noch einige weitere codes einfügen muss. Gibt es da noch andere Engines die du mir empfelen würdest? Und wie lerne ich dann die Sprache dort, mit Tutorials aus YouTube oder schon von den Entwicklern gemachte Tutorials?

1
SamuelJob 
Fragesteller
 21.08.2020, 12:34
@hanzzdieter

Hallo @hanzzdieter: Welche Engine sollte ich dann brauchen? Und kann ich mit UE4 2d Spiele programmieren? Wie kann ich dann eigene Grafiken erstellen?

0
SamuelJob 
Fragesteller
 21.08.2020, 12:36
@regex9

@regex9: Wie genau arbeitet man mit SFML?

0
regex9  21.08.2020, 15:33
@SamuelJob

Siehe in meiner Antwort.

Und wie lerne ich dann die Sprache dort, mit Tutorials aus YouTube oder schon von den Entwicklern gemachte Tutorials?

Beides ist möglich, wobei vom Entwickler produzierte oder empfohlene Ressourcen in der Regel vertrauenswürdiger sind. Zudem gibt es oft gute Literatur.

Zu C#: Die Sprache wurde von Microsoft entwickelt. Für Lernressourcen siehe hier.

Einige Engines verwenden selbst entwickelte Sprachen, zu denen also eine Referenz nur auf der Entwicklerseite verfügbar ist. Andere wiederum nutzen bereits bestehende (C#, JavaScript, Lua, ...).

Und kann ich mit UE4 2d Spiele programmieren?

Ja. Dafür gibt es auch ein eigen integriertes System (Paper 2D). Der Fokus von Unreal liegt dennoch überwiegend auf 3D.

Wie genau arbeitet man mit SFML?

Herunterladen, einbinden und die verfügbaren Funktionen nutzen (zum Zeichnen von einfachen Formen, Einbinden von Audio, u.ä.). Auf der offiziellen Entwicklerseite gibt es entsprechend Tutorials.

3

Ich sehe jetzt den Unterschied zwischen einem Endlosrunner und einem Open-World-2D-Spiel nicht, aber das kann auch daran liegen, dass ich nun schon etwas älter bin.

Tatsächlich denke ich, dass du dich mit deinem Projekt gehörig übernimmst.

Um deine Frage zu beantworten musst du jedoch einige Rückfragen beantworten:

1. Auf welcher Plattform soll das Spiel laufen? (Mobil/PC/welche Betriebssysteme)

2. Willst du wirklich alles selbst machen? Bzw wie definierst du "alles selbst programmieren"? Willst du low-level Grafik-Rendering programmieren oder auf einer sog. Engine aufbauen und nur die Spiellogik selbst implementieren?

Ich hoffe, ich konnte dir helfen. Beste Grüße

Hans Dieter

Woher ich das weiß:eigene Erfahrung
SamuelJob 
Fragesteller
 20.08.2020, 21:59

@hanzzdieter: Das Spiel sollte erstmal auf dem PC laufen, später jedoch wollte ich es auch noch auf das Handy in einer einfacheren Version herausbringen /Windows 10/iOS/Android.

Ich denke, dass ich es vielleicht mit einem Freund von mir versuchen werde, damit einer vielleicht das Grafische und der andere das programmieren übernehmen kann.

Ja, ich dachte an ein low-level rendering und ich dachte ich würde alles selber (oder mit einem Freund) programmieren, denn ich weiß nicht, ob es zu einfach wäre, eine schon bestehende Basis zu nehmen und einfach nur zu erweitern.

Der Unterschied zwischen einem Endlosrunner und einem Open-World spiel ist, dass ein Endlosrunner eine meist zufälliggenerierte Strecke hat und meistens aus der Seitenansicht ist. In einem Open-World basiertem Spiel ist man in einer Selbstgemachten Welt und kann sich frei bewegen und gehen, wohin man will, dass ist auch mein anreiz dafür.

Vielen Dank!

0
hanzzdieter  20.08.2020, 22:08
@SamuelJob

Hui, da hast du dir gut was vorgenommen.

Leider gibt es hier zwei gegenläufige Effekte: Low-level-Programmierung ist zu einem gewissen Grad sehr Betriebssystemabhängig. Natürlich kann man hier (relativ) schnell abstrahieren und eine Betriebssystemunabhängige Basis schaffen, doch gerade als Anfänger ist das ein sehr gewagtes Unterfangen.

Wenn du wirklich low-level arbeiten willst gibt es DirectX (Windows-spezifisch) und Vulkan (von mehreren Betriebssystemen unterstützt) also wohl niedrigste Grafikbibliotheken, auf denen du aufbauen kannst. Beide funktionieren mit C/C++ haben aber auch diverse Portierungen/Frontends für andere Programmiersprachen.

Ob du wirklich damit beginnen willst würde ich aber bezweifeln, allein um ein einzelnes Dreieck auf dem Bildschirm zu zeichnen musst du hier mehrere hundert Zeilen Code schreiben (zugegeben, danach geht die Entwicklung wesentlich schneller voran, aber ich finde es zeigt die zugrundeliegende Komplexität).

Vielleicht ist es interessanter, auf einer relativ low-level-Spiele-/Grafik-API aufzubauen und dafür mehr Aufwand in die Spiellogik zu stecken oder beispielsweise Elemente in der Welt programmatisch zu generieren, statt die Arbeit in vergleichsweise wenig ertragreiche rendering-Techniken zu investieren.

Ich hoffe, ich konnte dir helfen. Beste Grüße

Hans Dieter

0
SamuelJob 
Fragesteller
 21.08.2020, 12:45
@hanzzdieter

@hanzzdieter: Vielen Dank für deine Hilfe! ich denke die zweite Option ist wirklich besser für mich alleine aus dem Grund dass ich noch fast keinerlei Erfahrung damit habe. Hast du vielleicht eine Engine die du mir Empfehlen würdest, speziell für 2d und mit einer Funktion grössere Landflächen zu bauen (mit eigenen Pixeln/Grafik)?

0

Eine frage, was ist ein "2D" open world game? Also wie soll das in 2d funktionieren???

SamuelJob 
Fragesteller
 20.08.2020, 21:43

Ich dachte dabei an eine Art wie RPG, nur dass man sich frei in der Welt bewegen und kleine Lager, ect. erkunden kann. Ein kleines Assassins Creed Odyssey in 2d.

0
Rodi05  20.08.2020, 21:45
@SamuelJob

Meinst du mit 2d, dass es wie mario von der seite ist, oder kann man dann auch wie bei AC odyssey die kamera bewegen?

0
SamuelJob 
Fragesteller
 20.08.2020, 21:49
@Rodi05

Eher von oben aus der "Vogelperspektive" mit einem System wie bei "The Survivalists" oder "The Escapists". Ob sich die Kamera bewegen lässt, muss ich noch schauen ob es nötig ist.

0
SamuelJob 
Fragesteller
 21.08.2020, 12:32
@Rodi05

Vorgesehen sind 60-70 Stunden Zeit in der Schule, aber ich werde natürlich auch zuhause daran Arbeite und deutlich mehr Zeit investieren.

0
regex9  21.08.2020, 15:39
@SamuelJob

Das sind 2.5-3d. Dein Vorhaben ist extrem überdimensioniert, egal ob du zu Hause noch daran arbeiten möchtest oder nicht.

Mit dem Jump'n Run bist du auf jeden Fall besser beraten, obwohl auch das in dieser Zeit und ohne Kenntnisse nicht ohne Reduktion schaffbar sein wird.

2
SamuelJob 
Fragesteller
 21.08.2020, 17:39
@regex9

Wenn ich jedoch ein Simpleres System hätte, und die Landscape nicht so abwechslungsreich wäre, sprich STRG "c" STRG "v" und ich nur einzelne Orte selber designen würde, wäre es dann nicht machbar?

Zuhause würde ich dann noch viel mehr daran Arbeiten, quasi einen Großteil meiner Freizeit dazu investieren, damit das Projekt rechtzeitig fertig wird.

0
regex9  21.08.2020, 22:35
@SamuelJob

Das Problem ist: Bereits der Lernaufwand für die Grundtechnologien übersteigt eigentlich die drei Tage locker. Auf diesen Zeitberg oben drauf kommen noch:

  • die Planungsphase (die keinesfalls übersprungen werden sollte, andernfalls dauert es noch länger und geht auch eher schief)
  • etliche Recherche-Stunden für allerlei Kleinkram (für Materialbeschaffung, wegen irgendwelchen Fehlern, für die Umsetzung bestimmter Effekte, usw.)
  • viel Team-Kommunikation
  • die Umsetzungsphase selbst
  • eine Testphase
  • Dokumentation (und sei sie nur für deinen Lehrer)

Und an sich ist das ja auch nicht der Sinn der Projektarbeit, dich vollkommen (und wenn nur zeitlich) zu übernehmen.

Ich würde dir eher raten: Beginne in deiner Freizeit mit dem Lernen einer Programmiersprache und probiere dich, sobald du die ersten Grundlagen kennst, vorerst an kleinen Minispielen (Pong, Snake, Pacman; lies für weitere Tipps dazu hier). Solltest du mit Java arbeiten wollen, würde ich dir für den Einstieg Processing empfehlen. Im Falle von JavaScript / Browsergames, wäre p5.js eine ziemlich gute Wahl.

Für dein Schulprojekt baust du ein Jump'n Run, auf dass du dich quasi nun als erstes Teilziel vorbereitest.

Dein Open World-Projekt kannst du dann auch irgendwann einmal starten, doch besser gänzlich in der Freizeit, außerhalb des Schulprojekts.

1
SamuelJob 
Fragesteller
 21.08.2020, 23:26
@regex9

@regex9: Okay, ich werde mich mit kleinem zuerst vertraut machen, ich fange jetzt an C# zu lernen. Das Projekt fangen wir eher später an, ich hoffe das ich bis dahin alle Grundlagen verstehe und gut arbeiten kann. Ich schaue dann mal, ob meine Leistungen bis dahin immer noch einem Jump n' Run entsprechen oder ich etwas grösseres machen kann, vielleicht nicht gerade ein Open-World-Spiel.

Noch eine letzte Frage hätte ich: Welche Engine( welches Programm soll ich benutzen, wenn ich C# beherrsche? Ich habe gehört Unity wäre gut, aber ich denke du kennst sicher etwas besseres, oder soll ich eine Schon bestehende Basis nehmen und darauf ein Spiel bauen mit nicht allzu viel Programmieren?

Vielen Dank für deine antworten!

0
SamuelJob 
Fragesteller
 21.08.2020, 23:28
@regex9

Aber ich gebe dir recht, ich habe wohl ein zu großes ziel vor Augen

0
regex9  22.08.2020, 00:28
@SamuelJob

Unity wäre keine schlechte Wahl, denn die Engine ist sehr populär (daher findest du schnell Support und diverse Tutorials), hat einen 2D-Projektmodus und dein Produkt kann später auf verschiedene Plattformen gebracht werden. Hinsichtlich der späteren Veröffentlichung solltest du dich aber noch mit dem Lizenzmodell auseinandersetzen (das gilt übrigens für jedes Tool, welches du nutzt).

Wenn nicht Unity, wäre noch Duality ziemlich bekannt. Das Tool ist (anders als Unity) gänzlich auf die 2D-Entwicklung fokussiert und recht einstiegsfreundlich / erweiterbar / komfortabel aufgebaut.

Monogame würde ich nicht in der Liste aufnehmen, da dieses Tool wohl nicht so einstiegsfreundlich zu werten ist, wie Unity oder Duality. Es hat keinen eigenen Editor und macht (so wie ich es bisher gehört habe) zusammen mit Visual Studio 2019 eher Probleme. Ich möchte es nur benennen, da es mit zu den populären Entwicklungstools für C# gehört.

Interessant hingegen (aber das ist gerade mehr eine subjektive Sicht) könnte noch die FlatRedBall Engine sein. Sie baut auf MonoGame auf, ist wie Duality nur auf 2D fokussiert und scheint gut dokumentiert zu sein.

0