Thursday, 7 February 2008

Xstreamely fast development for Save/Load

Java is powerful and robust. Now again it's demonstrated with the help of XStream the extremely easy to use XML serializer under BSD (opensource) license. Thus with a little care GameStateContainer is converted to an XML hierarchy containing all data and reading it back is just another use of XStream. I had to add some Java "transient" keys here and there to avoid serialization. Now a "single slot" save/load is available, with zipped XML save file. I will soon improve it to multi slot save-load which is more comfortable for the generic use. But the proof of concept is ready again. There's a pitfall although - if Java class fields and hierarchy changed the old save/game becomes incompatible with the new game loader. Anyway I think it will work great when jcrpg becomes stable but this is a very important thing to care about later - plan carefully the gamestate classes and only change them when its truly necessary.

All this is checked into SVN repository. Brave ones can test it. You can continue your wandering around the world if you had to quit previously but saved the game. :-D

PS.: multislot save/load ready in SVN, check the screenshot.

6 comments:

Masterhand said...

Wow, sounds like the menu functions are starting to shape up.

Can't wait for the save file to be complete. As always, good idea.

You could maybe even use the main menu in the future for other things to. ;)

Psy-Q said...

Amazing, you're really going at high speed right now. The bad thing is that it's really, really tough from a game designer's perspective to make a good Wizardry-style RPG in the first place, no matter how good the engine.

I'm glad jcrpg is tile-based, because getting the same concept to work in full 3D is even harder (see Wizards & Warriors or Wizardry 8, those actually turned out quite good considering the implications such a free-walking engine has.)

Paul said...

Hey, ppl! Good to see you are content with the progress! Actually save/load slots were implemented yesterday with screenshot images like they should be! :-D

@psy-q

I know it's a hard nut to crack, Wizardry 7 set a standard that can be hardly met or beaten! :-) But what I plan to do is to add such new things that was not added to any of such RPGs yet, like group intelligence, strategic elements independent of the player which will result non-linear game play and such dynamic flow that is really unique in RPG. Complex rule machine of computer driven entities, that will be overwhelming the player at first, but can be mastered with time. :-) And of course NPCs that could add even more twists to it.

I'm happy that you at first place like the tile-based concept. We're just discussing this in another thread and some people would like to see more modern 3D gfx, but finally I've made up my mind this morning to not break up with this gfx already created. I will strictly go with cubish things for this project. This is about it, classicism - not modern 3D heightmap curved mountains and such! :-)

bri (dragonbait) said...

I agree. Keep it classic style! with your own flavor of originality so that there is nothing quite like JCRPG. :o)

Paul said...

Hey, Bri!

I was counting on your vote for classic style. :-) It's hard to say no for the appeal of modern 3d look -> jme has its own implementation for terrain blocks, which can do curved mountain sides and such greatly. Yet at the very beginning I voted for tiling. And I will keep it that way, I think jcrpg already has a taste of boosted classic, which shouldn't be wasted or ruined. :-)

bri (dragonbait) said...

tiling, grid mapped, strategic, turn based, 2 dimensional, classic style, with an original kick. Something with high re-playability, fun, and extensiveness. Keep it old-school. The thing that made classic style games so great was not their graphics, but their style of gameplay. All the things that made SSI's gold box games, the Bard's Tale, Might and Magic, and Wizardry series so great. JCRPG will be their successor.

Twitter