Welche Sprache und Tools eignen sich für die Entwicklung von Linux-Spielen? [geschlossen]

7

Ich möchte etwas über die Spieleentwicklung lernen und dies unter Linux tun. Meine Haupterfahrung war mit Java und ein bisschen C ++, aber das war für Anwendungen und nicht für Spiele.

Jetzt, da ich es mit Spielen versuchen möchte, frage ich mich, welche IDE / Sprache ich unter Linux verwenden soll, ob ich zu Beginn mit C ++ arbeiten und Dateien manuell kompilieren oder vielleicht mit Java / Eclipse fortfahren soll, auch ich denke, ich kann benutze Eclipse mit C ++, ich habe auch angefangen über Python zu lesen ...

Ich habe mit dem typischen "Tetris" angefangen, um zu verstehen, wie ein Spiel intern funktioniert, und ich denke, ich kann das mit allen vorherigen Optionen erreichen, aber was empfehlen Sie mir oder wie haben Sie mit der Spieleentwicklung unter Linux begonnen?

oli206
quelle
1
Ich würde nicht mit Tetris anfangen, es ist etwas komplizierter als Sie denken. Ich würde mit einem einfachen Pong-Spiel beginnen. Fügen Sie Punkte und KI hinzu und machen Sie es langsam komplizierter. Dann starten Sie vielleicht ein Tetris-ähnliches Spiel.
AttackingHobo
Ich glaube nicht, dass es einen großen Unterschied zwischen Linux und anderen Entwicklungsplattformen gibt. Sie vermissen C # und .NET, wenn Sie Mono nicht verwenden, aber dies passiert auch auf dem Mac.
Die kommunistische Ente
Mit Mono können Sie C # und andere .NET-Sprachen unter Linux und Mac verwenden.
Kaitlyn Mcmordie

Antworten:

4

Wenn Sie noch nie zuvor Spiele programmiert haben, sollten Sie wahrscheinlich mit 2D beginnen. SDL ist eine ziemlich einfache Bibliothek mit schönen Bindungen für C ++. Sie können jeden beliebigen Editor / jede beliebige IDE verwenden, aber ich bin ein großer Fan von Code :: -Blöcken.

Es gibt endlich einige nette Spiel-Engines für Java (Java Monkey Engine), aber Java stört manchmal. Ich mag Java (ich habe es jahrelang unterrichtet), aber es scheint mir als Spielentwicklungsumgebung immer etwas klobig zu sein.

Ich bin ein großer Fan von Python und pyGame. (PyGame ist einfach SDL mit Bindungen für Python.) Sie können ziemlich schnell ein wirklich schönes 2D-Spiel erstellen. Python ist recht einfach zu erlernen und lässt Sie sich eher auf die Spielprogrammierung als auf Speicher- und Zeigerprobleme konzentrieren. Es ist wahr, dass Python-Code nicht ganz so schnell ist wie nativ kompilierter C ++ - Code, aber er ist mehr als schnell genug, und das einfachere Codieren und Debuggen wird den Unterschied oft ausgleichen. Wenn Sie einen kritischen Abschnitt finden, den Python einfach nicht verarbeiten kann, können Sie diesen Abschnitt in C / C ++ schreiben und als Modul verwenden.

Ich unterrichte eine Spieleentwicklungsklasse und habe mehrmals die Sprache gewechselt. Ich bin sehr zufrieden mit Python als Sprache, mit der ich die Spieleentwicklung unterrichten kann.

Viel Glück für Sie.

Zwei pi
quelle
1

In Bezug auf C ++ ist QtCreator eine sehr coole IDE . Unter Linux besteht die Möglichkeit, dass Qt bereits in Ihrem System vorhanden ist, wenn Sie KDE-Anwendungen installiert haben, auch wenn Gnome ausgeführt wird.

Wenn Sie andere Skriptsprachen für einfache Spiele ausprobieren möchten, habe ich mit Löve2D , einer Spiel-Engine für Lua, eine sehr angenehme Erfahrung gemacht . Es ist sehr einfach, in kürzester Zeit Spaß zu haben.

CeeJay
quelle
Neben Love2D gibt es auch ein Javascript-basiertes Derivat namens LoV8, das einen Blick wert sein könnte. code.google.com/p/lov8
Stephen Belanger
1

Wenn Sie leistungsstarke Echtzeitspiele erstellen oder in die professionelle Spieleentwicklung einsteigen möchten, sind derzeit nur C oder C ++ praktische Sprachoptionen.

Dies liegt daran, dass a) sie mit geringem Speicherplatz schnellen und effizienten Code erstellen können (viele Hochsprachen bieten Ihnen nicht die Möglichkeit, die Speicherzuordnung explizit zu steuern, was es schwierig macht, die Cache-Nutzung zu optimieren oder Daten in den begrenzten verwendeten Speicher einzupassen von vielen Systemen). b) Dies sind die Industriestandards, die von der überwiegenden Mehrheit der AAA-Spiele verwendet werden. Besonders C ++, obwohl die Sprachen ziemlich ähnlich sind (wenn es darum geht, wie sie sowieso in der Spieleentwicklung verwendet werden).

Für ein Framework würde ich empfehlen, OpenGL zu lernen. Es ist vielleicht etwas komplizierter als einige Systeme, aber es ist sehr leistungsfähig und weit verbreitet, und Ihr Wissen kann von Pong bis Unreal reichen. Es gibt viele gute Tutorials, googeln Sie einfach nach 'OpenGL Tutorial'.

Um die Sache etwas einfacher zu machen, können Sie ein OpenGL-Wrapper-Framework verwenden (ich empfehle GLFW - http://www.glfw.org/ - obwohl GLUT auch beliebt ist).

Versuchen Sie so weit wie möglich, den Code selbst zu schreiben, anstatt sich auf vorgefertigte Frameworks zu verlassen. Auf diese Weise lernen Sie die Grundlagen von Spielaktualisierungsschleifen, Eingabeverarbeitung, Rendering usw. kennen. Dadurch können Sie später detailliertere Projekte erstellen.


quelle
1

Ich halte Linux an sich für eine ziemlich nette Entwicklungsumgebung. Die meisten Distributionen bieten alles, was Sie zum Entwickeln von c / c ++ - Apps benötigen. Investieren Sie einfach etwas Zeit in das Erlernen von gcc, gdb, vim und eines anständigen Build-Systems wie Make, CMake oder Scons.

Wenn Sie c / c ++ verwenden, ist SDL in Bezug auf die Bibliothek ein guter Ausgangspunkt - da Sie eine Vielzahl von Tutorials dafür finden. Für Python fand ich, dass Pyglet eine ausgezeichnete Bibliothek ist, obwohl ich es seit 2 Jahren nicht mehr benutzt habe. Denken Sie daran, dass die Bereitstellung einer Python-App nicht "so" einfach ist.

thbusch
quelle
1

Sie sollten auf jeden Fall mit C ++ gehen. Wenn Sie es verwenden, erhalten Sie Zugriff auf die meisten Bibliotheken. Je nachdem, was Ihr Projekt ist, erhalten Sie eine gute Flexibilität und Leistung.

Ein guter Anfang sind die SDL- Tutorials von LazyFoo . Sie können für eine Vielzahl verschiedener Projekte verwendet werden, sind jedoch auf jeder Fähigkeitsstufe leicht zu verstehen.

Shawn Buckley
quelle
1

Ich benutze vim und kann es nur empfehlen - es ist ein sehr leistungsfähiger Texteditor, mit dem Sie schnell Code schreiben können. Es hat jedoch eine ziemlich steile Lernkurve (führen Sie nach der Installation 'vimtutor' aus, um einen kurzen Überblick zu erhalten). Ich benutze es jetzt seit 8 Jahren und konnte mir nicht vorstellen, etwas anderes zu verwenden.

Ich würde auch vorschlagen, nicht sofort in eine IDE zu springen. Nach meiner Erfahrung sind IDEs klobig und stören (insbesondere beim Konfigurieren eines neuen Projekts). Ich habe Eclipse / CDT beibehalten, da es als Debugger unverzichtbar ist.

Wenn Sie C ++ Erfahrung haben, würde ich dabei bleiben. Wie andere bereits erwähnt haben, ist SDL ein guter Einstieg - Sie können dort nichts falsch machen.

Tetris war das erste Spiel, das ich gemacht habe und ist wahrscheinlich kein schlechter Weg, aber Sie könnten auch so etwas wie einen 2D-Plattformer oder ein 2D-Top-Down-Abenteuerspiel in Betracht ziehen.

notlesh
quelle
Ich bin verwirrt ... wissen Sie, warum Leute Linux oft als Wahl für die Spieleentwicklung verwenden?
Kaitlyn Mcmordie
1
So wie ich das sehe, wurde Linux von Programmierern für Programmierer entwickelt. Windows wurde von Nicht-Programmierern für Neulinge entwickelt. Linux steckt voller Tools, mit denen Programmierer produktiver arbeiten können. Nach meiner Erfahrung wird Linux jedoch nur sehr selten von Spieleentwicklern verwendet.
Notlesh
Hmmm, warum wird es dann nicht wirklich von Spieleentwicklern verwendet?
Kaitlyn Mcmordie
0

Wenn Sie C ++ verwenden möchten, kann ich KDevelop4 nur empfehlen. Sie haben viele Verbesserungen vorgenommen, die es zu einer sehr guten IDE machen. Schnapp dir SFML oder SDL und hacke.

Ich empfehle auch gute alte Vim oder Emacs für jede Sprache.

Wenn Sie jedoch nur Code eingeben möchten, können Sie Python + PyGame ausprobieren. Sie können einfache Spiele sehr schnell zum Laufen bringen und benötigen keine ausgefallene IDE.

Ich habe sie nicht angeschaut, aber es sieht so aus, als ob Ruby auch eine Reihe von Frameworks hat, die Sie ausprobieren können, wenn Sie Ruby lernen möchten.

grau verblassen
quelle
0

Ich würde jMonkeyEngine dringend empfehlen wenn Sie über Java-Kenntnisse verfügen - es ist eine sehr gute Open-Source-3D-Spiel-Engine für allgemeine Zwecke.

Es ist vollständig plattformübergreifend (alles, was es wirklich braucht, ist OpenGL-Unterstützung und eine JVM), läuft also unter Linux, behält aber auch die Portabilität auf Windows oder Mac usw. bei.

mikera
quelle