Benutze beim Speichern unbedingt einen Stringbuilder. Da wirst du einen ziemlichen Geschwindigkeitsvorteil feststellen.
Du kannst das ganze schon mal um 1/8 kürzer machen, indem du das =5 in ein Zeichen zusammenfasst. Beispielsweise sowas: ";XidY" statt ";X Y=id". Für die ID benutzt du dann einen Buchstaben, damit du ihn von den Koordinaten unterscheiden kannst. Wenn du zum Beipiel festlegst, dass ID 5 = "." ist, dann sieht das so aus ";250.1"
Allerdings wird es noch kürzer, wenn du von Strings ganz Abstand nimmst. Ich denke bei deiner Mapgröße kann man die Koordinaten auf Int16 umstellen und die ID auf Byte. Du speicherst einfach Int16Int16Byte hintereinander. 2 Int16 und 1 Byte belegen dabei 5 Byte. Dargestellt in Hexadezimal sieht dein ";250 1=5" dann so aus: "FA015".
Du kannst das ganze schon mal um 1/8 kürzer machen, indem du das =5 in ein Zeichen zusammenfasst. Beispielsweise sowas: ";XidY" statt ";X Y=id". Für die ID benutzt du dann einen Buchstaben, damit du ihn von den Koordinaten unterscheiden kannst. Wenn du zum Beipiel festlegst, dass ID 5 = "." ist, dann sieht das so aus ";250.1"
Allerdings wird es noch kürzer, wenn du von Strings ganz Abstand nimmst. Ich denke bei deiner Mapgröße kann man die Koordinaten auf Int16 umstellen und die ID auf Byte. Du speicherst einfach Int16Int16Byte hintereinander. 2 Int16 und 1 Byte belegen dabei 5 Byte. Dargestellt in Hexadezimal sieht dein ";250 1=5" dann so aus: "FA015".
Skybird schrieb:
Das sind ja Ubisoftmethoden hier !