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

03.08.2014, 23:55

Umsetzung eines effektiven Mapeditors und weiterer "Tools"

Liebe Programmierer und Programmierinnen!

Aktuell arbeite ich an meinen Fertigkeiten mit C/C++ in Verbindung mit SFML - 2D.
Bisher wurde ein Startmenü erstellt, ein Screenmanager und letztendlich das Framework für die Map.
Die Maps werden durch eine eigene Datei deklariert, dort befinden sich bisher Angaben für die Kollision und Sprites (32x32).

Nun zu meiner Frage, die vielleicht sogar eher eine "Glaubensfrage" sein kann / vielleicht aber mit der Motivation oder der Zeit verbunden ist.

In welcher "Sprache" sollte ein Editor bzw. Tools allgemein programmiert werden? Was bietet sich an?
Der Editor sollte in der Lage sein, mehrere Ebenen effektiv zu verwalten, Events zu installieren, Level-Übergänge zu erstellen, Partikel zu positionieren, ...

Oft höre ich, dass eine Kombination von C++ und Lua empfohlen wird.
Liegt dies daran, dass Lua mit weniger Aufwand an das gleiche Ziel kommt?
Mir ist natürlich bewusst, dass Lua eine Skriptsprache ist. Ich habe nämlich vor einiger Zeit viel mit Lua gearbeitet und empfand es als sehr angenehm.
Oder sollte ich vielleicht eher zu Python greifen?

Ebenfalls könnte ich es mir durchaus lehrreich vorstellen, C++ mit Lua in Verbindung zu setzen. Mir würde da einfallen, die Evente in Lua zu schreiben und diese im Framework aus der Map-Datei auszulesen.
Dann bräuchte das Framework an der Stelle dieser Auslese aber auch ein Lua-Segment, oder?
Aktuell speichere ich jedoch alle wichtigen Daten in einer instance einer Klasse. Muss ich - wenn ich das Obrige machen will - die Daten dann anders speichern, damit ich mit Lua auf den gleichen Datensatz zu greifen kann (Leben, Attribute, ..)?

Ich würde mich sehr freuen, wenn ihr helfen könnt, das Ganze etwas zu realisieren!

mit freundlichen Grüßen
Lakelezz

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Lakelezz« (04.08.2014, 00:09)


DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

2

04.08.2014, 00:06

Die Sprache ist zweitrangig. Du solltest die nehmen, in der du am besten/schnellsten arbeiten kannst.
Sprachen wie z.B. Python und Java machen das Bauen der GUI einfacher, daher würde ich dazu raten. Du kannst aber auch C++ und z.B. GTK oder wxWidgets nehmen, das steht dir offen.
Wenn du dadurch hauptsächlich etwas lernen willst kannst du den Schwierigkeitsgrad sicher steigern indem du C++/Lua nimmst.

Die Kombination mit Lua (egal welch andere Sprache) bietet sich an wenn die Nutzer den Editor erweitern können sollen. Das könnte z.B. der Fall sein wenn man einen eigenen Exporter haben möchte. Blender nutzt z.B. Python dafür.

Event ist Englisch, der Plural wäre dementsprechend Events.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

3

04.08.2014, 00:11

Was bietet sich an: abgesehen von diversen esoterischen Programmiersprachen alles. Ob du nun C, C++, C#, Java, Python, Lua, JavaScript, Ruby, D oder eine andere Sprache verwendest ist in der Hinsicht egal, als dass das Ziel mit jeder Sprache erreichbar sein sollte.
Wichtiger ist eher, welche Sprache (oder allgemeiner welche Werkzeuge) sich für dich für diesen Anwendungsfall am ehesten eignen. Mit C++ soll Oberflächenentwicklung wohl etwas aufwändiger als mit bspw. C# oder Java sein, das dürfte aber nur dann ein Kriterium sein, wenn du bereits beide (C++ und Java/C#) beherrschst. Skriptsprachen haben zwar häufig (abhängig vom Interpreter) eine etwas schlechtere Performance, dies sollte sich in einer solchen Anwendung aber kaum bemerkbar machen. Die Kombination von Sprachen sollte nur dann vorgenommen werden, wenn es auch Sinn macht. Bei einem Mapeditor könnte dies für ein Pluginsystem genutzt werden, nur kann dieses notfalls später nachgerüstet werden, es sollte also erstmal nur 1 Sprache verwendet werden.
Der wichtigste Punkt ist die eigene Erfahrung. Wenn du mit Lua die meisten Erfahrungen gesammelt haben solltest, solltest du wohl dies verwenden. Ist es C++, dann nimm C++.
Wenn es dir aber eher um den Lerneffekt als um die möglichst schnelle Erreichung des Ziels gehen sollte, kannst du die bisher genannten Punkte wahlweise auch ignorieren. Nur solltest du dir im Klaren darüber sein, dass die Fertigstellung dann länger auf sich warten lassen wird.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

4

04.08.2014, 00:30

Bezüglich "Events": Habe das sofort korrigiert; ist wohl einfach im Eifer des Gefechts eingedeutscht wurden.

Nun, meine Erfahrungen umfassen in diesem Fall Java, C# und Lua.
Ich werde (wie von euch empfohlen) auf Lua verzichten und tendiere dann direkt zu purem C++. Ein Pluginsystem werde ich nicht benötigen.
Auch wenn es dann etwas umständlicher wird, würde ich mir selbst wohl den größten Gefallen tun, wenn ich den Lerneffekt betrachte.

Danke für eure wirklich flinken und guten Ratschläge!!

5

04.08.2014, 01:51

C++ ist zwar an sich vll etwas umständlicher (kann ich nicht sonderlich gut beurteilen, da ich bisher java und C# so gut es ging gemieden habe), aber mit den entsprechenden Frameworks ist auch GUI Programmierung kein wirkliches Problem.
Ich verwende jetzt seit ein paar Jahren QT und bin voll und ganz zufrieden. Kannst es dir ja mal angucken. QT bietet weit mehr als nur GUI puzzelei sondern liefert allgemein eine mehr als ausgeprägte Bibliothek für allerlei Gebrauch.

Wenn du mal Interesse an einem Gespräch haben solltest, können wir uns gerne mal privat unterhalten. ;)

mfg

6

04.08.2014, 02:40

Entscheide selber. Jetzt. Wir könne dir hier nur von unseren Erfahrungen und subjektiven Meinungen erzählen. Und das bringt dich in der Entwicklung noch nichtmal einen Schritt weiter..

Ich persönlich greife gerne auf mfc mit c++ zurück, aber man müsste schon im Staub wühlen, um Gründe zu finden, warum man nicht auch c# mit seinen dotnet Features nutzen sollte. Nimm, was du willst. Den Nutzer wird später nicht interessieren, ob deine Anwendung mit C, c++, c#, f#, Lua, Java, Hawaii, Mallorca,... geschrieben wurde. Also fang an und schau ob es gut war. Wenn du merkst, dass es keine gute Entscheidung war, kannst du immer noch umsatteln. ;)
EnvisionGame(); EnableGame(); AchieveGame(); - Visionen kann man viele haben. Sie umzusetzen und auf das Ergebnis stolz zu sein ist die eigentliche Kunst.

7

04.08.2014, 12:44

C++ ist zwar an sich vll etwas umständlicher (kann ich nicht sonderlich gut beurteilen, da ich bisher java und C# so gut es ging gemieden habe), aber mit den entsprechenden Frameworks ist auch GUI Programmierung kein wirkliches Problem.
Ich verwende jetzt seit ein paar Jahren QT und bin voll und ganz zufrieden. Kannst es dir ja mal angucken. QT bietet weit mehr als nur GUI puzzelei sondern liefert allgemein eine mehr als ausgeprägte Bibliothek für allerlei Gebrauch.

Wenn du mal Interesse an einem Gespräch haben solltest, können wir uns gerne mal privat unterhalten. ;)

mfg


Ich werde mir QT heute mal angucken, habe schon öfters davon gehört, aber bisher nicht sehr ausführlich darüber informiert.


Entscheide selber. Jetzt. Wir könne dir hier nur von unseren Erfahrungen und subjektiven Meinungen erzählen. Und das bringt dich in der Entwicklung noch nichtmal einen Schritt weiter..

Ich persönlich greife gerne auf mfc mit c++ zurück, aber man müsste schon im Staub wühlen, um Gründe zu finden, warum man nicht auch c# mit seinen dotnet Features nutzen sollte. Nimm, was du willst. Den Nutzer wird später nicht interessieren, ob deine Anwendung mit C, c++, c#, f#, Lua, Java, Hawaii, Mallorca,... geschrieben wurde. Also fang an und schau ob es gut war. Wenn du merkst, dass es keine gute Entscheidung war, kannst du immer noch umsatteln. ;)


Da hast du natürlich voll und ganz Recht! Ich war mir nur unsicher, was sich dafür gut anbieten würde und wollte in Erfahrung bringen, warum einige dort häufig Programmiersprache verbinden. Das hat sich ja nun eh geklärt.
Ich werde auch mal einen Blick auf mfc werfen.

Danke euch beiden!

Werbeanzeige