Difference between revisions of "MapPaint"
Ghoulsblade (talk | contribs) |
Ghoulsblade (talk | contribs) |
||
(34 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | == about == | ||
+ | |||
+ | [http://www.vanus-revenge.de/ 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). | 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, | So könnte man schön planen welcher Squad wo genau(zoom) lang laufen soll, | ||
Line 8: | Line 12: | ||
* details : beliebte Sunderer Positionen | * details : beliebte Sunderer Positionen | ||
− | Was leider nicht geht ist auf Daten aus dem Spiel zugreiffen, das heisst | + | Was leider nicht geht ist auf Daten aus dem Spiel zugreiffen, das heisst: |
* NICHT MÖGLICH: automatisch spieler positionen abfragen | * NICHT MÖGLICH: automatisch spieler positionen abfragen | ||
* NICHT MÖGLICH: territorial control anzeigen | * NICHT MÖGLICH: territorial control anzeigen | ||
Line 18: | Line 22: | ||
Technisch möglich wäre das mit dem Overlay (ich hab schon eine lib gefunden), | 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. | 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 == | ||
+ | |||
+ | * [http://www.microsoft.com/visualstudio/deu/downloads#d-2010-express C# visual studio 2010 express (kostenlos)] | ||
+ | * wer sich nicht mit git rumschlagen mag einfach per email an ghoulsblade_AT_schattenkind_DOT_net fragen, dann schick ichn zip mit dem aktuellen stand. | ||
+ | * optional : [http://code.google.com/p/tortoisegit/wiki/Download VersionsVerwaltung : git] | ||
+ | ** ansonsten mit git : vorher [http://code.google.com/p/msysgit/downloads/list?can=2&q=%22Full+installer+for+official+Git+for+Windows%22 mysysgit installieren] (commandline die von tortoise-git benutzt wird) | ||
+ | ** [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 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?) | ||
+ | * <strike>[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.]</strike> | ||
+ | * [http://libsdl.org SDL] <--- das hier | ||
+ | |||
+ | == aufgaben == | ||
+ | |||
+ | * <strike>netzwerk-protokoll</strike> (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) | ||
+ | ** <strike>highres-karte aus screenshots bauen</strike> | ||
+ | ** generatoren+scu,spawnraum,teleporter,air-/fahrzeug-/infantrie-terminals eintragen | ||
+ | * karte : esamir | ||
+ | ** highres-karte aus screenshots bauen | ||
+ | ** generatoren+scu,spawnraum,teleporter,air-/fahrzeug-/infantrie-terminals eintragen | ||
+ | * karte : amerish | ||
+ | ** highres-karte aus screenshots bauen | ||
+ | ** generatoren+scu,spawnraum,teleporter,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 == | ||
+ | |||
+ | <gallery> | ||
+ | Image:MapPaintApp-01.jpg | ||
+ | Image:MapPaintIngame-big.jpg | ||
+ | Image:MapPaintIngame-big-zoom.jpg | ||
+ | Image:MapPaintIngame-small.jpg | ||
+ | </gallery> | ||
+ | |||
+ | == map images == | ||
<gallery> | <gallery> | ||
Image:Indar.jpg | Image:Indar.jpg | ||
+ | Image:Amerish_detailed.jpg | ||
+ | Image:Esamir_detailed.jpg | ||
</gallery> | </gallery> | ||
+ | |||
+ | == notes == | ||
+ | |||
+ | * 2013-02 planetside API http://census.soe.com/ | ||
+ | * player live info https://players.planetside2.com/ | ||
+ | * http://ps2maps.com/ z.b. indar http://ps2maps.com/briggs/indar |
Latest revision as of 18:53, 6 April 2013
Contents
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:
- 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)
- wer sich nicht mit git rumschlagen mag einfach per email an ghoulsblade_AT_schattenkind_DOT_net fragen, dann schick ichn zip mit dem aktuellen stand.
- optional : VersionsVerwaltung : git
- ansonsten mit 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. - SDL <--- das hier
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,teleporter,air-/fahrzeug-/infantrie-terminals eintragen
-
- karte : esamir
- highres-karte aus screenshots bauen
- generatoren+scu,spawnraum,teleporter,air-/fahrzeug-/infantrie-terminals eintragen
- karte : amerish
- highres-karte aus screenshots bauen
- generatoren+scu,spawnraum,teleporter,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
notes
- 2013-02 planetside API http://census.soe.com/
- player live info https://players.planetside2.com/
- http://ps2maps.com/ z.b. indar http://ps2maps.com/briggs/indar