Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (498)
Games in Android Showcase (116)
games submitted by our members
Games in WIP (563)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Content of the tiles in a tile map  (Read 105 times)
0 Members and 1 Guest are viewing this topic.
Offline 3android14

Junior Newbie





« Posted 2014-08-21 22:45:17 »

I'm working on my first game, and therefore I lack experience with the design of the complex systems, the best way to do things and so. That's why a seek advice.

First, I'll try to briefly describe how I handle the tile map now: my map is infinite size (I procedurally generate it), and I divide it in chunks (I'm inspired a lot by minecraft for this game). Each chunk consists in a 2-dimensional array, that currently stores instances or instances of subclasses of the Block class (I know mixing both is a really bad approach, the way I'm doing it). Also, the chunks are stored in a Map <Point,Chunk> (being Point the coordinate of the Chunk) which is a field in the class ChunkManager(for the lack of a better name). Finally, one field of the World class is a ChunkManager.

Then, my problem lies within the Block class. I don't know which approach will be the best (if there is such thing):
1-Store a byte/short/int/whatever, and then lookup in a Map which Block subclass does it belong to.
2-Store a Block subclass, which would store the light value of the tile, the x and y coordinates, a reference to the ChunkManager and other things.

Now I would probably go with the first, but I wanted to be able to do thing like chunkManager.getBlock(5,6).explode() instead of BlockMap.getBlock(chunkManager.getBlockId(5,6)).explode(chunkManager,5,6). On the other hand, I would like to avoid the duplication of the coordinates (they would be both in the Block subclass instance and in the position of the block in the chunk plus the position of the chunk in the map multiplied by the side of the chunk) and in general storing more information than necessary.

Note: I'm not looking for third party solutions (feel free to recommend them though), I want to implement it myself.

Anyway, what is your view on the problem? Please tell me which option is better, or another if you think those two aren't right. Thank you for your help and for reading the whole thing.

TL:DR: Should I just store an int for each tile that corresponds to a type of tile, or an instance of the type of tile along with other useful (but duplicated) information, as the coordinates?
Pages: [1]
  ignore  |  Print  
 
 

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

radar3301 (12 views)
2014-09-21 23:33:17

BurntPizza (30 views)
2014-09-21 02:42:18

BurntPizza (20 views)
2014-09-21 01:30:30

moogie (20 views)
2014-09-21 00:26:15

UprightPath (28 views)
2014-09-20 20:14:06

BurntPizza (32 views)
2014-09-19 03:14:18

Dwinin (48 views)
2014-09-12 09:08:26

Norakomi (74 views)
2014-09-10 13:57:51

TehJavaDev (102 views)
2014-09-10 06:39:09

Tekkerue (50 views)
2014-09-09 02:24:56
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!