MapPaint

From Ghoulwiki
Revision as of 08:55, 14 December 2012 by Ghoulsblade (talk | contribs) (map images)
Jump to: navigation, search

about

planetside 2 outfit vanus-revenge

Ziel: Eine zoombare Karte darstellen auf der die Squadleader multi-player mässig drauf rummalen können (jeder sieht was andere malen). So könnte man schön planen welcher Squad wo genau(zoom) lang laufen soll, oder welche Gebiete der reihe nach eingenommen werden sollen bei einem grösseren Feldzug.

Die Karte wird aus mehreren Bilddateien bestehen, die wir neben dem taktischen malen in echtzeig auch noch bereichern können :

  • details : Schild-generator, Spawn-Gebäude, Fahrzeug-Terminal...
  • details : Schleichwege wo man mit Fahrzeugen über enge Bergpässe kommt
  • details : beliebte Sunderer Positionen

Was leider nicht geht ist auf Daten aus dem Spiel zugreiffen, das heisst was nicht geht:

  • NICHT MÖGLICH: automatisch spieler positionen abfragen
  • NICHT MÖGLICH: territorial control anzeigen
  • NICHT MÖGLICH: squad/platoon wegpunkte anzeigen und setzen

Erstmal wird das ganze als externes Programm realisiert, so dass man mit alt-tab wechseln muss. Ideal wäre es das ganze als "Overlay" ähnlich Teamspeak-Overlay-Plugin oder Fraps Einblendung im Spiel anzuzeigen, während dem Spiel klein und transparent, ähnlich ner 2ten minimap, und per hotkey dann gross. Technisch möglich wäre das mit dem Overlay (ich hab schon eine lib gefunden), nur da grade in letzter Zeit oft Warnungen wegen 3rd-Party Apps kommen sollten wir hier vermulich vorsichtig sein und evtl Sony auf Outfit Ebene mal fragen ob sowas ok ist.

tech

  • C# visual studio 2010 express (kostenlos)
  • VersionsVerwaltung : git
    • vorher mysysgit installieren (commandline die von tortoise-git benutzt wird)
    • puttygen holen
    • ein private-public keypair erstellen (rsa)
    • den private key als .ppk datei lokal speichern
    • den public key (oben im textfeld) an ghoulsblade_AT_schattenkind_DOT_net schicken, dann schalte ich euch frei.
    • dann mit dem explorer irgendwo in einen leeren ordner, rechtsclick in die leere fläche
    • git clone... gitosis@zwischenwelt.org:mappaint.git

gui möglichkeiten

  • windows forms : alte standard api für alle DotNET gui sachen, wrapper für windows api
  • XNA : DirectX wrapper, (win8 problem?)
  • WPF : Gfx Framework und Teil von DotNET Framework. Nachfolger von Win Forms. <--- vermutlich das hier

aufgaben

  • netzwerk-protokoll (ghondragor)
  • netzwerk-server (ghondragor)
  • netzwerk-client implementierung in c#
  • gui
    • karte darstellen
    • zoom
    • knöpfe zum farbe wählen (radiergummi, für jede farbe ein clearall knopf), evtl undo
    • bei gedrückter maustaste die bewegung in kurze linien aufsplitten, netzwerk-client funktion aufrufen, und darstellen.
  • karten images
    • indar ist schon fertig, siehe unten
    • esamir aus screenshots erstellen
    • amerish aus screenshots erstellen
  • zusätzliche details wie schleichwege für sunderer rausfinden und einzeichnen, idealerweise als extra bild-datei / layer.


  • später evtl overlay lib aus mumble (opensource voicechat ähnlich teamspeak) verwenden.

netzwerk protokoll

  • zeichnen ist intern linienbasiert, viele kurze linien -> sieht rund aus.
  • koordinaten in pixel bei max-zoom : ingame grid = 272x272 pixel pro feld (siehe indar.jpg)


  • msg line
    • 1byte msgtype (1)
    • 1byte farbe (1=grün/alpha, 2=braun/bravo, 3=lila/charlie, 4=gelb/delta)
    • 4byte int startpunkt x
    • 4byte int startpunkt y
    • 4byte int endpunkt x
    • 4byte int endpunkt y
  • msg erase (radiergummi an stelle)
    • 1byte msgtype (2)
    • 1byte farbe (0=all 1=grün/alpha, 2=braun/bravo, 3=lila/charlie, 4=gelb/delta)
    • 4byte int x
    • 4byte int y
    • 4byte int radius
  • msg clear (komplett entfernen)
    • 1byte msgtype (3)
    • 1byte farbe (0=all 1=grün/alpha, 2=braun/bravo, 3=lila/charlie, 4=gelb/delta)
  • mouse pointer (zum rumfuchteln und diskutieren ohne die ganze zeit zu malen)
    • 1byte msgtype (4)
    • 1byte farbe (0=weiss 1=grün/alpha, 2=braun/bravo, 3=lila/charlie, 4=gelb/delta)
    • 4byte int x
    • 4byte int y

mockups

map images