Difference between revisions of "MapPaint"

From Ghoulwiki
Jump to: navigation, search
(aufgaben)
(gui möglichkeiten)
Line 39: Line 39:
 
* windows forms : alte standard api für alle DotNET gui sachen, wrapper für windows api
 
* windows forms : alte standard api für alle DotNET gui sachen, wrapper für windows api
 
* XNA : DirectX wrapper, (win8 problem?)
 
* XNA : DirectX wrapper, (win8 problem?)
* WPF : Gfx Framework und Teil von DotNET Framework. Nachfolger von Win Forms.  <--- vermutlich das hier
+
* [http://msdn.microsoft.com/en-us/library/aa970268%28v=vs.100%29.aspx WPF : Gfx Framework und Teil von DotNET Framework. Nachfolger von Win Forms.]   <--- vermutlich das hier
  
 
== aufgaben ==
 
== aufgaben ==

Revision as of 17:37, 15 December 2012

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

aufgaben

  • netzwerk-protokoll (ghondragor) (done, siehe unten)
  • netzwerk-server (ghondragor)
  • netzwerk-client implementierung in c# (methoden zum net-protokoll senden+empfangen)
  • gui : karte darstellen
    • zoom mit mauswheel
    • rumscrollen mit rechtsclick-drag
    • knöpfe zum farbe wählen (grün/braun/lila/gelb wie auf den mockups)
    • unter jeden farb-knopf ein clear knopf für diese farbe
    • radiergummi = weisser kreis mit rotem x
  • gui : draw : bei gedrückter maustaste die bewegung in kurze linien aufsplitten
    • netzwerk-client sende funktion aufrufen
    • funktion für eintragen in lokale linien-liste aufrufen
  • gui : linien : lokale linien-liste (farbe,x,y,x2,y2)
    • auf karte bei zoom+scroll korrekt darstellen
    • bei empfang von netzwerk-nachricht linien eintragen
    • bei lokaler verwendung oder netzwerk-empfang von clear linien löschen
    • bei lokaler verwendung oder netzwerk-empfang von radiergummi linien nahe position löschen
  • gui : maus
    • alle 100msec eigene maus position per netzwerk-client funktionsaufruf senden
    • per netzwerk empfangene mauspositionen darstellen (notify durch netzwerk-client)
    • evtl: eigenen mauszeugers in der ausgewählten farbe darstellen
  • karte : indar (siehe unten)
    • highres-karte aus screenshots bauen
    • generatoren+scu,spawnraum,air-/fahrzeug-/infantrie-terminals eintragen
  • karte : esamir
    • highres-karte aus screenshots bauen
    • generatoren+scu,spawnraum,air-/fahrzeug-/infantrie-terminals eintragen
  • karte : amerish
    • highres-karte aus screenshots bauen
    • generatoren+scu,spawnraum,air-/fahrzeug-/infantrie-terminals eintragen
  • evtl zusätzliche details wie schleichwege für sunderer rausfinden und einzeichnen, idealerweise als extra bild-datei / layer.
  • evtl später overlay lib aus mumble (opensource voicechat ähnlich teamspeak) zur ingame darstellung

netzwerk protokoll

  • zeichnen ist intern linienbasiert, viele kurze linien -> sieht rund aus.
  • koordinaten in pixel bei max-zoom : ingame grid = ca 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