

Vnitřní koloběh hry
Chtěl bych naprogramovat v Monogame hru na způsob Minecraft 2D. Přemýšlím jaký "vnitřní koloběh" hry by byl nejlepší. Počet částic Block bude asi 255 a na asi šířku 10000. Dále musím připustit, že někdy budou i Bloky na sobě. Hraje v tom také výška, odkud svítí světlo.
1, První mě napadlo, že udělám přes několik listů, viz.dole
List<Block> grass;
List<Block> dirt;
List<Block> stone;
...
int[] LightPos;
class Block{
public int x;
public int y;
public Texture2D texture;
}
Vím tento způsob by byl rychlý ve vykreslování, ale pomalý, když by hledal Block na pozici X, Y (tak bych musel prohledat všechny listy).
2, Možná tento způsob, kde svět bude jakoby uložen ve 3 rozměrech (třetí rozměr jsou bloky na sobě)
List<Block>[,] terrain;
int LightPos;
class Block{
public Texture2D texture;
public int Id;
...
}
Tenhle vypadá pěkně, ale nikdy jsem ho nezkoušel.
3, a taky tento způsob, kde jsou jen v byte uloženy id bloků
List<byte>[,] terrain;
int[] LightPos;
Tohle je jen trochu pomalejší ve vykreslování a taky asi budou muset být zvlášť hodnoty a animací.
4, A nebo tento způsob, kde ve sloupcích=chunkách budou id bloků
Chunk[] terrain;
class Chunk{
public int LightPos;
public byte[] BackBlocks=new byte[255];
public byte[] SolidBlocks=new byte[255];
public byte[] TopBlocks=new byte[255];
}
5, A tento malinko komplikovanější
Chunk[] terrain;
class Chunk{
public int LightPos;
public Block[] BackBlocks=new Block[255];
public Block[] SolidBlocks=new Block[255];
public Block[] TopBlocks=new Block[255];
}
class Block{
public Texture2D texture;
public int Id;
...
}
Vážně nevím, který "vnitřní koloběh" hry zvolit, proto prosím o radu, aby jste mi pomohly se pro jeden rozhodnout.