Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (406)
games submitted by our members
Games in WIP (290)
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  
  Level, Asset, Save File storage  (Read 613 times)
0 Members and 1 Guest are viewing this topic.
Offline novasharp

Junior Member


Medals: 1
Projects: 1


Gamemaker


« Posted 2013-03-02 23:34:08 »

Can anyone give me pointers on how to store levels and assets without hard-coding them? Also how to store save user saves.

novasharp
Offline Cero
« Reply #1 - Posted 2013-03-03 00:08:54 »

What kind of assets ?

you have sprites, soundfiles, music, tilesheets, fonts, whatever... these are all external files of course.

map files aswell. Usually map files only contain "configuration information" if you will, like a XML file. Kinda like: map size, which tileset and then a table of which tile is where... maybe layers and all sorts of stuff
you may write you own map system and editor or use one of the free ones - then you need to have an interpreter for these files... "Tiled" is a free one which many libs seem to support.
I always write my own, much more flexible

Save user saves. Well Serialize. Use Java Serialization, called the "Serializable" Interface and then you use objectoutput and input stream to write and read.
I like to use Kryo because it has this option to ignore missing fields and stuff, which helps savegame compatibility. But it has its own complications aswell.
You could write your own config and save it, using xml, json or even your own text file format

Offline tyeeeee1

Senior Member


Medals: 3
Projects: 1



« Reply #2 - Posted 2013-03-03 00:29:22 »

You might want to be more specific, there are so many ways to store and load levels, assets, saves, etc...
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline novasharp

Junior Member


Medals: 1
Projects: 1


Gamemaker


« Reply #3 - Posted 2013-03-04 23:16:52 »

So, for assests, i mean like tools, ships, weapons with their sprites and all the metadata associated with the assets. So for a tool, that data would include its functions, its cost, its power, etc... I would like to have the sprites and metadata stored in one file. For the level files, I will have a bunch of pre-defined levels that will have cutscenes and enemies, obstacles. Drops and loot will be both randomly generated, but in pre-defined spots and also specified explicitly. Save files should allow users to reset everything back to the exact way it was when they saved.

novasharp
Offline tyeeeee1

Senior Member


Medals: 3
Projects: 1



« Reply #4 - Posted 2013-03-04 23:48:35 »

For most of those things, except for the save file, you could just use a database such as Derby or something like that.
Offline Z-Man

Senior Member


Medals: 8



« Reply #5 - Posted 2013-03-05 22:29:08 »

As tyeeeee1 said there are a lot of different ways to store assets for a game so it really just comes down to your personal preference. For me I usually just store maps/character data/etc in a plain text file and read it in at some point in the game. I personally just don't feel like messing with a database, or an XML parser, or a JSON parser, or what have you. Of course that means I end up writing my own little parser but that doesn't take much effort at all really and it can just be reused from project to project.
Offline novasharp

Junior Member


Medals: 1
Projects: 1


Gamemaker


« Reply #6 - Posted 2013-03-05 22:46:13 »

Ok. Sounds like this is more personal preference than I thought. Well, thanks for the advice.

novasharp
Offline Danny02

JGO Knight


Medals: 36



« Reply #7 - Posted 2013-03-06 09:49:44 »

i would recommend to use the Jackson JSON parser, it will be a lot easier and less complicated then some handcrafted thing.

just create little data classes like:
1  
2  
3  
4  
5  
class LevelData
{
String titel;
int enemyCount, maxTime;
}


which can be loaded & saved like this:
1  
2  
3  
4  
5  
6  
ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally
//to read
LevelData level1 = mapper.readValue(new File("data/levels/level1.json"), LevelData.class);
//to write

mapper.writeValue(new File("changed-level1.json"), level1);


here is a more complete tutorial: http://wiki.fasterxml.com/JacksonInFiveMinutes
Offline novasharp

Junior Member


Medals: 1
Projects: 1


Gamemaker


« Reply #8 - Posted 2013-03-06 22:21:39 »

Okay. Thank you for the pointer. I will look into that.

novasharp
Pages: [1]
  ignore  |  Print  
 
 

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars and Titan!

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

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
cubemaster21 (60 views)
2013-05-17 21:29:12

alaslipknot (69 views)
2013-05-16 21:24:48

gouessej (99 views)
2013-05-16 00:53:38

gouessej (98 views)
2013-05-16 00:17:58

theagentd (107 views)
2013-05-15 15:01:13

theagentd (98 views)
2013-05-15 15:00:54

StreetDoggy (144 views)
2013-05-14 15:56:26

kutucuk (167 views)
2013-05-12 17:10:36

kutucuk (166 views)
2013-05-12 15:36:09

UnluckyDevil (175 views)
2013-05-12 05:09:57
Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38

Java Data structures
by Roquen
2013-03-29 13:21:12

Topic Request
by kutucuk
2013-03-22 21:42:01
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!
Page created in 0.111 seconds with 20 queries.