• Ideen über Ideen, und eine besser als die andere.


    Wenn wir aber wirklich einen PII-Nachfolger auf die Beine kriegen möchten, müssen wir uns ein bißchen sortieren.


    Wir sollten erst mal einteilen, was überhaupt in welcher Reihenfolge getan werden muß, und überlegen, wieviel Zeit wir dafür einplanen wollen. Sonst diskutieren wir Weihnachten noch darüber, welche Programmiersprache am besten geeignet ist oder wieviel verschiedene Schiffstypen wir einsetzen möchten.


    Hier erst mal ein grober Vorschlag, der natürlich noch ergänzt werden soll


    1. Diskussion über Grundlegendes
    1.1. 2-D / 3-D
    1.2 Programmiersprachen
    1.3. wer macht was
    1.4 Karten (Hanse / Mittelmeer / weitere Karten?)
    1.5 neue Features
    1.6 Mulitplayerfähigkeit



    2. Entscheidungsfindung über Grundlegendes
    2.1. 2-D / 3-D
    2.2 Programmiersprachen
    2.3. wer macht was
    2.4 Karten (Hanse / Mittelmeer / weitere Karten?)
    2.5 neue Features
    2.6 Multiplayerfähigkeit



    3. Diskussion über Details
    3.1 Typen von Schiffen / Städten / Ämtern / Waffen / Gebäuden / Waren / Landkarren ? / Kneipengästen /.....
    3.2 Details der Engine (vgl z.B. Honkos Vorschläge )
    3.3 Preisdynamik
    3.4 äußere Einflüsse (Wetter / Landesfürst / Politik / .... )



    4. Entscheidungsfindung über Details
    4.1 Typen von Schiffen / Städten / Ämtern / Waffen / Gebäuden / Waren / Landkarren ? / Kneipengästen /.....
    4.2 Details der Engine (vgl z.B. Honkos Vorschläge )
    4.3 Preisdynamik
    4.4 äußere Einflüsse (Wetter / Landesfürst / Politik / .... )


    5. Beginn der Programmierung
    5.1 Graphiken (Karte / Gebäude / Schiffe / ....
    5.2 Menüs
    5.3 Engine


    6. Zusammenführen der Programmteile


    7. Testen


    8. Programm justieren


    9. Testen


    10. Programm justieren


    11. Testen


    (ab hier gibt es eine Endlosschleife, )



    Wir sollten uns zumindesten einen Zeitplan setzen bis zum Beginn der Programmierung. Mein Vorschlag wäre ein Zeitrahmen von drei Wochen, um erstmal über die Grundprinzipien zu diskutieren, plus eine Woche Abstimmungsfrist für die Sachen, bei denen sich nicht von selber ein Konsens findet. Das wäre bis zum 05. bzw. bis zum 12. Juni.
    Für die Detailfragen werden wir länger brauchen, rechnen wir mal vier Wochen plus einer Woche Abstimmungsfrist, hier werden bestimmt deutlich mehr Votes nötig sein. Also Diskussion bis zum 10. Juli, Abstimmungen bis zum 17. Juli.
    Allerdings können wir das meiste davon schon früher beginnen, da haben wir also fast zwei Monate bis zu den Abstimmungen.


    Wie lange es dauert, so was zu programmieren, hab ich nicht den geringsten Schimmer ?( Was schätzen unsere Programmsprachen-Spezialisten denn?

  • Hallo Patroni,


    endlich mal jemand der sich über den Projektablauf Gedanken macht :)


    Also ich Denke wir müßen so etwas wie einen Projektleiter haben. Dieser braucht eigentlich keine Ahnung vom Programmieren haben, muß aber das "Team" immmer mal Motivieren und so eine Art Zeitplan aufstellen.


    Auch ist mir jetzt noch nicht ganz klar wie wir es genau machen wollen. Hier kursieren viele Ideen.


    Eine Online-Variante
    Eine Textvariante
    Eine Grafik-Variante mit einer fertigen Engine
    Eine eigenen Grafik-Engine


    Ich denke es ist jetzt Zeit für "Butter bei de Fisch". :D


    Wenn wir die Grafik-Variante mit eigener Engine wählen, so glaube ich kommt nur C++ in Frage.
    Hier brauchen wir im Vorfeld auch noch ein paar kreative Köpfe. Wir müßten dann nämlich unsere Ideen auch irgendwie zu Papier bringen.
    Das Programm muß nämlich in Module aufgeteilt werden. Also bei so einem Projekt brauchen wir genug Leute die nicht unbedingt programmieren können.
    Vielleicht gibt es auch jemand der schon als Projektleiter oder in einer ähnlichen Position gearbeitet hat.


    Ach ja, für den Anfang stelle ich mir vor, daß wir zuerst P2 im kleinen nachprogrammieren. Dann können wir die anderen Ideen immer noch umsetzen.


    Also ich stehe in den Startlöchern.


    Gruß
    Seebär

  • Zitat

    Original von Seebär
    Wenn wir die Grafik-Variante mit eigener Engine wählen, so glaube ich kommt nur C++ in Frage.
    Hier brauchen wir im Vorfeld auch noch ein paar kreative Köpfe. Wir müßten dann nämlich unsere Ideen auch irgendwie zu Papier bringen.
    Das Programm muß nämlich in Module aufgeteilt werden. Also bei so einem Projekt brauchen wir genug Leute die nicht unbedingt programmieren können.
    Vielleicht gibt es auch jemand der schon als Projektleiter oder in einer ähnlichen Position gearbeitet hat.


    Bei C++ mussten wir auch den compiler specificieren.


    Zitat

    Ach ja, für den Anfang stelle ich mir vor, daß wir zuerst P2 im kleinen nachprogrammieren. Dann können wir die anderen Ideen immer noch umsetzen.


    Finde ich auch


    Zitat

    Also ich stehe in den Startlöchern.


    Ich auch 8)

  • Also Compiler ist zimlich egal.


    Ich habe den Borland-Compiler BCB5.0 so wie den MSVC6.0.


    Wenn wir DirectX verwenden wollen, so sollten wir MSVC verwenden. Ich könnte dann die einzelne Module mit dem MSVC kompilieren.


    Oder wir könnten die Module auch mit DLLs zusammenbinden.
    Also wie gesagt der Compiler ist eigentlich kein Problem ;) :P

  • Ich würde mal gerne wissen ob schon jemand von euch wirklich konkret an dem projekt arbeitet, also was programmiert hat oder die Ideen hier aus dem Forum gesammelt hat oder Schiffe entworfen hat, Handelssystem entworfen, sonstiges?
    Und ob "Zwischenergebnisse" hier reingehören oder nur intern unter den Entwicklern ausgetauscht werden?
    Ich würde nämlich gerne wissen obs schon rollt...
    Wenn ich zwischenergebnisse höre oder sehe helfe ich gerne mit konstruktiver Kritik was Handelssysteme, Stadtaufbau und sonstiges betrifft!


    Gruß Mighty

  • Salve,


    naja, das mit dem Anfangen ist ein bissel schwierig. Bevor wir nicht 99% wissen, was wir machen wollen, ist da nichts mit Anfangen. Es hat wenig Sinn, Musik enzuspielen, wenn wir eine Online-Variante machen. Es hat wenig Sinn, massig Grafiken zu erstellen, wenn wir eine Textvariante erstellen. Bevor wir keinen richtigen Namen haben, kann man kein Logo erstellen, usw.


    Vale RF

  • Zitat

    Original von RF
    Salve,


    naja, das mit dem Anfangen ist ein bissel schwierig. Bevor wir nicht 99% wissen, was wir machen wollen, ist da nichts mit Anfangen. Es hat wenig Sinn, Musik enzuspielen, wenn wir eine Online-Variante machen. Es hat wenig Sinn, massig Grafiken zu erstellen, wenn wir eine Textvariante erstellen. Bevor wir keinen richtigen Namen haben, kann man kein Logo erstellen, usw.


    Vale RF


    Das ist genau meine Meinung.
    Vielleicht sollte Brasileiro die ganze Sache mal so richtig anstoßen :190:
    immerhin war es seine Idee ;)


    Wir müssen einfach eine Art Projektleiter haben der ein Zeitrahmen vorgibt.
    (Vielleicht Brasileiro oder Patroni ?( )


    Es wäre vielleicht ganz gut terminierte Abstimmungen für allgemeine Sachen durchzuführen:
    - Online Spiel
    - Text oder Grafikvariante
    - Programmiersprache


    Dann wäre noch zu überlegen wie die User eingebunden werden die nicht programmieren können.



    Doch wenn wir das schleifen lassen, befürchte ich wird es leider nur bei guten Vorsätzen bleiben ;(


  • Hmm,
    ist halt schwierig.


    Erstmal programmiert man P2 nicht mal eben in ein paar Monaten nach (ganz abgesehen davon, dass dies wenig bringt),
    zweitens wird man wohl modulweise vorgehen müssen,
    um die Motivation der Beteiligten durch Vorzeigbares aufrecht zu erhalten.


    Und die Technik hängt davon ab,
    was inhaltlich gewünscht wird.


    Für Multiplayer kommen eigentlich nur Java oder Browserspiel mit PHP infrage,
    es sei denn es findet ein Spezialist für Netzwerkprogrammierung C++ mit enorm viel Zeit.


    Die Textvariante ist eigentlich kaum sinnvoll,
    da Echtzeit damit unmöglich ist und Eingabe/Ausgabe die reinste Folter ...


    Und Echtzeit ist ein weiteres Problem,
    wenn sich Preise im ms - Takt ändern und Schiffe über die Nordsee tickern,
    kann man keine umfangreichen Berechnungen (z.B. Untiefen, Abnutzung, logische Nachfrage) damit mehr anstellen.


    Fertige Engines dürften sich für eine WiSim kaum eignen,
    aber eine z.B. in 3D zu programmieren dürfte vom Aufwand nicht machbar sein.
    Bleibt eigentlich nur eine 2D - Oberfläche, zu Beginn mit Platzhaltergrafiken und ohne großartige Animationen.

  • Hallo Galilei,


    wenn ich schreibe "P2 im kleinen nachprogrammieren" dann meine ich im kleinen. ;)


    Beispielsweise könnte man am Anfang nur die Seekarte nehmen. Schiffe werden als "Kreise" dargestellt, in dem ein Pfeil die Richtung anzeigt. Das wäre recht einfach zu animieren, da man diesen Kreis nur "drehen" muß.


    Stadtansicht gäbe es erstmal gar nicht. Wenn eine Stadt angeklickt wird, macht z.B. nur ein Statusfenster auf. Ähnlich wie bei P2, wenn man noch kein Kontor hat.


    Auch das Einkaufen/Verkaufen könnte man so lösen wie in P2, wenn man von der Seekarte aus handelt.


    Aber erst wenn das alles läuft, dann können wir uns über den Rest Gedanken machen.

  • Salve,


    ich wäre für eine C++/2D/Netzwerk-Kombi. Windows bietet das WinSock-Control an, und soweit ich weiß, kann man damit Daten senden & versenden. Das mit den Schiffen ist eine prima Idee. Wenn wir für sagen wir mal 64 RIchtungen die Pfeile erstellen, brauchen wir sie nur noch durch die entsprechenden Schiffsgrafiken ersetzen. Und bei den Städten brauchen können wir ein Handelsmenü einblenden - über die rechte MT. Wer mit Links klickt, bekommt eine Meldung wie "Zugang noch gesperrt", und wer mit rechts klickt, kann Handeln. Das können wir im späteren Spiel ja beibehalten - ist ja in PII genauso.


    Wie wir die Leute einbinde, die nichts proggen?
    <ul><li>angenommen, wir haben 4 Schiffstypen, á 64 Richtungen á 3 Farben (Weiß, Schwarz, Blau oder wat auch immer) da gibt es einiges zu tun, was die Grafiken angeht.</li><li>
    Musik. Mighty schreibt sie, er und ich spielen sie dann ein und bearbeiten sie.</li><li>Wenn Patroni die Managerin ist, wird sie viel zu tunhaben.</li><li>Dann brauchen wir eine Menge Leute, die einfach nur spielen - also Tester.</li><li>Ein Handbuch muss geschrieben werden - das können wir evtl. auch als Wiki machen und am Ende in ein PDF exportieren</li><li>Die ganzen Texte müssen geschrieben werden, und später auch mal übersetzt werden (am Anfang vielleicht erstmal "nur" in nach Englisch & Französisch, später auch Spanisch, Italienisch, Latein :D und andere)</li></ul>


    Da kommt einiges zusammen!


    Vale RF

  • Also Netwerkprogrammierung unter Windows ist relativ einfach.


    Aber auch das würde ich erstmal zurückstellen. Wir können dafür am Anfang ja erstmal ein Dummy-Modul vorsehen und das später durch "das echte" Modul ersetzen. :P

  • Salve,


    wenn wir eine Schnittstelle programmieren, über die jeder "Spieler" das Spielsteuern kann. Ein Spieler nutzt z.B. das grafische Interface zum Steuern der Schnittstelle, seine andere Möglichkeit ist die KI, die ebenfalls über diese "Schnittstelle" zugriff auf das Spiel hat, und als drittes dann halt das Netzwerk.


    Vale RF

  • Und genau die Schnittstelle ist das Problem beim Multiplayer.


    a) muss sie sämtliche Datenmanipulationen durch "Spieler" umfassen,
    ohne undisziplinierte Hintertüren


    b) müssen die alle synchronized sein,
    da das Fass Bier nur von einem gekauft werden kann,
    oder anderes Beispiel ein Schiff nur einmal versenkt


    Daten hin und her schicken ist simpel,
    aber sie synchron zu halten ist sauschwer

  • Zitat

    Original von Galilei


    Daten hin und her schicken ist simpel,
    aber sie synchron zu halten ist sauschwer


    Deshalb sollten wir uns am Anfang gar nicht mit der Netzwerkprogrammierung beschäftigen.
    Wie gesagt wir können ein Dummy-Modul einbinden, das sagen wir mal für die synchronisation der Daten zuständig ist.


    Wenn wir in Zukunft ein Multiplayer machen wollen, müßen wir "nur" beim Software-Design darauf achten.
    Das Programmieren dieses Moduls/Schnittstelle stellen wir erstmal "hinten" an.


    Wichtiger wäre das Programmieren des eigentlichen Spiels (ohne Multiplayer) :170:

  • Das geht aber leider nicht,


    die Netzübertragung kann man als Modul locker und vor allem sinnvoll auslagern,
    die Synchronisierung der Daten läuft aber nicht bei der Übertragung sondern über den Zugriff auf die Daten.


    Im Klartext entweder jede kritische Objektmethode wie Ware.kaufen() ist von Anfang an sauber dafür vorgesehen,
    oder der Multiplayer ist tot, sobald er geboren wird.


    Alternativ überlässt man diese Arbeit einer guten Datenbank ( soll halt sehen, ob sie die SQL - Anweisung ausführen kann),
    nur dürfte die Systemanforderung Oracle oder MS SQL Server die Zielgruppe doch sehr einengen ;-)

  • Hallo Galilei,


    jetzt kommen wir schon in das Softwaredesign ;)


    Natürlich werden alle Einkäufe/Verkäufe über eine Objektmethode geführt.
    Ich wollte hier jetzt noch nicht zu sehr ins Detail gehen. Dies sollten wir dann wirklich erst im Softwaredesign erledigen.


    Es geht mir erstmal darum die Randbedingungen abzustecken und zu versuchen mal einen Anfang zu finden.


    Aber Du hast natürlich recht, daß wir uns schon am Anfang Gedanken machen sollten, ob wir später ein Multiplayerspiel anstreben oder nicht. :P

  • Hallo Seebär,


    ich habe das Beispiel auch nur angeführt,
    um klarzumachen,
    dass man entweder von Anfang an an einen Multiplayer denkt
    oder diesen komplett sein lässt (weil nachträglich nicht möglich).


    Ist halt eine der Weisheiten des Software Engineerings :-)

  • Salve,


    wenn wir das SPiel auf einer Server-Client Lösung aufbauen, wird das sicher einfach(er). Im normalen Einzelspiel laufen Server (für die Waren und die Schiffe und ...) und Client (Spieler; KI) auf einem Rechner und "sprechen" direkt miteinander. Im MP läuft nur auf einem einzigen Rechnmer der Server, und alle anderen sind dann nur Clients, die mit dem Server über Netzwerk "sprechen".


    Vale RF

  • Ganz richtig RF, die client-server variante ist die beste.


    Ich wurde es so machen.


    Alle spiel rechnungen werden auf dem server gemacht. Die clients machen alles graphische und den user-interface. Server und client besprechen sich nur über sache das dem user im moment interresiert. Das verringert netzwerk activität (die, so finde ich, unter 30K pro sekunde sein solte).


    Wenn wir Borland compilers benützen (BCB oder Delphi - und ja man kann Direct-X mit beiden machen) dan wurde ich die Synopse netzwerk bibliotek empfehlen - lauft in Windows und Linux und ist sehr gut. Ich bin bereit in diesem bereich zu arbeiten.


    Gruss


    P.S. Ich finde Patroni solte die Koordination übernehmen.

  • Salve,


    *zustimm* Patroni sollte das ganze koordinieren!


    [schild]Patroni[/schild]


    Zu den Bibliotheken kann ich nichts sagen, da Delphi für mich ein griechisches, äh, bömisches Dorf ist. Ich kann hier erstmal nur gute Ideen einbringen, den Rest müssen dann die C++-Progger machen.


    Vale RF