Ergebnis 1 bis 6 von 6

Thema: Welche Programmiersprache ist für meine Anwendung am besten geeignet?

  1. #1

    Users Awaiting Email Confirmation

    Welche Programmiersprache ist für meine Anwendung am besten geeignet?

    Hallo,

    da ich vor längerer Zeit gern programmiert habe, aber nie über das "blutiger-Anfänger"-Stadium heraus kam, wollte ich der Thematik eine neue Chance geben. Ein paar absolute Grundlagen von C++ und Java sind mir also bekannt, aber über die Konsolenprogrammierung bin ich nie hinausgekommen und auch da hab ich aus mangel an Zielen nie ein sinnvolles Programm hinbekommen.

    Nun ist mir eine Idee gekommen, ein 2D Spiel zu programmieren, genauer gesagt das Brettspiel Carcassonne. Es ist mir egal, wie lange es dauert, solange ich voran komme, es geht eigentlich primär um den Spaß am coden und lernen und darum, dass ich endlich mal ein Ziel habe. Über das "ich-will-ein-spiel-machen-und-zwar-jetzt-sofort"-Alter bin ich hinausgewachsen

    Ich werde das ganze auf Mac OS X entwickeln. Da aber meine Freunde alle Windows haben, würde ich an für sich auch gern (nachdem die Macversion fertig ist) eine Windowsversion basteln.

    Nun stellt sich die Frage, welche Sprache ich dazu lernen und benutzen soll. Java ist bei mir kein großer Sympatieträger. Ich habe gerade im Internet aufgeschnappt, dass mit Phyton wohl auch Spiele realisierbar wären? Stimmt das? Wenn ja: kann man mit Python Scripte so schreiben, dass sie sich mind. unter Windows per Doppelklick starten? Denn dem Ottonormalverbraucher ist ein Start über die Eingabeaufforderung zu umständlich... Wie geeignet ist Phyton denn für ein 2d Spiel á la Carcassonne?

    Sollte Phyton nicht in Frage kommen, bleibt eigentlich nur noch, die Macversion in ObjC zu entwickeln und die Windowsversion... ja, sollte man 2D Spiele dann mit C++ oder C# programmieren? Ist das für den Zweck am ende vollkommen egal, ob C++ oder C#? .NET ja oder nein oder egal?

    Am liebsten wäre mir aber Phyton, da hätte ich sogar noch was davon, weil ich beruflich in Richtung Design strebe und man die Grafikprogramme allesamt mit Phyton scripten kann.

    Ich hoffe auf muntere Antworten^^ (und hoffentlich kein Flamewar á la "C# ist Microsoft und Microsoft ist böööse")

    Gruß, Micha

    Geändert von Teelicht (04.02.2008 um 10:58 Uhr)

  2. #2
    C++ und als GUI Kram dann SDL (Simple Direct Media Layer) oder GTK+ nehmen, dass lässt sich dann relativ einfach zu Mac/Windows/Linux portieren, da die Runtimes von SDL und GTK+ für die 3 OSs vorhanden sind. Wenn du den DirectDraw (Windows eigener Kram) nehmen würdest, sähe das wiederrum anders aus.

    SDL Einstieg: http://dev-comm.de/articledisplay.php?id=205

  3. #3
    Erstmal nicht zu den Sprachen selber, sondern zu den Libraries: ich persönlich empfehle dir jetzt einfach mal SDL. Das ist, wie die Website schon sagt, eine portable Multimedia-Library, für 2D-Kram macht die sich meistens ganz gut, insbesondere wenn man es auf mehreren Plattformen verwenden will.
    SDL selber ist in C geschrieben und kann daher auch mit C benutzt werden (und daher auch mit C++ und ObjC, wobei man dann natürlich trotzdem mit C-Methoden arbeiten muss). Auf der anderen Seite gibt es aber auch Bindings für einen Haufen andere Sprachen, u.A. ein recht gutes Python-Binding. Tutorials dazu kann ich dir leider keine empfehlen, ich hab keine wirklich guten gefunden (okay, ich hab auch nicht all zu intensiv gesucht).

    Davon ausgehend empfehle ich dir jetzt einfach mal Python - es ist weniger Frickelei als mit SDL in C, und Python ist allgemein eine recht schöne Sprache mit relativ hohem Abstraktionslevel (read: du musst nicht so viel Kleinkram wie Speicherverwaltung von Hand machen wie in C).


    Was du mit SDL nicht machen kannst, ist native Widgets (wie Buttons, Textfelder, etc) zu verwenden. Für ein Spiel kann man darauf allerdings relativ problemlos verzichten.
    Für die cross-platform-Entwicklung derartiger Dinge gibt es meiner Meinung nach keine wirklich schöne Lösung - jede Plattform hat natürlich ihre eigenen Libraries (auf Windows wird das zukunftssicherste C# + .NET sein, auf OS X hast du halt ObjC und Cocoa, etc). Wenn man da plattformübergreifend programmieren will, braucht man a) eine Sprache, die auf allen Plattformen brauchbare Unterstützung hat (das sind effektiv C(++), Java, und diverse "Scriptsprachen" wie Python und Ruby) und b) eine GUI-Lib, die auf allen Plattformen läuft (du kannst mit Python eine Cocoa-App schreiben, nur hilft dir die auf Windows herzlich wenig weiter). Bei letzteren dürften hauptsächlich Qt und wxWidgets interessant sein (GTK z.B. ist zwar cross-platform-fähig, sieht aber auf Windows nicht besonders schön und auf OS X kacken hässlich aus). Die sind beide in und für C++ geschrieben und da auch am angenehmsten zu benutzen (auch wenn ich persönlich C++ nicht mag).
    Qts Python-Binding z.B. ist nicht sonderlich schön (okay, man kann problemlos damit arbeiten, aber es ist nicht gerade die beste Python-Lib), während wython meiner Erfahrung nach kacken instabil ist und gerne mal bei Trivialitäten segfaultet. Ich denke mal, die Situation sieht bei anderen Sprachen nicht besser aus.
    Und natürlich ist keine dieser Lösungen so schön wie ein natives Programm.
    Eine Alternative ist natürlich, ein Programm mit mehreren User-Interfaces zu schreiben (also eine Core-Lib und dann ein Cocoa-Interface, ein GTK-Interface, etc). Das hat natürlich wiederum den Nachteil, dass es redundant ist.

    Sprich: mach erstmal ein SDL-only-Ding, das erspart dir 'nen Haufen Ärger

    Ach ja: vllt. solltest du etwas kleiner einsteigen als gleich mit der Umsetzung eines komplexeren Brettspiels, und dich da dann später dran machen, wenn du etwas mehr Erfahrung hast. Nur so ein Gedankengang.

  4. #4

    Users Awaiting Email Confirmation

    Danke für eure Tipps Ich bin immer mehr dazu geneigt, Python zu nutzen. Scheint ja eine vielseitige Sprache zu sein, wenn man damit von Webanwendungen bis Spiele alles mögliche machen kann.

    Ich glaube, das mit der Core-Lib und den unterschiedlichen Interfaces ist die beste Lösung, wenn man plattformunabhängig und trotzdem im Look&Feel der jeweiligen OS entwickeln will.
    Aber erst mal werd ich deinen Tipp beherzigen und SDLonly entwickeln^^

    Zitat Zitat von mq Beitrag anzeigen
    Ach ja: vllt. solltest du etwas kleiner einsteigen als gleich mit der Umsetzung eines komplexeren Brettspiels, und dich da dann später dran machen, wenn du etwas mehr Erfahrung hast. Nur so ein Gedankengang.
    Ja, und diesen Tipp werde ich auch berücksichtigen, nachdem ich mir erste Gedanken um eine Umsetzunge gemacht habe. Das mit der Punktevergabe ist zwar im Reallife relativ einfach, aber es scheint mir hochkomplex zu sein, so etwas dem Computer beizubringen!
    Es ist nur so schwierig, eine interessante, motivierende Idee zu haben, die einfach genug ist, dass man sie umsetzen kann ... *überleg*

    Gruß, Micha

  5. #5
    Ich würde dir zu BlitzBasic raten.

    Es gibt auf www.blitzbase.de afaik eine 2D-Version zum unbeschränkten Testen = gratis.

    mfG Cherry

  6. #6
    Zitat Zitat von Cherry1 Beitrag anzeigen
    Ich würde dir zu BlitzBasic raten.

    Es gibt auf www.blitzbase.de afaik eine 2D-Version zum unbeschränkten Testen = gratis.

    mfG Cherry
    Naja Blitz Max ist doch etwas teuer und auf der Homepage steht das es nen 30 Tage Limit hat(Test Version).
    Alle anderen Versionen fallen ja wegen fehlendem Mac Support aus.
    Neben dem das ich nicht glaube das er ein großer Fan von Basic ist.

    Also ich würde da doch eher bei Python + PyGame bleiben. Da gibt es auch noch ne nette GUI Lib für. Dann kann man damit auch im Spiel Buttons und co verwenden.(einfach mal bei google gucken, da sollte sich was finden lassen)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •