K
EightBitWitch schrieb:
Was macht das erstellen eines Spieles oder allgemein Programmes in C++ so sehr schwieriger, gegenüber Visual Basic, Turbo Pascal(incl. OOP) oder Assembler?
Es soll "nur" ein 2D-Spiel werden, in der Hauptsache ein MMOG-Client eben unter Windows, Linux und MacOS.
Der MMOG-Server und auch ein rudimentärer Client, ist in einer ersten Version, zum Testen von Konzepten und der Kommunikation von Client und Server bereits fertig.
Das war ein längerer Prozess (vier Monate), da ich vorher nie mit VB oder VB.NET gearbeitet habe und zuvor auch noch keine Erfahrung in Netzwerkprogrammierung, von eigenen Servern ganz zu schweigen, hatte. Was ich früher gemacht habe, ist Netzwerke für die Verbindung von HomeComputern verschiedener Hersteller zu erstellen, Hardware und Software. So was es möglich Daten zwischen C64(Userport), Atari 800XL(Joystickports) und Sharp MZ800(Centronics) auf einfache Art auszutauschen. Das ganze war als Betriebsystemerweiterung in Assembler ausgelegt.
Aktuell: Angefangen habe ich mit der Erstellung eines Bots für ein bestehendes MMOG (Dark Orbit, browserbasierendes MMOG), der nicht auf Tools wie Auto-It (gespeicherte und abspieltbare Maus-Clicks im Browserfenster) aufbaut. Ich habe alles direkt in VB.NET programmiert und verbinde mich unter Umgehung des Browser direkt mit den Spiel-Servern. So ist es mich möglich mehrere hundert Schiffe in dem Spiel gleichzeitig über mein Programm (auf einem Rechner oder verteilt über das Internet) steuern zu lassen und über einen selbst erstellten Strategie- und Kontroll-Server diese Schiffe voll automatisch in Rudeln/Schwärmen koordiniert und im ganze DO-Universum vorgehen zu lassen.
Ich habe also ich den Grundaufgabe bereits Erfahrungen gesammelt, nur fehlen mir nun noch die passenden Werkzeuge für die Umsetzung eines Clients, der dann eben auf drei Betriebssystemen lauffähig sein soll. Auf welchen Betriebssystem der Spiel-Server später laufen wird ist noch nicht klar.
Ich muss vielleicht auch noch erklären, das ich keinen Geschwindigkeitsrekord in der Spielentwicklung aufstellen will. Das ganz darf gerne 1-2 Jahre dauern, ich muss damit kein Geld verdienen und habe Zeit so viel ich will.
Was ich vorallem gemerkt habe, als ich von BlitzBasic nach C++ umgestiegen bin, ist dass man versucht alles irgendwie Standartkonform mit Klassen, Vererbungen und dem ganzen zeug was C++ so mit sich bringt zu implementieren. Dabei geht dann natürlich viel Zeit drauf. Zudem nerft es auch immer wieder Linkeflags zu setzten, wenn man eine Library benutzen will (Andere Sprachen brauchen nur das Import im Quelltext). Es sind auch viele Sprachfeatures in modernen Sprachen, die man in C++ einfach vermisst, wie z.B die for-each-Schleife.
Eine Sprache die versucht die Macken von C++ auszubügeln, ohne dessen vorzüge zu verlieren ist momentan D.
vorteile
Sauberer als C++, weil die sprache von "Altlasten" bereinigt wurde
nachteile
Es gibt noch keine Professionelle IDE, die D wirklich unterstützt
es ist nicht Sicher ob D irgendwann C++ ablöst, aber ich hoffe es
Es gibt noch nicht sehr viele Compiler (Lässt sich z.B. nicht auf Handys compilieren)
Da du gerade von einem MMO Clienten gesprochen hast sollte ich mal meine empfehlung zu Processing überdenken. Eine Netzwerkschnittstelle ist nicht eingebaut, aber es ist Prinzipiell Java, kann also theoretisch auch jede Java-Netzwerk-Schnittstelle benutzen. Es ist dann halt nur nicht so schön integriert.
zu SDL gegen SFML
SDL gibt es schon wesentlich länger, und ist auch auf viel mehr Platformen verfügbar. Es ist quasi der Industriestandart der Indipendent-Szene. SFML muss sich da erst noch durchsetzten. SDL hat aber als altlasten z.B. noch dass man alles was man benutzt Initialisieren muss, und am ande wieder Deinitialisieren Muss. SFML hat aufgrund der Objektorientiertheit das nicht. SFML hat für mich als einzigen nachtel, man kann es nicht auf Handys kompilieren, aber willst du ja eh nicht.
btw SFML hat eine D schnittstelle