Entwicklungsumgebung

  • Wer hat überhaupt Vorschläge für Programmiersprache etc. ?


    1. Sprache
    2. welcher Compiler
    3. Bibliotheken


    4. wie sieht es mit freier Verfügbarkeit = kostenlos UND legal aus - müssen ja alle haben ?
    5. was wird in Sachen Graphik unterstützt
    6. wie sieht es mit Datenbanken & Speichern aus ?
    7. unterstützt sie Synchronisation im Multiplayer
    8. nimmt sie die Speicherverwaltung ab ?
    9. welche Systeme werden unterstützt ?

  • Hallo Galilei,


    da will ich mich hier mal outen


    1.) C++
    2.) MSVC 6.0, BCB 5.0
    3.) Eigene bzw. Mathebibliothek (Matrix etc) aus dem Netz
    4.) Wenn wir bei C++ bleiben, könne die Objekte auch mit GNU Compiler entwickelt werden
    Es gibt auch noch für den MSVC eine Autorenversion
    5.) Unter Windows gibt es da nur eine Alternative (= meine Meinung) DirectX
    6.) MySQL oder Interbase(freie Version) von Borland. Oder als Desktopanwendung Access
    7.) Das macht der SQL-Server. Der Client schickt nur die "Anfragen" zum SQL-Server. Der wertet dann die
    Abfragen aus und sendet das Ergebnis zum Client
    8.) Hee ?( . Die Frage verstehe ich nicht ganz. Um die Speicherverwaltung muß man sich eigentlich nicht
    mehr kümmern. Das war vielleicht unter DOS so. Aber seit dem 486 läuft der Prozessor im Protected
    Mode. Da übernimmt das Betriebssystem die Speicherverwaltung
    9.) Meinst Du mit Systeme Windows oder was anderes. Wenn wir z.B. unter Linux programmieren möchten,
    dann müßten wir uns mit OpenGL beschäftigen. Davon hab ich leider keine Ahnung.


    Ach ja Galilei, wie wäre es wenn Du dich auch mal outen würdest ;)

  • 1. C++ ist sicher gut geeignet,
    bin ich aber nicht mehr fit genug drin, hab eher mit Java zu tun,
    falls überhaupt - Schwerpunkt Modellierung und Software Engineering


    2. okay, haben unsere Kommerz - Freunde die mittlerweile freigegeben ? Ansonsten könnte der Spaß überraschend teuer werden, da irgendwelche Private-only, Autorenversionen etc. garantiert nicht zählen,
    sobald das erstellte Produkt im Netz fleißig runtergeladen wird ?(


    3. die gibt´s bei Java inklusive,
    bei C++ müssten wir uns eine suchen, die wir einfach mitliefern können bzw. die sich auch ein DAU installieren kann


    4. Okay, da würden wir dann wohl GNU nehmen müssen, damit gibt´s erstmal wenig Ärger


    5. hmm DirectX, außer wir beschränken uns sowieso auf kaum animierte 2 D - Bildchen


    6. nicht jeder hat Access, wie leicht lässt sich Interbase installieren ? MySQL dürfte viele Spieler überfordern


    7. Der kümmert sich aber nicht automatisch um die Synchronisation bzw. das Abfangen sämtlicher denkbarer gescheiterter Abfragen --> der Client ist nach < 1 h abgeschmiert


    8. Beim Abräumen von Objekten & Co, ohne Managed Code a la Java oder C#, muss man da bei diesem Projektumfang höllisch aufpassen, sonst muckt Windows bei der kleinsten Schlamperei bald " kein Speicher mehr", weil sich der Murks bei den Datenmengen und typischer Spielsession zügig summiert


    9. ja meinte z.B. die diversen Windows - Versionen (da bleibt nur Minimalkonsens, da von 98 bis XP alle ihre eigenen Macken haben), außerdem hatten ja einige nach Linux geschrien ( noch lustiger C++ sauber für beide gleichzeitig zu schreiben)



    Also Use-Cases, Klassen- und Datenmodelle kann ich euch wohl basteln,
    Realisierbarkeiten abklopfen
    Programmieren höchstens Java oder SQL, hab zu wenig Zeit mich wieder in die Destruktoren und sonstigen Schikanen von C++ einzugewöhnen ;-)


  • Mein senf :D. Ich bin für freie sachen, da wir dann problemlos entwickler tauchen können


    1. Server (der ja keine graphik braucht) in Free Pascasl. Gibt es für Windows, Linux, Mac, OS/2, BSD und Linux-64. Kann in alle mit netzwerk, Firebird (oder MySQL) arbeiten. Auch für client gibt es graphik packete für alle betriebsisteme


    2. Free Pascal


    3. Je nach bedarf


    4. Alles free - wenn möglich open source


    5. OpenGL - gibt es für viele betriebssisteme


    6. Firebird


    7. Ich finde das das spiel besser zu gestalten ist wenn alle synchronisation auserhalb der datenbank passiert


    8. ???


    9. Server könnte auf einem beschränkt sein (am besten Linux). Client müsste für Windows und Linux sein

  • Zitat

    Original von Galilei


    5. hmm DirectX, außer wir beschränken uns sowieso auf kaum animierte 2 D - Bildchen


    Galilei,


    hast Du eigentlich schon Programme mit DirectX erstellt. ?(
    Also wie Du darauf kommst, daß DirectX für Grafikprogrammierung nur eingeschränkt einsetzbar ist, ist für mich nicht nachvollziehbar :eek2:


    Kleine Quizfrage. Mit welchem Grafikinterface sind P2, Port Royale, Empire Earth etc. programmiert ;)

  • oh, da neigt der Satz wohl zu Interpretation,
    sollte heißen:
    hmm DirectX (was sonst ?), außer wir beschränken uns sowieso auf kaum animierte 2D - Bildchen ( für die kann man auch Standard - Bibliotheken nehmen, um weniger Arbeit zu haben "statt mit Kanonen auf Spatzen zu schießen)


  • zu 8.
    Les dir mal Memory Iusses und FAQ 26. deiner favorisierten Sprache durch:
    Da heißt es dann alles perfekt wieder abräumen und eifrig grübeln wann und wieviel man auf dem Heap überhaupt anfordert ... von den fehleranfälligen Pointern mal abgesehen - da braucht man für die Engine schon 1 Jahr, ohne vom Spiel was zu sehen


    Positiv: es unterstützt immerhin Objektorientierung, Datenbanken und Multithreading und kostet nix


    Negativ: doch recht maschinensprachennah = aufwendig, und unterstützt zwar Dutzende Systeme aber z.B. nicht Linux und Windows gleichzeitig beim Client, da völlig andere Zusatzbibliotheken verwendet werden.


    Man könnte natürlich den Server darin schreiben, nur braucht man dann genügend Freiwillige,
    die Free Pascal und Linux gut beherrschen und Nerven & Zeit haben, sich mit Speicherlöchern, Pointer - Spielchen etc. rumzuschlagen.
    Haben wir die ?


  • Galilei, also memory management gehört zum programieren dazu und ist auch sehr einfach mit den memory-watchers die man in den development versionen tut. Um sich nich damit zu beschäftigen müste man sprachen wie Java benützen. Zahlt aber dafür mit sehr lansamen code. Auserdem gibt es bei mir schon jahre lang fast keine memory leaks mehr - die sind bei gute programierer sowieso rar und gleich gefunden mit gute tools. Mit pascal ist es noch einen tick einfacher als mit C++.


    Ich hoffe schwere das du nicht vor hast mit Java zu arbeiten (Um es OS unabhängig zu machen). Schau dir mal die verschiedene Colonization clones die mit java gemacht sind - elend langsam. Ich bin nicht bereit meine zeit zu verschwenden um ein multiplayer spiel mit java, php oder so was zu machen. Natürlich könt ihr es machen wenn die mehrheit dafür ist - aber ich werde dann leider nicht mit machen

  • Ne hatte ich eigentlich nicht vor,
    aber für Pascal / C++ brauchst du dann auch ausreichend gute Programmierer mit entsprechender Zeit.
    Da kann man dann nicht ein Dutzend zu unterschiedlichen Zeiten wild mal hier und mal da coden lassen,
    ohne sich Haufenweise memory leaks etc. einzufangen.
    Außerdem gehören zum Memory Managnement auch Überlegungen,
    wann man was schon vorlädt, sonst gibt es heftige Wartezeiten.


    Memory Leaks in Spielen gibt es kaum noch, weil deren Entwicklungszeit mittlerweile mit über 2 Jahren genug Zeit lässt, wenigstens diese Probleme durch Erfahrung zu lösen -
    der größte Teil basiert auf lizentierten oder hauseigenen Engines, die sich darum kümmern.


    Die haben wir aber leider nicht.

  • Also wenn man gewissenhaft Programmiert, gibt es keine Memory Leaks.


    Im Prinzip werden bei Bedarf die Objekte dynamisch erstellt (= Zeiger). Nachdem die "Aufgabe" erfüllt ist, wird Speicher wieder freigegeben - Fertig ;)


    Das einzige Problem ist bei Exceptions. Da muß man halt etwas mehr aufpassen. Wenn man aber in einer Prozedur Speicher anfordert und in der gleichen Prozedur den Speicher wieder freigibt dann gibt es keine Speicherfragmente.


    Also jeder der schon mal wirklich objektorientiert Programmiert hat, wird damit keine Probleme haben.
    Dabei ist es egal ob Pascal oder C++. :P

  • gute Programmierer produzieren keine memory leaks, keine buffer overflows, keine null-pointer-abstürze und dokumentieren schön brav ihre Arbeit,
    nur sind die rar gesät und müssen mit anderen zusammenarbeiten -
    und dann können sie noch so gut sein, sie können sich nicht einfach in ihre Kollegen hineinversetzen,
    sondern kommen sich ständig in die Quere.


    Da wir bei Null starten müssten,
    dürfte das Projekt mindestens 2 * 5 Mannjahre (bei unterstellter 40 h Woche) brauchen -
    und dass wäre gerade mal die Simpel - Variante ( wie die Version 4 eines uns bekannten Fußballmanagers) ohne Sim City - Stadtansicht, Belagerungen, Seeschlachten und sonstige Wünsche ...


    Da hier niemand 40 h Zeit haben wird, kann man sich ausrechnen, wie lange das dauern würde.
    Vor allem kann man nicht rechnen 5 a 40 h = 20 a 10h,
    weil der alte Spruch "zuviele Köche verderben den Brei" bei Programmierung immer zutrifft,
    selbst ein Programmier braucht für seinen eigenen Code nach einer längeren Pause wieder eine deftige Einarbeitungszeit.


    P.S. Prozeduren sind Teufelszeug in einem objekorientierten Programm ;)

  • Zitat

    Original von Galilei


    P.S. Prozeduren sind Teufelszeug in einem objekorientierten Programm ;)


    Da ich nicht wußte ob Du dich auch mit objektorientierten Begriffen auskennst habe ich das mal ganz allgemein geschrieben. ;)
    Natürlich hätte ich auch Methoden sagen können.
    Nur wer von objektorientierter Programmierung keine Ahnung hat wird sich mit dem Begriff Methoden etwas schwertun :170:

  • Um den ganzen server zu schreiben, aleine? Keine ahnung- Jahre vieleicht.


    Um das netzwerk skelett vom client-server in free pascal zu schreiben? Einen tag. Natürlich wird nach bedarf fleisch dazu getan.

  • Jahre für den Server und was ist mit dem Solomodus ?
    Ascaron hat für P 2 Gold ca. 3 Jahre gebraucht, wenn nicht sogar länger ...


    die Logik kann nicht auf einem Linux - Server liegen,
    wenn ein Großteil hinterher unter Windows und ohne ständige Netzanbindung spielen will.

  • Dann brauchst du aber mindestens 3 Versionen:


    Server, Solospiel und Client,
    wobei Solospiel wohl kaum ein Copy & Paste aus Server und Client sein kann,
    vor allem weil die Win - Versionen die Win32 - API nutzen müssen im Gegensatz zu den Linuxversionen,
    die FreePascal anscheinend besser unterstützt.


    und 2-3 Jahre braucht man bei einem Projekt dieser Größenordnung mindestens ( bei 5 Vollzeit - Beteiligten ),
    eine kürzere Zeit ist reines Wunschdenken

  • Hmm, bin die Vorschläge aus dem alten Thread noch mal durchgegangen:


    Delphi:
    + objektorientiert
    + bei unseren potentiellen Programmierern beliebt
    + Multiplattformfähig
    - dann auf Win32 API angewiesen
    - nicht gerade billig bei Borland (Alternative Pascal)


    C++:
    + objektorientiert, schnell
    + Unterstützung von allem möglichen (dadurch aber auch kompliziert)
    + beliebt , Standard
    - Open Source - Version nötig, da Borland und MS sauteuer
    - jede Menge Ärger bei mehreren Plattformen
    ( Vorschlag Adalbertus QT als Framework benutzen, dann aber Windows - Lizenz 1500 €)


    Fremdengine verwenden:
    + weniger Arbeit
    - die sind meist auf 3D Shooter und Spielchen ausgelegt
    - andere auf 2D Rundenstrategie
    - teilweise braucht man doch wieder ein MS - Produkt
    - Fähigkeiten beschränkt


    C# und .Net:
    + bequeme Windows - Programmierung
    + .Net bietet im Framework jede Menge nützliche Hilfen
    + Longhorn - Nutzer werden sowieso mit .Net 2.0 zwangsbeglückt
    - lahm
    - Windows - Fixierung
    - Framework & Compiler frei, aber Werkzeuge teuer


    Java:
    + einheitliches Framework für ein Haufen Systeme
    + geringerer Programmieraufwand
    + auch kostenlose Tools
    - langsam
    - Grafik wird problematisch


    PHP & Co:
    + man braucht wenig zu tun
    + perfekte Unterstützung Multiplayer, Datenbanken
    + gratis
    - Browser - Spiel, kein Singleplayer
    - Grafik, Sound ???
    - extrem lahm

  • Ich glaub hier muss ich auch mal meinen Senf dazugeben:


    VB2005 erscheint mir die zukunftsträchtigste Sprache zu sein.
    Zwar werde ich meine Diplomarbeit noch mit VB.NET 2003
    abschließen, aber das liegt eher an meiner Bequemlichkeit.
    (wozu generische Klassen einbauen, wenn es so auch
    geht, wie ichs jetzt programmiert hab?)


    Aber ansonsten plädiere ich sehr stark für VB2005,
    denn funktionale Programmierung ist da recht komfortabel.