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
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Prometheus« (06.02.2020, 22:38)
Direkt gesagt, welche Programmiersprachen und Programme benötige ich eurer Ansicht nach, ist meine Vorauswahl passend?
In Bezug auf die (Tile-)Map taucht aber die Frage auf: benötige ich Unity, oder ist das überdimensioniert? Das Tilemap-Manual von Unity sieht sehr verständlich aus. Aber ich habe auch Anleitungen gefunden die vermuten lassen, das es ohne extra Engine gehen kann.
An dieser Stelle kommt Java als Option in Spiel - sollte ich statt Phyton (oder C/C#) besser gleich Java benutzen/erlernen?
Allerdings war zu lesen, das Java für Android-Apps nochmal passend Quellcode benötigt (falls eine mobile App entstehen soll). Auf sowas würde ich gern verzichten.
Zu lesen war aber auch, das Java nicht mehr so verbreitet ist.
JavaScript brauche ich nicht soweit ich informiert bin, ausgenommen vllt. wenn ein Chat implementiert werden soll. (Oder liege ich falsch, in Bezug auf ein Online-Spiel?) Weiterhin benötige ich HTML und CSS (Website) für die Darstellung im Browser, und PHP (?)(Daten/Verbindung zum Server).
Zudem fände ich eine Sprache gut, die es erlaubt, Stücke des Codes ggf. zu ändern, ohne "alles" neu schreiben zu müssen.
Entweder wird zu C/C# oder Java geraten, aber Python wird auch oft empfohlen, besonders für Anfänger. Ich vermute, entschiedend könnte sein, das ich keine Desktop-Anwendung oder Smartphone-App erstellen will, sondern ein Online-Spiel, ggf. (M)MO. Da wird auch die Sicherheitsarchitektur wichtig, vermute ich.
1/ Python oder Java? (Oder C/C#/andere wenn ich ganz falsch liege), und warum genau, was wäre entscheidend? Wenn dann Java, bloß kein Python!
2/ Brauche ich eine Engine wie Unity (oder nicht) für eine 2D Tilemap + 2D Objekte, und wenn, warum? Nein!
3/ habe ich etwas vergessen/übersehen, das notwenig ist, vor allem Anfangs?
4/ Mache ich einen grundsätzlichen Denkfehler? (abgesehen von der Ambition ein komplexeres Spiel anzustreben, es werden erstmal lediglich Einzel-Experimente) Probier dich einfach aus, du wirst schon relativ schnell merken, wo deine Grenzen liegen und wo du dich noch weiterbilden musst.
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »JuKu« (14.02.2020, 17:02)
Es wird mir nicht so ganz ersichtlich was du eigentlich machen willst. Hier mal ein paar Punkte die du dir überlegen solltest in Bezug auf die Wahl der Programmiersprache:
Was ist das Spiel?
Für ersteres eignen sich Java und C# und Python. Ich würde C# empfehlen, weil du Unity benutzen könntest wenn du möchtest. Musst du aber nicht.
- Eine Applikation, wie man es von AAA Titeln kennt
- Ein Spiel, das über den Browser läuft
Für zweiteres musst du eigentlich JavaScript, PHP und HTML lernen. Es gibt theoretisch noch andere Möglichkeiten, aber diese sind entweder Nischenlösungen, zu komplex, oder schlicht veraltet. Mit JavaScript, PHP, HTML fährst du hier einfach am sichersten.
Mit welchem Gerät soll der Spieler das Spiel spielen?
Je nachdem welche Platformen du wählst, wirst du eine oder sogar mehrere Sprachen wählen müssen. Oder du lässt die Erstellung der Spieldatei von z.B. Unity oder einem anderen System übernehmen. Dann muss das Spiel aber auch natürlich mit Unity und C# entwickelt sein bzw. das entsprechende Equivalent für das System das du nutzt.
- Windows PC
- Android Smartphone
- IPhone
- MacOS
- XBox
- PS4
- Switch
Gute Morgen,
Wow. Mir fehlen gerade etwas die Worte. Ersten, weil es verdammt viel Text ist, zweitens weil du dein Projekt auf 10-15 Jahre festlegst. Es sind verdammt viele Techniken, welche du da reinpacken willst. Also bewegst du dich im Grunde auf Tripple-A - Niveau was die Features angeht.
Versteh mich bitte nicht falsch, aber wenn du noch nicht mal die Frage nach der Engine und der Sprache für dich geklärt hast, und das ist in diesem Fall kein Luxusproblem weil dir alle bestens vertraut sind und du dich nicht entscheiden kannst, solltest du kleiner Anfangen. Nichts ist schlimmer als ein fehlendes Erfolgserlebnis.
Aber ja, es geht mich nichts an! Behalte das aber im Hinterkopf.
Ich habe vor ca. 12 Monaten die gleichen Fragen im Kopf gehabt. Wie habe ich mich entschieden?
1. Welche Programmiersprache ist verbreitet und welche Engine gibt es. Zur Auswahl standen Unity, Unreal, Godot.
- C++ - der Klassiker. Unheimlich potent. Wenn du schwache Hardware hast und das letzte bisschen Performance rausquetschen musst bist du hier richtig.Es gibt viele Quellen und Tutorials und in Kombination mit Unreal Engine sehr geil. Bei der UE wären auch noch die Blaupausen (Visual Script) zu erwähnen. Das macht den einstieg zwar nicht leichter, aber eine schöne Möglichkeit um Prototypen von Funktionen oder Spielmodi zu erstellen.
Problem: Relativ schwer zu lernen da sehr komplex
- C# - gehört zur C-Familie, gut zu erlernen. Ich nutze es in Kombination mit Unity Engine. Sehr viele Quellen und Tutorials online verfügbar. Nicht so potent wie C++, aber deutlich einfacher zu handeln. Um Sachen wie Speicherverwaltung brauchst du dir um Grunde kaum sorgen machen.
- GD-Script - Python sehr ähnlich. Wird von der Godot Engine genutzt. Relativ einfach zu erlernen. Als einzigen Negativpunkt sehe ich hier, dass man damit wirklich an Godot gebunden ist. Auch wenn die Engine in den letzten Jahren sehr große Fortschritte gemacht hat. Alternativ kannst du auch mit C# in Godot arbeiten. Bislang gibt es "wenig" Dokumentation und Tutorials, verglichen mit den Anderen Sprachen.
2. Welche Engine sollte ich nehmen. Ersten, finger weg von Lumberyard oder CryEngine(ist im Grunde das selbe). Sehr Potent, aber wenig Tutorials. Einarbeitung sehr zeit intensiv dadurch. Welche Gesichtspunkte gibt es noch?
- Tutorials - Sehr viele für Unity, viele für Unreal, relativ wenige für Godot.
- Asset-Store - wenn du nicht jedes Bitmap einzeln erstellen willst würde ich auch den Asset-Store achten. Dort bekommst du vorgefertigte Soundfiles, Animationen, Modelle, Texturen und teilweise ganze Templates von Spielen. Also das Grundgerüst deines RTS-Spiels zu beispiel. Letzteres erspart sehr viel Arbeit da die Grundfunktionen schon vorgefertigt sind. Kostet dich aber viel Zeit, da du erst einmal durch die Programmierung durchsteigen musst. Je nach Stil des Programmierers sehr anstrengend.
Zum Abschluss pflichte ich meinem Vorredner bei. Ich habe mich für Unity und C# entschieden. Unity ist im Grunde kostenlos (außer du verdienst mehr als 100.000 Dollar im Jahr damit) bietet sehr viele Tutorials auf Youtube und Kurse auf beispielsweise Udemy. Es gibt viele kostenlose Assets welche dir dutzende Stunden arbeit einsparen. Die Programmiersprache C# ist gut zu lernen und der Umstieg auf eine andere C-Sprache ist relativ einfach.
Und jetzt nochmal ein Tipp in eigener Sache:
Egal was du treibst. Programmieren ist das A und O. Lerne es also Vernünftig. Ich habe viele Wochen verschenkt, da ich Problemorientiert gelernt habe. Also nur das aktuell gewünschte Feature schnell auf Youtube gepaukt und dann weiter. Das fliegt dir ganz schnell um die Ohren. Da kannst du nur hoffen, dass nach der nächsten CodeZeile alles noch funktioniert. Irgendwann ist dein Code geprägt vom Stil 30 verschiedener Programmierer. Das endet zum Schluss in einer Katastrophe.
Also, schnapp dir Unity, Lerne C#. Gehe auf Udemy und hole dir folgende Kurse:
C# Einsteiger - deutsch - Janik Pruin - Sehr kompetenter Dozent.
The Ultimate Guide to Game Developament with Unity 2019 - englisch - Unity zertifiziert. Danach solltest du alle Grundlagen haben.
The Unity C# Survival Guide - englisch - Unity zertifiziert. Ein Kurs der viele Dinge in Bezug auf professionelles Programmieren erklärt und neue Techniken zeigt. Eher zum Nachschlagen gedacht.
Und nein ich erhalte keine Kohle dafür. Aber das waren die 3 Kurse, welche mich am schnellsten voran gebracht haben. Die Kurse sind im Rabatt so mit 9.- - 20.- Euro zu haben. Rabatt gibt es gefühlt jede Woche. Also nicht von Preisen wie 199.- Euro abschrecken lassen.
Viel Text. So habe ich es gemacht. Wie du es machst ist dein Ding. Fall du fragen hast, schick einfach eine Nachricht.
Direkt gesagt, welche Programmiersprachen und Programme benötige ich eurer Ansicht nach, ist meine Vorauswahl passend?
Python würde ich auf gar keinen Fall (!) verwenden, das ist eine Scriptsprache, die sich eher schon von der Performance her überhaupt nicht für Spiele eignet.
Wenn überhaupt, dann zum Prototypen.
Einige Programmiersprachen wurden hier ja schon genannt.
C++ wäre wohl die beste Wahl (performanteste), aber ist extrem schwer zu lernen.
Deshalb würde ich an deiner Stelle bei Java bleiben und mir die Library libGDX anschauen.
Wenn du Fragen dazu hast, schreib mir einfach eine PN.
Du kannst auch Unity verwenden - aber dann lernst du weniger programmieren und mehr scripten. Und eine Game Engine ist meist auch in gewisser Hinsicht beschränkt und schränkt dich somit ein. Des Weiteren ist die Performance von Unity vermutlich deutlich schlechter, als wenn du es selbst programmierst.
Am besten realisierst du das ganze als Open Source Projekt, dann können auch gleich andere von dir lernen - und du selbst kannst von den Entwicklern lernen, die deinen Source Code anschauen.
In Bezug auf die (Tile-)Map taucht aber die Frage auf: benötige ich Unity, oder ist das überdimensioniert? Das Tilemap-Manual von Unity sieht sehr verständlich aus. Aber ich habe auch Anleitungen gefunden die vermuten lassen, das es ohne extra Engine gehen kann.
Du brauchst dafür keine Game Engine o.ä.
Als guter, kostenloser Editor eignet sich auch Tiled. Du musst die Tiles nur irgendwie parsen. Dafür hat libGDX aber schon was mit an Board.
An dieser Stelle kommt Java als Option in Spiel - sollte ich statt Phyton (oder C/C#) besser gleich Java benutzen/erlernen?
Für deinen speziellen Fall eher ja.
Java ist vergleichsweise einfach zu lernen und nicht so Hardware-nah wie C / C++.
Wenn du nicht so viel Ahnung von Hardware-naher Programmierung hast, kannst du als Anfänger mit C / C++ sonst schnell verzweifeln, weil da auch Sachen Plattform-abhängig sind.
Allerdings war zu lesen, das Java für Android-Apps nochmal passend Quellcode benötigt (falls eine mobile App entstehen soll). Auf sowas würde ich gern verzichten.
Soll es denn eine Android App werden? Oder besser eine Desktop App?
An deiner Stelle würde ich erstmal bei einem von beiden anfangen. Am besten eine Desktop App, das ist einfacher, als sich noch mit den grafischen Limitierungen unter Android auseinanderzusetzen.
Zu lesen war aber auch, das Java nicht mehr so verbreitet ist.
Das ist Schwachsinn!
Java ist nach wie vor die Nummer 1 unter den Programmiersprachen:
https://jaxenter.de/redmonk-pypl-tiobe-r…vergleich-69108
JavaScript brauche ich nicht soweit ich informiert bin, ausgenommen vllt. wenn ein Chat implementiert werden soll. (Oder liege ich falsch, in Bezug auf ein Online-Spiel?) Weiterhin benötige ich HTML und CSS (Website) für die Darstellung im Browser, und PHP (?)(Daten/Verbindung zum Server).
Soll es denn ein Browsergame werden?
Wenn nicht, brauchst du nichts von den genannten Dingen für eine Android oder Desktop Applikation.
Zudem fände ich eine Sprache gut, die es erlaubt, Stücke des Codes ggf. zu ändern, ohne "alles" neu schreiben zu müssen.
Diese Anforderung erfüllen fast alle Programmiersprachen.
Lediglich bei Python muss man manchmal Einrückungen aufwendig korrigieren.
Entweder wird zu C/C# oder Java geraten, aber Python wird auch oft empfohlen, besonders für Anfänger. Ich vermute, entschiedend könnte sein, das ich keine Desktop-Anwendung oder Smartphone-App erstellen will, sondern ein Online-Spiel, ggf. (M)MO. Da wird auch die Sicherheitsarchitektur wichtig, vermute ich.
Siehe oben. Willst du denn ein Browsergame erstellen?
1/ Python oder Java? (Oder C/C#/andere wenn ich ganz falsch liege), und warum genau, was wäre entscheidend? Wenn dann Java, bloß kein Python!
2/ Brauche ich eine Engine wie Unity (oder nicht) für eine 2D Tilemap + 2D Objekte, und wenn, warum? Nein!
3/ habe ich etwas vergessen/übersehen, das notwenig ist, vor allem Anfangs?
4/ Mache ich einen grundsätzlichen Denkfehler? (abgesehen von der Ambition ein komplexeres Spiel anzustreben, es werden erstmal lediglich Einzel-Experimente) Probier dich einfach aus, du wirst schon relativ schnell merken, wo deine Grenzen liegen und wo du dich noch weiterbilden musst.
Antworten fett im Text.
Am besten baust du ganz am Anfang erstmal was einfaches.
Einen Super Mario Klon oder so. Jump'n'Run Spiele eignen sich ganz gut für den Einstieg, finde ich.
EDIT:
Es gibt noch eine weitere Möglichkeit, wie du schneller zu deinem Ziel gelangst - du könntest dich einem anderen Projekt anschließen!
Scheinbar kannst du ja Grafiken erstellen, eignest dich also als Grafiker.
Damit könntest du dich ziemlich gut bei anderen Projekten mit einbringen.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Prometheus« (22.04.2020, 13:33)
@Nox
Das man mit Python auch große Sachen machen kann, beweisen YouTube oder EVE Online.
Zitat
Ist für die Spieler abzusehen, dass sich in einem bestimmten Sonnensystem zu einer bestimmten Zeit sehr viele Spieler aufhalten werden, z. B. bei einer verabredeten Weltraumschlacht, haben sie die Möglichkeit, dies an CCP zu melden, es wird dann versucht, dieses Sonnensystem zu dem definierten Zeitpunkt auf einem eigenen physikalischen Host laufen zu lassen, sodass die Spielerfahrung für die Spieler möglichst störungsfrei abläuft.
Zitat
Mangelnde Spielleistung, Lag
Die Server geraten bisweilen an die Grenze ihrer Leistungsfähigkeit (Lag). Dabei macht sich negativ bemerkbar, dass alle Spieler denselben Servercluster benutzen. Spieltechnisch wird dies dadurch umgangen, dass die Spielgeschwindigkeit durch Zeitdilatation auf bis zu 10 % reduziert wird, um zumindest den Spielfluss zu erhalten.
Ob dann Java oder Python noch einen Unterschied in der theoretischen Geschindigkeit machen? Was mir an Java erstmal geeigneter vorkommt, waren z.B. die Servlets, denn die Hauptlast wäre bei einem Browsergame nicht im Browser/Client, sondern konzentriert auf dem Server, und dafür scheint Java gut geeignet.
Zu Java und den JDK's
Sollte ich mich doch noch umentscheiden, dann, weil die Sache mit Java recht kompliziert erscheint was die Lizenz für die kommerzielle Nutzung betrifft. Es gibt zwar viele freie JDK's, aber alles was da so dranhängt ist erstmal unübersichtlich, weil ich nicht genau weiß womit ich es zu tun bekomme.
Ich suche (wenn möglich) ein JDK, das ich kostenlos nutzen kann (zumindest für die Entwicklung), aber später kommerziell nutzen darf (ggf. auch kostenpflichtig) ->> ohne den Quellcode veröffentlichen zu müssen.
Vorerst bin ich an AdoptOpenJDK + HotSpot hängen geblieben, den JDK's von IBM, SAP, BellSoft usw. scheint mir in eine ganz andere Richtung zu gehen.
Allerdings würde ich auch gern direkt bei Oracle bleiben, bzw. das OpenJDK nutzen.
Zitat
Ohne es genauer recherchiert zu haben:
Soweit ich weiß, ist weder YouTube, noch EVE Online in Python geschrieben.
Das würde mich auch sehr wundern.
Zitat von »"https://en.wikipedia.org/wiki/YouTube"«
Written in Python (core/API),[3] C (through CPython), C++, Java (through Guice platform),[4][5] Go,[6] JavaScript (UI)
Werbeanzeige