Das ist nun das Dilemma in welchem ich stecke, auf der einen Seite habe ich nunmal dieses Argument:
Code:
def pathing_table_test(real_x, real_y)
    return @pathing_table[real_x, real_y] == 1
    #returns true if the position is pathable and false if its not
end

def pathing_map_test(real_x, real_y)
    block = Color.new(0,0,0,255) #Farbe die Blockt = Schwarz
    tile = RPG::Cache.tileset("PathingMap-"+@tileset_name) #Bilddatei der Pathing Map
    int_x = real_x / 32
    int_x -= 1 if real_x % 32 == 0
    int_y = real_y / 32
    int_y -= 1 if real_y % 32 == 0
    add_x = real_x % 32
    add_y = real_y % 32
    for i in [2, 1, 0]
      #Durchlauf pro Layer
      tile_id = data[int_x, int_y, i] - 384
      next if tile_id < 0
      ry = tile_id / 8
      rx = tile_id % 8
      #Passierbarkeits Check
      return false if tile.get_pixel(rx*32+add_x, ry*32+add_y) == block
    end
    return true
  end
Ich denke die erste Funktion ist definitiv mit weniger Arbeit verbunden.

Allerdings verbraucht diese Tabelle, wie gesagt, unmengen an Speicherplatz.
Gibt es nicht eine Möglichkeit die Tabelle zu komprimieren und nur jeweils diejenige Tabelle zu dekomprimieren welche gerade benötigt wird?
Zum Beispiel wird die Tabelle als String oder Zahl mit WIDTH*HEIGHT Ziffern gespeichert und durch besondere Verfahren komprimiert und beim Betreten der jeweiligen Karte dann einmalig geladen und dekomprimiert.

Ich bitte um eure Hilfe hierbei, ich bin leider ein Anfänger in derlei Angelegenheit aber ich würde sehr gerne mehr darüber lernen.

Danke bereits für die Aufmerksamkeit.
Cornix.