Pfeffersack 0.08

  • Pfeffersack ist eine Technologiedemo wie eine mittelalterliche Wirtschaftssimulation in der Hansezeit aussehen könnte


    [

    Würde mal um einen kurzen Test der neuen Scrollfunktion bitten:
    (nach C:\Pfeffersack kopieren/ downloaden)
    Wird das Scrolltempo noch schneller oder langsamer gewünscht ?
    ! enthält nur die reine Seekarte, Rest deaktiviert!


    [schild]siehe unten[/schild]


    Installation

    • Es wird die Java - Laufzeitumgebung benötigt www.java.com.de (am besten Offline-Installer verwenden)
    • das selbstentpackende Archiv nach C: entpacken
    • in C:/Temp auf PfeffersackInstaller.jar doppelklicken
    • auf Wunsch Dateireste in C:/Temp löschen
    • viel Spaß beim Ausprobieren unter Startmenü -> Programme -> Pfeffersack


    Downloads
    umgezogen in Thread Pfeffersack 0.09


    TO DO - Liste
    [list=1]
    [*]Erstellung einer Tabelle mit den Gebäudetypen (bei Interesse melden)
    [*]Test der Seekartensicht (Wegfindung, Interface)
    [*]Implementierung Baufunktion
    [*]Implementierung Gebäude - Selektion & Anzeige Infos
    [/list=1]

  • Hallo Galilei,


    Zitat

    Derzeit sind die Seekarte und erste Ansätze der Stadtansicht in Java implementiert. Sämtliche Grafiken sind Platzhalter.


    Was ich da sehe, sind aber wahrlich allererste Ansätze...


    Gehört es so, dass die Stadtansicht derzeit nur aus einer grünen Fläche besteht? Ich kann sie auch nicht scrollen oder bedienen oder ähnliches.
    ?(



    Die neue Version sieht aber schon gut aus! :170:

  • nicht mehr auf Server Demo008 - Update


    scrollen und umschalten durch verschiedene Ansichten (z.B. Brandgefahr) ging schon,
    allerdings sind die Städte außer Bergen alle grüne Wiese


    das exklusive Amselfass-Update ;) zeigt nun nach Anklicken des einzigen Gebäudes in Bergen Infos dazu an

  • Oh, ich habe nicht entdeckt, dass die gelben Kästen in der Sidebar Interaktivität besitzen.
    In der Stadtansicht sehe ich das Gebäude noch nicht, wohl aber, wenn ich auf eine der anderen Ansichten umschalte.
    Das Projekt macht ja wirklich gute Fortschritte.


    Ich habe allerdings noch ein Problem:
    Die Demo weist sich bei mir beharrlich als Version 0.07 aus und das Anklicken des Spielerkontors in Bergen funktioniert auch nicht.
    Im Java-Ordner liegen bei mir auch zwei Unterverzeichnisse, einmal eines mit der Endung 05, welches die Ursprungsversion enthält, in dem mit der Endung 06 liegen nur ein paar Update-Dateien.


    Ist bei mir die eine Version tatsächlich nicht installiert (ich habe sie aber brav nach C:\Programme\Java\JRE1.5.0_06 extrahiert!) oder habe ich die falsche Verknüpfung aufgerufen?
    Welche muss ich benutzen?

  • so das Verknüpfungschaos sollte mit dem neuen Update samt Installer erledigt sein /EDIT


    die Update - Version Pfeffersack008 sollte in Bergen, ein "i"-Bild zeigen und nach Klick darauf,
    Infos zu dem Testgebäude. Hab leider keine Zeit als Programmierer und Tester in Personalunion auch noch Grafiken zu ertellen :(

  • Hi Galilei,


    ich habe mir mal Deine Version angeschaut. Ich möchte Dir nur noch ein paar Denkanstösse geben - also bitte nicht falsch verstehen.


    Also ich würde mich jetzt erstmal um das scrollen der Seekarte kümmern. Ich kenn mich jetzt nicht so gut in Java aus, aber vielleicht solltest Du das Scrollen über einen Event-Handler realisieren.


    Dann würde ich für die Bewegung der Schiffe ein kleineres Raster wählen. Die Schiffsbewegung macht doch erhebliche Sprünge.
    Vielleicht wäre es auch gut an den Schiffen ein "Richtungspfeil" anzubringen, damit man weiss in welcher Richtung sich das Schiff als nächstes bewegen wird.


    Eventuell ist es besser die Route berechnen zu lassen. Dafür ist der A*-Algorithmus wie geschaffen.
    Man könnte die Route beispielsweise in einen eigenen Thread berechnen lassen.


    Die Grafik sollte auch "im Hintergrund" gerendert und danach auf den Hauptschirm geblittet werden.


    Na dann noch viel Erfolg

  • Scrollen per Maus geht nirgends per Event-Handler,
    dazu muss per Timer in einem Zeitintervall immer die Maus abgefragt werden und entsprechend das Bild verschoben werden (merkt man z.B. wenn man bei kommerziellen Spielen die Maus auf dem Rand lässt - es wird bis zum Kartenende gezuckelt), wird irgendwann implementiert, wenn ich mal Zeit hatte,
    ein vernünftiges Intervall zu recherchieren.


    Mit der Schiffsbewegung geb ich dir recht,
    leider ist der A*-Algorithmus für Dinge wie Wetter, Wassertiefe, Hindernisse oder Schiffe treffen nicht gerade geeignet.
    Mir ist aber wichtig, nicht noch eine Schiff - auf - Schienen - Simualtion zu programmieren (da haben andere mehr Manpower für gehabt), sondern dynamische Einflüsse wie Wetter und Wassertiefe drinzuhaben und Zonen als Patrouillengebiet vorgeben zu können (kein von Brügge nach Nowgorod hinterhersegeln, obwohl eigentlich schneller etc.).
    Es sind jetzt schon ~ 160 Seezonen a (120 Pixel)²,
    der Simulationsthread könnte problemlos mehr berechnen, allerdings habe ich weder Zeit noch Lust quadratischen Aufwand in die Halbierung der Rastergröße zu investieren
    ( Freiwillige willkommen ;) - es handelt sich bloß um niedliche (160²)² = 655360000 Zonen).
    Falls es mal Grafiken geben sollte, kann man wie schon jetzt an der Punktfarbe erkennen,
    aus welcher Himmelsrichtung das Schiff kommt.


    Werde auf deine Anregung mal das Simulationstempo höher setzen
    und nicht nur einige Platzhaltergrafiken zu Beginn laden zu lassen ( gegen die Java - Sturheit Bilder erst bei Bedarf in den Speicher zu laden, kommt auch Double - Buffering nicht an).

  • Hi Galilei


    Zitat


    Scrollen per Maus geht nirgends per Event-Handler


    das ist nicht richtig aber egal. Ich habe im übrigen einen Tatstatur-Event gemeint.
    Mir ist halt aufgefallen das es einen kurzen Augenblick dauert bis auf Tastatur reagiert wird


    Zitat


    leider ist der A*-Algorithmus für Dinge wie Wetter, Wassertiefe, Hindernisse oder Schiffe treffen nicht gerade geeignet


    Dafür ist der A*-Algorithmus auch nicht gedacht. Vergess doch erstmal die Features wie Wetter, Wind etc.
    Finde doch erstmal den direkten Weg - dann kann man immer noch ein "Ausweich" Algorithmus entwickeln.


    Aber wie gesagt im Grunde ist es mir auch egal.
    Da du das Spiel alleine entwickelst ist es vielleicht auch mal gut andere Meinungen zu hören. ;)

  • 1. Demo 008 kann ich nicht downloaden
    2. (Im Folgenden alles 1601) Die Karte ist nicht so, wie sie zu der Zeit war. Deutschland war noch größer.
    3. Diese Grünen Fläschen stören
    4. kann man diese Gelben Kästchen nicht beschriften?
    5. Ein bischen unübersichtlich noch das ganze, aber das kann man korregieren.

  • 1. sorry die is nicht mehr auf dem Server
    2. die Karte ist nur Platzhalter
    3. was für grüne Fläschen ?(
    4. na gut da Seebär außerdem eine Scrollfunktion will, schreibe ich erstmal die Grafikengine neu und lass die Städte bleiben


    Würde mal um einen kurzen Test der neuen Scrollfunktion bitten: www.st-kleist.de/Pfeffersack.jar
    (nach C:\Pfeffersack kopieren/ downloaden)
    Wird das Scrolltempo noch schneller oder langsamer gewünscht ?
    ! enthält nur die reine Seekarte, Rest deaktiviert!


    [schild]nun 200 ms und rechter Kartenrand[/schild]

  • Hallo Galilei,


    ich habe mir die neue Version einmal angesehen. Zur Scrollfunktion würde ich sagen:
    1)
    Ist es eventuell zu korrigieren, dass die Funktion erst mit kurzer Verzögerung anschlägt? Wenn zwischen Befehl und Aktion eine ganze Sekunde liegt, kann ich nur noch schwer beurteilen, welche Aktionen durch welche meiner Eingaben ausgelöst wurde.
    2)
    Kann es sein, dass bei jeder Mausbewegung nur eine Einheit weitergescrollt wird? Ich fände es ergonomischer, wenn sich die Karte so lange bewegte, bis die Maus vom Rand weggenommen wird. Hier legt Mausstillstand am Rand auch den Scrollvorgang still.
    3)
    Immer, wenn ich in der Menüleiste etwas machen will, wird dies als Scrollbefehl nach rechts gewertet.


    Schön, dass es mir endlich gelungen ist, die neueste Version zum Laufen zu bringen (bin vorher nicht weiter als bis zur 0.06 gekommen).
    Alles sieht gegenüber den Vorgängerausgaben deutlich besser aus. :170:

  • Salve,


    @Galileis ToDo-Liste:


    Einen Grafiker hab ich hier an der Hand. Koro125 hat sich bei mir gemeldet, dass er sich um die Grafiken kümmern kann.


    Vale RF

  • die Scrollfunktion ist derzeit auf ein Intervall von 250 ms eingestellt,
    wenn es zu kurz wird, hüpft das Programm sonst mal kurz ans Kartenende,
    wenn die Maus zu lange in den Auslöserbereichen bleibt


    Auslöser sind derzeit ca. 30 Pixel breite Bereiche an den Kartenrändern ( ohne Titelleiste und Menü).


    Kann man aber ändern:
    also kürzeres Intervall ?
    und rechter Rand = Fensterrand statt Kartenrand ?


    Zahlreicheres Feedback wär da hilfreich !


  • Jepp,


    hat sich bei mir schon per PN gemeldet.
    Muss ihn nur noch mal in ICQ erwischen ;)

  • Hallo,


    hab mal das Scrollen kurz getestet.
    Also ich habe hier (ist nicht mein Privat-PC) folgende Hardware:


    CPU: AMD 1700+
    RAM: 512MB
    Grafikkarte: Geforce4 MX 440


    Also ich möchte nur sagen, das ist meine subjektive Meinung.
    Währe vielleicht auch mal ganz gut, wenn sich noch andere melden würden.


    Also die Reaktion auf Tastaturdruck reagiert noch zu träge.
    Das bedeutet:
    wenn ich Cursor "rechts" drücke dann dauert es einen Moment bist das Scrollen beginnt. :O
    Lasse ich die Tastatur los - wird weitergescrollt. :(


    Galilei - auch wenn Du es nicht hören möchtest.
    Dieses Problem bekommst Du unmöglich mit einem Timer hin ;)


    Damit die Engine direkt auf die Eingabe reagiert, musst Du das über die WIN-API Funktionen
    WM_KEYUP und WM_KEYDOWN abfangen.


    Nach meiner Meinung ist die Rasterweite beim Scrollen zu gross.
    Die Karte macht einfach zu grosse sprünge.
    Schöner wäre halt ein "weiches" scrollen.


    Aber wie gesagt ich bin kein Java-Experte und weiss nicht ob das überhaubt in Java geht.

  • Galilei

    Zitat

    werde dann mal irgendwann die Seezonen verkleinern müssen


    Dem würde ich zustimmen.


    Zu der Scrollfunktion:
    Ich weiß nicht, wie so etwas technisch zu realisieren ist (beherrsche Java nur in Ansätzen), aber als einfacher Tester und Berater würde ich sagen:
    Die Karte soll sich in Abständen von sehr wenigen Millisekunden um sehr wenige Pixel bewegen, solange die Maus im Trigger-Bereich steht.
    Derzeit sind Zeitintervall und Sprunggröße m. E. zu groß gewählt.


    Die Auslöserzonen sollten aber unbedingt wie in P2 realisiert werden (ist eigentlich auch Standard). Triggerbereiche = Bildschirmränder und nicht die Ränder der Hauptansicht.

  • Hallo Galilei,


    jetzt will ich doch mal ein bischen aus dem "Nähkästchen" plaudern.


    Vielleicht ist Dir das alles schon bekannt ;) aber ein wenig Grundlagen schadet ja nie.


    Also um eine echte Animation hinzukriegen muss man das Auge ein wenig täuschen.
    Um eine gute Animation zu realisieren, sind 25FPS (Frames per Second) notwendig.
    Das bedeutet man benötigt 25Bilder/Sekunde um eine Bewegung als fliessend zu empfinden.


    Deshalb muss ein neues Bild in 1/25sek = 40ms aufgebaut sein.
    Darum sind 250ms vieeel zu lang. :eek2:
    Das sind nämlich gerade mal 4FPS. Bei so einer Geschwindigkeit würdest Du jedes Spiel in die Tonne schmeissen!


    Diese 40ms sollte nun Dein Wert für das Rendern Deiner Grafik sein.


    Normalerweise wird alles in einer Spielschleife geregelt.
    Für den Aufbau der Spielschleife gibt es nun 2 Möglichkeiten.


    Möglichkeit 1:

    Code
    1. Schleife start
    2. Eingabe Spieler
    3. Allgemeine Spiellogik
    4. Bild im Hintergrund rendern
    5. Bild switchen
    6. Warte bis 40ms vorbei
    7. Ende Schleife


    oder man geht einen modernen Weg und regelt das mit einem 40msTimer (EventHandler)


    Code
    1. SetTimer(40ms)
    2. OnTimer
    3. {
    4. Eingabe Spieler
    5. Allgemeine Spiellogik
    6. Bild im Hintergrund rendern
    7. Bild switchen
    8. }


    Solltest Du mit den 40ms nicht hinkommen, dann überdenke nochmal das Design.
    Eigentlich dürfte es bei einem 2D-Spiel gar keine Probleme geben.


    In diesem Zusammenhang gleich mal ein paar Literaturempfehlungen :170:


    Stefan Zerbst: 3D Spieleprogrammierung in C/C++ Bd. 1 (behandlet auch 2D-Spiele)
    André Lamothe: Game Programming für Dummies
    André Lamothe: Tricks of the Windows Game Programming Gurus
    David Scherfgen: 3D-Spieleprogrammierung mit DirectX 9 und C++
    Peter Dobrovka: Computerspiele Design und Programmierung
    Marc DeLoura: Spieleprogrammierung Gems 1


    Aber wenn wir wirklich fachsimpeln wollen, dann schick mir einfach eine PN.
    Ich werde dann versuchen zu Helfen. :D


    Allerdings habe ich wohl nicht die Zeit um mich aktiv an Deinem Projekt zu beteiligen - sorry.

  • Zitat von Galilei:


    1. sorry die is nicht mehr auf dem Server
    2. die Karte ist nur Platzhalter
    3. was für grüne Fläschen ?(
    4. na gut da Seebär außerdem eine Scrollfunktion will, schreibe ich erstmal die Grafikengine neu und lass die Städte bleiben


    1. achso
    2. achso
    3. Tippfehler :giggle: :giggle: Flächen!
    4. okay!

  • ist die Scrollfunktion so gefälliger ?
    www.st-kleist.de/projektiii.jar ( wie üblich nach C:\Pfeffersack downloaden) updated


    @ Seebär
    die C++ - Ansätze einer Spielschleife bzw. eines Timers habe ich mittlerweile von 1 bis 100 ms durch,
    die funzen unter Java alle nicht ( entweder hüpft man überraschend ans andere Kartenende, die Funktion springt,
    und arbeitet nur bei Schleichtempo regelmäßig)