my name is unimportant, so call me »BadBreath«.
I'm currently working on an ambitious – maybe or likely even overambitious - project, that is my first game project ever.
As I'm studying to become a software engineer I sat down and thought about things I could do to heavily improve upon my skills. It basically ran down to two things, working on an operating system (and thus learning C – which I must do anyway -.-) or trying to combine my hobbies and passions and mix everything together, jump into cold water and try making a game.
So guess what, here I am, seeking your advice on problems I wouldn't face if I didn't make dumb decisions in the first place *g*
Anyway I want to give you a short overview about what I'm trying to do.
So, basically I try to create an a bit more advance jump&run where you face real physics and a huge amount of blocks you have to destroy to reach your target.
As if that wasn't ambitious enough I also try to improve my networking skills, which are far more than rusty.
For all of that I'm using Libgdx, Box2D and KryoNet to »help« me. (Honestly I though these awesome libs and frameworks would just need me to give them some voice-commands and do the rest for me … hell, it's 2013 already!)
So I created the fundamental basis of the whole project but now I'm stuck a bit with everything, most of all performance.
The thing is that I create (or wanna create) a huge amount of blocks at the beginning. So there should be ten-thousands of Static Box2D Blocks that make up the world and their corresponding sprites. Obviously that's way too much to load, even for the 16GB-Ram-Monster-Machine I'm working on, not to speak of other systems. (If this gets done – and I tend to finish the work I've started – I want others apart from NASA and NSA to be able to play this little game!)
So I thought about a Saving-System. There are two different approaches that came into my mind – the implementation of both being built upon Kryo(Net).
1) Upon creation I save the whole world into one file and when the game starts / updates I only load the X blocks surrounding the (local) player.
I'm biased on that one. Wouldn't it all come down to a very fast algorithm if I jump around the world at maximum warp-speed?
Also, if another player breaks blocks I need to save them locally as well :/
2) Upon creation I save the world into multiple files of the same size and load them when passing a(n invisible) border.
Not sure about that one either. Are there better solutions?
I really couldn't find anything regarding this problem. Either it's way too trivial or it's one of the more advanced tasks.
Thanks a lot for any advice in advance!
PS: English is not my mothertongue, so sorry if something is unclear because of that