Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (539)
Games in Android Showcase (132)
games submitted by our members
Games in WIP (603)
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  
  Cube world RAM optimalizations  (Read 1142 times)
0 Members and 1 Guest are viewing this topic.
Offline Mac70
« Posted 2013-07-28 19:59:07 »

Like in topic - does anyone have ideas how to optimize cube world game RAM usage?

Currently I am using this system (<> = reference to children in parent and reference to parent in children, > = only reference to children in parent):

World<>Chunk>Entity (one instance per type)>Model (one instance per mesh and texture)

I am rendering world with view radius 16 (33X33 chunks). Each chunk have 16X256X16 size, but only 16X80X16 is filled.

This system have one big issue - Tile don't "know" its parent and location.

RAM usage: 520 mb

Previously I was using this system:

World<>Chunk<>Tile (store x, y, z, chunk and entity references)>Entity (one instance per type)>Model (one instance per mesh and texture)

RAM usage (map with the same size): 1,5 gb

Check out my Devblog! Smiley
Offline RobinB

JGO Ninja


Medals: 44
Projects: 1
Exp: 3 years


Spacegame in progress


« Reply #1 - Posted 2013-07-28 20:29:41 »

I dont see why entity would need to know its parent.
To know more about your ram usage, you should post the used fields inside chunk and entity.4

And why does a entity have an model?
Offline jonjava
« Reply #2 - Posted 2013-07-28 20:30:05 »

Hmm, what? ;V

If each tile position is only referencing the Model to draw itself then you're basically just holding a (16*256*16)*(33*33) references. In 64bit JVM that's usually 64bits per reference so you'd end up with ~544Mb of references for each tile position. Looks about right to me.

The other method has 3 ints and 2 references (assumedly) so you'd end up with ~1900Mb of data. ((16*256*16)*(4+4+4+8+8)*(33*33)) / (1024*1024)

I don't know of this cube world and I'm just throwing around numbers here. However, you state that it's a problem that each tile doesn't know its position and I wonder if that is a non-issue. Since the World knows their position that should be enough.

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Mac70
« Reply #3 - Posted 2013-07-28 21:00:22 »

And why does a entity have an model?

Mostly to make code more readable, flexible and expandable. RAM is not too big problem at objects/models level.

About memory usage, even 64-bit Java use 32-bit references by default to save memory. As far as I know every object in Java must have multiply of 8 size.

Data stored in each object:
World - HashMap<Point, Chunk>
Chunk - 2 references (to the world and location), Entity[16][256][16], boolean repaint, int listID
Tile (only in more RAM-intensive version) - 2 references (to the entity and chunk), 2 bytes (xz and y)

RAM usage caused by other objects is very small.

Check out my Devblog! Smiley
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

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

The first screenshot will be displayed as a thumbnail.

rwatson462 (30 views)
2014-12-15 09:26:44

Mr.CodeIt (20 views)
2014-12-14 19:50:38

BurntPizza (42 views)
2014-12-09 22:41:13

BurntPizza (76 views)
2014-12-08 04:46:31

JscottyBieshaar (37 views)
2014-12-05 12:39:02

SHC (51 views)
2014-12-03 16:27:13

CopyableCougar4 (49 views)
2014-11-29 21:32:03

toopeicgaming1999 (115 views)
2014-11-26 15:22:04

toopeicgaming1999 (105 views)
2014-11-26 15:20:36

toopeicgaming1999 (31 views)
2014-11-26 15:20:08
Resources for WIP games
by kpars
2014-12-18 10:26:14

Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

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
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!